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; }
RendererItem(vlc_renderer_item *obj) : QListWidgetItem( vlc_renderer_item_flags(obj) & VLC_RENDERER_CAN_VIDEO ? QIcon( ":/sidebar/movie" ) : QIcon( ":/sidebar/music" ), qfu( vlc_renderer_item_name(obj) )) { m_obj = vlc_renderer_item_hold(obj); }