int audiod_status = AUDIOD_ON;
struct gengetopt_args_info conf;
-static char *af_status, /* the audio format announced in server status */
- *socket_name;
+static char *socket_name;
static FILE *logfile;
static struct audio_format_info afi[NUM_AUDIO_FORMATS];
int i;
struct timeval diff;
- if (!af_status)
+ if (!stat_task->af_status)
return 0;
- i = get_audio_format_num(af_status);
+ i = get_audio_format_num(stat_task->af_status);
if (i < 0)
return 0;
if (decoder_running(i))
stat_task->playing = strstr(line, "playing")? 1 : 0;
break;
case SI_FORMAT:
- free(af_status);
- af_status = para_strdup(line + ilen + 1);
+ free(stat_task->af_status);
+ stat_task->af_status = para_strdup(line + ilen + 1);
break;
case SI_OFFSET:
stat_task->offset_seconds = atoi(line + ilen + 1);
/** the active writer node group */
struct writer_node_group *wng;
};
+
/**
* the main task of audiod
*
struct timeval *now;
struct task task;
};
+
/**
* the task for audiod's child (para_client stat)
*
char buf[STRINGSIZE];
/** number of bytes loaded in \a buf */
unsigned loaded;
+ /** the array of status items sent by para_server */
+ char *stat_item_values[NUM_STAT_ITEMS];
/** the associated task structure */
struct task task;
/** do not restart client command until this time */
struct timeval restart_barrier;
- int playing;
+ /** 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;
- int sa_time_diff_sign;
- char *stat_item_values[NUM_STAT_ITEMS];
+ /** the start of the current stream from the view of para_server */
struct timeval server_stream_start;
+ /** the averaged 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;
+ /** the audio format announced in server status */
+ char *af_status;
+ /** non-zero if \a af_status is "playing" */
+ int playing;
};
+
extern struct status_task *stat_task;
extern struct slot_info slot[MAX_STREAM_SLOTS];
extern struct gengetopt_args_info conf;