]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - audiod.c
dccp_recv/udp_recv: Use the new nonblock API.
[paraslash.git] / audiod.c
index 1bed20c03871caaaac50c21377746001891d4d61..380e53e0fbae30cf9c949afea6d247d71396eb37 100644 (file)
--- a/audiod.c
+++ b/audiod.c
@@ -1028,6 +1028,7 @@ static void command_post_select(struct sched *s, struct task *t)
        ret = handle_connect(ct->fd);
        if (ret < 0)
                PARA_ERROR_LOG("%s\n", para_strerror(-ret));
+       audiod_status_dump();
 }
 
 static void init_command_task(struct command_task *ct)
@@ -1151,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);