Mercurial > audlegacy
changeset 4677:04c53c9d261b
Add provision for Interface plugins.
author | William Pitcock <nenolod@atheme.org> |
---|---|
date | Sun, 29 Jun 2008 12:59:51 -0500 |
parents | ed6755dbd2f1 |
children | 66dea2610f1c |
files | src/audacious/plugin.h src/audacious/pluginenum.c |
diffstat | 2 files changed, 11 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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 {
--- 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);