PDA

View Full Version : Browsing the music folder/database



Jannis Hermanns
2004-07-25, 13:14
Hey guys,

after reading [1] I still don't know what's the way to go. As I see no
way to browse the music library using the CLI, I was wondering how to
browse the music library from a non-squeezebox-client and read [2].
Still I don't know. Using the web interface's XML-Skin is dirty and
slow. So, how does the squeezebox do it so fast and convenient? Via
TCP or UDP?

The reason I'm asking this question is, that I'm writing a software
controller for my squeezebox , that behaves pretty much like
amarok/xmms/winamp (and especially lets me search through my current
playlist ;). I'm now stuck at the point where I have to browse the
music library.

What do I do?

Cheers,
Jannis.


[1] http://article.gmane.org/gmane.music.equipment.slimdevices.devel/3109/match=cli+database+access
[2] http://squeezebox/html/docs/slimproto.html (replace 'squeezebox' :-)
--

Roy M. Silvernail
2004-07-25, 14:01
On Sun, 25 Jul 2004 22:14:23 +0200
Jannis Hermanns <jannis (AT) gmail (DOT) com> wrote:

> Hey guys,
>
> after reading [1] I still don't know what's the way to go. As I see no
> way to browse the music library using the CLI, I was wondering how to
> browse the music library from a non-squeezebox-client and read [2].
> Still I don't know. Using the web interface's XML-Skin is dirty and
> slow. So, how does the squeezebox do it so fast and convenient? Via
> TCP or UDP?

TCP, but that's a fairly misleading answer. Remember that the
Squeezebox is a client, and a thin one at that. While you're browsing
the library, all the SB does is send arrow button presses to the server,
which responds by updating the SB display.

You can do much the same thing by sending button codes as args to the
status.txt URL. Have a look at the source to
http://127.0.0.1:9000/html/remote.html, in the bottom pane where the
remote is pictured. But notice that the text returned to the top frame
has some cruft and is truncated at the width of the SB display.
Scrolling is done by the server, as well.

> The reason I'm asking this question is, that I'm writing a software
> controller for my squeezebox , that behaves pretty much like
> amarok/xmms/winamp (and especially lets me search through my current
> playlist ;). I'm now stuck at the point where I have to browse the
> music library.

If your program will run on the same box as SlimServer, hitting the
filesystem directly is probably a good bet. But if you're envisioning a
remote controller talking to a server on another box and controlling
your SB, it's a bit trickier (as you've noted). The speed of the SB in
browsing comes largely from the narrow bandwidth of the interface. I
haven't played much with the XML skin, but it looks like it can grab a
bunch of data in one gulp. If you're doing single-item queries, that
would certainly be slow. As for "dirty", what are you using to parse
the XML? If you're rolling your own parser, I can understand the
sentiment. But most languages have XML parsers floating about.
XML::Simple for perl is a good example. Once freed of having to unpack
that ASCII salad manually, XML looks a lot better. :)
--
Roy M. Silvernail is roy (AT) rant-central (DOT) com, and you're not
http://www.rant-central.com is the new scytale
Never Forget: It's Only 1's and 0's!
SpamAssassin->procmail->/dev/null->bliss