Commit 264a446c authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

Include modules.h whenever needed

parent a1e8379f
...@@ -171,8 +171,7 @@ decoder_t *input_DecoderNew( input_thread_t *p_input, ...@@ -171,8 +171,7 @@ decoder_t *input_DecoderNew( input_thread_t *p_input,
if( vlc_thread_create( p_dec, "decoder", DecoderThread, if( vlc_thread_create( p_dec, "decoder", DecoderThread,
i_priority, VLC_FALSE ) ) i_priority, VLC_FALSE ) )
{ {
msg_Err( p_dec, "cannot spawn decoder thread \"%s\"", msg_Err( p_dec, "cannot spawn decoder thread" );
p_dec->p_module->psz_object_name );
module_Unneed( p_dec, p_dec->p_module ); module_Unneed( p_dec, p_dec->p_module );
DeleteDecoder( p_dec ); DeleteDecoder( p_dec );
vlc_object_destroy( p_dec ); vlc_object_destroy( p_dec );
......
...@@ -42,6 +42,7 @@ ...@@ -42,6 +42,7 @@
#include <vlc_vout.h> #include <vlc_vout.h>
#include "vlc_interface.h" #include "vlc_interface.h"
#include "modules/modules.h" // Gruik!
#ifdef __APPLE__ #ifdef __APPLE__
# include <Cocoa/Cocoa.h> # include <Cocoa/Cocoa.h>
......
...@@ -287,7 +287,7 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc, char *ppsz_argv[] ) ...@@ -287,7 +287,7 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc, char *ppsz_argv[] )
module_InitBank( p_libvlc ); module_InitBank( p_libvlc );
/* Hack: insert the help module here */ /* 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 ) if( p_help_module == NULL )
{ {
module_EndBank( p_libvlc ); module_EndBank( p_libvlc );
......
...@@ -221,10 +221,6 @@ void * __vlc_object_create( vlc_object_t *p_this, int i_type ) ...@@ -221,10 +221,6 @@ void * __vlc_object_create( vlc_object_t *p_this, int i_type )
i_size = sizeof(libvlc_int_t); i_size = sizeof(libvlc_int_t);
psz_type = "libvlc"; psz_type = "libvlc";
break; break;
case VLC_OBJECT_MODULE:
i_size = sizeof(module_t);
psz_type = "module";
break;
case VLC_OBJECT_INTF: case VLC_OBJECT_INTF:
i_size = sizeof(intf_thread_t); i_size = sizeof(intf_thread_t);
psz_type = "interface"; psz_type = "interface";
......
...@@ -64,6 +64,7 @@ ...@@ -64,6 +64,7 @@
#endif #endif
#include "configuration.h" #include "configuration.h"
#include "modules/modules.h"
static int ConfigStringToKey( const char * ); static int ConfigStringToKey( const char * );
static char *ConfigKeyToString( int ); static char *ConfigKeyToString( int );
......
...@@ -21,11 +21,16 @@ ...@@ -21,11 +21,16 @@
#include <vlc/vlc.h> #include <vlc/vlc.h>
#include <assert.h> #include <assert.h>
#include "modules/modules.h"
#include "libvlc.h"
static const char default_name[] = "unnamed"; static const char default_name[] = "unnamed";
module_t *vlc_module_create (vlc_object_t *obj) 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) if (module == NULL)
return NULL; return NULL;
...@@ -48,7 +53,8 @@ module_t *vlc_submodule_create (module_t *module) ...@@ -48,7 +53,8 @@ module_t *vlc_submodule_create (module_t *module)
assert (!module->b_submodule); // subsubmodules are not supported assert (!module->b_submodule); // subsubmodules are not supported
module_t *submodule = 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) if (submodule == NULL)
return NULL; return NULL;
......
...@@ -70,6 +70,84 @@ struct module_cache_t ...@@ -70,6 +70,84 @@ struct module_cache_t
vlc_bool_t b_used; 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)) #define module_InitBank(a) __module_InitBank(VLC_OBJECT(a))
void __module_InitBank ( vlc_object_t * ); void __module_InitBank ( vlc_object_t * );
#define module_LoadBuiltins(a) __module_LoadBuiltins(VLC_OBJECT(a)) #define module_LoadBuiltins(a) __module_LoadBuiltins(VLC_OBJECT(a))
......
...@@ -53,6 +53,8 @@ ...@@ -53,6 +53,8 @@
* helpers */ * helpers */
#include "input/input_internal.h" #include "input/input_internal.h"
#include "modules/modules.h"
/***************************************************************************** /*****************************************************************************
* Local prototypes * Local prototypes
*****************************************************************************/ *****************************************************************************/
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment