PrefsDialog *p_prefs_dialog;
wxBoxSizer *p_sizer;
wxWindow *p_parent;
- vlc_bool_t b_advanced;
+ bool b_advanced;
wxPanel *p_current;
virtual ~PrefsPanel() {}
void ApplyChanges();
- void SwitchAdvanced( vlc_bool_t );
+ void SwitchAdvanced( bool );
private:
intf_thread_t *p_intf;
PrefsDialog *p_prefs_dialog;
- vlc_bool_t b_advanced;
+ bool b_advanced;
wxStaticText *hidden_text;
wxBoxSizer *config_sizer;
ConfigTreeData() { b_submodule = 0; panel = NULL; psz_name = NULL;
psz_help = NULL; }
virtual ~ConfigTreeData() {
- if( panel ) delete panel;
- if( psz_name ) free( psz_name );
- if( psz_help ) free( psz_help );
+ delete panel;
+ free( psz_name );
+ free( psz_help );
};
- vlc_bool_t b_submodule;
+ bool b_submodule;
PrefsPanel *panel;
wxBoxSizer *sizer;
+ module_t *p_module;
int i_object_id;
int i_subcat_id;
int i_type;
p_prefs_dialog = _p_prefs_dialog;
p_sizer = _p_sizer;
p_parent = _p_parent;
- b_advanced = VLC_FALSE;
+ b_advanced = false;
root_item = AddRoot( wxT("") );
wxASSERT_MSG(root_item.IsOk(), wxT("Could not add root item"));
for( i_index = 0; i_index < p_list->i_count; i_index++ )
{
p_module = (module_t *)p_list->p_values[i_index].p_object;
- if( !strcmp( p_module->psz_object_name, "main" ) )
+ if( !strcmp( module_get_object(p_module), "main" ) )
break;
}
if( i_index < p_list->i_count )
{
wxTreeItemId current_item;
- char *psz_help;
+ const char *psz_help;
+ unsigned int i_confsize;
+ module_config_t *p_config;
+
/* We found the main module */
/* Enumerate config categories and store a reference so we can
* generate their config panel them when it is asked by the user. */
- for (size_t i = 0; i < p_module->confsize; i++)
+ p_config = module_config_get( p_module, &i_confsize );
+ for( size_t i = 0; i < i_confsize; i++ )
{
- module_config_t *p_item = p_module->p_config + i;
+ module_config_t *p_item = p_config + i;
ConfigTreeData *config_data;
switch( p_item->i_type )
{
case CONFIG_CATEGORY:
- config_data = new ConfigTreeData;
if( p_item->value.i == -1 ) break; // Don't display it
+
+ config_data = new ConfigTreeData;
config_data->psz_name = strdup( config_CategoryNameGet(
p_item->value.i ) );
psz_help = config_CategoryHelpGet( p_item->value.i );
GetItemData( current_item );
cd->i_type = TYPE_CATSUBCAT;
cd->i_subcat_id = p_item->value.i;
- if( cd->psz_name ) free( cd->psz_name );
+ free( cd->psz_name );
cd->psz_name = strdup( config_CategoryNameGet(
p_item->value.i ) );
- msg_Err(p_intf, "found a subcategory %s", cd->psz_name );
- if( cd->psz_help ) free( cd->psz_help );
- char *psz_help = config_CategoryHelpGet( p_item->value.i );
+ free( cd->psz_help );
+ const char *psz_help = config_CategoryHelpGet( p_item->value.i );
if( psz_help )
{
cd->psz_help = wraptext( strdup( psz_help ), 72 );
}
}
+ module_config_free( p_config );
}
*/
for( i_index = 0; i_index < p_list->i_count; i_index++ )
{
- int i_category = -1;
- int i_subcategory = -1;
- int i_options = 0;
+ int i_category = -1, i_subcategory = -1, i_options = 0;
+ unsigned int i_confsize;
+ module_config_t *p_config;
p_module = (module_t *)p_list->p_values[i_index].p_object;
/* Exclude the main module */
- if( !strcmp( p_module->psz_object_name, "main" ) )
+ if( !strcmp( module_get_object(p_module), "main" ) )
continue;
- msg_Err(p_intf, "processing %s", p_module->psz_object_name);
+#if 0
/* Exclude empty plugins (submodules don't have config options, they
* are stored in the parent module) */
- if( p_module->b_submodule )
- continue;
-// p_item = ((module_t *)p_module->p_parent)->p_config;
- else
-//msg_Err(p_intf,"1p_item=0x%x, p_end=0x%x, i_optoin=%i", p_item, p_end, i_options);
- for (size_t i = 0; i < p_module->confsize; i++)
+ if( module_IsSubModule(p_module) )
+ continue;
+#endif
+ p_config = module_config_get( p_module, &i_confsize );
+ for( size_t i = 0; i < i_confsize; i++ )
{
- module_config_t *p_item = p_module->p_config + i;
- msg_Err(p_intf,"i_type=0x%x, value=%i", p_item->i_type, p_item->value.i);
+ module_config_t *p_item = p_config + i;
if( p_item->i_type == CONFIG_CATEGORY )
{
i_category = p_item->value.i;
i_options ++;
if( i_options > 0 && i_category >= 0 && i_subcategory >= 0 )
{
- msg_Err(p_intf,"break");
break;
}
}
-msg_Err(p_intf,"p_item=0x%x, p_end=0x%x, i_optoin=%i, i_category=%i", p_item, p_end, i_options, i_category);
if( !i_options ) continue;
/* Find the right category item */
wxTreeItemIdValue cookie;
- vlc_bool_t b_found = VLC_FALSE;
+ bool b_found = false;
wxTreeItemId category_item = GetFirstChild( root_item , cookie);
while( category_item.IsOk() )
{
ConfigTreeData *config_data =
(ConfigTreeData *)GetItemData( category_item );
-// msg_Err(p_intf,"%i, %i", config_data->i_object_id, i_category);
if( config_data->i_object_id == i_category )
{
- b_found = VLC_TRUE;
+ b_found = true;
break;
}
category_item = GetNextChild( root_item, cookie );
}
-msg_Err(p_intf, "found=%i", b_found);
if( !b_found ) continue;
/* Find subcategory item */
- b_found = VLC_FALSE;
+ b_found = false;
//cookie = -1;
wxTreeItemId subcategory_item = GetFirstChild( category_item, cookie );
while( subcategory_item.IsOk() )
(ConfigTreeData *)GetItemData( subcategory_item );
if( config_data->i_object_id == i_subcategory )
{
- b_found = VLC_TRUE;
+ b_found = true;
break;
}
subcategory_item = GetNextChild( category_item, cookie );
/* Add the plugin to the tree */
ConfigTreeData *config_data = new ConfigTreeData;
- config_data->b_submodule = p_module->b_submodule;
+#if 0
+ config_data->b_submodule = module_IsSubModule(p_module);
+#endif
config_data->i_type = TYPE_MODULE;
- config_data->i_object_id = p_module->b_submodule ?
- ((module_t *)p_module->p_parent)->i_object_id :
- p_module->i_object_id;
+ config_data->p_module = config_data->b_submodule ?
+ ((module_t*)((vlc_object_t*)p_module)->p_parent) : p_module;
config_data->psz_help = NULL;
/* WXMSW doesn't know image -1 ... FIXME */
#else
i_image = -1;
#endif
- msg_Err(p_intf, "adding %s with image %i ", p_module->psz_shortname ? p_module->psz_shortname : p_module->psz_object_name, i_image);
- AppendItem( subcategory_item, wxU( p_module->psz_shortname ?
- p_module->psz_shortname : p_module->psz_object_name )
- , i_image, -1,
- config_data );
+ AppendItem( subcategory_item, wxU( module_get_name(p_module, 0) ),
+ i_image, -1, config_data );
}
/* Sort all this mess */
{
config_new = (ConfigTreeData *)GetItemData( module );
if( config_new && !config_new->b_submodule &&
- config_new->i_object_id == config_data->i_object_id )
+ config_new->p_module == config_data->p_module )
{
return config_new;
}
ConfigTreeData *config_data )
: wxPanel( parent, -1, wxDefaultPosition, wxDefaultSize )
{
- module_config_t *p_item, *p_end;
+ module_config_t *p_item, *p_start, *p_end;
+ unsigned int i_confsize;
vlc_list_t *p_list = NULL;;
wxStaticText *label;
p_intf = _p_intf;
p_prefs_dialog =_p_prefs_dialog,
- b_advanced = VLC_TRUE;
+ b_advanced = true;
SetAutoLayout( TRUE );
Hide();
/* Get a pointer to the module */
if( config_data->i_type == TYPE_MODULE )
{
- p_module = (module_t *)vlc_object_get( p_intf,
- config_data->i_object_id );
+ p_module = config_data->p_module;
}
else
{
/* List the plugins */
int i_index;
- vlc_bool_t b_found = VLC_FALSE;
+ bool b_found = false;
p_list = vlc_list_find( p_intf, VLC_OBJECT_MODULE, FIND_ANYWHERE );
if( !p_list ) return;
for( i_index = 0; i_index < p_list->i_count; i_index++ )
{
p_module = (module_t *)p_list->p_values[i_index].p_object;
- if( !strcmp( p_module->psz_object_name, "main" ) )
+ if( !strcmp( module_get_object(p_module), "main" ) )
{
- b_found = VLC_TRUE;
+ b_found = true;
break;
}
}
}
}
- if( p_module->i_object_type != VLC_OBJECT_MODULE )
- {
- /* 0OOoo something went really bad */
- return;
- }
-
/* Enumerate config options and add corresponding config boxes
* (submodules don't have config options, they are stored in the
* parent module) */
- if( p_module->b_submodule )
- p_item = ((module_t *)p_module->p_parent)->p_config;
+#if 0
+ if( module_IsSubModule(p_module) )
+ p_start = module_config_get((module_t *)(((vlc_object_t *)p_module)->p_parent), &i_confsize);
else
- p_item = p_module->p_config;
+#endif
+ p_start = module_config_get(p_module, &i_confsize);
- p_end = p_item + p_module->confsize;
+ p_item = p_start;
+ p_end = p_start + i_confsize;
/* Find the category if it has been specified */
if( config_data->i_type == TYPE_SUBCATEGORY ||
config_data->i_type == TYPE_CATSUBCAT )
{
- do
+ for( ; p_item && p_item < p_end; p_item++ )
{
if( p_item->i_type == CONFIG_SUBCATEGORY &&
( config_data->i_type == TYPE_SUBCATEGORY &&
{
break;
}
- if( p_item < p_end )
- break;
- } while( p_item++ );
+ }
}
/* Add a head title to the panel */
- char *psz_head;
+ const char *psz_head;
if( config_data->i_type == TYPE_SUBCATEGORY ||
config_data->i_type == TYPE_CATSUBCAT )
{
}
else
{
- psz_head = p_module->psz_longname;
+ psz_head = module_GetLongName(p_module);
}
label = new wxStaticText( this, -1,
config_window->SetAutoLayout( TRUE );
config_window->SetScrollRate( 5, 5 );
- if( p_item ) do
+ for( ; p_item && p_item < p_end; p_item++ )
{
/* If a category has been specified, check we finished the job */
if( ( ( config_data->i_type == TYPE_SUBCATEGORY &&
p_item->i_type == CONFIG_SUBCATEGORY ) )
break;
- if( p_item->b_internal == VLC_TRUE ) continue;
-
ConfigControl *control =
CreateConfigControl( VLC_OBJECT(p_intf),
p_item, config_window );
config_sizer->Add( control, 0, wxEXPAND | wxALL, 2 );
}
- while( !( ( config_data->i_type == TYPE_SUBCATEGORY ||
- config_data->i_type == TYPE_CATSUBCAT ) &&
- ( p_item->i_type == CONFIG_CATEGORY ||
- p_item->i_type == CONFIG_SUBCATEGORY )) && ( ++p_item < p_end) );
+ module_config_free( p_start );
config_sizer->Layout();
config_window->SetSizer( config_sizer );
if( config_data->i_type == TYPE_MODULE )
{
- vlc_object_release( p_module );
+ module_release (p_module);
}
else
{
}
}
-void PrefsPanel::SwitchAdvanced( vlc_bool_t b_new_advanced )
+void PrefsPanel::SwitchAdvanced( bool b_new_advanced )
{
bool hidden = false;