]> git.sesse.net Git - vlc/commitdiff
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 61d71e8e4d68a20de443150143f52b0e17ba186a..37192a481e725d0f22ae327fa79f010de15c8adc 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 490d4c00dc1a03680a5873e1ae8ede08d5b5a494..2fc988dba4ac0643d1cf1526c1040dbfea25276b 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 2c03b2ccaf42210a4c8fd37e1094e544999b5fed..0b1852d3953d19dc4220102ba5e7983388303fa3 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 21a9bfc0fbf3b9e3c5112d76bb8d4d702ac4c5f9..97a4b362174d6b46891b4e3d139f7c92e315d211 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 9f54778e2878089a51d5532501dde23c53519a39..8ee62f3dfd4b3195c7ad6eefb64e2c5eddc357ee 100644 (file)
@@ -64,6 +64,7 @@
 #endif
 
 #include "configuration.h"
+#include "modules/modules.h"
 
 static int ConfigStringToKey( const char * );
 static char *ConfigKeyToString( int );
index c0ae15bfa7a5ed2d56f73de2291ef838b45dffa4..8637987b2aba4a4df76e544825f5cc2d157ebcd6 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 13be2640085c0ef795b63f3e8ec926f56bbdd9a0..969a6a82f8410d0e93bafcb06d5f0a851a5fcff3 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 74931894142eb2ca4774d600e1236af0eb06c54a..ed3fe443b898e2a695658e654a097bd3118363e2 100644 (file)
@@ -53,6 +53,8 @@
  * helpers */
 #include "input/input_internal.h"
 
+#include "modules/modules.h"
+
 /*****************************************************************************
  * Local prototypes
  *****************************************************************************/