]> git.sesse.net Git - vlc/blobdiff - src/control/media_player.c
Preferences: don't show empty boxes ('zoom' box bug)
[vlc] / src / control / media_player.c
index 9b70266df680df1c4587a267e75045dbc036a178..a52fa0cbe69ca11f39561aa3ca0cf3e998ed8615 100644 (file)
@@ -56,9 +56,10 @@ static const libvlc_state_t vlc_to_libvlc_state_array[] =
     [BUFFERING_S]   = libvlc_Buffering,
     [PLAYING_S]     = libvlc_Playing,
     [PAUSE_S]       = libvlc_Paused,
-    [END_S]         = libvlc_Ended,
+    [STOP_S]        = libvlc_Stopped,
     [FORWARD_S]     = libvlc_Forward,
     [BACKWARD_S]    = libvlc_Backward,
+    [END_S]         = libvlc_Ended,
     [ERROR_S]       = libvlc_Error,
 };
 
@@ -166,9 +167,9 @@ input_state_changed( const vlc_event_t * event, void * p_userdata )
             libvlc_media_set_state( p_mi->p_md, libvlc_Paused, NULL);
             forwarded_event.type = libvlc_MediaPlayerPaused;
             break;
-        case END_S:
-            libvlc_media_set_state( p_mi->p_md, libvlc_Ended, NULL);
-            forwarded_event.type = libvlc_MediaPlayerEndReached;
+        case STOP_S:
+            libvlc_media_set_state( p_mi->p_md, libvlc_Stopped, NULL);
+            forwarded_event.type = libvlc_MediaPlayerStopped;
             break;
         case FORWARD_S:
             libvlc_media_set_state( p_mi->p_md, libvlc_Forward, NULL);
@@ -178,6 +179,9 @@ input_state_changed( const vlc_event_t * event, void * p_userdata )
             libvlc_media_set_state( p_mi->p_md, libvlc_Backward, NULL);
             forwarded_event.type = libvlc_MediaPlayerBackward;
             break;
+        case END_S:
+            libvlc_media_set_state( p_mi->p_md, libvlc_Ended, NULL);
+            forwarded_event.type = libvlc_MediaPlayerEndReached;
         case ERROR_S:
             libvlc_media_set_state( p_mi->p_md, libvlc_Error, NULL);
             forwarded_event.type = libvlc_MediaPlayerEncounteredError;
@@ -350,11 +354,13 @@ libvlc_media_player_new( libvlc_instance_t * p_libvlc_instance,
     libvlc_event_manager_register_event_type( p_mi->p_event_manager,
             libvlc_MediaPlayerPaused, p_e );
     libvlc_event_manager_register_event_type( p_mi->p_event_manager,
-            libvlc_MediaPlayerEndReached, p_e );
+            libvlc_MediaPlayerStopped, p_e );
     libvlc_event_manager_register_event_type( p_mi->p_event_manager,
             libvlc_MediaPlayerForward, p_e );
     libvlc_event_manager_register_event_type( p_mi->p_event_manager,
             libvlc_MediaPlayerBackward, p_e );
+    libvlc_event_manager_register_event_type( p_mi->p_event_manager,
+            libvlc_MediaPlayerEndReached, p_e );
     libvlc_event_manager_register_event_type( p_mi->p_event_manager,
             libvlc_MediaPlayerEncounteredError, p_e );
 
@@ -711,12 +717,14 @@ void libvlc_media_player_set_drawable( libvlc_media_player_t *p_mi,
      * because of some creepy drawable type that are not flexible enough
      * (Win32 HWND for instance) */
     p_input_thread = libvlc_get_input_thread( p_mi, p_e );
-    if( !p_input_thread ) return;
+    if( !p_input_thread ) {
+        /* No input, nothing more to do, we are fine */
+        libvlc_exception_clear( p_e );
+        return;
+    }
 
     p_vout = vlc_object_find( p_input_thread, VLC_OBJECT_VOUT, FIND_CHILD );
-    if( !p_vout )
-        libvlc_exception_raise( p_e, "No active video output" );
-    else
+    if( p_vout )
     {
         vout_Control( p_vout , VOUT_REPARENT, drawable);
         vlc_object_release( p_vout );