/************************************************************************** * libvlc_media_list_remove_index (Public) * * Lock should be held when entering. **************************************************************************/ void libvlc_media_list_remove_index( libvlc_media_list_t * p_mlist, int index, libvlc_exception_t * p_e ) { if( mlist_is_writable(p_mlist,p_e) ) _libvlc_media_list_remove_index( p_mlist, index, p_e ); }
/************************************************************************** * services_discovery_removeall (Private) (VLC event callback) **************************************************************************/ static void services_discovery_removeall( const vlc_event_t * p_event, void * user_data ) { VLC_UNUSED(p_event); libvlc_media_discoverer_t * p_mdis = user_data; libvlc_media_list_lock( p_mdis->p_mlist ); for( int i = 0; i < libvlc_media_list_count( p_mdis->p_mlist ); i++ ) { _libvlc_media_list_remove_index( p_mdis->p_mlist, i ); } libvlc_media_list_unlock( p_mdis->p_mlist ); }
static void services_discovery_item_removed( const vlc_event_t * p_event, void * user_data ) { input_item_t * p_item = p_event->u.services_discovery_item_added.p_new_item; libvlc_media_t * p_md; libvlc_media_discoverer_t * p_mdis = user_data; int i, count = libvlc_media_list_count( p_mdis->p_mlist, NULL ); libvlc_media_list_lock( p_mdis->p_mlist ); for( i = 0; i < count; i++ ) { p_md = libvlc_media_list_item_at_index( p_mdis->p_mlist, i, NULL ); if( p_md->p_input_item == p_item ) { _libvlc_media_list_remove_index( p_mdis->p_mlist, i, NULL ); break; } } libvlc_media_list_unlock( p_mdis->p_mlist ); }