Commit a3e70b4e authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

Add module_find_by_short() (internal only)

parent 4a5af94e
...@@ -146,6 +146,7 @@ extern char *psz_vlcpath; ...@@ -146,6 +146,7 @@ extern char *psz_vlcpath;
* Free after uses both the string and the table. */ * Free after uses both the string and the table. */
VLC_EXPORT(char **, module_GetModulesNamesForCapability, VLC_EXPORT(char **, module_GetModulesNamesForCapability,
( const char * psz_capability, char ***psz_longname ) ); ( const char * psz_capability, char ***psz_longname ) );
module_t *module_find_by_shortcut (const char *psz_shortcut);
/** /**
* Private LibVLC data for each object. * Private LibVLC data for each object.
......
...@@ -689,7 +689,6 @@ void __module_unneed( vlc_object_t * p_this, module_t * p_module ) ...@@ -689,7 +689,6 @@ void __module_unneed( vlc_object_t * p_this, module_t * p_module )
/** /**
* Get a pointer to a module_t given it's name. * Get a pointer to a module_t given it's name.
* *
* \param p_this vlc object structure
* \param psz_name the name of the module * \param psz_name the name of the module
* \return a pointer to the module or NULL in case of a failure * \return a pointer to the module or NULL in case of a failure
*/ */
...@@ -718,7 +717,6 @@ module_t *module_find( const char * psz_name ) ...@@ -718,7 +717,6 @@ module_t *module_find( const char * psz_name )
/** /**
* Tell if a module exists and release it in thic case * Tell if a module exists and release it in thic case
* *
* \param p_this vlc object structure
* \param psz_name th name of the module * \param psz_name th name of the module
* \return TRUE if the module exists * \return TRUE if the module exists
*/ */
...@@ -730,6 +728,41 @@ bool module_exists (const char * psz_name) ...@@ -730,6 +728,41 @@ bool module_exists (const char * psz_name)
return p_module != NULL; return p_module != NULL;
} }
/**
* Get a pointer to a module_t that matches a shortcut.
* This is a temporary hack for SD. Do not re-use (generally multiple modules
* can have the same shortcut, so this is *broken* - use module_need()!).
*
* \param psz_shortcut shortcut of the module
* \param psz_cap capability of the module
* \return a pointer to the module or NULL in case of a failure
*/
module_t *module_find_by_shortcut (const char *psz_shortcut)
{
module_t **list, *module;
list = module_list_get (NULL);
if (!list)
return NULL;
for (size_t i = 0; (module = list[i]) != NULL; i++)
{
for (size_t j = 0;
(module->pp_shortcuts[j] != NULL) && (j < MODULE_SHORTCUT_MAX);
j++)
{
if (!strcmp (module->pp_shortcuts[j], psz_shortcut))
{
module_hold (module);
goto out;
}
}
}
out:
module_list_free (list);
return module;
}
/** /**
* GetModuleNamesForCapability * GetModuleNamesForCapability
* *
......
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