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 00027 #include <audacious/api.h> 00028 #include <audacious/types.h> 00029 00030 enum { 00031 PLUGIN_TYPE_LOWLEVEL, 00032 PLUGIN_TYPE_TRANSPORT, 00033 PLUGIN_TYPE_PLAYLIST, 00034 PLUGIN_TYPE_INPUT, 00035 PLUGIN_TYPE_EFFECT, 00036 PLUGIN_TYPE_OUTPUT, 00037 PLUGIN_TYPE_VIS, 00038 PLUGIN_TYPE_GENERAL, 00039 PLUGIN_TYPE_IFACE, 00040 PLUGIN_TYPES}; 00041 00042 typedef gboolean (* PluginForEachFunc) (PluginHandle * plugin, void * data); 00043 00044 #define AUD_API_NAME PluginsAPI 00045 #define AUD_API_SYMBOL plugins_api 00046 00047 #ifdef _AUDACIOUS_CORE 00048 00049 #include "api-local-begin.h" 00050 #include "plugins-api.h" 00051 #include "api-local-end.h" 00052 00053 enum { 00054 INPUT_KEY_SCHEME, 00055 INPUT_KEY_EXTENSION, 00056 INPUT_KEY_MIME, 00057 INPUT_KEYS}; 00058 00059 /* plugin-init.c */ 00060 void start_plugins_one (void); 00061 void start_plugins_two (void); 00062 void stop_plugins_two (void); 00063 void stop_plugins_one (void); 00064 00065 /* plugin-registry.c */ 00066 void plugin_registry_load (void); 00067 void plugin_registry_prune (void); 00068 void plugin_registry_save (void); 00069 00070 void module_register (const gchar * path); 00071 void plugin_register (gint type, const gchar * path, gint number, const void * 00072 header); 00073 00074 void plugin_set_enabled (PluginHandle * plugin, gboolean enabled); 00075 00076 PluginHandle * transport_plugin_for_scheme (const gchar * scheme); 00077 PluginHandle * playlist_plugin_for_extension (const gchar * extension); 00078 void input_plugin_for_key (gint key, const gchar * value, PluginForEachFunc 00079 func, void * data); 00080 gboolean input_plugin_has_images (PluginHandle * plugin); 00081 gboolean input_plugin_has_subtunes (PluginHandle * plugin); 00082 gboolean input_plugin_can_write_tuple (PluginHandle * plugin); 00083 gboolean input_plugin_has_infowin (PluginHandle * plugin); 00084 00085 /* pluginenum.c */ 00086 void plugin_system_init (void); 00087 void plugin_system_cleanup (void); 00088 void module_load (const gchar * path); 00089 00090 #else 00091 00092 #include <audacious/api-define-begin.h> 00093 #include <audacious/plugins-api.h> 00094 #include <audacious/api-define-end.h> 00095 00096 #include <audacious/api-alias-begin.h> 00097 #include <audacious/plugins-api.h> 00098 #include <audacious/api-alias-end.h> 00099 00100 #endif 00101 00102 #undef AUD_API_NAME 00103 #undef AUD_API_SYMBOL 00104 00105 #endif 00106 00107 #ifdef AUD_API_DECLARE 00108 00109 #define AUD_API_NAME PluginsAPI 00110 #define AUD_API_SYMBOL plugins_api 00111 00112 #include "api-define-begin.h" 00113 #include "plugins-api.h" 00114 #include "api-define-end.h" 00115 00116 #include "api-declare-begin.h" 00117 #include "plugins-api.h" 00118 #include "api-declare-end.h" 00119 00120 #undef AUD_API_NAME 00121 #undef AUD_API_SYMBOL 00122 00123 #endif