View Full Version : Client/server docs

Phil Karn
2005-12-13, 21:34
Two related questions. I've been looking at the protocols between the
Squeezebox and the Slimserver with ethereal and I've noticed that the
protocol specifications bundled with the Slimserver appear to be
incomplete. I see commands and data structures that aren't documented.
Is a more recent version available?

If I understand the protocol correctly, the server hands the Squeezebox
a command that basically says "fetch the following URL, play the
resulting data stream with the following DAC settings, and let me know
when you're done". (The DAC settings are ignored with MP3 and FLAC
files, as those settings are embedded in the data stream.)

This seems pretty straightforward and flexible.

During playback the Squeezebox continually lets the server know how it's
doing, e.g., by reporting buffer utilization, etc, and the server tells
the Squeezebox exactly what to show on its screen. Even something as
simple as screen scrolling happens only when the server tells it to.

But I notice that every HTTP 'get' operation is handed back to the
Slimserver, even when it's an "Internet Radio" stream. The Slimserver
fetches the data from the source and relays it to the Squeezebox. I
suppose that makes it possible for multiple Squeezeboxes to play the
same stream without duplication over the wide area network connection.

Still, it would be handy if I had a hook to let me pass my own URL
directly to the Squeezebox, without application-layer relaying through
the Slimserver. This might be useful if I wanted to use my Squeezebox as
a "dumb" D/A converter for some special application such as Internet
telephony, or driving the Squeezebox DAC directly from a program of my
own. Does anybody know if such a "raw DAC" access hook already exists in
the Slimserver?