XMMS::InfoPipe::Playlist - A small module to gather the information produced by the playlist-infopipe plugin for XMMS


        use XMMS::InfoPipe::Playlist;
        my $pl = XMMS::InfoPipe::Playlist->new();
        for ($pl->get_playlist()) {
            print "Position: $_->{position}\n";
            print "Title: $_->{title}\n";
            print "File: $_->{file}\n\n";


This module was written to provide a way to snag the current XMMS playlist from the pipe produced by the xmms-playlist-infopipe plugin for XMMS.

Nota Bene: If the XMMS plugin isn't enabled, then this module will NOT return results as expected (if it even works).



    my $pl = XMMS::InfoPipe::Playlist->new();

Creates a new XMMS::InfoPipe::Playlist instance. By default this parses the file before returning the object. This will undoubtedly cause some initial slowdown (the bottleneck of XMMS::InfoPipe::Playlist is when it must grab information from the named pipe the XMMS plugin provides), and so you may disable this first parsing by specifying a false value to ForceParse. For example:

    my $pl = XMMS::InfoPipe::Playlist->new(ForceParse => 0);

will create the object and immediately return it, without first populating it with the information from XMMS. This means that before trying to obtain this information, you should first call $pl->update_playlist().


    @list = $pl->get_playlist();

Returns an array of hashrefs that represents the current playlist.



Returns 1 if XMMS is running and 0 if not. This relies on the fact that the named pipe does not exist if XMMS is not running. If the infopipe plugin isn't enabled, this will also return 0.



Updates $pl->{playlist}.



    $XMMS::InfoPipe::Playlist::PIPE = '/tmp/other-name';

This variable defaults to /tmp/xmms-playlist-info which should be a symlink (created by xmms-playlist-infopipe) to the real named pipe (something like /tmp/xmms-playlist-info_user.0). If for whatever reason you need to change it (maybe you have a file generated by something else that follows the same format as xmms-playlist-infopipe), just set it before update_playlist is called (by default that means before new is called) for the right file to be used.


This module is free software, and may be distributed under the same terms as Perl itself.


Copyright (C) 2003, Thomas R. Sibley