Include modules.h whenever needed
authorRémi Denis-Courmont <rem@videolan.org>
Sat, 14 Apr 2007 19:00:42 +0000 (19:00 +0000)
committerRémi Denis-Courmont <rem@videolan.org>
Sat, 14 Apr 2007 19:00:42 +0000 (19:00 +0000)
src/input/decoder.c
src/interface/interface.c
src/libvlc-common.c
src/misc/objects.c
src/modules/configuration.c
src/modules/entry.c
src/modules/modules.h
src/video_output/video_output.c

index 61d71e8..37192a4 100644 (file)
@@ -171,8 +171,7 @@ decoder_t *input_DecoderNew( input_thread_t *p_input,
         if( vlc_thread_create( p_dec, "decoder", DecoderThread,
                                i_priority, VLC_FALSE ) )
         {
-            msg_Err( p_dec, "cannot spawn decoder thread \"%s\"",
-                             p_dec->p_module->psz_object_name );
+            msg_Err( p_dec, "cannot spawn decoder thread" );
             module_Unneed( p_dec, p_dec->p_module );
             DeleteDecoder( p_dec );
             vlc_object_destroy( p_dec );
index 490d4c0..2fc988d 100644 (file)
@@ -42,6 +42,7 @@
 #include <vlc_vout.h>
 
 #include "vlc_interface.h"
+#include "modules/modules.h" // Gruik!
 
 #ifdef __APPLE__
 #    include <Cocoa/Cocoa.h>
index 2c03b2c..0b1852d 100644 (file)
@@ -287,7 +287,7 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc, char *ppsz_argv[] )
     module_InitBank( p_libvlc );
 
     /* Hack: insert the help module here */
-    p_help_module = vlc_object_create( p_libvlc, VLC_OBJECT_MODULE );
+    p_help_module = vlc_module_create( p_libvlc );
     if( p_help_module == NULL )
     {
         module_EndBank( p_libvlc );
index 21a9bfc..97a4b36 100644 (file)
@@ -221,10 +221,6 @@ void * __vlc_object_create( vlc_object_t *p_this, int i_type )
             i_size = sizeof(libvlc_int_t);
             psz_type = "libvlc";
             break;
-        case VLC_OBJECT_MODULE:
-            i_size = sizeof(module_t);
-            psz_type = "module";
-            break;
         case VLC_OBJECT_INTF:
             i_size = sizeof(intf_thread_t);
             psz_type = "interface";
index 9f54778..8ee62f3 100644 (file)
@@ -64,6 +64,7 @@
 #endif
 
 #include "configuration.h"
+#include "modules/modules.h"
 
 static int ConfigStringToKey( const char * );
 static char *ConfigKeyToString( int );
index c0ae15b..8637987 100644 (file)
 #include <vlc/vlc.h>
 #include <assert.h>
 
+#include "modules/modules.h"
+#include "libvlc.h"
+
 static const char default_name[] = "unnamed";
 
 module_t *vlc_module_create (vlc_object_t *obj)
 {
-    module_t *module = vlc_object_create (obj, VLC_OBJECT_MODULE);
+    module_t *module =
+        (module_t *)vlc_custom_create (obj, sizeof (module_t),
+                                       VLC_OBJECT_MODULE, "module");
     if (module == NULL)
         return NULL;
 
@@ -48,7 +53,8 @@ module_t *vlc_submodule_create (module_t *module)
     assert (!module->b_submodule); // subsubmodules are not supported
 
     module_t *submodule =
-            (module_t *)vlc_object_create (module, VLC_OBJECT_MODULE);
+        (module_t *)vlc_custom_create (VLC_OBJECT (module), sizeof (module_t),
+                                       VLC_OBJECT_MODULE, "submodule");
     if (submodule == NULL)
         return NULL;
 
index 13be264..969a6a8 100644 (file)
@@ -70,6 +70,84 @@ struct module_cache_t
     vlc_bool_t b_used;
 };
 
+
+#define MODULE_SHORTCUT_MAX 50
+
+/* The module handle type. */
+#if defined(HAVE_DL_DYLD)
+#   if defined (HAVE_MACH_O_DYLD_H)
+#       include <mach-o/dyld.h>
+#   endif
+typedef NSModule module_handle_t;
+#elif defined(HAVE_IMAGE_H)
+typedef int module_handle_t;
+#elif defined(WIN32) || defined(UNDER_CE)
+typedef void * module_handle_t;
+#elif defined(HAVE_DL_DLOPEN)
+typedef void * module_handle_t;
+#elif defined(HAVE_DL_SHL_LOAD)
+typedef shl_t module_handle_t;
+#endif
+
+/**
+ * Internal module descriptor
+ */
+struct module_t
+{
+    VLC_COMMON_MEMBERS
+
+    /*
+     * 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 */
+
+    /** Shortcuts to the module */
+    const char *pp_shortcuts[ MODULE_SHORTCUT_MAX ];
+
+    const 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? */
+
+    /* Callbacks */
+    int  ( * pf_activate )   ( vlc_object_t * );
+    void ( * pf_deactivate ) ( vlc_object_t * );
+
+    /*
+     * Variables set by the module to store its config options
+     */
+    module_config_t *p_config;             /* Module configuration structure */
+    size_t           confsize;            /* Number of module_config_t items */
+    unsigned int     i_config_items;        /* number of configuration items */
+    unsigned int     i_bool_items;            /* number of bool config items */
+
+    /*
+     * Variables used internally by the module manager
+     */
+    /* Plugin-specific stuff */
+    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
+};
+
+
 #define module_InitBank(a)     __module_InitBank(VLC_OBJECT(a))
 void  __module_InitBank        ( vlc_object_t * );
 #define module_LoadBuiltins(a) __module_LoadBuiltins(VLC_OBJECT(a))
index 7493189..ed3fe44 100644 (file)
@@ -53,6 +53,8 @@
  * helpers */
 #include "input/input_internal.h"
 
+#include "modules/modules.h"
+
 /*****************************************************************************
  * Local prototypes
  *****************************************************************************/