audiod: Make the time display more smooth.
authorAndre Noll <maan@systemlinux.org>
Thu, 22 Apr 2010 21:11:17 +0000 (23:11 +0200)
committerAndre Noll <maan@systemlinux.org>
Thu, 22 Apr 2010 21:11:17 +0000 (23:11 +0200)
If playing, request a timeout that expires at the next second.

audiod.c

index 21020d4..cc4164f 100644 (file)
--- a/audiod.c
+++ b/audiod.c
@@ -1156,6 +1156,13 @@ static void status_pre_select(struct sched *s, struct task *t)
                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);