xmms-pipe 0.5.5 review

Download
by rbytes.net on

xmmspipe is a plugin for XMMS that enables it to be controlled by sending strings to a named pipe (FIFO)

License: GPL (GNU General Public License)
File size: 33K
Developer: Ben Lynn
0 stars award from rbytes.net

xmmspipe is a plugin for XMMS that enables it to be controlled by sending strings to a named pipe (FIFO). When you enable the plugin, XMMS can be commanded by sending strings to $HOME/.xmms/inpipe, for example,

echo play_pause > ~/.xmms/inpipe

will cause XMMS to pause or play.

Since version 0.5.0, it is possible to setup an output pipe, and query XMMS for information. For example, sending "report title" to the input pipe will cause the current song's title to be printed on the output pipe.

Included is a demo program called "fade", that shows how to use the plugin to fade the current song and advance to the next one. It requires the output pipe to be be enabled (via the Config window).

The Infopipe plugin does output pipes a little differently.

When I first wrote this plugin, I didn't know about other programs that I could've used to control XMMS with shell scripts, such as xmmsctrl or xmms-shell. However, I've kept xmmspipe alive because pipes may be preferable in some situations:
The pipe automatically inherits the security features of the underlying filesystem (e.g. you could change its permissions so that only users of a particular group can control XMMS).
In many programming languages, writing to a pipe is easier than executing programs, making it easier to build programs to control XMMS.

The plugin can call internal XMMS functions which means it can have more functionality than programs relying on the xmms_remote_* functions alone. For example, XMMSPipe can load/save playlists.

Sometimes I think XMMS itself should just be an MP3-playing daemon that interfaces with the outside world exclusively through pipes (one for input, at least one for output). This would allow a lot more flexibility, e.g. the GUI could be arbitrary and playlists could be managed by an external program. (It would work in the same way gkrellm works with files in /proc.) Also, the code would be simpler because it only has to worry about reading various audio formats and playing them. It wouldn't have to deal with window managers, X, etc.

What's New in This Release:
Added playlist_move command due to Graeme Yeo

xmms-pipe 0.5.5 search tags