I had the idea earlier today of creating a MPD-compatible server within WaveBox, so that we can control a Jukebox in future releases using a MPD-compatible client. I've already made a bit of progress, but I understand that the Jukebox may not make it into the first release.
Here's a quick summary of what I've worked on:
- Created AbstractTcpServer, from which the current HttpServer and the new MpdServer inherit
- WaveBoxMain: created generic "StartTcpServer" method which can launch any AbstractTcpServer derivatives
- Settings: changed "port" to "httpPort" and added "mpdPort"
If the Jukebox is delayed, I'll keep working on this stuff regardless, but so far, so good. I don't expect this to make it into the first release, but I'm willing to put in some time and effort to make it happen.
Continuing on from Ben's comment in the other thread:
MPD is open-source and widely-used, and many front-ends already exist. By implementing a MPD-compatibility layer to communicate with the WaveBox jukebox, we are able to utilize a variety of pre-existing clients to : http://mpd.wikia.com/wiki/Clients
Because the MPD protocol is used for remote-control of a "jukebox" device, it seems like a natural complement to the built-in Jukebox; especially because so many clients already exist. The protocol is simple enough to implement, and I could probably have it up and running in a few days, assuming the Jukebox works!
As far as simultaneous streaming goes, we could look into something like an Icecast-compatible API handler, or your current idea, Ben. I was playing with RTP for a bit, and perhaps that could be chained into the Jukebox output as well, but that's still a bit of a ways off.