NAME
XMMS::InfoPipe - A small module to gather the information produced by the infopipe plugin for XMMS
SYNOPSIS
use XMMS::InfoPipe;
my $xmms = XMMS::InfoPipe->new();
print "Currently ", $xmms->{info}->{Status}, ": ", $xmms->{info}->{Title};
DESCRIPTION
This module was written to provide a way to snag the information from the file produced by the xmms-infopipe plugin for XMMS. With only a few convenience methods, all of the information that the plugin provides can be obtained from the $xmms->{info}
hashref.
Nota Bene: If the XMMS plugin isn't enabled, then this module will NOT return results as expected (if it even works).
METHODS
new
my $xmms = XMMS::InfoPipe->new();
Creates a new XMMS::InfoPipe instance. By default this parses the file before returning the object. This will undoubtedly cause some initial slowdown (the bottleneck of XMMS::InfoPipe 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 $xmms = XMMS::InfoPipe->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 $xmms->update_info
.
is_running
$xmms->is_running()
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.
is_playing
$xmms->is_playing()
Returns 1 if XMMS is playing a song and 0 if not.
is_paused
$xmms->is_paused()
Returns 1 if XMMS is paused and 0 if not.
update_info
$xmms->update_info()
Updates $xmms->{info}
and returns the updated hashref for convenience.
_parse
$xmms->_parse
Internal function that parses data from the info pipe and returns a hashref. You shouldn't need to use this.
VARIABLES
$XMMS::InfoPipe::PIPE
$XMMS::InfoPipe::PIPE = '/tmp/other-name';
This variable defaults to /tmp/xmms-info
which should be a symlink (created by xmms-infopipe) to the real named pipe (something like /tmp/xmms-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-infopipe), just set it before update_info
is called (by default that means before new
is called) for the right file to be used.
INFORMATION AVAILABLE
As of version 1.3 of the xmms-infopipe plugin, the following information is available:
XMMS protocol version
InfoPipe Plugin version
Status
Tunes in playlist
Currently playing
uSecPosition
Position
uSecTime
Time
Current bitrate
Samping Frequency
Channels
Title
File
To get this information, just use the corresponding key name above. Nota Bene: "Samping" is not a typo in this doc; it's a typo in the xmms-infopipe plugin. : )
LICENSE
This module is free software, and may be distributed under the same terms as Perl itself.
AUTHOR
Copyright (C) 2003, Thomas R. Sibley tsibley@cpan.org