Audacious $Id:Doxyfile42802007-03-2104:39:00Znenolod$
|
00001 /* 00002 * plugins.h 00003 * Copyright 2010 John Lindgren 00004 * 00005 * This file is part of Audacious. 00006 * 00007 * Audacious is free software: you can redistribute it and/or modify it under 00008 * the terms of the GNU General Public License as published by the Free Software 00009 * Foundation, version 2 or version 3 of the License. 00010 * 00011 * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY 00012 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 00013 * A PARTICULAR PURPOSE. See the GNU General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU General Public License along with 00016 * Audacious. If not, see <http://www.gnu.org/licenses/>. 00017 * 00018 * The Audacious team does not consider modular code linking to Audacious or 00019 * using our public API to be a derived work. 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