libvlc_media_descriptor_t * p_md)
{
libvlc_media_list_t * p_mlist;
+ libvlc_exception_t ignored_exception;
+ libvlc_exception_init( &ignored_exception );
libvlc_event_detach( p_md->p_event_manager,
libvlc_MediaDescriptorSubItemAdded,
- media_list_subitem_added, p_mlv, NULL );
+ media_list_subitem_added, p_mlv, &ignored_exception );
+ if( libvlc_exception_raised( &ignored_exception ) )
+ libvlc_exception_clear( &ignored_exception ); /* We don't care if we encounter an exception */
if((p_mlist = libvlc_media_descriptor_subitems( p_md, NULL )))
{
libvlc_media_list_lock( p_mlist );
*/
/**************************************************************************
* libvlc_media_list_view_set_ml_notification_callback (Internal)
+ * The mlist lock should be held when entered
**************************************************************************/
void
libvlc_media_list_view_set_ml_notification_callback(
{
p_mlv->pf_ml_item_added = item_added;
p_mlv->pf_ml_item_removed = item_removed;
- libvlc_media_list_lock( p_mlv->p_mlist );
libvlc_event_attach( p_mlv->p_mlist->p_event_manager,
libvlc_MediaListItemAdded,
media_list_item_added, p_mlv, NULL );
install_md_listener( p_mlv, p_md );
libvlc_media_descriptor_release( p_md );
}
- libvlc_media_list_unlock( p_mlv->p_mlist );
}
/**************************************************************************
return p_em;
}
+/**************************************************************************
+ * libvlc_media_list_view_parent_media_list (Public)
+ **************************************************************************/
+libvlc_media_list_t *
+libvlc_media_list_view_parent_media_list( libvlc_media_list_view_t * p_mlv,
+ libvlc_exception_t * p_e)
+{
+ (void)p_e;
+ libvlc_media_list_t * p_mlist;
+ vlc_mutex_lock( &p_mlv->object_lock );
+ p_mlist = p_mlv->p_mlist;
+ libvlc_media_list_retain( p_mlv->p_mlist );
+ vlc_mutex_unlock( &p_mlv->object_lock );
+ return p_mlist;
+}
+
/* Limited to four args, because it should be enough */
#define AN_SELECT( collapser, dec1, dec2, dec3, dec4, p, ...) p