the paraslash-0.2.12 release tarball
[paraslash.git] / afs.c
diff --git a/afs.c b/afs.c
index 6dac43d79a61a8d3b7d041c406af2eed61b14028..6cc58bb44a0cb721691cd9fd6b338b4effbaa5d1 100644 (file)
--- a/afs.c
+++ b/afs.c
@@ -38,7 +38,7 @@ static struct timeval data_send_barrier;
 static struct timeval eof_barrier;
 
 extern struct misc_meta_data *mmd;
-extern struct audio_file_selector dblist[];
+extern struct audio_file_selector selectors[];
 extern struct sender senders[];
 extern struct gengetopt_args_info conf;
 
@@ -150,7 +150,7 @@ void afs_init(void)
                afl[i].init(&afl[i]);
        }
        ms2tv(conf.announce_time_arg, &announce_tv);
-       PARA_INFO_LOG("announce timeval: %lu:%lu\n", announce_tv.tv_sec, announce_tv.tv_usec);
+       PARA_INFO_LOG("announce timeval: %lums\n", tv2ms(&announce_tv));
        for (i = 0; senders[i].name; i++) {
                PARA_NOTICE_LOG("initializing %s sender\n", senders[i].name);
                senders[i].init(&senders[i]);
@@ -233,7 +233,7 @@ static int update_mmd(void)
 
 static void get_song(void)
 {
-       char **sl = dblist[mmd->selector_num].get_audio_file_list(10);
+       char **sl = selectors[mmd->selector_num].get_audio_file_list(10);
        int i;
 
        if (!sl)
@@ -253,8 +253,8 @@ static void get_song(void)
                        continue;
                }
                mmd->num_played++;
-               if (dblist[mmd->selector_num].update_audio_file)
-                       dblist[mmd->selector_num].update_audio_file(sl[i]);
+               if (selectors[mmd->selector_num].update_audio_file)
+                       selectors[mmd->selector_num].update_audio_file(sl[i]);
                PARA_DEBUG_LOG("%s", "success\n");
                mmd->new_afs_status_flags &= (~AFS_NEXT);
                gettimeofday(&now, NULL);
@@ -452,6 +452,11 @@ void afs_send_chunk(void)
        afs_next_chunk_time(&due);
        if (tv_diff(&due, &now, NULL) > 0)
                return;
+       if (chk_barrier("eof", &now, &eof_barrier, &due, 1) < 0)
+               return;
+       if (chk_barrier("data send", &now, &data_send_barrier,
+                       &due, 1) < 0)
+               return;
        buf = af->read_chunk(mmd->current_chunk, &ret);
        mmd->new_afs_status_flags &= ~AFS_REPOS;
        if (!buf) {