- CMake 79.8%
- Shell 20.2%
| cmake | ||
| dist | ||
| scripts | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| CMakeLists.txt | ||
| LICENSE | ||
| README.md | ||
| THFMR2Config.cmake.in | ||
| THFMR2ModuleLocation.cmake | ||
TouHouFM Radio 2 (THFMR2) Global
This CMake project is the base for the THFMR2 system. It provides the base THFMR2 CMake module that helps with finding the other components of the system. All THFMR2 components require this base module to be available. A PKGBUILD for Archlinux exists in dist
Components
This project consists of several components that together form a full TouHouFM Radio 2 system.
Libraries
-
THFMR2TTA - TTA Decoder for THFMR2
Used by the player daemon to decode TTA files.
-
THFMR2DB - DB Abstraction Layer for THFMR2
Used by the provider and indexer to connect to the PostgreSQL Database.
-
THFMR2Utils - Utility library for THFMR2
Used by various libraries and programs. Contains various functions aiding development.
-
THFMR2Logging - Logging library for THFMR2
Used by programs to log information. Provides a simple scoped logger.
-
THFMR2Protocol - Protocol library for THFMR2
Contains the protocol structures used by the daemons to communicate.
-
THFMR2StreamingBase - Stream library base code for THFMR2
Contains the shared structures and interfaces of the encoder and decoder library.
-
THFMR2StreamingEncoder - Stream encoder library for THFMR2
Used by the player and router to encode the stream.
-
THFMR2StreamingDecoder - Stream decoder library for THFMR2
Used by the router decode the stream before encoding for listeners. Can also be used by C++ based playback applications
Programs
-
THFMR2Player - Player daemon for THFMR2
Plays music as instructed by a provider daemon
-
THFMR2Playlist - Playlist daemon for THFMR2
Maintains a playlist of songs to be fed to a player daemon, acts itself as a player. This allows support for showing the "to be played" songs without adding queue logic to the provider daemon. It also allows for longer downtime of a provider daemon.
-
THFMR2Provider - Provider daemon for THFMR2
Provides new un-played songs to be fed to a player daemon or playlist daemon.
-
THFMR2Indexer - Indexer for THFMR2
Indexes songs to be added to the database used by the provider to find songs.
-
THFMR2Router - Router for THFMR2
Routes audio from players to listeners. This allows horizontally scaling streaming endpoints to distribute streaming bandwidth.
Usage
Building:
mkdir build
cd build
cmake ..
cmake --build .
Installing
# Inside build directory
cmake --build . --target install