Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef LIBVLC_MODULES_H
00025 # define LIBVLC_MODULES_H 1
00026
00027 typedef struct module_cache_t module_cache_t;
00028
00029
00030
00031
00032 struct module_cache_t
00033 {
00034
00035 char *path;
00036 time_t mtime;
00037 off_t size;
00038
00039
00040 module_t *p_module;
00041 };
00042
00043
00044 #define MODULE_SHORTCUT_MAX 20
00045
00046
00047 typedef void *module_handle_t;
00048
00049
00050 typedef int (*vlc_plugin_cb) (int (*)(void *, void *, int, ...), void *);
00051
00052
00053 int vlc_entry__main (int (*)(void *, void *, int, ...), void *);
00054
00055
00056
00057
00058 struct module_t
00059 {
00060 module_t *next;
00061 module_t *parent;
00062 module_t *submodule;
00063 unsigned submodule_count;
00064
00065
00066 unsigned i_shortcuts;
00067 char **pp_shortcuts;
00068
00069
00070
00071
00072 char *psz_shortname;
00073 char *psz_longname;
00074 char *psz_help;
00075
00076 char *psz_capability;
00077 int i_score;
00078
00079 bool b_loaded;
00080 bool b_unloadable;
00081
00082
00083 void *pf_activate;
00084 void *pf_deactivate;
00085
00086
00087
00088
00089 module_config_t *p_config;
00090 size_t confsize;
00091 unsigned int i_config_items;
00092 unsigned int i_bool_items;
00093
00094
00095
00096
00097
00098 module_handle_t handle;
00099 char * psz_filename;
00100 char * domain;
00101 };
00102
00103 module_t *vlc_plugin_describe (vlc_plugin_cb);
00104 module_t *vlc_module_create (module_t *);
00105 void vlc_module_destroy (module_t *);
00106
00107 void module_InitBank (void);
00108 size_t module_LoadPlugins( vlc_object_t * );
00109 #define module_LoadPlugins(a) module_LoadPlugins(VLC_OBJECT(a))
00110 void module_EndBank (bool);
00111 int module_Map (vlc_object_t *, module_t *);
00112
00113 int vlc_bindtextdomain (const char *);
00114
00115
00116 int module_Load (vlc_object_t *, const char *, module_handle_t *, bool);
00117 void *module_Lookup (module_handle_t, const char *);
00118 void module_Unload (module_handle_t);
00119
00120
00121 void CacheMerge (vlc_object_t *, module_t *, module_t *);
00122 void CacheDelete(vlc_object_t *, const char *);
00123 size_t CacheLoad (vlc_object_t *, const char *, module_cache_t **);
00124
00125 struct stat;
00126
00127 int CacheAdd (module_cache_t **, size_t *,
00128 const char *, const struct stat *, module_t *);
00129 void CacheSave (vlc_object_t *, const char *, module_cache_t *, size_t);
00130 module_t *CacheFind (module_cache_t *, size_t,
00131 const char *, const struct stat *);
00132
00133 #endif