X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=afs.c;h=2d4184d239e6d1f54ef6fb41bdbe1591e89c0195;hp=608bdde87e3fc32de56739f119b05b619310108a;hb=b9f9601828dd1a103ec9315bd430d39b458d2b80;hpb=3d412f0e603b785291de86be66ff6472cd17246f diff --git a/afs.c b/afs.c index 608bdde8..2d4184d2 100644 --- a/afs.c +++ b/afs.c @@ -37,11 +37,11 @@ extern const char *status_item_list[]; static struct timeval announce_tv; static struct timeval data_send_barrier; static struct timeval eof_barrier; +static struct timeval autoplay_barrier; extern struct misc_meta_data *mmd; extern struct audio_file_selector selectors[]; extern struct sender senders[]; -extern struct gengetopt_args_info conf; static FILE *audio_file = NULL; @@ -167,6 +167,14 @@ void afs_init(void) } free(hn); free(home); + if (conf.autoplay_given) { + struct timeval now, tmp; + mmd->afs_status_flags |= AFS_PLAYING; + mmd->new_afs_status_flags |= AFS_PLAYING; + gettimeofday(&now, NULL); + ms2tv(conf.autoplay_delay_arg, &tmp); + tv_add(&now, &tmp, &autoplay_barrier); + } } static int get_file_info(int i) @@ -289,14 +297,15 @@ free: } static int chk_barrier(const char *bname, const struct timeval *now, - const struct timeval *barrier, struct timeval *diff, int log) + const struct timeval *barrier, struct timeval *diff, + int print_log) { long ms; if (tv_diff(now, barrier, diff) > 0) return 1; ms = tv2ms(diff); - if (log && ms) + if (print_log && ms) PARA_DEBUG_LOG("%s barrier: %lims left\n", bname, ms); return -1; } @@ -325,6 +334,9 @@ static struct timeval *afs_compute_timeout(void) return &the_timeout; } gettimeofday(&now, NULL); + if (chk_barrier("autoplay_delay", &now, &autoplay_barrier, + &the_timeout, 1) < 0) + return &the_timeout; if (chk_barrier("eof", &now, &eof_barrier, &the_timeout, 1) < 0) return &the_timeout; if (chk_barrier("data send", &now, &data_send_barrier,