NAME
Winamp::Control - control winamp (over the network)
SYNOPSIS
use Winamp::Control;
use IO::Extended qw(printfln);
my $winamp = Winamp::Control->new( host => $opts{host}, port => $opts{port} );
if( my $ver = $winamp->getversion )
{
printfln 'Connected to Winamp (Ver: %s)', $ver;
printfln 'Currently playing: %s ', $winamp->getcurrenttitle() if $winamp->isplaying();
println "Current playlist:\n\t", join "\n\t", $winamp->getplaylisttitle();
}
DESCRIPTION
Winamp::Control is a perl module for controlling Winamp (www.winamp.com) over a network or local. It requires the httpQ winamp-plugin written by Kosta Arvanitis (see prerequisites) installed on the computer playing the music (It is called "server" and will receive the commands). Perl clients doesn't need it, because the clients are communicating via http (and they are not restricted to any operating-system).
METHODS (modified after the httpQ documentation)
Constructor parameters (new)
- host (default:
127.0.0.1
) -
The host address where the httpQ plugin and
Winamp
is running. - port (default:
4800
) -
The httpQ plugin port.
- passwd (default: none)
-
A plain text password to httpQ (required if set via the httpQ preferences).
[Note] The parameters have also instance methods counterparts. So you may call them after construction like:
$winamp->host( $host );
$winamp->port( $port );
$winamp->passwd( $passwd );
prev, play, pause, stop, next
action: Like clicking on it.
argument: none.
return: 1 on success, 0 otherwise.
example: $winamp-><command>
getversion
action: Get the current version of your winamp player.
argument: none.
return: Version of winamp, or 0 on error.
example: $winamp->getversion
delete
action: Clears the contents of the play list.
argument: none.
return: 1 on success, 0 otherwise.
example: $winamp->delete
isplaying
action: Get the playing status of winamp player.
argument: none.
return: 1 = playing, 0 = not playing, 3 = paused
example: $winamp->isplaying
getoutputtime
action: Returns the position in milliseconds of the current song, or the song length, in seconds.
argument: 0 Position (in ms) of current song, 1 Length (in sec) of current song
return: -1 if not playing, 0 on error.
example: $winamp->getoutputtime( a => 1 );
jumptotime (requires Winamp 1.60+)
action: Sets the position in milliseconds of the current song (approximately) to 'argument'.
argument: Position in milliseconds to jump to.
return: 1 on success,0 otherwise
example: $winamp->jumptotime( a => 1000 ); #jump to 1 second
setplaylistpos (requires Winamp 2.0+)
action: Sets the playlsit position to 'argument'.
argument: Position to set play list to.
return: 1 on success,0 otherwise
example: $winamp->setplaylistpos( a => 1 ); #set play list to position 1
getlistlength (requires Winamp 2.0+)
action: get the length of the current playlist, in tracks.
argument: none.
return: The current track number or 0 on error.
example: $winamp->getlistlength
getplaylisttitle (requires Winamp 2.04+)
action: returns the title of the playlist entry at index 'argument'.
note: if no argument is specified, returns a list of all the titles in the playlist seperated by '<br>'.
argument: index in the list from which to retrieve title.
note: the list is zero indexed so track 1 is 0.
return: Title of track or 0 on error.
example:
$winamp->getplaylisttitle( a => 1 ); #get title at list index 1
or
$winamp->getplaylisttitle; #get a list of titles
getplaylistfile (requires Winamp 2.04+)
action: Returns the file name of the playlist entry at index 'argument'.
note: If no argument is specified, returns a list of all the file names in the playlist seperated by '<br>'.
argument: Index in the list from which to retrieve title.
note: The list is zero indexed so track 1 is 0.
return: Filename of track or 0 on error.
example:
$winamp->getplaylistfile( a => 1 ); #get file name at list index 1
or
$winamp->getplaylistfile; #get a list of file names
getlistpos (requires Winamp 2.05+)
action: Gets the current index of the play list.
note: The list is zero indexed so track 1 is 0.
argument: none.
return: List position or 0 on error.
example: $winamp->getlistpos;
chdir
action: Change the working direcotry to argument.
argument: The path to the new current working directory.
return: 1 on success, 0 otherwise.
example: $winamp->chdir( a => 'c:\mp3' );
playfile
action: Appends a file to the playlist.The file must be in the current working directory or
pass in the directory with the filename as the argument.
argument: The file name to append to the playlist.
return: 1 on success, 0 otherwise.
example:
$winamp->playfile( a => 'music.mp3' );
$winamp->playfile( a => 'c:\mp3\music.mp3' );
getinfo (requires Winamp 2.05+)
action: Gets info about the current playing song. The value it returns depends on the value of 'argument'.
argument: 0 Samplerate (i.e. 44100), 1 Bitrate (i.e. 128), 2 Channels (i.e. 2)
return: Info or 0 on error.
example: $winamp->getinfo( a => 0 );
fadeoutandstop
action: Fades out current song and stops playing.
argument: none.
return: 0 on error, 1 otherwise
example: $winamp->fadeoutandstop;
shuffle
action: Toggle shuffle on and off.
argument: 0 Turn shuffle off, 1 Turn shuffle on
return: 1 if shuffle is on, 0 otherwise
example: $winamp->shuffle( a => 0 );
shuffle_status
action: Gets the status of shuffle button.
argument: none.
return: 1 if shuffle is on, 0 otherwise.
example: $winamp->shuffle_status;
repeat
action: Toggle repeat on and off.
argument: 0 Turn shuffle off, 1 Turn shuffle on
return: 1 if repeat is on, 0 otherwise.
example: $winamp->repeat( a => 0 );
repeat_status
action: Gets the status of the repeat button.
argument: none.
return: 1 if repeat is on, 0 otherwise
example: $winamp->repeat_status;
volumeup
action: Turns up the volume.
argument: none.
return: 1 on success, 0 otherwise
example: $winamp->volumeup;
volumedown
action: Turns down the volume.
argument: none.
return: 1 on success, 0 otherwise
example: $winamp->volumedown;
setvolume
action: Set the volume level.
argument: 0-255 The volume level.
return: 1 on success, 0 otherwise
example: $winamp->setvolume( a => 100 );
geteqdata
action: Gets the eq data.
argument:
0-9 10 bands of EQ data
10 Preamp value
11 Equalizer enabled
12 Equalizer autoload
return:
0-9 0-63 (+20db - -20db)
10 0-63 (+20db - -20db)
11 Zero if disabled, nonzero if enabled.
12 Zero if disabled, nonzero if enabled.
example: $winamp->geteqdata( a => 8 );
seteqdata
action: Sets the eq data at 'x' to 'y'.
note: the argument format is ( a => 'x,y' )
x is the band.
y is the value.
argument: 0-9,0-63 10 bands of EQ data (0-63)
10,0-63 Preamp value (0-63)
11,0-1 Equalizer enabled (0-1)
12,0-1 Equalizer autoload (0-1)
return: 1 on success,0 otherwise
example: $winamp->seteqdata( a => '8,10' );
getid3tag
action: Gets the ID3 tag info of a file.
argument: none Gets info for current playing file, or <n> gets the info for the file indexed at 'n'.
return: 0 on error, otherwise returns contents of ID3 tag formated:
SongName<br>Artist<br>Album<br>Year<br>Genre<br>Comment
example: $winamp->getid3tag( a => 3 );
getid3tag_album, getid3tag_artist, getid3tag_comment, getid3tag_genre, getid3tag_songname, getid3tag_year
action: Gets a specific portion of the ID3 tag info from a file.
argument: none Gets info for current playing file or <n> gets the info for the file indexed at 'n'.
return: 0 on error, otherwise returns contents of specific portion of ID3 tag.
example: $winamp->getid3tag_year( a => 3 );
validate_password
action: Check a given string against the real password.
argument: a string representing the password.
return: 0 if incorrect, 1 otherwise.
example: $winamp->validate_password( a=> 'password' );
flushplaylist
action: Flushes the playlist cache buffer.
argument: none.
return: 0 on error,1 otherwise.
example: $winamp->flushplaylist;
getcurrenttitle
action: Returns the title of the current song from the winamp window name. Used when the playlist title is not enough.
argument: none.
return: 0 on error, song title otherwise.
example: $winamp->getcurrenttitle;
updatecurrenttitle
action: Updates the information about the current title.
argument: none.
return: 0 on error, 1 otherwise
example: $winamp->updatecurrenttitle;
internet
action: Checks for an internet connection.
argument: none.
return: 1 if internect connection exists, 0 otherwise
example: $winamp->internet;
restart
action: Restarts winamp.
note: If the httpQ service is not set to start automatically httpQ will be shut down.
argument: none.
return: 0 on error, 1 otherwise.
example: $winamp->restart;
getautoservice
action: Returns the status of how the httpQ service starts.
argument: none.
return: 1 if the service is set to start automatically, 0 otherwise.
example: $winamp->getautoservice;
setautoservice
action: Sets the flag which controls if the httpQ service will start automatically or not.
argument: 1 Sets the service to start automatically, 0 Sets the service to not start automatically.
return: 1 if the service is set to start automatically, 0 otherwise.
example: $winamp->setautoservice( a => 1 );
shoutcast_connect
action: Attempts to start the shoutcast server.
argument: none.
return: 1 if successful, 0 otherwise.
example: $winamp->shoutcast_connect;
shoutcast_status
action: Attempts to retrieve status from shoutcast server.
argument: none.
return: status of shoutcast server if successful, 0 otherwise.
example: $winamp->shoutcast_status;
EXPORT
None by default.
PREREQUISITES
You will need the winamp-plugin "httpQ" (Written by Kosta Arvanitis) on the machine playing the music via winamp. You may find it via searching at the winamp headquarter:
http://www.winamp.com
Or directly from the author:
http://www.kostaa.com/winamp/
AUTHOR
Murat Ünalan, muenalan@cpan.org
COPYRIGHT
Copyright (c) 2002 Murat Uenalan. All rights reserved. Note: This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
SEE ALSO
perl(1).
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 497:
Non-ASCII character seen before =encoding in 'Ünalan,'. Assuming CP1252