Further hide module_t layout from plugins
[vlc.git] / include / vlc_modules.h
index bdcf345..c8c1acd 100644 (file)
@@ -95,10 +95,10 @@ struct module_t
     vlc_bool_t          b_builtin;  /* Set to true if the module is built in */
     vlc_bool_t          b_loaded;        /* Set to true if the dll is loaded */
 
-    /*
-     * Symbol table we send to the module so that it can access vlc symbols
-     */
+#ifndef HAVE_SHARED_LIBVLC
+    /* Legacy symbols table */
     module_symbols_t *p_symbols;
+#endif
 };
 
 /*****************************************************************************
@@ -110,3 +110,26 @@ VLC_EXPORT( module_t *, __module_Need, ( vlc_object_t *, const char *, const cha
 VLC_EXPORT( void, __module_Unneed, ( vlc_object_t *, module_t * ) );
 #define module_Exists(a,b) __module_Exists(VLC_OBJECT(a),b)
 VLC_EXPORT( vlc_bool_t,  __module_Exists, ( vlc_object_t *, const char * ) );
+
+VLC_EXPORT( module_t *, vlc_module_create, ( vlc_object_t * ) );
+VLC_EXPORT( module_t *, vlc_submodule_create, ( module_t * ) );
+VLC_EXPORT( int, vlc_module_set, (module_t *module, int propid, void *value) );
+
+enum
+{
+    /* DO NOT EVER REMOVE, INSERT OR REPLACE ANY ITEM! It would break the ABI!
+     * Append new items at the end ONLY. */
+    VLC_MODULE_CPU_REQUIREMENT,
+    VLC_MODULE_SHORTCUT,
+    VLC_MODULE_SHORTNAME,
+    VLC_MODULE_DESCRIPTION,
+    VLC_MODULE_HELP,
+    VLC_MODULE_CAPABILITY,
+    VLC_MODULE_SCORE,
+    VLC_MODULE_PROGRAM,
+    VLC_MODULE_CB_OPEN,
+    VLC_MODULE_CB_CLOSE,
+    VLC_MODULE_UNLOADABLE,
+    VLC_MODULE_NAME
+};
+