]> git.sesse.net Git - vlc/blobdiff - src/modules/modules.h
Fix live detection on win32
[vlc] / src / modules / modules.h
index 1b86faa9423232231e9b0f471850a37d06c9302d..cc2207bbb9325ff7d3c8777b6c0e689ed8e28eca 100644 (file)
@@ -2,7 +2,7 @@
  * modules.h : Module management functions.
  *****************************************************************************
  * Copyright (C) 2001 the VideoLAN team
- * $Id: modules.h 17958 2006-11-22 17:13:24Z courmisch $
+ * $Id$
  *
  * Authors: Samuel Hocevar <sam@zoy.org>
  *
  * 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
 
@@ -34,18 +42,14 @@ struct module_bank_t
     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;
-    vlc_bool_t       b_plugins;
+    bool             b_builtins;
+    bool             b_plugins;
 
     /* Plugins cache */
-    vlc_bool_t     b_cache;
-    vlc_bool_t     b_cache_dirty;
-    vlc_bool_t     b_cache_delete;
+    bool             b_cache;
+    bool             b_cache_dirty;
+    bool             b_cache_delete;
 
     int            i_cache;
     module_cache_t **pp_cache;
@@ -63,11 +67,11 @@ struct module_cache_t
     char       *psz_file;
     int64_t    i_time;
     int64_t    i_size;
-    vlc_bool_t b_junk;
+    bool b_junk;
 
     /* Optional extra data */
     module_t *p_module;
-    vlc_bool_t b_used;
+    bool b_used;
 };
 
 
@@ -89,7 +93,6 @@ typedef void * module_handle_t;
 typedef shl_t module_handle_t;
 #endif
 
-#if 0
 /**
  * Internal module descriptor
  */
@@ -100,25 +103,20 @@ struct module_t
     /*
      * Variables set by the module to identify itself
      */
-    const char *psz_shortname;                              /**< Module name */
-    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 */
+    char *psz_shortname;                              /**< Module name */
+    char *psz_longname;                   /**< Module descriptive name */
+    char *psz_help;        /**< Long help string for "special" modules */
 
     /** Shortcuts to the module */
-    const char *pp_shortcuts[ MODULE_SHORTCUT_MAX ];
+    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_unloadable;                        /**< Can we be dlclosed? */
-    vlc_bool_t b_reentrant;                           /**< Are we reentrant? */
-    vlc_bool_t b_submodule;                        /**< Is this a submodule? */
+    bool b_unloadable;                        /**< Can we be dlclosed? */
+    bool b_reentrant;                           /**< Are we reentrant? */
+    bool b_submodule;                        /**< Is this a submodule? */
 
     /* Callbacks */
     int  ( * pf_activate )   ( vlc_object_t * );
@@ -139,15 +137,9 @@ struct module_t
     module_handle_t     handle;                             /* Unique handle */
     char *              psz_filename;                     /* Module filename */
 
-    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
+    bool          b_builtin;  /* Set to true if the module is built in */
+    bool          b_loaded;        /* Set to true if the dll is loaded */
 };
-#endif
 
 
 #define module_InitBank(a)     __module_InitBank(VLC_OBJECT(a))
@@ -160,3 +152,16 @@ void  __module_LoadPlugins     ( vlc_object_t * );
 void  __module_EndBank         ( vlc_object_t * );
 #define module_ResetBank(a)    __module_ResetBank(VLC_OBJECT(a))
 void  __module_ResetBank       ( vlc_object_t * );
+
+/* Low-level OS-dependent 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 */