]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - vss.c
Fix osl_del_row().
[paraslash.git] / vss.c
diff --git a/vss.c b/vss.c
index 75cf0f8764e273c3286ed41224b3962f61c4dc75..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);
@@ -301,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;
        }