Hi,

As my first (non-introduction) post I would like to talk about the MPD-
protocol. The whole protocol feels to me like it is just implemented when new 
functionality was added to MPD. While I totally understand this from a 
developers point of view. This is not a good thing. The protocol is the only 
way to communicate with MPD so this should be very well structured.

Take for example the naming of the functions in the protocol. We have list, 
listinfo, listallinfo, lsinfo. All commands that look the same. But have 
different meanings. Now I could talk about the difference between them and how 
the naming is not consistent trough out the protocol. One example: list should 
be something like searchDatabase.

However I think my point is clear. When looking at a random command it is not 
clear (by the name) what is has effect on.

Now I think the protocol would be a lot more efficient if it was event based 
(or even better publish-subscribe) but since cirrus has just added that a 
couple of weeks ago I first want to see how it works before I start 
criticising it. However I already do have some idea's. But more on that in 
another thread.

Other than that there is no command now for retrieving all the play lists from 
the server. lsinfo works. But that would mean I have to parse that again. This 
is a missing feature. Since it means parsing all stuff from lsinfo (which 
could be a lot!) every time. Now if I understand it correctly events are 
generated with cirrus's events so you should be notified by that in order to 
update it all.

Other than that right now adding songs is a real pain in the ass. Or to be 
more precise adding albums. When I supply the artist and the album MPD should 
be able to add this album by itself right? Same for everything from a specific 
artist. I do realise this function can't be always used when people have a lot 
of duplicated songs or an album double in their database. But in the general 
case this would be very use full.

Now this is not really part of the protocol but still related to it. 
Compression. Why do we send everything in plain text? It is true that most 
commands are very small. But for example retrieving the play list over at my 
folks is 4.5 MB. While when it is gzipped it is only 630 kb. This can save a 
lot of network traffic.

I have some other ideas but they are more related to features of MPD instead 
of the protocol. So an other time for that.

Note that it is not my intention to  start a flame war.  Anyway I would love 
to get input/opinions on all of this.

Greetings,
--Roeland

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Musicpd-dev-team mailing list
Musicpd-dev-team@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/musicpd-dev-team

Reply via email to