X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fmodules_inner.h;h=b41e8126d0c55d6e80a1b1383eb3122c2444c483;hb=583c6553f6761421260d86bbc21b5b3169c04319;hp=5e35ed8829e6eb31a13001bde839688fe2317253;hpb=3bb7a5371e29b608e29851b9f1366a12a3505afe;p=vlc diff --git a/include/modules_inner.h b/include/modules_inner.h index 5e35ed8829..b41e8126d0 100644 --- a/include/modules_inner.h +++ b/include/modules_inner.h @@ -46,17 +46,31 @@ /* I can't believe I need to do this to change « foo » to « "foo" » */ #define UGLY_KLUDGE( z ) NASTY_CROCK( z ) #define NASTY_CROCK( z ) #z -/* And I need to do _this_ to change « foo bar » to « foo_inner_bar » ! */ +/* And I need to do _this_ to change « foo bar » to « module_foo_bar » ! */ #define AWFUL_BRITTLE( y, z ) CRUDE_HACK( y, z ) #define CRUDE_HACK( y, z ) module_##y##_##z -/* Also, I need to do this to change « blah » to « "VLC_MODULE_foo_blah" » */ -#define MODULE_STRING UGLY_KLUDGE( MODULE_NAME ) -#define MODULE_VAR( z ) "VLC_MODULE_" UGLY_KLUDGE( MODULE_NAME ) "_" #z +#define MODULE_VAR( z ) "VLC_MODULE_" #z /* If the module is built-in, then we need to define foo_InitModule instead * of InitModule. Same for Activate- and DeactivateModule. */ -#define MODULE_FUNC( function ) AWFUL_BRITTLE( MODULE_NAME, function ) +#ifdef BUILTIN +# define _M( function ) AWFUL_BRITTLE( MODULE_NAME, function ) +# define MODULE_INIT \ + int AWFUL_BRITTLE( MODULE_NAME, InitModule ) ( module_t *p_module ) +# define MODULE_ACTIVATE \ + int AWFUL_BRITTLE( MODULE_NAME, ActivateModule ) ( module_t *p_module ) +# define MODULE_DEACTIVATE \ + int AWFUL_BRITTLE( MODULE_NAME, DeactivateModule )( module_t *p_module ) +#else +# define _M( function ) function +# define MODULE_INIT int InitModule ( module_t *p_module ) +# define MODULE_ACTIVATE int ActivateModule ( module_t *p_module ) +# define MODULE_DEACTIVATE int DeactivateModule ( module_t *p_module ) +#endif + +/* Now the real stuff */ +#define MODULE_STRING UGLY_KLUDGE( MODULE_NAME ) /***************************************************************************** * Macros used to build the configuration structure.