]> git.sesse.net Git - vlc/commitdiff
libvlc: allow pause and stop during buffering (fixes: #2679)
authorJean-Paul Saman <jpsaman@videolan.org>
Tue, 5 May 2009 09:36:55 +0000 (11:36 +0200)
committerJean-Paul Saman <jpsaman@videolan.org>
Tue, 5 May 2009 09:41:45 +0000 (11:41 +0200)
src/control/media_player.c

index 7e1775cb5870fc9e0065daad421e6fe2971d5966..3eb1c1e94ae51ce339275fbb596f89dd36927032 100644 (file)
@@ -653,13 +653,11 @@ void libvlc_media_player_pause( libvlc_media_player_t *p_mi,
                                   libvlc_exception_t *p_e )
 {
     input_thread_t * p_input_thread = libvlc_get_input_thread( p_mi, p_e );
-
     if( !p_input_thread )
         return;
 
     libvlc_state_t state = libvlc_media_player_get_state( p_mi, p_e );
-
-    if( state == libvlc_Playing )
+    if( state == libvlc_Playing || state == libvlc_Buffering )
     {
         if( libvlc_media_player_can_pause( p_mi, p_e ) )
             input_Control( p_input_thread, INPUT_SET_STATE, PAUSE_S );
@@ -681,7 +679,7 @@ int libvlc_media_player_is_playing( libvlc_media_player_t *p_mi,
                                      libvlc_exception_t *p_e )
 {
     libvlc_state_t state = libvlc_media_player_get_state( p_mi, p_e );
-    return libvlc_Playing == state;
+    return (libvlc_Playing == state) || (libvlc_Buffering == state);
 }
 
 /**************************************************************************
@@ -692,10 +690,12 @@ void libvlc_media_player_stop( libvlc_media_player_t *p_mi,
 {
     libvlc_state_t state = libvlc_media_player_get_state( p_mi, p_e );
 
-    if( state == libvlc_Playing || state == libvlc_Paused )
+    if( state == libvlc_Playing ||
+        state == libvlc_Paused ||
+        state == libvlc_Buffering )
     {
-        /* Send a stop notification event only if we are in playing or
-         * paused states */
+        /* Send a stop notification event only if we are in playing,
+         * buffering or paused states */
         libvlc_media_set_state( p_mi->p_md, libvlc_Ended, p_e );
 
         /* Construct and send the event */