# HG changeset patch # User William Pitcock # Date 1214762391 18000 # Node ID 04c53c9d261b932a3efa57210c090acff6297599 # Parent ed6755dbd2f1d86001a4f856148004da92b01f26 Add provision for Interface plugins. diff -r ed6755dbd2f1 -r 04c53c9d261b src/audacious/plugin.h --- a/src/audacious/plugin.h Sun Jun 29 12:56:25 2008 -0500 +++ b/src/audacious/plugin.h Sun Jun 29 12:59:51 2008 -0500 @@ -45,6 +45,7 @@ #include "audacious/playlist_container.h" #include "audacious/main.h" #include "audacious/preferences.h" +#include "audacious/interface.h" #define PLUGIN(x) ((Plugin *)(x)) #define INPUT_PLUGIN(x) ((InputPlugin *)(x)) @@ -191,6 +192,7 @@ GeneralPlugin **gp_list; VisPlugin **vp_list; DiscoveryPlugin **dp_list; + Interface *interface; } PluginHeader; #define PLUGIN_MAGIC 0x8EAC8DE2 @@ -1028,6 +1030,9 @@ #define SIMPLE_DISCOVER_PLUGIN(name, dp_list) \ DECLARE_PLUGIN(name, NULL, NULL, NULL, NULL, NULL, NULL, NULL, dp_list) +#define SIMPLE_INTERFACE_PLUGIN(name, interface) \ + DECLARE_PLUGIN(name, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, interface) + /* Sadly, this is the most we can generalize out of the disparate plugin structs usable with typecasts - descender */ struct _Plugin { diff -r ed6755dbd2f1 -r 04c53c9d261b src/audacious/pluginenum.c --- a/src/audacious/pluginenum.c Sun Jun 29 12:56:25 2008 -0500 +++ b/src/audacious/pluginenum.c Sun Jun 29 12:59:51 2008 -0500 @@ -714,6 +714,9 @@ discovery_plugin_init(PLUGIN((header->dp_list)[i])); } } + + if (header->interface) + interface_register(header->interface); } void @@ -723,6 +726,9 @@ g_return_if_fail(header->priv_assoc != NULL); + if (header->interface) + interface_deregister(header->interface); + module = header->priv_assoc->handle; g_free(header->priv_assoc->filename);