From: Nick Bowler Date: Sun, 1 Jun 2008 22:43:09 +0000 (-0400) Subject: mpdmenu: don't bail out when MPD doesn't give us a songid. X-Git-Url: https://git.draconx.ca/gitweb/mpdhacks.git/commitdiff_plain/11b0f1bb5bdfc26be4cfb98201e18219eff5614c mpdmenu: don't bail out when MPD doesn't give us a songid. This occurs when MPD is running, but hasn't played a song yet. Make the menu usable to start the player in this case. --- diff --git a/mpdmenu.pl b/mpdmenu.pl index 94ec8d5..d4120f6 100755 --- a/mpdmenu.pl +++ b/mpdmenu.pl @@ -263,43 +263,49 @@ if (defined $album) { $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.zsh", - "--image", "--music", $entry{file}; - my $thumb = ; - my $scan = ; - close(THUMB); - die("Incompetent use of thumbnail.zsh") if ($?); + open THUMB, "-|", "$FVWM/scripts/thumbnail.zsh", + "--image", "--music", $entry{file}; + my $thumb = ; + my $scan = ; + 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 \"\""); + 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%\" "