{
vlc_list_t *p_list = NULL;;
module_t *p_module;
- module_config_t *p_item;
+ module_config_t *p_item, *p_end;
int i_index, i_image=0;
/* Initializations */
/* Enumerate config categories and store a reference so we can
* generate their config panel them when it is asked by the user. */
p_item = p_module->p_config;
+ p_end = p_item + p_module->confsize;
if( p_item ) do
{
{
case CONFIG_CATEGORY:
config_data = new ConfigTreeData;
- if( p_item->i_value == -1 ) break; // Don't display it
+ if( p_item->value.i == -1 ) break; // Don't display it
config_data->psz_name = strdup( config_CategoryNameGet(
- p_item->i_value ) );
- psz_help = config_CategoryHelpGet( p_item->i_value );
+ p_item->value.i ) );
+ psz_help = config_CategoryHelpGet( p_item->value.i );
if( psz_help )
{
config_data->psz_help = wraptext( strdup( psz_help ), 72 );
config_data->psz_help = NULL;
}
config_data->i_type = TYPE_CATEGORY;
- config_data->i_object_id = p_item->i_value;
+ config_data->i_object_id = p_item->value.i;
/* Add the category to the tree */
- switch( p_item->i_value )
+ switch( p_item->value.i )
{
case CAT_AUDIO:
i_image = 0; break;
break;
case CONFIG_SUBCATEGORY:
- if( p_item->i_value == -1 ) break; // Don't display it
+ if( p_item->value.i == -1 ) break; // Don't display it
/* Special case: move the "general" subcategories to their
* parent category */
- if( p_item->i_value == SUBCAT_VIDEO_GENERAL ||
- p_item->i_value == SUBCAT_ADVANCED_MISC ||
- p_item->i_value == SUBCAT_INPUT_GENERAL ||
- p_item->i_value == SUBCAT_INTERFACE_GENERAL ||
- p_item->i_value == SUBCAT_SOUT_GENERAL||
- p_item->i_value == SUBCAT_PLAYLIST_GENERAL||
- p_item->i_value == SUBCAT_AUDIO_GENERAL )
+ if( p_item->value.i == SUBCAT_VIDEO_GENERAL ||
+ p_item->value.i == SUBCAT_ADVANCED_MISC ||
+ p_item->value.i == SUBCAT_INPUT_GENERAL ||
+ p_item->value.i == SUBCAT_INTERFACE_GENERAL ||
+ p_item->value.i == SUBCAT_SOUT_GENERAL||
+ p_item->value.i == SUBCAT_PLAYLIST_GENERAL||
+ p_item->value.i == SUBCAT_AUDIO_GENERAL )
{
ConfigTreeData *cd = (ConfigTreeData *)
GetItemData( current_item );
cd->i_type = TYPE_CATSUBCAT;
- cd->i_subcat_id = p_item->i_value;
+ cd->i_subcat_id = p_item->value.i;
if( cd->psz_name ) free( cd->psz_name );
cd->psz_name = strdup( config_CategoryNameGet(
- p_item->i_value ) );
+ p_item->value.i ) );
if( cd->psz_help ) free( cd->psz_help );
- char *psz_help = config_CategoryHelpGet( p_item->i_value );
+ char *psz_help = config_CategoryHelpGet( p_item->value.i );
if( psz_help )
{
cd->psz_help = wraptext( strdup( psz_help ), 72 );
config_data = new ConfigTreeData;
config_data->psz_name = strdup( config_CategoryNameGet(
- p_item->i_value ) );
- psz_help = config_CategoryHelpGet( p_item->i_value );
+ p_item->value.i ) );
+ psz_help = config_CategoryHelpGet( p_item->value.i );
if( psz_help )
{
config_data->psz_help = wraptext( strdup( psz_help ), 72 );
config_data->psz_help = NULL;
}
config_data->i_type = TYPE_SUBCATEGORY;
- config_data->i_object_id = p_item->i_value;
+ config_data->i_object_id = p_item->value.i;
/* WXMSW doesn't know image -1 ... FIXME */
#ifdef __WXMSW__
- switch( p_item->i_value / 100 )
+ switch( p_item->value.i / 100 )
{
case CAT_AUDIO:
i_image = 0; break;
break;
}
}
- while( p_item->i_type != CONFIG_HINT_END && p_item++ );
+ while( p_item < p_end && p_item++ );
}
// p_item = ((module_t *)p_module->p_parent)->p_config;
else
p_item = p_module->p_config;
-
+ p_end = p_item + p_module->confsize;
if( !p_item ) continue;
do
{
if( p_item->i_type == CONFIG_CATEGORY )
{
- i_category = p_item->i_value;
+ i_category = p_item->value.i;
}
else if( p_item->i_type == CONFIG_SUBCATEGORY )
{
- i_subcategory = p_item->i_value;
+ i_subcategory = p_item->value.i;
}
if( p_item->i_type & CONFIG_ITEM )
i_options ++;
break;
}
}
- while( p_item->i_type != CONFIG_HINT_END && p_item++ );
+ while( p_item < p_end && p_item++ );
if( !i_options ) continue;
ConfigTreeData *config_data )
: wxPanel( parent, -1, wxDefaultPosition, wxDefaultSize )
{
- module_config_t *p_item;
+ module_config_t *p_item, *p_end;
vlc_list_t *p_list = NULL;;
wxStaticText *label;
else
p_item = p_module->p_config;
+ p_end = p_item + p_module->confsize;
+
/* Find the category if it has been specified */
if( config_data->i_type == TYPE_SUBCATEGORY ||
config_data->i_type == TYPE_CATSUBCAT )
{
if( p_item->i_type == CONFIG_SUBCATEGORY &&
( config_data->i_type == TYPE_SUBCATEGORY &&
- p_item->i_value == config_data->i_object_id ) ||
+ p_item->value.i == config_data->i_object_id ) ||
( config_data->i_type == TYPE_CATSUBCAT &&
- p_item->i_value == config_data->i_subcat_id ) )
+ p_item->value.i == config_data->i_subcat_id ) )
{
break;
}
- if( p_item->i_type == CONFIG_HINT_END )
+ if( p_item < p_end )
break;
} while( p_item++ );
}
{
/* If a category has been specified, check we finished the job */
if( ( ( config_data->i_type == TYPE_SUBCATEGORY &&
- p_item->i_value != config_data->i_object_id ) ||
+ p_item->value.i != config_data->i_object_id ) ||
( config_data->i_type == TYPE_CATSUBCAT &&
- p_item->i_value != config_data->i_subcat_id ) ) &&
+ p_item->value.i != config_data->i_subcat_id ) ) &&
(p_item->i_type == CONFIG_CATEGORY ||
p_item->i_type == CONFIG_SUBCATEGORY ) )
break;
config_sizer->Add( control, 0, wxEXPAND | wxALL, 2 );
}
- while( !( p_item->i_type == CONFIG_HINT_END ||
+ while( !( p_item < p_end )||
( ( 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_item->i_type == CONFIG_SUBCATEGORY ) ) && p_item++ );
config_sizer->Layout();
{
p_control = new IntegerListConfigControl( p_this, p_item, parent );
}
- else if( p_item->i_min != 0 || p_item->i_max != 0 )
+ else if( p_item->min.i != 0 || p_item->max.i != 0 )
{
p_control = new RangedIntConfigControl( p_this, p_item, parent );
}
label = new wxStaticText(this, -1, wxU(p_item->psz_text));
alt = new wxCheckBox( this, -1, wxU(_("Alt")) );
- alt->SetValue( p_item->i_value & KEY_MODIFIER_ALT );
+ alt->SetValue( p_item->value.i & KEY_MODIFIER_ALT );
ctrl = new wxCheckBox( this, -1, wxU(_("Ctrl")) );
- ctrl->SetValue( p_item->i_value & KEY_MODIFIER_CTRL );
+ ctrl->SetValue( p_item->value.i & KEY_MODIFIER_CTRL );
shift = new wxCheckBox( this, -1, wxU(_("Shift")) );
- shift->SetValue( p_item->i_value & KEY_MODIFIER_SHIFT );
+ shift->SetValue( p_item->value.i & KEY_MODIFIER_SHIFT );
combo = new wxComboBox( this, -1, wxT(""), wxDefaultPosition,
wxDefaultSize, i_keys, m_keysList,
wxCB_READONLY );
{
combo->SetClientData( i, (void*)vlc_keys[i].i_key_code );
if( (unsigned int)vlc_keys[i].i_key_code ==
- ( ((unsigned int)p_item->i_value) & ~KEY_MODIFIER ) )
+ ( ((unsigned int)p_item->value.i) & ~KEY_MODIFIER ) )
{
combo->SetSelection( i );
combo->SetValue( wxU(_(vlc_keys[i].psz_key_string)) );
module_t *p_parser;
label = new wxStaticText(this, -1, wxU(p_item->psz_text));
- combo = new wxComboBox( this, -1, wxL2U(p_item->psz_value),
+ combo = new wxComboBox( this, -1, wxL2U(p_item->value.psz),
wxDefaultPosition, wxDefaultSize,
0, NULL, wxCB_READONLY | wxCB_SORT );
{
combo->Append( wxU(p_parser->psz_longname),
p_parser->psz_object_name );
- if( p_item->psz_value && !strcmp(p_item->psz_value,
+ if( p_item->value.psz && !strcmp(p_item->value.psz,
p_parser->psz_object_name) )
combo->SetValue( wxU(p_parser->psz_longname) );
}
module_t *p_parser;
label = new wxStaticText(this, -1, wxU(p_item->psz_text));
- combo = new wxComboBox( this, -1, wxL2U(p_item->psz_value),
+ combo = new wxComboBox( this, -1, wxL2U(p_item->value.psz),
wxDefaultPosition, wxDefaultSize,
0, NULL, wxCB_READONLY | wxCB_SORT );
continue;
module_config_t *p_config = p_parser->p_config;
+ module_config_t *p_end = p_config + p_parser->confsize;
+
if( p_config ) do
{
- /* Hack: required subcategory is stored in i_min */
+ /* Hack: required subcategory is stored in min.i */
if( p_config->i_type == CONFIG_SUBCATEGORY &&
- p_config->i_value == p_item->i_min )
+ p_config->value.i == p_item->min.i )
{
combo->Append( wxU(p_parser->psz_longname),
p_parser->psz_object_name );
- if( p_item->psz_value && !strcmp(p_item->psz_value,
+ if( p_item->value.psz && !strcmp(p_item->value.psz,
p_parser->psz_object_name) )
combo->SetValue( wxU(p_parser->psz_longname) );
}
- } while( p_config->i_type != CONFIG_HINT_END && p_config++ );
+ } while( p_config < p_end && p_config++ );
}
vlc_list_release( p_list );
label = new wxStaticText(this, -1, wxU(p_item->psz_text));
sizer->Add( label );
- text = new wxTextCtrl( this, -1, wxU(p_item->psz_value),
+ text = new wxTextCtrl( this, -1, wxU(p_item->value.psz),
wxDefaultPosition,wxSize( 300, 20 ) );
if( !strcmp( p_parser->psz_object_name, "main" ) )
continue;
- module_config_t *p_config;
+ module_config_t *p_config, *p_end;
if( p_parser->b_submodule )
p_config = ((module_t*)p_parser->p_parent)->p_config;
else
p_config = p_parser->p_config;
+ p_end = p_config + p_parser->confsize;
if( p_config ) do
{
- /* Hack: required subcategory is stored in i_min */
+ /* Hack: required subcategory is stored in min.i */
if( p_config->i_type == CONFIG_SUBCATEGORY &&
- p_config->i_value == p_item->i_min )
+ p_config->value.i == p_item->min.i )
{
moduleCheckBox *mc = new moduleCheckBox;
mc->checkbox = new wxCheckBox( this, wxID_HIGHEST,
:p_parser->psz_object_name );
pp_checkboxes.push_back( mc );
- if( p_item->psz_value &&
- strstr( p_item->psz_value, mc->psz_module ) )
+ if( p_item->value.psz &&
+ strstr( p_item->value.psz, mc->psz_module ) )
{
mc->checkbox->SetValue( true );
}
sizer->Add( mc->checkbox );
}
- } while( p_config->i_type != CONFIG_HINT_END && p_config++ );
+ } while( p_config < p_end && p_config++ );
}
vlc_list_release( p_list );
label = new wxStaticText(this, -1, wxU(p_item->psz_text));
sizer->Add( label, 1, wxALIGN_CENTER_VERTICAL | wxALL, 5 );
textctrl = new wxTextCtrl( this, -1,
- wxL2U(p_item->psz_value),
+ wxL2U(p_item->value.psz),
wxDefaultPosition,
wxDefaultSize,
wxTE_PROCESS_ENTER);
wxWindow *parent )
: ConfigControl( p_this, p_item, parent )
{
- psz_default_value = p_item->psz_value;
+ psz_default_value = p_item->value.psz;
if( psz_default_value ) psz_default_value = strdup( psz_default_value );
label = new wxStaticText(this, -1, wxU(p_item->psz_text));
wxU(p_item->ppsz_list_text[i_index]) :
wxL2U(p_item->ppsz_list[i_index]) );
combo->SetClientData( i_index, (void *)p_item->ppsz_list[i_index] );
- if( ( p_item->psz_value &&
- !strcmp( p_item->psz_value, p_item->ppsz_list[i_index] ) ) ||
- ( !p_item->psz_value && !*p_item->ppsz_list[i_index] ) )
+ if( ( p_item->value.psz &&
+ !strcmp( p_item->value.psz, p_item->ppsz_list[i_index] ) ) ||
+ ( !p_item->value.psz && !*p_item->ppsz_list[i_index] ) )
{
combo->SetSelection( i_index );
combo->SetValue( ( p_item->ppsz_list_text &&
}
}
- if( p_item->psz_value && !b_found )
+ if( p_item->value.psz && !b_found )
{
/* Add custom entry to list */
- combo->Append( wxL2U(p_item->psz_value) );
+ combo->Append( wxL2U(p_item->value.psz) );
combo->SetClientData( i_index, (void *)psz_default_value );
combo->SetSelection( i_index );
- combo->SetValue( wxL2U(p_item->psz_value) );
+ combo->SetValue( wxL2U(p_item->value.psz) );
}
}
label = new wxStaticText(this, -1, wxU(p_item->psz_text));
sizer->Add( label, 1, wxALIGN_CENTER_VERTICAL | wxALL, 5 );
textctrl = new wxTextCtrl( this, -1,
- wxL2U(p_item->psz_value),
+ wxL2U(p_item->value.psz),
wxDefaultPosition,
wxDefaultSize,
wxTE_PROCESS_ENTER);
label = new wxStaticText(this, -1, wxU(p_item->psz_text));
spin = new wxSpinCtrl( this, -1,
wxString::Format(wxT("%d"),
- p_item->i_value),
+ p_item->value.i),
wxDefaultPosition, wxDefaultSize,
wxSP_ARROW_KEYS,
- -100000000, 100000000, p_item->i_value);
+ -100000000, 100000000, p_item->value.i);
spin->SetToolTip( wxU(p_item->psz_longtext) );
sizer->Add( label, 1, wxALIGN_CENTER_VERTICAL | wxALL, 5 );
sizer->Add( spin, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5 );
sizer->Layout();
this->SetSizerAndFit( sizer );
- i_value = p_item->i_value;
+ i_value = p_item->value.i;
}
IntegerConfigControl::~IntegerConfigControl()
p_item->pi_list[i_index]) );
}
combo->SetClientData( i_index, (void *)p_item->pi_list[i_index] );
- if( p_item->i_value == p_item->pi_list[i_index] )
+ if( p_item->value.i == p_item->pi_list[i_index] )
{
combo->SetSelection( i_index );
if( p_item->ppsz_list_text && p_item->ppsz_list_text[i_index] )
: ConfigControl( p_this, p_item, parent )
{
label = new wxStaticText(this, -1, wxU(p_item->psz_text));
- slider = new wxSlider( this, -1, p_item->i_value, p_item->i_min,
- p_item->i_max, wxDefaultPosition, wxDefaultSize,
+ slider = new wxSlider( this, -1, p_item->value.i, p_item->min.i,
+ p_item->max.i, wxDefaultPosition, wxDefaultSize,
wxSL_LABELS | wxSL_HORIZONTAL );
slider->SetToolTip( wxU(p_item->psz_longtext) );
sizer->Add( label, 1, wxALIGN_CENTER_VERTICAL | wxALL, 5 );
label = new wxStaticText(this, -1, wxU(p_item->psz_text));
textctrl = new wxTextCtrl( this, -1,
wxString::Format(wxT("%f"),
- p_item->f_value),
+ p_item->value.f),
wxDefaultPosition, wxDefaultSize,
wxTE_PROCESS_ENTER );
textctrl->SetToolTip( wxU(p_item->psz_longtext) );
: ConfigControl( p_this, p_item, parent )
{
checkbox = new wxCheckBox( this, -1, wxU(p_item->psz_text) );
- if( p_item->i_value ) checkbox->SetValue(TRUE);
+ if( p_item->value.i ) checkbox->SetValue(TRUE);
checkbox->SetToolTip( wxU(p_item->psz_longtext) );
sizer->Add( checkbox, 0, wxALL, 5 );
sizer->Layout();