X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=audiod.c;h=3194501bfc7e6e0a5e687842be70a57cb84e76b2;hp=e3fd49d3ba3666c29efd1bcbf0d43fa7089e9de0;hb=4d3f9f6c22281f9abb5d59d378a10303420641b7;hpb=22e8cf4e458dd1b2b3c1ed58f62582e0630a35cd diff --git a/audiod.c b/audiod.c index e3fd49d3..3194501b 100644 --- a/audiod.c +++ b/audiod.c @@ -66,6 +66,39 @@ struct audio_format_info { * */ struct slot_info slot[MAX_STREAM_SLOTS]; +/** + * The task for obtaining para_server's status (para_client stat). + * + * \sa struct task, struct sched. + */ +struct status_task { + /** The associated task structure of audiod. */ + struct task task; + /** Client data associated with the stat task. */ + struct client_task *ct; + /** Do not restart client command until this time. */ + struct timeval restart_barrier; + /** Last time we received status data from para_server. */ + struct timeval last_status_read; + /** The offset value announced by para_server. */ + int offset_seconds; + /** The length of the current audio file as announced by para_server. */ + int length_seconds; + /** The start of the current stream from the view of para_server. */ + struct timeval server_stream_start; + /** The average time deviation between para_server and para_audiod. */ + struct timeval sa_time_diff; + /** Whether client time is ahead of server time. */ + int sa_time_diff_sign; + /** Non-zero if para_server's status is "playing". */ + int playing; + /** Number of times the clock difference is to be checked. */ + unsigned clock_diff_count; + /** When to start the next check for clock difference. */ + struct timeval clock_diff_barrier; + /** Number of the audio format as announced by para_server. */ + int current_audio_format_num; +}; /** The array of status items sent by para_server. */ char *stat_item_values[NUM_STAT_ITEMS] = {NULL};