- int i_type; /* Configuration widget type */
- char * psz_text; /* Text commenting or describing the widget */
- char * psz_name; /* Variable name */
- void * p_getlist; /* Function to call to get a choice list */
- void * p_change; /* Function to call when commiting a change */
-} module_config_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 */
+
+ 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 */
+
+ /*
+ * Symbol table we send to the module so that it can access vlc symbols
+ */
+ module_symbols_t *p_symbols;
+};