87 if (
table[type].
u.s.set_current (p))
98 fprintf (stderr,
"FATAL: No %s plugin found.\n",
table[type].name);
105 if (!
table[type].
u.s.set_current (p))
117 if (!
table[GPOINTER_TO_INT (type)].
u.m.start (p))
135 if (
table[type].
u.m.start)
174 table[GPOINTER_TO_INT (type)].u.m.stop (p);
188 (
table[type].
u.s.get_current ()));
230 if (
table[type].
u.s.set_current (p))
233 fprintf (stderr,
"%s failed to start; falling back to %s.\n",
238 if (
table[type].
u.s.set_current (old))
241 fprintf (stderr,
"FATAL: %s failed to start.\n",
plugin_get_name (old));
256 if (
table[type].
u.m.start && !
table[type].u.m.start (p))
281 g_return_val_if_fail (enable,
FALSE);
309 return header->take_message (code, data, size);
316 g_return_if_fail (header);
328 g_return_if_fail (header);
331 header->configure ();
static VFSConstructor * lookup_transport(const char *scheme)
bool_t plugin_get_enabled(PluginHandle *plugin)
static void start_plugins(int type)
bool_t vis_plugin_start(PluginHandle *plugin)
bool_t effect_plugin_start(PluginHandle *plugin)
void plugin_set_enabled(PluginHandle *plugin, bool_t enabled)
static const struct @17 table[PLUGIN_TYPES]
bool_t(* start)(PluginHandle *plugin)
void stop_plugins_two(void)
static PluginHandle * find_enabled(int type)
PluginHandle * output_plugin_get_current(void)
static bool_t start_multi_cb(PluginHandle *p, void *type)
static void start_single(int type)
void stop_plugins_one(void)
PluginHandle * iface_plugin_probe(void)
void plugin_make_config_window(PluginHandle *plugin)
void plugin_system_cleanup(void)
#define PLUGIN_HAS_FUNC(p, func)
static bool_t find_enabled_cb(PluginHandle *p, void *pp)
const VFSConstructor * vtable
PluginHandle * plugin_get_current(int type)
static bool_t stop_multi_cb(PluginHandle *p, void *type)
PluginHandle * plugin_by_widget(void *widget)
void effect_plugin_stop(PluginHandle *plugin)
PluginHandle * general_plugin_by_widget(void *widget)
bool_t general_plugin_start(PluginHandle *plugin)
void plugin_misc_cleanup(PluginHandle *plugin)
void plugin_do_configure(PluginHandle *plugin)
const void * plugin_get_header(PluginHandle *plugin)
void general_plugin_stop(PluginHandle *plugin)
void vis_plugin_stop(PluginHandle *plugin)
EXPORT void vfs_set_lookup_func(VFSConstructor *(*func)(const char *scheme))
static void stop_plugins(int type)
static bool_t misc_cleanup_cb(PluginHandle *p, void *unused)
bool_t plugin_enable(PluginHandle *plugin, bool_t enable)
void plugin_system_init(void)
int plugin_send_message(PluginHandle *plugin, const char *code, const void *data, int size)
bool_t output_plugin_set_current(PluginHandle *plugin)
static bool_t enable_single(int type, PluginHandle *p)
PluginHandle * transport_plugin_for_scheme(const char *scheme)
void plugin_do_about(PluginHandle *plugin)
void(* stop)(PluginHandle *plugin)
void plugin_make_about_window(PluginHandle *plugin)
bool_t(* set_current)(PluginHandle *plugin)
PluginHandle * vis_plugin_by_widget(void *widget)
void start_plugins_one(void)
void plugin_for_enabled(int type, PluginForEachFunc func, void *data)
bool_t iface_plugin_set_current(PluginHandle *plugin)
void data PluginHandle plugin
static bool_t enable_multi(int type, PluginHandle *p, bool_t enable)
PluginHandle * iface_plugin_get_current(void)
PluginHandle * output_plugin_probe(void)
const char * plugin_get_name(PluginHandle *plugin)
void start_plugins_two(void)
int plugin_get_type(PluginHandle *plugin)