Audacious  $Id:Doxyfile42802007-03-2104:39:00Znenolod$
plugins.h
Go to the documentation of this file.
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