feelfreelinux / bell

Base utilities shared between cspot and euphonium projects

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

bell

Core audio utils library used in cspot and euphonium projects.

What's included:

  • HTTPServer, HTTPClient - no need to explain
  • BufferedStream - wrapper for ByteStream with a worker-thread ring buffer
  • Crypto (mbedtls backed)
  • Audio sinks interface:
    • for Unix/Cygwin: ALSA, PortAudio, named pipe outputs (see root CMakeLists for options)
    • for ESP32: DACs (AC101, ES8388, ES9018, PCM5102, TAS5711), S/PDIF over I2S, internal DAC output
    • → see src/audio/sinks/esp for pin configuration, etc.
  • Abstraction layer over multiple audio codecs: (disable with BELL_DISABLE_CODECS)
    • AAC - using libhelix-aac - enabled with BELL_CODEC_AAC
    • MP3 - using libhelix-mp3 - enabled with BELL_CODEC_MP3
    • Vorbis - using Xiph.org's tremor - enabled with BELL_CODEC_VORBIS
    • Opus - using Xiph.org's reference Opus impl - enabled with BELL_CODEC_OPUS
  • Audio container reading classes, with random access support:
    • Mpeg4Container - supports MPEG-4 and QuickTime files, either with or without video, fragmented or not
  • cJSON library with JSONObject wrapper (disable with BELL_DISABLE_CJSON)
  • Logging utilities
  • Nanopb protobuf library, for use in CMake
  • Semaphore implementations for multiple platforms

About

Base utilities shared between cspot and euphonium projects


Languages

Language:C++ 68.3%Language:C 26.3%Language:CMake 4.4%Language:Assembly 0.6%Language:Nix 0.4%Language:Python 0.1%