How arancormonk/dsd-neo works
DSD-neo is a cross-platform digital-radio decoder. A user supplies live SDR/audio input or a recording; the runtime demodulates and decodes radio protocols, optionally follows trunked calls or scans systems, then plays voice and presents caller, system, and site information. The graph also preserves documented recording, import, and remote-control capabilities. The README establishes the product workflow; sampled code confirms engine/DSP and platform entry-point responsibilities, but several subsystem links remain unverified because their implementations were not sampled.
Main entry points: engine.c Decode engine · protocol Protocol decoders · main.c CLI frontend · DecoderService.kt Android app
Components 19
Applications and control
- CLI frontend
apps/dsd-cli/main.c - Android app
android/package/src/io/github/arancormonk/dsdneo/DecoderService.kt - Qt controller
src/ui/qt/ui_controller.cpp - Decode engine
src/engine/engine.c - Status and display
src/ui
Radio reception
- Radio and audio inputs
src/io - Demodulation
src/dsp/demod_pipeline.cpp - I/Q capture and replay
src/io/iq/iq_replay.c
Decoding and calls
- Protocol decoders
src/protocol - Error correction
src/fec/fec.c - Trunking and scan
src/engine/engine.c - Caller and site identity
src/core/util/received_identity.c - Decryption keys
src/core/vocoder/keyring.c
Voice and records
- Voice playback
src/core/audio - Call recording
src/core/file/wav_recording.c - Event history
src/core/util/dsd_events.c
Imports and services
- RadioReference import
src/runtime/radioreference/rr_client.c - rdio-scanner upload
src/runtime
Other components
- Radio listener
Connections 19
- Radio listener → CLI frontend: runs
README.md - Radio listener → Android app: uses
README.md - CLI frontend → Decode engine: starts
apps/dsd-cli/main.c - Android app → Decode engine: controls
android/package/src/io/github/arancormonk/dsdneo/DecoderService.kt - Qt controller → Decode engine: controls
- Decode engine → Radio and audio inputs: opens input
src/engine/engine.c - Radio and audio inputs → Demodulation: supplies samples
- Demodulation → Protocol decoders: provides demodulated signal
- Protocol decoders → Error correction: uses correction
- Decode engine → Trunking and scan: runs tuning and scan
README.md - Protocol decoders → Caller and site identity: yields radio identity
- Decode engine → Voice playback: plays decoded voice
README.md - Decode engine → Call recording: records calls
README.md - Decode engine → Event history: keeps event history
README.md - Decode engine → Status and display: publishes decode status
- Radio listener → RadioReference import: imports systems
README.md - Decode engine → rdio-scanner upload: uploads calls
README.md - Radio listener → I/Q capture and replay: captures or replays
README.md - Radio listener → Decryption keys: provides keys
README.md