From: Antoine Cellerier Date: Sun, 11 Nov 2007 20:32:43 +0000 (+0000) Subject: Add argument to module_GetModulesNamesForCapability (and services_discovery_GetServic... X-Git-Tag: 0.9.0-test0~4628 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=07c7cdcb2194cc5aa12b906f1489c9c4a76ef473;p=vlc Add argument to module_GetModulesNamesForCapability (and services_discovery_GetServicesNames) to also get the longnames. --- diff --git a/include/vlc_modules.h b/include/vlc_modules.h index ccecc3f8e5..70d0373398 100644 --- a/include/vlc_modules.h +++ b/include/vlc_modules.h @@ -116,10 +116,11 @@ VLC_EXPORT( module_t *, __module_FindName, ( vlc_object_t *, const char * ) ); /* Return a NULL terminated array with the names of the modules that have a * certain capability. * Free after uses both the string and the table. */ - #define module_GetModulesNamesForCapability(a,b) \ - __module_GetModulesNamesForCapability(VLC_OBJECT(a),b) + #define module_GetModulesNamesForCapability(a,b,c) \ + __module_GetModulesNamesForCapability(VLC_OBJECT(a),b,c) VLC_EXPORT(char **, __module_GetModulesNamesForCapability, - ( vlc_object_t *p_this, const char * psz_capability ) ); + ( vlc_object_t *p_this, const char * psz_capability, + char ***psz_longname ) ); VLC_EXPORT( module_t *, vlc_module_create, ( vlc_object_t * ) ); VLC_EXPORT( module_t *, vlc_submodule_create, ( module_t * ) ); diff --git a/include/vlc_services_discovery.h b/include/vlc_services_discovery.h index 1b0cde073d..b2eb0a586d 100644 --- a/include/vlc_services_discovery.h +++ b/include/vlc_services_discovery.h @@ -62,7 +62,7 @@ struct services_discovery_t /* Get the services discovery modules names to use in Create(), in a null * terminated string array. Array and string must be freed after use. */ -VLC_EXPORT( char **, services_discovery_GetServicesNames, ( vlc_object_t * p_super ) ); +VLC_EXPORT( char **, services_discovery_GetServicesNames, ( vlc_object_t * p_super, char ***pppsz_longnames ) ); /* Creation of a service_discovery object */ VLC_EXPORT( services_discovery_t *, services_discovery_Create, ( vlc_object_t * p_super, const char * psz_service_name ) ); diff --git a/src/modules/modules.c b/src/modules/modules.c index 83dfb94437..bc51f8523f 100644 --- a/src/modules/modules.c +++ b/src/modules/modules.c @@ -779,7 +779,8 @@ vlc_bool_t __module_Exists( vlc_object_t *p_this, const char * psz_name ) * Free after uses both the string and the table. *****************************************************************************/ char ** __module_GetModulesNamesForCapability( vlc_object_t *p_this, - const char * psz_capability ) + const char * psz_capability, + char ***pppsz_longname ) { vlc_list_t *p_list; int i, j, count = 0; @@ -795,6 +796,8 @@ char ** __module_GetModulesNamesForCapability( vlc_object_t *p_this, count++; } psz_ret = malloc( sizeof(char*) * (count+1) ); + if( pppsz_longname ) + *pppsz_longname = malloc( sizeof(char*) * (count+1) ); j = 0; for( i = 0 ; i < p_list->i_count; i++) { @@ -810,6 +813,8 @@ char ** __module_GetModulesNamesForCapability( vlc_object_t *p_this, } psz_ret[j] = strdup( k>=0?p_module->pp_shortcuts[k] :p_module->psz_object_name ); + if( pppsz_longname ) + (*pppsz_longname)[j] = strdup( module_GetName( p_module, VLC_TRUE ) ); j++; } } diff --git a/src/playlist/services_discovery.c b/src/playlist/services_discovery.c index 2dc578681d..64815981b3 100644 --- a/src/playlist/services_discovery.c +++ b/src/playlist/services_discovery.c @@ -37,9 +37,11 @@ static void RunSD( services_discovery_t *p_sd ); /*********************************************************************** * GetServicesNames ***********************************************************************/ -char ** services_discovery_GetServicesNames( vlc_object_t * p_super ) +char ** services_discovery_GetServicesNames( vlc_object_t * p_super, + char ***pppsz_longnames ) { - return module_GetModulesNamesForCapability( p_super, "services_discovery" ); + return module_GetModulesNamesForCapability( p_super, "services_discovery", + pppsz_longnames ); } /***********************************************************************