]> git.ktnx.net Git - mpd-feeder.git/blobdiff - lib/App/MPD/Feeder.pm
no warnings on undef usage when idle waiting results in no changes
[mpd-feeder.git] / lib / App / MPD / Feeder.pm
index 66f3ce179d4a3a1c7589b1bfb337c69f39d5cc10..7da421a6433bbcc0a8f805cc8d103306200c7c0a 100644 (file)
@@ -174,7 +174,7 @@ use constant DEFAULT_CONFIG_FILE => '/etc/mpd-feeder/mpd-feeder.conf';
             $self->connect_mpd;
             $mpd->send('playlist')->on_done(
                 sub {
-                    my $present = scalar @{ $_[0] };
+                    my $present = scalar @{ $_[0] // [] };
 
                     $log->notice( "Playlist contains $present songs. Wanted: "
                             . $opt->target_queue_length );
@@ -237,14 +237,22 @@ use constant DEFAULT_CONFIG_FILE => '/etc/mpd-feeder/mpd-feeder.conf';
             sub {
                 my $result = shift;
 
-                if ( $result->{changed} eq 'database' ) {
+                undef $idler;
+
+                my $changed = $result->{changed} // '';
+
+                if ( $changed eq 'database' ) {
                     $db_needs_update = 1;
                     $self->prepare_to_wait_idle;
                 }
-                elsif ( $result->{changed} eq 'playlist' ) {
+                elsif ( $changed eq 'playlist' ) {
                     $self->queue_songs( undef,
                         sub { $self->prepare_to_wait_idle } );
                 }
+                elsif ( $changed eq '' ) {
+                    $log->debug("got no changes from idle");
+                    $self->prepare_to_wait_idle;
+                }
                 else {
                     use JSON;
                     $log->warn(