How ralph-irving/squeezelite works
Squeezelite is a headless Squeezebox player: a Logitech Media Server (or compatible server) controls playback, supplies streams, and the player decodes and processes audio for a selected output. The graph preserves the distinct streaming, format decoding, audio processing, and device-output stages, plus control and optional integrations. The README is brief and the excerpts are partial, so uncertain module wiring is omitted; broader codec and output coverage is reflected from the repository tree.
Main entry points: decode.c Decode dispatcher · output.c Output selection · main.c Startup and options · slimproto.c SlimProto control
Components 28
Player control
- Startup and options
main.c - SlimProto control
slimproto.c - GPIO controls
gpio.c - Infrared controls
ir.c
Stream handling
- Stream receiver
stream.c - Ring buffers
buffer.c
Format decoding
- Decode dispatcher
decode.c - FLAC decoder
flac.c - Vorbis decoder
vorbis.c - MP3 decoders
mpg.c - MAD decoder
mad.c - Opus decoder
opus.c - FFmpeg decoder
ffmpeg.c - AAC decoder
faad.c - ALAC decoder
alac.c - DSD decoder
dsd.c - DSD conversion
dsd2pcm/dsd2pcm.c
Audio processing
- PCM handling
pcm.c - Audio processing
process.c - Resampling
resample.c
Outputs and integrations
- Output selection
output.c - ALSA output
output_alsa.c - PulseAudio output
output_pulse.c - PortAudio output
output_pa.c - Standard output
output_stdout.c - Visualizer export
output_vis.c
Other components
- Media server
- Audio device
Connections 34
- Startup and options → SlimProto control: starts
- Startup and options → Stream receiver: initializes
- Startup and options → Output selection: configures
- Media server → SlimProto control: sends commands
- SlimProto control → Media server: sends status
- SlimProto control → Stream receiver: controls playback
- Stream receiver → Ring buffers: writes stream data
- Ring buffers → Decode dispatcher: provides stream data
- Decode dispatcher → FLAC decoder: dispatches
- Decode dispatcher → Vorbis decoder: dispatches
- Decode dispatcher → MP3 decoders: dispatches
- Decode dispatcher → MAD decoder: dispatches
- Decode dispatcher → Opus decoder: dispatches
- Decode dispatcher → FFmpeg decoder: dispatches
- Decode dispatcher → AAC decoder: dispatches
- Decode dispatcher → ALAC decoder: dispatches
- Decode dispatcher → DSD decoder: dispatches
- DSD decoder → DSD conversion: converts DSD
- Decode dispatcher → PCM handling: produces PCM
- PCM handling → Audio processing: provides samples
- Audio processing → Resampling: resamples
- Audio processing → Output selection: sends processed audio
- Resampling → Output selection: sends resampled audio
- Output selection → ALSA output: selects backend
- Output selection → PulseAudio output: selects backend
- Output selection → PortAudio output: selects backend
- Output selection → Standard output: selects backend
- ALSA output → Audio device: plays audio
- PulseAudio output → Audio device: plays audio
- PortAudio output → Audio device: plays audio
- Standard output → Audio device: writes audio data
- Output selection → Visualizer export: exports visualization
- Startup and options → GPIO controls: configures
- Startup and options → Infrared controls: configures