#!/usr/bin/perl -w
#
# $Id: mpcmd,v 1.2 2001/03/22 03:00:25 mdb Exp $
#
# Appends the supplied song or songs to the playlist of a running MP3
# daemon.

use strict;
use IO::Socket;

my $usage = "Usage: $0 COMMAND [ARGUMENT ...]\n";
my $command = shift or die $usage;

# determine our music daemon host and port
my $host = "localhost";
if (defined $ENV{"MUSICD_HOST"}) {
    $host = $ENV{"MUSICD_HOST"};
}
my $port = 2500;
if (defined $ENV{"MUSICD_PORT"}) {
    $port = $ENV{"MUSICD_PORT"};
}

# establish a socket connection with the server
my $sock = new IO::Socket::INET(PeerAddr => $host,
                                PeerPort => $port,
                                Proto => "tcp");
if (!defined $sock) {
    die "Unable to connect to music server on $host:$port.\n";
}

# send the command
print $sock "$command " . join(" ", @ARGV) . "\n";

# PLAYLIST has a multiline response, others are single line
if ($command eq "PLAYLIST") {
    my $rsp = <$sock>;
    print $rsp;
    if ($rsp =~ m/200 Playlist songs: (\d+)/) {
        my $i;
        for ($i = 0; $i < $1; $i++) {
            print scalar <$sock>;
        }
    }

} else {
    print scalar <$sock>;
}

close $sock;
