X-Git-Url: http://git.draconx.ca/gitweb/mpdhacks.git/blobdiff_plain/e49c1f846176562de0978ba1cd445b50b1094a2d..b0f5f5741b234174958ade58a6e884df8b6b00e4:/mpdmenu.pl diff --git a/mpdmenu.pl b/mpdmenu.pl index 3a84f78..4916d2a 100755 --- a/mpdmenu.pl +++ b/mpdmenu.pl @@ -18,7 +18,6 @@ use Encode::Locale qw(decode_argv); decode_argv(Encode::FB_CROAK); binmode(STDOUT, ":utf8"); -use IO::Socket::INET6; use Getopt::Long qw(:config gnu_getopt); use Scalar::Util qw(reftype); use List::Util qw(any max); @@ -36,8 +35,6 @@ use constant { my $SELF = "$FindBin::Bin/$FindBin::Script"; my $MUSIC = $ENV{MUSIC} // "/srv/music"; -my $host = $ENV{MPD_HOST} // "localhost"; -my $port = $ENV{MPD_PORT} // "6600"; my $sock; my ($albumid, $trackid); @@ -488,8 +485,8 @@ EOF } GetOptions( - 'host|h=s' => \$host, - 'port|p=s' => \$port, + 'host|h=s' => \$MPD::host, + 'port|p=s' => \$MPD::port, 'menu|m=s' => \$menu, 'artist-id=s' => sub { $artistids{$_[1]} = 1; $mode = "artist"; }, @@ -509,21 +506,9 @@ unless (defined $menu) { $topmenu //= $menu; # Connect to MPD. -$sock = new IO::Socket::INET6( - PeerAddr => $host, - PeerPort => $port, - Proto => 'tcp', - Timeout => 2 -) or die("could not open socket: $!.\n"); -binmode($sock, ":utf8"); - -die("could not connect to MPD: $!.\n") - if (!(<$sock> =~ /^OK MPD ([0-9]+)\.([0-9]+)\.([0-9]+)$/)); - -die("MPD version $1.$2.$3 insufficient.\n") - if ( ($1 < MPD_MJR_MIN) - || ($1 == MPD_MJR_MIN && $2 < MPD_MNR_MIN) - || ($1 == MPD_MJR_MIN && $2 == MPD_MNR_MIN && $3 < MPD_REV_MIN)); +$sock = MPD::connect(); +die("MPD version $MPD::major.$MPD::minor.$MPD::revision insufficient.") + unless MPD::min_version(MPD_MJR_MIN, MPD_MNR_MIN, MPD_REV_MIN); if ($mode eq "top") { my %current;