$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 );
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(