]> git.sesse.net Git - vlc/blobdiff - include/modules_inner.h
* Ported Glide and MGA plugins to the new module API. MGA never worked,
[vlc] / include / modules_inner.h
index 5e35ed8829e6eb31a13001bde839688fe2317253..b41e8126d0c55d6e80a1b1383eb3122c2444c483 100644 (file)
 /* 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.