+
+-(void)resetValues
+{
+ /* build a list of available modules */
+ size_t i_index;
+ module_t *p_parser, **p_list;
+
+ p_list = module_list_get( NULL );
+ for( i_index = 0; p_list[i_index]; i_index++ )
+ {
+ p_parser = p_list[i_index];
+
+ if( p_item->i_type == CONFIG_ITEM_MODULE )
+ {
+ if( module_provides( p_parser, p_item->psz_type ) )
+ {
+ NSString *o_description = [[VLCMain sharedInstance]
+ localizedString: module_GetLongName( p_parser )];
+ [o_popup addItemWithTitle: o_description];
+ char *psz_value = config_GetPsz( VLCIntf, p_item->psz_name );
+
+ if( psz_value &&
+ !strcmp( psz_value, module_get_object( p_parser ) ) )
+ [o_popup selectItem:[o_popup lastItem]];
+
+ free(psz_value);
+ }
+ }
+ else
+ {
+ int i;
+
+ if( module_is_main( p_parser ) )
+ continue;
+ unsigned int confsize;
+ unsigned int unused;
+ module_config_t *p_configlist = module_config_get( p_parser, &confsize );
+ for ( i = 0; i < confsize; i++ )
+ {
+ module_config_t *p_config = &p_configlist[i];
+ /* Hack: required subcategory is stored in i_min */
+ if( p_config->i_type == CONFIG_SUBCATEGORY &&
+ config_GetInt( VLCIntf, p_item->psz_name) == p_item->min.i )
+ {
+ NSString *o_description = [[VLCMain sharedInstance]
+ localizedString: module_GetLongName( p_parser )];
+ [o_popup addItemWithTitle: o_description];
+ char *psz_value = config_GetPsz( VLCIntf, p_item->psz_name );
+
+ if( psz_value && !strcmp(psz_value,
+ module_get_object( p_parser )) )
+ [o_popup selectItem:[o_popup lastItem]];
+
+ free( psz_value );
+ }
+ }
+ module_config_free( p_configlist );
+ }
+ }
+ module_list_free( p_list );
+ [super resetValues];
+}