X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fmodules_inner.h;h=fc36a08162a7ad18a9c19d1954c497e43471c21e;hb=79adc41babc05e9770fb33b2615cea7e5de1ec6c;hp=de60221bacb3830f6eaaa8ef74b2e7970561abc4;hpb=e53ac062b4ad2228ce69d11c481a0f0f17368159;p=vlc diff --git a/include/modules_inner.h b/include/modules_inner.h index de60221bac..fc36a08162 100644 --- a/include/modules_inner.h +++ b/include/modules_inner.h @@ -1,8 +1,8 @@ /***************************************************************************** * modules_inner.h : Macros used from within a module. ***************************************************************************** - * Copyright (C) 2001 VideoLAN - * $Id: modules_inner.h,v 1.40 2003/11/05 00:39:16 gbazin Exp $ + * Copyright (C) 2001 the VideoLAN team + * $Id$ * * Authors: Samuel Hocevar * @@ -58,7 +58,7 @@ # define DECLARE_SYMBOLS struct _u_n_u_s_e_d_ # define STORE_SYMBOLS struct _u_n_u_s_e_d_ #elif defined( __PLUGIN__ ) -# define E_( function ) function +# define E_( function ) CONCATENATE( function, MODULE_SYMBOL ) # define __VLC_SYMBOL( symbol ) CONCATENATE( symbol, MODULE_SYMBOL ) # define DECLARE_SYMBOLS module_symbols_t* p_symbols # define STORE_SYMBOLS p_symbols = p_module->p_symbols @@ -78,6 +78,12 @@ # define EXTERN_SYMBOL #endif +#if defined( USE_DLL ) +# define IMPORT_SYMBOL __declspec(dllimport) +#else +# define IMPORT_SYMBOL +#endif + #define MODULE_STRING STRINGIFY( MODULE_NAME ) /* @@ -92,12 +98,14 @@ __VLC_SYMBOL(vlc_entry) ( module_t *p_module ) \ { \ int i_shortcut = 1, i_config = -1; \ - module_config_t p_config[ 130 ]; \ + module_config_t *p_config = NULL; \ + static module_config_t config_end = {CONFIG_HINT_END}; \ STORE_SYMBOLS; \ p_module->b_submodule = VLC_FALSE; \ p_module->b_unloadable = VLC_TRUE; \ p_module->b_reentrant = VLC_TRUE; \ p_module->psz_object_name = MODULE_STRING; \ + p_module->psz_shortname = NULL; \ p_module->psz_longname = MODULE_STRING; \ p_module->pp_shortcuts[ 0 ] = MODULE_STRING; \ p_module->i_cpu = 0; \ @@ -112,11 +120,13 @@ #define vlc_module_end( ) \ p_submodule->pp_shortcuts[ i_shortcut ] = NULL; \ } \ + if( p_config ) \ { \ - static module_config_t tmp = { CONFIG_HINT_END }; \ - p_config[ ++i_config ] = tmp; \ + p_config[ ++i_config ] = config_end; \ + config_Duplicate( p_module, p_config ); \ + free( p_config ); \ } \ - config_Duplicate( p_module, p_config ); \ + else config_Duplicate( p_module, &config_end ); \ if( p_module->p_config == NULL ) \ { \ return VLC_EGENERIC; \ @@ -139,6 +149,7 @@ p_module->pp_shortcuts[ i_shortcut ]; \ } \ p_submodule->psz_object_name = p_module->psz_object_name; \ + p_submodule->psz_shortname = p_module->psz_shortname; \ p_submodule->psz_longname = p_module->psz_longname; \ p_submodule->psz_program = p_module->psz_program; \ p_submodule->psz_capability = p_module->psz_capability; \ @@ -154,6 +165,9 @@ p_submodule->pp_shortcuts[ i_shortcut ] = shortcut; \ i_shortcut++ +#define set_shortname( desc ) \ + p_submodule->psz_shortname = desc + #define set_description( desc ) \ p_submodule->psz_longname = desc