00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef AUDACIOUS_PLUGINS_H
00023 #define AUDACIOUS_PLUGINS_H
00024
00025 #include <glib.h>
00026 #include <audacious/api.h>
00027
00028 enum {
00029 PLUGIN_TYPE_BASIC,
00030 PLUGIN_TYPE_INPUT,
00031 PLUGIN_TYPE_OUTPUT,
00032 PLUGIN_TYPE_EFFECT,
00033 PLUGIN_TYPE_VIS,
00034 PLUGIN_TYPE_IFACE,
00035 PLUGIN_TYPE_GENERAL,
00036 PLUGIN_TYPES};
00037
00038 typedef struct PluginHandle PluginHandle;
00039 typedef gboolean (* PluginForEachFunc) (PluginHandle * plugin, void * data);
00040
00041 #define AUD_API_NAME PluginsAPI
00042 #define AUD_API_SYMBOL plugins_api
00043
00044 #ifdef _AUDACIOUS_CORE
00045
00046 #include "api-local-begin.h"
00047 #include "plugins-api.h"
00048 #include "api-local-end.h"
00049
00050 enum {
00051 INPUT_KEY_SCHEME,
00052 INPUT_KEY_EXTENSION,
00053 INPUT_KEY_MIME,
00054 INPUT_KEYS};
00055
00056 void plugin_registry_load (void);
00057 void plugin_registry_prune (void);
00058 void plugin_registry_save (void);
00059
00060 void module_register (const gchar * path);
00061 void plugin_register (const gchar * path, gint type, gint number, void * header);
00062
00063 void input_plugin_for_key (gint key, const gchar * value, PluginForEachFunc
00064 func, void * data);
00065
00066 #else
00067
00068 #include <audacious/api-define-begin.h>
00069 #include <audacious/plugins-api.h>
00070 #include <audacious/api-define-end.h>
00071
00072 #include <audacious/api-alias-begin.h>
00073 #include <audacious/plugins-api.h>
00074 #include <audacious/api-alias-end.h>
00075
00076 #endif
00077
00078 #undef AUD_API_NAME
00079 #undef AUD_API_SYMBOL
00080
00081 #endif
00082
00083 #ifdef AUD_API_DECLARE
00084
00085 #define AUD_API_NAME PluginsAPI
00086 #define AUD_API_SYMBOL plugins_api
00087
00088 #include "api-define-begin.h"
00089 #include "plugins-api.h"
00090 #include "api-define-end.h"
00091
00092 #include "api-declare-begin.h"
00093 #include "plugins-api.h"
00094 #include "api-declare-end.h"
00095
00096 #undef AUD_API_NAME
00097 #undef AUD_API_SYMBOL
00098
00099 #endif