]> git.sesse.net Git - vlc/commitdiff
playlist: Listen to vlc_InputSelectedStreamChanged events.
authorPierre d'Herbemont <pdherbemont@videolan.org>
Sat, 14 Jun 2008 14:25:01 +0000 (16:25 +0200)
committerPierre d'Herbemont <pdherbemont@videolan.org>
Sat, 14 Jun 2008 14:26:30 +0000 (16:26 +0200)
src/playlist/engine.c

index 00df03d5c82a749b45fdc36acdab7bbdd129be76..a4d2e18bf2c4e1f8a7e30a0f880da011181119b9 100644 (file)
@@ -211,6 +211,17 @@ static void input_state_changed( const vlc_event_t * event, void * data )
     playlist_Signal( p_playlist );
 }
 
+/* Input Callback */
+static void input_selected_stream_changed( const vlc_event_t * event, void * data )
+{
+    (void)event;
+    playlist_t * p_playlist = data;
+    PL_LOCK;
+    p_playlist->gc_date = mdate();
+    vlc_object_signal_unlocked( p_playlist );
+    PL_UNLOCK;
+}
+
 /* Internals */
 void playlist_release_current_input( playlist_t * p_playlist )
 {
@@ -223,6 +234,8 @@ void playlist_release_current_input( playlist_t * p_playlist )
 
     vlc_event_detach( p_em, vlc_InputStateChanged,
                       input_state_changed, p_playlist );
+    vlc_event_detach( p_em, vlc_InputSelectedStreamChanged,
+                      input_selected_stream_changed, p_playlist );
     p_playlist->p_input = NULL;
 
     /* Release the playlist lock, because we may get stuck
@@ -246,6 +259,8 @@ void playlist_set_current_input(
         vlc_event_manager_t * p_em = input_get_event_manager( p_input );
         vlc_event_attach( p_em, vlc_InputStateChanged,
                           input_state_changed, p_playlist );
+        vlc_event_attach( p_em, vlc_InputSelectedStreamChanged,
+                          input_selected_stream_changed, p_playlist );
     }
 }