X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=audiod.c;h=380e53e0fbae30cf9c949afea6d247d71396eb37;hp=21020d4d5dbef1d55a1601e1fc550e2d9bf91536;hb=e62e55701ef07bfa9f5805718ceac2c54ead3dbc;hpb=d54f2d11287702f99f8814961c69375c89d3dfdc diff --git a/audiod.c b/audiod.c index 21020d4d..380e53e0 100644 --- a/audiod.c +++ b/audiod.c @@ -1152,10 +1152,19 @@ static void status_pre_select(struct sched *s, struct task *t) ret = btr_node_status(st->btrn, 0, BTR_NT_LEAF); if (ret > 0) goto min_delay; - if (!st->ct) + if (st->ct && audiod_status == AUDIOD_OFF) + goto min_delay; + if (!st->ct && audiod_status != AUDIOD_OFF) sched_request_barrier_or_min_delay(&st->restart_barrier, s); if (cafn >= 0) sched_request_barrier(&afi[cafn].restart_barrier, s); + /* + * If para_server is playing we'd like to have a smooth time display + * even if we are running in standby mode. So we request a timeout that + * expires at the next full second. + */ + if (stat_task->vss_status & VSS_STATUS_FLAG_PLAYING) + sched_request_timeout_ms(1000 - now->tv_usec / 1000, s); return; min_delay: sched_min_delay(s);