REQUIREMENTS: Kill an incomplete sentence, add git.
[paraslash.git] / vss.c
diff --git a/vss.c b/vss.c
index 7150c9087845b3450690a9a1210039ef9b319b27..46fb3196c4c2155be65b361e9f1fb31715693e19 100644 (file)
--- a/vss.c
+++ b/vss.c
@@ -84,6 +84,18 @@ unsigned int vss_paused(void)
                && !(mmd->new_vss_status_flags & VSS_PLAYING);
 }
 
+/**
+ * Check if the vss is currently stopped.
+ *
+ * \return Greater than zero if paused, zero otherwise.
+ *
+ */
+unsigned int vss_stopped(void)
+{
+       return (mmd->new_vss_status_flags & VSS_NEXT)
+               && !(mmd->new_vss_status_flags & VSS_PLAYING);
+}
+
 /**
  * Initialize the virtual streaming system.
  *
@@ -184,6 +196,8 @@ static void vss_eof(void)
                        senders[i].shutdown_clients();
                return;
        }
+       if (mmd->new_vss_status_flags & VSS_NOMORE)
+               mmd->new_vss_status_flags = VSS_NEXT;
        gettimeofday(&now, NULL);
        tv_add(&mmd->afd.afhi.eof_tv, &now, &eof_barrier);
        munmap(map, mmd->size);
@@ -193,10 +207,11 @@ static void vss_eof(void)
        mmd->afd.afhi.seconds_total = 0;
        free(mmd->afd.afhi.chunk_table);
        mmd->afd.afhi.chunk_table = NULL;
-       tmp  = make_message("%s:\n%s:\n%s:\n", status_item_list[SI_AUDIO_INFO1],
-               status_item_list[SI_AUDIO_INFO2], status_item_list[SI_AUDIO_INFO3]);
+       tmp  = make_message("%s:\n%s:\n%s:\n", status_item_list[SI_AUDIO_FILE_INFO],
+               status_item_list[SI_TAGINFO1], status_item_list[SI_TAGINFO2]);
        strncpy(mmd->afd.afhi.info_string, tmp, sizeof(mmd->afd.afhi.info_string));
        mmd->afd.afhi.info_string[sizeof(mmd->afd.afhi.info_string) - 1] = '\0';
+       make_empty_status_items(mmd->afd.verbose_ls_output);
        free(tmp);
        mmd->mtime = 0;
        mmd->size = 0;
@@ -300,8 +315,6 @@ struct timeval *vss_preselect(fd_set *rfds, fd_set *wfds, int *max_fileno)
                                tv_add(&mmd->afd.afhi.eof_tv, &now, &eof_barrier);
                        if (vss_repos())
                                tv_add(&now, &announce_tv, &data_send_barrier);
-                       if (mmd->new_vss_status_flags & VSS_NOMORE)
-                               mmd->new_vss_status_flags = VSS_NEXT;
                }
                mmd->chunks_sent = 0;
        }