#define CONFIG_ITEM_FLOAT 0x0060 /* Float option */
#define CONFIG_ITEM_DIRECTORY 0x0070 /* Directory option */
#define CONFIG_ITEM_KEY 0x0080 /* Hot key option */
-#define CONFIG_ITEM_MODULE_LIST 0x0090 /* Module option */
-#define CONFIG_ITEM_MODULE_LIST_CAT 0x00A0 /* Module option */
+#define CONFIG_ITEM_MODULE_CAT 0x0090 /* Module option */
+#define CONFIG_ITEM_MODULE_LIST 0x00A0 /* Module option */
+#define CONFIG_ITEM_MODULE_LIST_CAT 0x00B0 /* Module option */
#define CONFIG_ITEM 0x00F0
(i_config+11) * sizeof(module_config_t)); \
{ static module_config_t tmp = { CONFIG_ITEM_MODULE, psz_caps, name, '\0', text, longtext, psz_value }; p_config[ i_config ] = tmp; p_config[ i_config ].pf_callback = p_callback; p_config[i_config].b_advanced = advc; }
+#define add_module_cat( name, i_subcategory, psz_value, p_callback, text, longtext, advc ) \
+ i_config++; \
+ if(!(i_config%10)) p_config = (module_config_t* )realloc(p_config, \
+ (i_config+11) * sizeof(module_config_t)); \
+ { static module_config_t tmp = { CONFIG_ITEM_MODULE_CAT, NULL, name, '\0', text, longtext, psz_value, 0, 0.0, i_subcategory }; p_config[ i_config ] = tmp; p_config[ i_config ].pf_callback = p_callback; p_config[i_config].b_advanced = advc; }
#define add_module_list( name, psz_caps, psz_value, p_callback, text, longtext, advc ) \
i_config++; \
vlc_module_begin();
set_description( _("HTTP remote control interface") );
set_category( CAT_INTERFACE );
- set_subcategory( SUBCAT_INTERFACE_CONTROL );
+ set_subcategory( SUBCAT_INTERFACE_GENERAL );
add_string ( "http-host", NULL, NULL, HOST_TEXT, HOST_LONGTEXT, VLC_TRUE );
add_string ( "http-src", NULL, NULL, SRC_TEXT, SRC_LONGTEXT, VLC_TRUE );
add_string ( "http-intf-cert", NULL, NULL, CERT_TEXT, CERT_LONGTEXT, VLC_TRUE );
int i_socket;
char *psz_unix_path;
vlc_bool_t b_extend;
-
+
#ifdef WIN32
HANDLE hConsoleIn;
vlc_bool_t b_quiet;
"You can set the address and port the interface will bind to." )
#define EXTEND_TEXT N_("Extended help")
#define EXTEND_LONGTEXT N_("List additional commands.")
-
#ifdef WIN32
#define QUIET_TEXT N_("Do not open a DOS command box interface")
vlc_module_begin();
set_category( CAT_INTERFACE );
- set_subcategory( SUBCAT_INTERFACE_CONTROL );
+ set_subcategory( SUBCAT_INTERFACE_GENERAL );
set_description( _("Remote control interface") );
add_bool( "rc-show-pos", 0, NULL, POS_TEXT, POS_LONGTEXT, VLC_TRUE );
#ifdef HAVE_ISATTY
int i_socket;
char *psz_unix_path;
vlc_bool_t b_extend;
-
+
#ifdef WIN32
HANDLE hConsoleIn;
#endif
"You can set the address and port the interface will bind to." )
#define EXTEND_TEXT N_("Extended help")
#define EXTEND_LONGTEXT N_("List additional commands.")
-
#ifdef WIN32
#define QUIET_TEXT N_("Do not open a DOS command box interface")
vlc_module_begin();
set_description( _("Real time control interface") );
set_category( CAT_INTERFACE );
- set_subcategory( SUBCAT_INTERFACE_CONTROL );
+ set_subcategory( SUBCAT_INTERFACE_GENERAL );
add_bool( "rtci-show-pos", 0, NULL, POS_TEXT, POS_LONGTEXT, VLC_TRUE );
#ifdef HAVE_ISATTY
add_bool( "rtci-fake-tty", 0, NULL, TTY_TEXT, TTY_LONGTEXT, VLC_TRUE );
#define TELNETPWD_LONGTEXT N_( "Default to admin" )
vlc_module_begin();
+ set_category( CAT_INTERFACE );
+ set_subcategory( SUBCAT_INTERFACE_GENERAL );
add_integer( "telnet-port", 4212, NULL, TELNETPORT_TEXT,
TELNETPORT_LONGTEXT, VLC_TRUE );
add_string( "telnet-password", "admin", NULL, TELNETPWD_TEXT,
case CONFIG_ITEM_MODULE:
p_control = new ModuleConfigControl( p_this, p_item, parent );
break;
+ case CONFIG_ITEM_MODULE_CAT:
+ p_control = new ModuleCatConfigControl( p_this, p_item, parent );
+ break;
case CONFIG_ITEM_MODULE_LIST_CAT:
p_control = new ModuleListCatConfigControl( p_this, p_item, parent );
break;
this->SetSizerAndFit( sizer );
}
+ModuleCatConfigControl::~ModuleCatConfigControl()
+{
+ ;
+}
+
+wxString ModuleCatConfigControl::GetPszValue()
+{
+ return wxU( (char *)combo->GetClientData( combo->GetSelection() ));
+}
+
+/*****************************************************************************
+ * ModuleCatConfigControl implementation
+ *****************************************************************************/
+ModuleCatConfigControl::ModuleCatConfigControl( vlc_object_t *p_this,
+ module_config_t *p_item,
+ wxWindow *parent )
+ : ConfigControl( p_this, p_item, parent )
+{
+ vlc_list_t *p_list;
+ module_t *p_parser;
+
+ label = new wxStaticText(this, -1, wxU(p_item->psz_text));
+ combo = new wxComboBox( this, -1, wxL2U(p_item->psz_value),
+ wxDefaultPosition, wxDefaultSize,
+ 0, NULL, wxCB_READONLY | wxCB_SORT );
+
+ combo->Append( wxU(_("Default")), (void *)NULL );
+ combo->SetSelection( 0 );
+
+ /* build a list of available modules */
+ p_list = vlc_list_find( p_this, VLC_OBJECT_MODULE, FIND_ANYWHERE );
+ for( int i_index = 0; i_index < p_list->i_count; i_index++ )
+ {
+ p_parser = (module_t *)p_list->p_values[i_index].p_object ;
+
+ if( !strcmp( p_parser->psz_object_name, "main" ) )
+ continue;
+
+ module_config_t *p_config = p_parser->p_config;
+ if( p_config ) do
+ {
+ /* Hack: required subcategory is stored in i_min */
+ if( p_config->i_type == CONFIG_SUBCATEGORY &&
+ p_config->i_value == p_item->i_min )
+ {
+ combo->Append( wxU(p_parser->psz_longname),
+ p_parser->psz_object_name );
+ if( p_item->psz_value && !strcmp(p_item->psz_value,
+ p_parser->psz_object_name) )
+ combo->SetValue( wxU(p_parser->psz_longname) );
+ }
+ } while( p_config->i_type != CONFIG_HINT_END && p_config++ );
+ }
+ vlc_list_release( p_list );
+
+ combo->SetToolTip( wxU(p_item->psz_longtext) );
+ sizer->Add( label, 1, wxALIGN_CENTER_VERTICAL | wxALL, 5 );
+ sizer->Add( combo, 1, wxALIGN_CENTER_VERTICAL | wxALL, 5 );
+ sizer->Layout();
+ this->SetSizerAndFit( sizer );
+}
+
ModuleConfigControl::~ModuleConfigControl()
{
;
return wxU( (char *)combo->GetClientData( combo->GetSelection() ));
}
+
/*****************************************************************************
* ModuleListCatonfigControl implementation
*****************************************************************************/
char *psz_module;
};
+class ModuleCatConfigControl: public ConfigControl
+{
+public:
+ ModuleCatConfigControl( vlc_object_t *, module_config_t *, wxWindow * );
+ ~ModuleCatConfigControl();
+ virtual wxString GetPszValue();
+private:
+ wxComboBox *combo;
+};
+
+
class ModuleListCatConfigControl: public ConfigControl
{
public:
std::vector<moduleCheckBox *> pp_checkboxes;
void OnUpdate( wxCommandEvent& );
-
+
wxTextCtrl *text;
DECLARE_EVENT_TABLE()
};
#define COLOUR_LONGTEXT ("Colour used to display text in the xosd output")
vlc_module_begin();
+ set_category( CAT_INTERFACE );
+ set_subcategory( SUBCAT_INTERFACE_CONTROL );
set_description( _("XOSD interface") );
add_bool( "xosd-position", 1, NULL, POSITION_TEXT, POSITION_LONGTEXT, VLC_TRUE );
add_integer( "xosd-text-offset", 30, NULL, TXT_OFS_TEXT, TXT_OFS_LONGTEXT, VLC_TRUE );
set_subcategory( SUBCAT_INTERFACE_GENERAL );
set_section ( N_("Interface module" ), NULL );
- add_module( "intf", "interface", NULL, NULL, INTF_TEXT,
+ add_module_cat( "intf", SUBCAT_INTERFACE_GENERAL, NULL, NULL, INTF_TEXT,
INTF_LONGTEXT, VLC_FALSE );
change_short('I');
(p_config->i_type!=CONFIG_ITEM_DIRECTORY) &&
(p_config->i_type!=CONFIG_ITEM_MODULE_LIST) &&
(p_config->i_type!=CONFIG_ITEM_MODULE_LIST_CAT) &&
+ (p_config->i_type!=CONFIG_ITEM_MODULE_CAT) &&
(p_config->i_type!=CONFIG_ITEM_MODULE) )
{
msg_Err( p_this, "option %s does not refer to a string", psz_name );