* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
+#if defined(__PLUGIN__) || defined(__BUILTIN__) || !defined(__LIBVLC__)
+# error This header file can only be included from LibVLC.
+#endif
+
+#ifndef __LIBVLC_MODULES_H
+# define __LIBVLC_MODULES_H 1
+
+
/* Number of tries before we unload an unused module */
#define MODULE_HIDE_DELAY 50
VLC_COMMON_MEMBERS
int i_usage;
-#ifndef HAVE_SHARED_LIBVLC
- module_symbols_t symbols;
-#endif
vlc_bool_t b_main;
vlc_bool_t b_builtins;
};
-#if 0
#define MODULE_SHORTCUT_MAX 50
/* The module handle type. */
const char *psz_longname; /**< Module descriptive name */
const char *psz_help; /**< Long help string for "special" modules */
- /*
- * Variables set by the module to tell us what it can do
- */
- const char *psz_program; /**< Program name which will activate the module */
-
/** Shortcuts to the module */
const char *pp_shortcuts[ MODULE_SHORTCUT_MAX ];
- const char *psz_capability; /**< Capability */
+ char *psz_capability; /**< Capability */
int i_score; /**< Score for the capability */
uint32_t i_cpu; /**< Required CPU capabilities */
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 */
-
-#ifndef HAVE_SHARED_LIBVLC
- /* Legacy symbols table */
- module_symbols_t *p_symbols;
-#endif
};
-#endif
#define module_InitBank(a) __module_InitBank(VLC_OBJECT(a))
void __module_EndBank ( vlc_object_t * );
#define module_ResetBank(a) __module_ResetBank(VLC_OBJECT(a))
void __module_ResetBank ( vlc_object_t * );
+
+/* Low-level OS-dependant handler */
+int module_Call (module_t *);
+int module_Load (vlc_object_t *, const char *, module_handle_t *);
+void module_Unload (module_handle_t);
+
+/* Plugins cache */
+void CacheMerge (vlc_object_t *, module_t *, module_t *);
+void CacheLoad (vlc_object_t * );
+void CacheSave (vlc_object_t * );
+module_cache_t * CacheFind (const char *, int64_t, int64_t);
+
+#endif /* !__LIBVLC_MODULES_H */