Help - Search - Members - Calendar
Full Version: Web-Server/Remote-Control Plug-in Request
Hydrogenaudio Forums > Hosted Forums > foobar2000 > 3rd Party Plugins - (fb2k)
firewire_666
I was following the thread concerning remote foobar control (foo_write_http) as I am looking for a decent remote admin/control plug-in, because I want to build a dedicated music-server cool.gif All Linux jukeboxes lack the abilities of foobar regarding file formats and handling, so it would be great to have a plug-in that turns any windows machine (with web server) to a music-jukebox, which is controllable by any system/device that is able to read html-pages biggrin.gif

As I said there were several open source projects for Linux where you can clearly see to purpose of such a plug-in like:

http://tunez.sourceforge.net/
http://privateradio.sourceforge.net/
http://gjukebox.sourceforge.net/
http://gid0ze.net/roomjuice/
http://www.cardhouse.com/otto/
http://www.pancake.org/zina.html
http://www.musicpd.org/
& http://www.brinton.org/be/

This functionality should be possible as there is a meta-database is built into foobar and should be sufficient to "serve" such a service.
Local playback on the server side is a *must*, streaming would be nice - but not my primary goal rolleyes.gif

As I am only beginning to learn c for my studies I cannot do this by myself but I do see the need for such a plug-in, as there is a lack of good music players for other systems (BeOS / Linux / MacOS(X)) crying.gif
I think this should be no problem to build as you (other members) already built other fantastic plug-in for foobar - making it the best player around cool.gif

regards, firewire_666
Aero
QUOTE(firewire_666 @ Jan 29 2004, 11:04 AM)
I was following the thread concerning remote foobar control (foo_write_http) as I am looking  for a decent remote admin/control plug-in, because I want to build a dedicated music-server  cool.gif  All Linux jukeboxes lack the abilities of foobar regarding file formats and handling, so it would be great to have a plug-in that turns any windows machine (with web server) to a music-jukebox, which is controllable by any system/device that is able to read html-pages  biggrin.gif

I wrote something like this as a Winamp 2.x plugin, and later sort of ported it to Foobar 0.6. I never bothered to upgrade it to 0.7, though.

The quick overview is that it is a complete web server in a plugin, which provides an HTTP interface to the player controls (play, stop, volume, etc.), display of the currently playing song info and player status, and playlist display/search/add/remove/switch functions. It can also browse files, HTTP stream and transfer songs, and act as an Icecast server. In addition, there is an XML-RPC/SOAP interface, so it can be controlled from application.

Like I said, I never upgraded it to the latest Foobar SDK, since I still use 0.6 on my server machine. I do have some ideas for an improved version, such as outputtting only XML data, and using XSLT to transform the data into HTML/XML-RPC/text, as needed. I haven't really worked on it for 1/2 a year, so getting started again has been very difficult!


If someone else were to tackle a project like this, I would recommend starting off with good mini-HTTP server code (there was a discussion on Slashdot about this, a few days ago), and consider implementing either the XML interface, or provide some way to customize the HTML from an external file (maybe script it?). Also consider providing the XML-RPC interface, since that turned out to be one of the best features of my component when used with remote access programs. There were also a couple of other Winamp 2.x web server plugins, so you might look to those for inspiration, as well.
rage-
A must for any mp3 web server plugin is customizability. Many Winamp plugins failed horribly in this area, providing static HTML pages embedded within the plugin itself.
Aero
QUOTE(rage- @ Jan 30 2004, 02:56 AM)
A must for any mp3 web server plugin is customizability. Many Winamp plugins failed horribly in this area, providing static HTML pages embedded within the plugin itself.

That's right, and it is the trap I fell into. I have some fairly sophisticated dynamically created HTML code in my plugin/component, but that just makes it that much harder to update with new ideas.

Once you realize that you are really just presenting data, instead of presenting web pages, then it is clear that the best way to go is just provide the player->data interface, and allow some external means to present it. XML + XSLT are perfect for this, but scripting the presentation via something like Python, Perl, or Lua (natch!) would be useful as well.
Antipodean
I wrote a python module to allow users to control foobar2000's playback via a python script.
I then wrote a server/client in python using the module to let users control playback via a TCP/IP connection.
I've also written a quick cgi script as well.. The design is hardcoded but if you know a little python you can change it to whatever you like.

If you just want to control things like play, stop, change track etc then it would probably be ok... It doesnt let you change any configuration stuff which is what you want by the sound of it... tongue.gif

Anyway.. If you are interested at all you can get the python scripts from my website: Clicky Linky

Also, you'll need the foo_remote plugin for it to work..
rexit2
Something similar to this plugin for winamp would be perfect:

http://www.oddsock.org/tools/gen_songrequester/
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.