API Reference Snapcast v#0.2.0

Copy Markdown View Source

Modules

A pure-Elixir snapcast server: speak snapcast's binary protocol directly to snapclients, owning the audio clock and timestamping every chunk, so there is no external snapserver and no ffmpeg/snapserver pacing to fight.

Advertises the embedded Snap server through mDNS/DNS-SD.

The server's monotonic audio clock, shared by all sessions and streams.

Behaviour for receiving Snapcast.Server lifecycle events.

Supervises a local snapclient process connected to the embedded Snap server.

Snapcast binary wire protocol — encode/decode (a pure-Elixir snapcast SERVER).

The snapcast server: a TCP listener that accepts snapclients, plus the playback coordinator. Each connection becomes a Snapcast.Session (self-registers on Hello). play/3 (re)starts a Snapcast.Stream feeding the targeted clients, and the transport ops (pause/resume/seek/stop/volume) map onto it.

One connected snapclient. Owns the TCP socket, speaks the snapcast protocol, and writes the audio chunks the stream hands it.

Decodes one source to PCM and paces it out as timestamped WireChunks.