* This file implements plugin (module) macros used to define a vlc module.
*/
-VLC_EXPORT( module_t *, vlc_module_create, ( vlc_object_t * ) );
-VLC_EXPORT( module_t *, vlc_submodule_create, ( module_t * ) );
-VLC_EXPORT( int, vlc_module_set, (module_t *module, int propid, ...) );
-VLC_EXPORT( module_config_t *, vlc_config_create, (module_t *, int type) );
-VLC_EXPORT( int, vlc_config_set, (module_config_t *, int, ...) );
+VLC_EXPORT( int, vlc_plugin_set, (module_t *, module_config_t *, int, ...) );
+
+#define vlc_module_set( mod, ... ) vlc_plugin_set ((mod), NULL, __VA_ARGS__)
+#define vlc_config_set( cfg, ... ) vlc_plugin_set (NULL, (cfg), __VA_ARGS__)
enum vlc_module_properties
{
+ VLC_SUBMODULE_CREATE,
+ VLC_CONFIG_CREATE,
+
/* DO NOT EVER REMOVE, INSERT OR REPLACE ANY ITEM! It would break the ABI!
* Append new items at the end ONLY. */
- VLC_MODULE_CPU_REQUIREMENT,
+ VLC_MODULE_CPU_REQUIREMENT=0x100,
VLC_MODULE_SHORTCUT,
- VLC_MODULE_SHORTNAME_NODOMAIN,
- VLC_MODULE_DESCRIPTION_NODOMAIN,
- VLC_MODULE_HELP_NODOMAIN,
VLC_MODULE_CAPABILITY,
VLC_MODULE_SCORE,
VLC_MODULE_CB_OPEN,
VLC_MODULE_SHORTNAME,
VLC_MODULE_DESCRIPTION,
VLC_MODULE_HELP,
-};
+ /* Insert new VLC_MODULE_* here */
-enum vlc_config_properties
-{
/* DO NOT EVER REMOVE, INSERT OR REPLACE ANY ITEM! It would break the ABI!
* Append new items at the end ONLY. */
-
- VLC_CONFIG_NAME,
+ VLC_CONFIG_NAME=0x1000,
/* command line name (args=const char *, vlc_callback_t) */
- VLC_CONFIG_DESC_NODOMAIN,
- /* description (args=const char *, const char *) */
-
VLC_CONFIG_VALUE,
/* actual value (args=int/double/const char *) */
VLC_CONFIG_SHORTCUT,
/* one-character (short) command line option name (args=char) */
- VLC_CONFIG_LIST_NODOMAIN,
- /* possible values list
- * (args=size_t, const <type> *, const char *const *) */
-
- VLC_CONFIG_ADD_ACTION_NODOMAIN,
- /* add value change callback (args=vlc_callback_t, const char *) */
-
VLC_CONFIG_OLDNAME,
/* former option name (args=const char *) */
VLC_CONFIG_ADD_ACTION,
/* add value change callback
* (args=const char *, vlc_callback_t, const char *) */
+
+ /* Insert new VLC_CONFIG_* here */
};
/*****************************************************************************
/**
* Current plugin ABI version
*/
-# define MODULE_SYMBOL 1_0_0d
-# define MODULE_SUFFIX "__1_0_0d"
+# define MODULE_SYMBOL 1_0_0e
+# define MODULE_SUFFIX "__1_0_0e"
/*****************************************************************************
* Add a few defines. You do not want to read this section. Really.
VLC_METADATA_EXPORTS
#define add_submodule( ) \
- p_submodule = vlc_submodule_create( p_module );
+ if (vlc_plugin_set (p_module, NULL, VLC_SUBMODULE_CREATE, &p_submodule)) \
+ goto error;
#define add_requirement( cap ) \
if (vlc_module_set (p_module, VLC_MODULE_CPU_REQUIREMENT, \
*****************************************************************************/
#define add_type_inner( type ) \
- p_config = vlc_config_create (p_module, type);
+ vlc_plugin_set (p_module, NULL, VLC_CONFIG_CREATE, (type), &p_config);
#define add_typedesc_inner( type, text, longtext ) \
add_type_inner( type ) \
#define add_module_cat( name, i_subcategory, value, p_callback, text, longtext, advc ) \
add_string_inner( CONFIG_ITEM_MODULE_CAT, name, text, longtext, advc, \
p_callback, value ) \
- p_config->min.i = i_subcategory /* gruik */;
+ change_integer_range (i_subcategory /* gruik */, 0);
#define add_module_list_cat( name, i_subcategory, value, p_callback, text, longtext, advc ) \
add_string_inner( CONFIG_ITEM_MODULE_LIST_CAT, name, text, longtext, \
advc, p_callback, value ) \
- p_config->min.i = i_subcategory /* gruik */;
+ change_integer_range (i_subcategory /* gruik */, 0);
#endif
#define add_integer( name, value, p_callback, text, longtext, advc ) \
(const char *const *)(list_text), \
(vlc_callback_t)(list_update_func));
-#define change_float_list( list, list_text, list_update_func ) \
- vlc_config_set (p_config, VLC_CONFIG_LIST, domain, \
- (size_t)(sizeof (list) / sizeof (float)), \
- (const float *)(list), \
- (const char *const *)(list_text), \
- (vlc_callback_t)(list_update_func));
-
#define change_integer_range( minv, maxv ) \
vlc_config_set (p_config, VLC_CONFIG_RANGE, (int)(minv), (int)(maxv));