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