}
+/*****************************************************************************
+ * 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 );
}
/*****************************************************************************
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 );