void MessagesDialog::buildTree( QTreeWidgetItem *parentItem, vlc_object_t *p_obj ) { QTreeWidgetItem *item; if( parentItem ) item = new QTreeWidgetItem( parentItem ); else item = new QTreeWidgetItem( ui.modulesTree ); char *name = vlc_object_get_name( p_obj ); item->setText( 0, QString("%1%2 (0x%3)") .arg( qfu( p_obj->psz_object_type ) ) .arg( ( name != NULL ) ? QString( " \"%1\"" ).arg( qfu( name ) ) : "" ) .arg( (uintptr_t)p_obj, 0, 16 ) ); free( name ); item->setExpanded( true ); vlc_list_t *l = vlc_list_children( p_obj ); for( int i=0; i < l->i_count; i++ ) buildTree( item, l->p_values[i].p_object ); vlc_list_release( l ); }
static void populateLoadedSet( QSet<QString> *loaded, vlc_object_t *p_node ) { Q_ASSERT( loaded ); char *name = vlc_object_get_name( p_node ); if ( !EMPTY_STR( name ) ) loaded->insert( QString( name ) ); free( name ); size_t count = 0, size; vlc_object_t **tab = NULL; do { delete[] tab; size = count; tab = new vlc_object_t *[size]; count = vlc_list_children(p_node, tab, size); } while (size < count); for (size_t i = 0; i < count ; i++) { populateLoadedSet( loaded, tab[i] ); vlc_object_release(tab[i]); } delete[] tab; }
/*********************************************************************** * Stop ***********************************************************************/ static void ObjectKillChildrens( vlc_object_t *p_obj ) { vlc_list_t *p_list; int i; vlc_object_kill( p_obj ); p_list = vlc_list_children( p_obj ); for( i = 0; i < p_list->i_count; i++ ) ObjectKillChildrens( p_list->p_values[i].p_object ); vlc_list_release( p_list ); }
static void populateLoadedSet( QSet<QString> *loaded, vlc_object_t *p_node ) { Q_ASSERT( loaded ); char *name = vlc_object_get_name( p_node ); if ( !EMPTY_STR( name ) ) loaded->insert( QString( name ) ); free( name ); vlc_list_t *l = vlc_list_children( p_node ); for( int i=0; i < l->i_count; i++ ) populateLoadedSet( loaded, l->p_values[i].p_object ); vlc_list_release( l ); }