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
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
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
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
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