use strict;
use Getopt::Long;
-use IO::Socket;
+use IO::Socket::INET6;
use constant {
MPD_MJR_MIN => 0,
$title = decode_utf8($title) if defined($title);;
# Connect to MPD.
-my $sock = new IO::Socket::INET(
+my $sock = new IO::Socket::INET6(
PeerAddr => $host,
PeerPort => $port,
Proto => 'tcp'
my $key = $_;
my $a_album = sanitise($key);
- open THUMB, "-|", "$FVWM/scripts/thumbnail.sh",
+ open THUMB, "-|", "$FVWM/scripts/thumbnail.zsh",
"--small", "--music", $albums{$key};
my $thumb = <THUMB>;
close THUMB;
- die("Incompetent use of thumbnail.sh") if ($?);
+ die("Incompetent use of thumbnail.zsh") if ($?);
$thumb =~ s/\n//sg;
$thumb = "%$thumb%" if (-f $thumb);
$t_artist = sanitise($t_artist);
$t_title = sanitise($t_title);
- open THUMB, "-|", "$FVWM/scripts/thumbnail.sh",
+ open THUMB, "-|", "$FVWM/scripts/thumbnail.zsh",
"--small", "--music", $t_file;
my $thumb = <THUMB>;
close(THUMB);
- die("Incompetent use of thumbnail.sh") if ($?);
+ die("Incompetent use of thumbnail.zsh") if ($?);
$thumb =~ s/\n//sg;
$thumb = "%$thumb%" if (-f $thumb);
$songid = $2 if ($1 eq "songid");
}
}
- die("Failed status query\n") unless (defined $state && defined $songid);
+ die("Failed status query\n") unless (defined $state);
- print $sock "playlistid $songid\n";
- while (<$sock>) {
- last if (/^OK/);
- die($_) if (/^ACK/);
+ cmd("AddToMenu $menu Playing Title") if ($state eq "play");
+ cmd("AddToMenu $menu Paused Title") if ($state eq "pause");
+ cmd("AddToMenu $menu Stopped Title") if ($state eq "stop");
- if (/^(\w+): (.*)$/) {
- $entry{$1} = $2;
+ if (defined $songid) {
+ print $sock "playlistid $songid\n";
+ while (<$sock>) {
+ last if (/^OK/);
+ die($_) if (/^ACK/);
+
+ if (/^(\w+): (.*)$/) {
+ $entry{$1} = $2;
+ }
}
- }
- die("Failed data query\n") unless (keys(%entry) > 0);
+ die("Failed data query\n") unless (keys(%entry) > 0);
- open THUMB, "-|", "$FVWM/scripts/thumbnail.sh",
- "--image", "--music", $entry{file};
- my $thumb = <THUMB>;
- my $scan = <THUMB>;
- close(THUMB);
- die("Incompetent use of thumbnail.sh") if ($?);
+ open THUMB, "-|", "$FVWM/scripts/thumbnail.zsh",
+ "--image", "--music", $entry{file};
+ my $thumb = <THUMB>;
+ my $scan = <THUMB>;
+ close(THUMB);
+ die("Incompetent use of thumbnail.zsh") if ($?);
- $thumb =~ s/\n//sg;
- $scan =~ s/\n//sg;
+ $thumb =~ s/\n//sg;
+ $scan =~ s/\n//sg;
- cmd("AddToMenu $menu Playing Title") if ($state eq "play");
- cmd("AddToMenu $menu Paused Title") if ($state eq "pause");
- cmd("AddToMenu $menu Stopped Title") if ($state eq "stop");
- if (-f $thumb) {
- cmd("AddToMenu $menu \"*$thumb*\" "
- ."Exec exec gqview ".shellify($scan, 0));
+ if (-f $thumb) {
+ cmd("AddToMenu $menu \"*$thumb*\" "
+ ."Exec exec gqview ".shellify($scan, 0));
+ }
+ cmd("AddToMenu $menu \"Title: ".sanitise($entry{Title})."\" "
+ ."Popup MenuMPDTitle");
+ cmd("AddToMenu $menu \"Artist: ".sanitise($entry{Artist})."\" "
+ ."Popup MenuMPDArtist");
+ cmd("AddToMenu $menu \"Album: ".sanitise($entry{Album})."\" "
+ ."Popup MenuMPDAlbum");
+ cmd("AddToMenu $menu \"\" Nop");
+ } else {
+ cmd("AddToMenu $menu \"<Song info unavailable>\"");
+ cmd("AddToMenu $menu \"\" Nop");
}
- cmd("AddToMenu $menu \"Title: ".sanitise($entry{Title})."\" "
- ."Popup MenuMPDTitle");
- cmd("AddToMenu $menu \"Artist: ".sanitise($entry{Artist})."\" "
- ."Popup MenuMPDArtist");
- cmd("AddToMenu $menu \"Album: ".sanitise($entry{Album})."\" "
- ."Popup MenuMPDAlbum");
- cmd("AddToMenu $menu \"\" Nop");
if ($state eq "play" || $state eq "pause") {
cmd("AddToMenu $menu \"\t\tNext%$icons/next.svg:16x16%\" "