]> git.sesse.net Git - vlc/blobdiff - src/playlist/item.c
playlist: Fix a typo in event detaching.
[vlc] / src / playlist / item.c
index 15454014ef652aeb124cb5d1fbc359140578e586..9c4d0fea03e7301346debf74f7cda1f9c2790ce8 100644 (file)
@@ -106,24 +106,48 @@ static void input_item_subitem_added( const vlc_event_t * p_event,
 
 }
 
+/*****************************************************************************
+ * An input item's meta or duration has changed (Event Callback)
+ *****************************************************************************/
+static void input_item_changed( const vlc_event_t * p_event,
+                                void * user_data )
+{
+    (void)p_event;
+    playlist_item_t * p_item = user_data;
+    var_SetInteger( p_item->p_playlist, "item-change", p_item->i_id );
+}
+
 /*****************************************************************************
  * Listen to vlc_InputItemAddSubItem event
  *****************************************************************************/
 static void install_input_item_observer( playlist_item_t * p_item )
 {
-    vlc_event_attach( &p_item->p_input->event_manager,
-                      vlc_InputItemSubItemAdded,
-                      input_item_subitem_added,
-                      p_item );
+    vlc_event_manager_t * p_em = &p_item->p_input->event_manager;
+    vlc_event_attach( p_em, vlc_InputItemSubItemAdded,
+                      input_item_subitem_added, p_item );
+    vlc_event_attach( p_em, vlc_InputItemDurationChanged,
+                      input_item_changed, p_item );
+    vlc_event_attach( p_em, vlc_InputItemMetaChanged,
+                      input_item_changed, p_item );
+    vlc_event_attach( p_em, vlc_InputItemNameChanged,
+                      input_item_changed, p_item );
+    vlc_event_attach( p_em, vlc_InputItemInfoChanged,
+                      input_item_changed, p_item );
 }
 
 static void uninstall_input_item_observer( playlist_item_t * p_item )
 {
-    vlc_event_detach( &p_item->p_input->event_manager,
-                      vlc_InputItemSubItemAdded,
-                      input_item_subitem_added,
-                      p_item );
-
+    vlc_event_manager_t * p_em = &p_item->p_input->event_manager;
+    vlc_event_detach( p_em, vlc_InputItemSubItemAdded,
+                      input_item_subitem_added, p_item );
+    vlc_event_detach( p_em, vlc_InputItemMetaChanged,
+                      input_item_changed, p_item );
+    vlc_event_detach( p_em, vlc_InputItemDurationChanged,
+                      input_item_changed, p_item );
+    vlc_event_detach( p_em, vlc_InputItemNameChanged,
+                      input_item_changed, p_item );
+    vlc_event_detach( p_em, vlc_InputItemInfoChanged,
+                      input_item_changed, p_item );
 }
 
 /*****************************************************************************
@@ -351,7 +375,7 @@ int playlist_AddExt( playlist_t *p_playlist, const char * psz_uri,
 
     i_ret = playlist_AddInput( p_playlist, p_input, i_mode, i_pos, b_playlist,
                                b_locked );
-    int i_id = i_ret == VLC_SUCCESS ? p_input->i_id : -1;
+    int i_id = (i_ret == VLC_SUCCESS) ? p_input->i_id : -1;
 
     vlc_gc_decref( p_input );