Modify playlist code to always use input_item_t->i_id in "item-change" callback.
authorLaurent Aimar <fenrir@videolan.org>
Mon, 16 Feb 2009 20:33:43 +0000 (21:33 +0100)
committerLaurent Aimar <fenrir@videolan.org>
Mon, 16 Feb 2009 20:33:43 +0000 (21:33 +0100)
 The previous code mixed up playlist_item_t->i_id and input_item_t->i_id and
 so this callback was unusable.

include/vlc_playlist.h
src/playlist/item.c

index 12521b7..6fbd4a1 100644 (file)
@@ -114,6 +114,14 @@ TYPEDEF_ARRAY(playlist_item_t*, playlist_item_array_t);
  * To delete an item, use playlist_DeleteFromInput( input_id ) which will
  * remove all occurrences of the input in both trees
  *
  * To delete an item, use playlist_DeleteFromInput( input_id ) which will
  * remove all occurrences of the input in both trees
  *
+ *
+ * The playlist defines the following event variables:
+ * - "item-change": It will contains the input_item_t->i_id of a changed input
+ * item monitored by the playlist.
+ *
+ * XXX Be really carefull, playlist_item_t->i_id and input_item_t->i_id are not
+ * the same.
+ *
  * @{
  */
 
  * @{
  */
 
index e8179b1..383771a 100644 (file)
@@ -115,9 +115,9 @@ static void input_item_subitem_added( const vlc_event_t * p_event,
 static void input_item_changed( const vlc_event_t * p_event,
                                 void * user_data )
 {
 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 );
+    playlist_item_t *p_item = user_data;
+    VLC_UNUSED( p_event );
+    var_SetInteger( p_item->p_playlist, "item-change", p_item->p_input->i_id );
 }
 
 /*****************************************************************************
 }
 
 /*****************************************************************************
@@ -624,8 +624,7 @@ static playlist_item_t *ItemToNode( playlist_t *p_playlist,
         }
         pl_priv(p_playlist)->b_reset_currently_playing = true;
         vlc_cond_signal( &pl_priv(p_playlist)->signal );
         }
         pl_priv(p_playlist)->b_reset_currently_playing = true;
         vlc_cond_signal( &pl_priv(p_playlist)->signal );
-        var_SetInteger( p_playlist, "item-change", p_item_in_category->
-                                                        p_input->i_id );
+        var_SetInteger( p_playlist, "item-change", p_item_in_category->p_input->i_id );
         PL_UNLOCK_IF( !b_locked );
         return p_item_in_category;
     }
         PL_UNLOCK_IF( !b_locked );
         return p_item_in_category;
     }