- (void)p_e;
- libvlc_media_descriptor_retain( p_md );
- ARRAY_INSERT( p_mlist->items, p_md, p_mlist->items.i_size );
- notify_item_addition( p_mlist, p_md, p_mlist->items.i_size-1 );
+ if( !mlist_is_writable(p_mlist) )
+ return -1;
+ _libvlc_media_list_add_media( p_mlist, p_md );
+ return 0;
+}
+
+/* LibVLC internal version */
+void _libvlc_media_list_add_media( libvlc_media_list_t * p_mlist,
+ libvlc_media_t * p_md )
+{
+ libvlc_media_retain( p_md );
+
+ notify_item_addition( p_mlist, p_md, vlc_array_count( &p_mlist->items ),
+ EventWillHappen );
+ vlc_array_append( &p_mlist->items, p_md );
+ notify_item_addition( p_mlist, p_md, vlc_array_count( &p_mlist->items )-1,
+ EventDidHappen );