summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
e69cd83)
would help lower the load when massive changes to the db are made
the db will be updated when a new song needs to be queued, and until
that need arises the db may be changed again
the (not that big) delay for db update when new song is needed is not
a problem, because it is about keeping the playlist full -- not an
urgent need
$self->db_set_option( generation => $db_generation );
$db->commit;
$self->db_set_option( generation => $db_generation );
$db->commit;
+
+ $db_needs_update = 0;
method db_find_suitable_songs($num) {
$self->connect_db;
method db_find_suitable_songs($num) {
$self->connect_db;
my @result;
my $sth = $db->prepare_cached(<<SQL);
my @result;
my $sth = $db->prepare_cached(<<SQL);
}
$self->connect_mpd;
my $f = $mpd->send( \@commands );
}
$self->connect_mpd;
my $f = $mpd->send( \@commands );
$f->on_fail( sub { die @_ } );
$f->on_done(
sub {
$f->on_fail( sub { die @_ } );
$f->on_done(
sub {
$callback->(@_) if $callback;
}
);
$callback->(@_) if $callback;
}
);
}
method prepare_to_wait_idle {
}
method prepare_to_wait_idle {
sub {
warn $_ for @_;
my $result = shift;
sub {
warn $_ for @_;
my $result = shift;
- use JSON; warn to_json($result);
if ( $result->{changed} eq 'database' ) {
if ( $result->{changed} eq 'database' ) {
$self->prepare_to_wait_idle;
}
elsif ( $result->{changed} eq 'playlist' ) {
$self->prepare_to_wait_idle;
}
elsif ( $result->{changed} eq 'playlist' ) {
$feeder->queue_songs( undef, sub { $feeder->run } );
$feeder->mpd->loop->run;
$feeder->queue_songs( undef, sub { $feeder->run } );
$feeder->mpd->loop->run;