X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fmodules%2Fmodules.h;h=60b00eee01a83149e705f696f38019085381b375;hb=d56e311e7c89f128a4b9e69872231e97b2ac36e2;hp=d4600c4fd14222882807ab404ace9623f8cb59f0;hpb=754aeae1e8d174af0255e61e62345fe7e4b8b4f5;p=vlc diff --git a/src/modules/modules.h b/src/modules/modules.h index d4600c4fd1..60b00eee01 100644 --- a/src/modules/modules.h +++ b/src/modules/modules.h @@ -25,12 +25,8 @@ # 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 +#ifndef LIBVLC_MODULES_H +# define LIBVLC_MODULES_H 1 /***************************************************************************** * module_bank_t: the module bank @@ -65,12 +61,11 @@ struct module_cache_t int64_t i_size; /* Optional extra data */ - bool b_used; module_t *p_module; }; -#define MODULE_SHORTCUT_MAX 50 +#define MODULE_SHORTCUT_MAX 20 /* The module handle type. */ #if defined(HAVE_DL_DYLD) && !defined(__x86_64__) @@ -94,11 +89,16 @@ typedef shl_t module_handle_t; struct module_t { char *psz_object_name; + gc_object_t vlc_gc_data; + module_t *next; - module_t *submodule; module_t *parent; + module_t *submodule; unsigned submodule_count; - gc_object_t vlc_gc_data; + + /** Shortcuts to the module */ + unsigned i_shortcuts; + char **pp_shortcuts; /* * Variables set by the module to identify itself @@ -107,12 +107,11 @@ struct module_t char *psz_longname; /**< Module descriptive name */ char *psz_help; /**< Long help string for "special" modules */ - /** Shortcuts to the module */ - char *pp_shortcuts[ MODULE_SHORTCUT_MAX ]; - char *psz_capability; /**< Capability */ int i_score; /**< Score for the capability */ + bool b_builtin; /* Set to true if the module is built in */ + bool b_loaded; /* Set to true if the dll is loaded */ bool b_unloadable; /**< Can we be dlclosed? */ bool b_submodule; /**< Is this a submodule? */ @@ -134,21 +133,21 @@ struct module_t /* Plugin-specific stuff */ module_handle_t handle; /* Unique handle */ char * psz_filename; /* Module filename */ - - bool b_builtin; /* Set to true if the module is built in */ - bool b_loaded; /* Set to true if the dll is loaded */ + char * domain; /* gettext domain */ }; module_t *vlc_module_create (vlc_object_t *); module_t *vlc_submodule_create (module_t *module); -#define module_InitBank(a) __module_InitBank(VLC_OBJECT(a)) -void __module_InitBank ( vlc_object_t * ); -void module_LoadPlugins( vlc_object_t *, bool ); -#define module_LoadPlugins(a,b) module_LoadPlugins(VLC_OBJECT(a),b) +void module_InitBank( vlc_object_t * ); +#define module_InitBank(a) module_InitBank(VLC_OBJECT(a)) +void module_LoadPlugins( vlc_object_t * ); +#define module_LoadPlugins(a) module_LoadPlugins(VLC_OBJECT(a)) void module_EndBank( vlc_object_t *, bool ); #define module_EndBank(a,b) module_EndBank(VLC_OBJECT(a), b) +int vlc_bindtextdomain (const char *); + /* Low-level OS-dependent handler */ int module_Load (vlc_object_t *, const char *, module_handle_t *); int module_Call (vlc_object_t *obj, module_t *); @@ -156,8 +155,9 @@ void module_Unload (module_handle_t); /* Plugins cache */ void CacheMerge (vlc_object_t *, module_t *, module_t *); -void CacheLoad (vlc_object_t *, module_bank_t *, bool); -void CacheSave (vlc_object_t *, module_bank_t *); +void CacheDelete(vlc_object_t *, const char *); +void CacheLoad (vlc_object_t *, module_bank_t *, const char *); +void CacheSave (vlc_object_t *, const char *, module_cache_t *const *, size_t); module_cache_t * CacheFind (module_bank_t *, const char *, int64_t, int64_t); -#endif /* !__LIBVLC_MODULES_H */ +#endif /* !LIBVLC_MODULES_H */