void libvlc_renderer_discoverer_stop( libvlc_renderer_discoverer_t *p_lrd ) { if( p_lrd->p_rd != NULL ) vlc_rd_release( p_lrd->p_rd ); for( int i = 0; i < p_lrd->i_items; ++i ) vlc_renderer_item_release( p_lrd->pp_items[i] ); TAB_CLEAN( p_lrd->i_items, p_lrd->pp_items ); }
static void renderer_discovery_item_added( vlc_renderer_discovery_t *rd, vlc_renderer_item_t *p_item ) { libvlc_renderer_discoverer_t *p_lrd = rd->owner.sys; vlc_renderer_item_hold( p_item ); TAB_APPEND( p_lrd->i_items, p_lrd->pp_items, p_item ); libvlc_event_t event = { .type = libvlc_RendererDiscovererItemAdded, .u.renderer_discoverer_item_added.item = (libvlc_renderer_item_t*) p_item, }; libvlc_event_send( &p_lrd->event_manager, &event ); } static void renderer_discovery_item_removed( vlc_renderer_discovery_t *rd, vlc_renderer_item_t *p_item ) { libvlc_renderer_discoverer_t *p_lrd = rd->owner.sys; int i_idx; TAB_FIND( p_lrd->i_items, p_lrd->pp_items, p_item, i_idx ); assert( i_idx != -1 ); TAB_ERASE( p_lrd->i_items, p_lrd->pp_items, i_idx ); libvlc_event_t event = { .type = libvlc_RendererDiscovererItemDeleted, .u.renderer_discoverer_item_deleted.item = (libvlc_renderer_item_t*) p_item, }; libvlc_event_send( &p_lrd->event_manager, &event ); vlc_renderer_item_release( p_item ); } libvlc_renderer_item_t * libvlc_renderer_item_hold(libvlc_renderer_item_t *p_item) { vlc_renderer_item_hold( (vlc_renderer_item_t *) p_item ); return p_item; }
void libvlc_renderer_item_release(libvlc_renderer_item_t *p_item) { vlc_renderer_item_release( (vlc_renderer_item_t *) p_item ); }
~RendererItem() { vlc_renderer_item_release(m_obj); }