+/*****************************************************************************
+ * Module description structure
+ *****************************************************************************/
+struct module_t
+{
+ VLC_COMMON_MEMBERS
+
+ /*
+ * Variables set by the module to identify itself
+ */
+ char *psz_shortname; /* Module name */
+ char *psz_longname; /* Module descriptive name */
+
+ /*
+ * Variables set by the module to tell us what it can do
+ */
+ char *psz_program; /* Program name which will activate the module */
+
+ char *pp_shortcuts[ MODULE_SHORTCUT_MAX ]; /* Shortcuts to the module */
+
+ char *psz_capability; /* Capability */
+ int i_score; /* Score for each 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 */
+ 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 */