MP3::Daemon::PIMP - the daemon for Pip's Intergallactive Moosex Plaquluster
Fork a daemon
MP3::Daemon::PIMP->spawn($socket_path);
Start a server, but don't fork into background
my $mp3d = MP3::Daemon::PIMP->new($socket_path); $mp3d->main;
You're a client wanting a socket to talk to the daemon
my $client = MP3::Daemon::PIMP->client($socket_path); print $client @command;
This is the base class. It provides the daemonization and event loop.
MP3::Daemon::PIMP provides a server that controls mpg123. Clients such as mp3(1p) may connect to it and request the server to manipulate its internal playlists.
MP3::Daemon::PIMP relies on unix domain sockets to communicate. The socket requires a place in the file system which is referred to as $socket_path in the following descriptions.
$socket_path
This instantiates a new MP3::Daemon::PIMP.
my $mp3d = MP3::Daemon::PIMP->new("$ENV{HOME}/.mp3/mp3_socket");
This starts the event loop. This will be listening to the socket for client requests while polling mpg123 in times of idleness. This method will never return.
$mp3d->main;
This combines new() and main() while also forking itself into the background. The spawn method will return immediately to the parent process while the child process becomes an MP3::Daemon::PIMP that is waiting for client requests.
new()
main()
MP3::Daemon::PIMP->spawn("$ENV{HOME}/.mp3/mp3_socket");
This is a factory method for use by clients who want a socket to communicate with a previously instantiated MP3::Daemon::PIMP.
my $client = MP3::Daemon::PIMP->client("$ENV{HOME}/.mp3/mp3_socket");
These methods are usually not invoked directly. They are invoked when a client makes a request. The protocol is very simple. The first line is the name of the method. Each argument to the method is specified on successive lines. A final blank line signifies the end of the request.
0 method name 1 $arg[0] . ... n-1 $arg[n-2] n /^$/
Example:
print $client <<REQUEST; play 5 REQUEST
This plays $self->{playlist}[5].
Copyleft (c) 2001 pip. All rights reversed. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
pip <pip@binq.org>
mpg123(1), Audio::Play::MPG123(3pm), pimp(1p), mpg123sh(1p), mp3(1p)
To install MP3::Daemon, copy and paste the appropriate command in to your terminal.
cpanm
cpanm MP3::Daemon
CPAN shell
perl -MCPAN -e shell install MP3::Daemon
For more information on module installation, please visit the detailed CPAN module installation guide.