]> git.sesse.net Git - vlc/commitdiff
Added libvlc_MediaPlayerVout event.
authorLaurent Aimar <fenrir@videolan.org>
Mon, 5 Sep 2011 17:37:35 +0000 (19:37 +0200)
committerLaurent Aimar <fenrir@videolan.org>
Mon, 5 Sep 2011 17:52:21 +0000 (19:52 +0200)
It is send on vout count changes (close #5277).

include/vlc/libvlc_events.h
lib/media_player.c

index 7b29541c1d7ce20dbef79eda3e3281c44a722d65..7d2705414976e4801c9103505d30ad1e89307c59 100644 (file)
@@ -71,6 +71,7 @@ enum libvlc_event_e {
     libvlc_MediaPlayerTitleChanged,
     libvlc_MediaPlayerSnapshotTaken,
     libvlc_MediaPlayerLengthChanged,
+    libvlc_MediaPlayerVout,
 
     libvlc_MediaListItemAdded=0x200,
     libvlc_MediaListWillAddItem,
@@ -162,6 +163,10 @@ typedef struct libvlc_event_t
         {
             int new_pausable;
         } media_player_pausable_changed;
+        struct
+        {
+            int new_count;
+        } media_player_vout;
 
         /* media list */
         struct
index 4b4073075ef9c76ee9f4eab068f54e4e0ef9f2e4..88e151a37ae8e5602a6e4c8c5329ea87377c5866 100644 (file)
@@ -316,6 +316,25 @@ input_event_changed( vlc_object_t * p_this, char const * psz_cmd,
             var_GetFloat( p_input, "cache" ));
         libvlc_event_send( p_mi->p_event_manager, &event );
     }
+    else if( newval.i_int == INPUT_EVENT_VOUT )
+    {
+        vout_thread_t **pp_vout;
+        size_t i_vout;
+        if( input_Control( p_input, INPUT_GET_VOUTS, &pp_vout, &i_vout ) )
+        {
+            i_vout  = 0;
+        }
+        else
+        {
+            for( size_t i = 0; i < i_vout; i++ )
+                vlc_object_release( pp_vout[i] );
+            free( pp_vout );
+        }
+
+        event.type = libvlc_MediaPlayerVout;
+        event.u.media_player_vout.new_count = i_vout;
+        libvlc_event_send( p_mi->p_event_manager, &event );
+    }
 
     return VLC_SUCCESS;
 }