The radio project, development of the streaming software itself and things related to it.
  • CMake 79.8%
  • Shell 20.2%
Find a file
2022-01-16 17:09:42 +01:00
cmake Add find PkgConfig 2020-07-08 16:09:25 +02:00
dist Add 3DS PKGBUILD 2022-01-16 17:09:42 +01:00
scripts Add 3DS PKGBUILD 2022-01-16 17:09:42 +01:00
.gitignore Add gitlab-ci for creating source tarball and PKGBUILDs 2021-05-28 02:22:00 +02:00
.gitlab-ci.yml Fix version number yet again 2021-05-28 02:50:29 +02:00
CMakeLists.txt Fix version number again 2021-05-28 02:49:59 +02:00
LICENSE Add LICENSE 2020-09-12 21:41:40 +02:00
README.md Update README.md 2020-10-31 15:39:11 +01:00
THFMR2Config.cmake.in Also report directory 2019-10-17 22:09:27 +02:00
THFMR2ModuleLocation.cmake Create THFMR2 Package 2018-11-19 01:30:52 +01:00

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