Commit ed246608 authored by Rémi Duraffort's avatar Rémi Duraffort

plugins: allow to set more than one shortcut in on shot.

This is faster as we can now alloc the right size for the shortcuts array.
parent 5f6a8d74
...@@ -195,9 +195,9 @@ enum vlc_module_properties ...@@ -195,9 +195,9 @@ enum vlc_module_properties
if (vlc_plugin_set (p_module, NULL, VLC_SUBMODULE_CREATE, &p_submodule)) \ if (vlc_plugin_set (p_module, NULL, VLC_SUBMODULE_CREATE, &p_submodule)) \
goto error; goto error;
#define add_shortcut( shortcut ) \ #define add_shortcut( ... ) \
if (vlc_module_set (p_submodule, VLC_MODULE_SHORTCUT, \ if (vlc_module_set (p_submodule, VLC_MODULE_SHORTCUT, \
(const char *)(shortcut))) \ sizeof((const char*[]){__VA_ARGS__})/sizeof(const char*), __VA_ARGS__)) \
goto error; goto error;
#define set_shortname( shortname ) \ #define set_shortname( shortname ) \
......
...@@ -181,9 +181,16 @@ int vlc_plugin_set (module_t *module, module_config_t *item, int propid, ...) ...@@ -181,9 +181,16 @@ int vlc_plugin_set (module_t *module, module_config_t *item, int propid, ...)
case VLC_MODULE_SHORTCUT: case VLC_MODULE_SHORTCUT:
{ {
const char *psz_new = va_arg (ap, char*); unsigned i_shortcuts = va_arg (ap, unsigned);
module->pp_shortcuts = realloc (module->pp_shortcuts, sizeof( char ** ) * (module->i_shortcuts + 1)); unsigned index = module->i_shortcuts;
module->pp_shortcuts[module->i_shortcuts++] = psz_new; module->i_shortcuts += i_shortcuts;
module->pp_shortcuts = realloc (module->pp_shortcuts, sizeof( char ** ) * module->i_shortcuts);
for (; index < module->i_shortcuts; index++)
{
const char *psz_new = va_arg (ap, const char*);
module->pp_shortcuts[index] = psz_new;
}
break; break;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment