• Main Page
  • Related Pages
  • Classes
  • Files
  • File List
  • File Members

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

Generated on Wed Apr 6 2011 for Audacious by  doxygen 1.7.1