+/**************************************************************************
+ * ml_item_added (private) (Callback from media_list_view item_added)
+ **************************************************************************/
+static void
+ml_item_added( const libvlc_event_t * p_event, libvlc_media_list_view_t * p_mlv )
+{
+ int index = vlc_array_count( &p_mlv->p_this_view_data->array );
+ libvlc_media_t * p_md = p_event->u.media_list_item_added.item;
+ libvlc_media_retain( p_md );
+ trace("appending item at index %d\n", index);
+
+ libvlc_media_list_view_will_add_item( p_mlv, p_md, index );
+ vlc_array_append( &p_mlv->p_this_view_data->array, p_md );
+ libvlc_media_list_view_item_added( p_mlv, p_md, index );
+}
+
+/**************************************************************************
+ * ml_item_removed (private) (Callback from media_list_view)
+ **************************************************************************/
+static void
+ml_item_removed( const libvlc_event_t * p_event, libvlc_media_list_view_t * p_mlv )
+{
+ libvlc_media_t * p_md = p_event->u.media_list_item_deleted.item;
+ int i = vlc_array_index_of_item( &p_mlv->p_this_view_data->array, p_md );
+ if( i >= 0 )
+ {
+ libvlc_media_list_view_will_delete_item( p_mlv, p_md, i );
+ vlc_array_remove( &p_mlv->p_this_view_data->array, i );
+ libvlc_media_list_view_item_deleted( p_mlv, p_md, i );
+ libvlc_media_release( p_md );
+ }
+}