From: RĂ©mi Denis-Courmont Date: Sun, 16 Dec 2007 10:28:24 +0000 (+0000) Subject: Some more vlc_config_* code X-Git-Tag: 0.9.0-test0~4080 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=eb2e4add4f3ed2f94fbb2ac3c81b67a8322a85c1;p=vlc Some more vlc_config_* code --- diff --git a/include/vlc_configuration.h b/include/vlc_configuration.h index 7f76f64f10..2baae3b64d 100644 --- a/include/vlc_configuration.h +++ b/include/vlc_configuration.h @@ -247,6 +247,7 @@ typedef enum vlc_config_properties } vlc_config_t; +VLC_EXPORT( module_config_t *, vlc_config_create, (module_t *, int type) ); VLC_EXPORT( int, vlc_config_set, (module_config_t *, vlc_config_t, ...) ); /***************************************************************************** @@ -367,7 +368,7 @@ VLC_EXPORT( int, vlc_config_set, (module_config_t *, vlc_config_t, ...) ); #define add_bool( name, v, p_callback, text, longtext, advc ) \ add_typename_inner( CONFIG_ITEM_BOOL, name, text, longtext, advc, p_callback ); \ - p_config[i_config].value.i = v + if (v) vlc_config_set (p_config + i_config, VLC_CONFIG_VALUE, (int)VLC_TRUE) /* For renamed option */ #define add_deprecated_alias( name ) \ diff --git a/src/modules/entry.c b/src/modules/entry.c index 01dae75647..a221483d29 100644 --- a/src/modules/entry.c +++ b/src/modules/entry.c @@ -142,6 +142,25 @@ int vlc_module_set (module_t *module, int propid, void *value) return 0; } +module_config_t *vlc_config_create (module_t *module, int type) +{ + unsigned confsize = module->confsize; + module_config_t *tab = module->p_config; + + if ((confsize & 0xf) == 0) + { + tab = realloc (tab, (confsize + 17) * sizeof (*tab)); + if (tab == NULL) + return NULL; + + module->p_config = tab; + } + module->confsize++; + + memset (tab + confsize, 0, sizeof (tab[confsize])); + return tab + confsize; +} + int vlc_config_set (module_config_t *restrict item, vlc_config_t id, ...) { int ret = -1;