Audacious  $Id:Doxyfile42802007-03-2104:39:00Znenolod$
Classes | Macros
plugin.h File Reference
#include <audacious/api.h>
#include <audacious/types.h>
#include <libaudcore/audio.h>
#include <libaudcore/index.h>
#include <libaudcore/tuple.h>
#include <libaudcore/vfs.h>

Go to the source code of this file.

Classes

struct  Plugin
 
struct  TransportPlugin
 
struct  PlaylistPlugin
 
struct  OutputPlugin
 
struct  EffectPlugin
 
struct  OutputAPI
 
struct  InputPlayback
 
struct  InputPlugin
 
struct  GeneralPlugin
 
struct  VisPlugin
 
struct  IfacePlugin
 

Macros

#define _AUD_PLUGIN_MAGIC   0x8EAC8DE2
 
#define _AUD_PLUGIN_VERSION_MIN   40 /* 3.3-devel to 3.3-beta1 */
 
#define _AUD_PLUGIN_VERSION   41 /* post 3.3-beta1 */
 
#define PLUGIN_COMMON_FIELDS
 
#define AUD_PLUGIN(stype, itype,...)
 
#define AUD_TRANSPORT_PLUGIN(...)   AUD_PLUGIN (TransportPlugin, PLUGIN_TYPE_TRANSPORT, __VA_ARGS__)
 
#define AUD_PLAYLIST_PLUGIN(...)   AUD_PLUGIN (PlaylistPlugin, PLUGIN_TYPE_PLAYLIST, __VA_ARGS__)
 
#define AUD_INPUT_PLUGIN(...)   AUD_PLUGIN (InputPlugin, PLUGIN_TYPE_INPUT, __VA_ARGS__)
 
#define AUD_EFFECT_PLUGIN(...)   AUD_PLUGIN (EffectPlugin, PLUGIN_TYPE_EFFECT, __VA_ARGS__)
 
#define AUD_OUTPUT_PLUGIN(...)   AUD_PLUGIN (OutputPlugin, PLUGIN_TYPE_OUTPUT, __VA_ARGS__)
 
#define AUD_VIS_PLUGIN(...)   AUD_PLUGIN (VisPlugin, PLUGIN_TYPE_VIS, __VA_ARGS__)
 
#define AUD_GENERAL_PLUGIN(...)   AUD_PLUGIN (GeneralPlugin, PLUGIN_TYPE_GENERAL, __VA_ARGS__)
 
#define AUD_IFACE_PLUGIN(...)   AUD_PLUGIN (IfacePlugin, PLUGIN_TYPE_IFACE, __VA_ARGS__)
 
#define PLUGIN_HAS_FUNC(p, func)   ((p)->size > (char *) & (p)->func - (char *) (p) && (p)->func)
 

Macro Definition Documentation

#define _AUD_PLUGIN_MAGIC   0x8EAC8DE2

Definition at line 32 of file plugin.h.

Referenced by plugin2_process().

#define _AUD_PLUGIN_VERSION   41 /* post 3.3-beta1 */

Definition at line 48 of file plugin.h.

Referenced by plugin2_process().

#define _AUD_PLUGIN_VERSION_MIN   40 /* 3.3-devel to 3.3-beta1 */

Definition at line 47 of file plugin.h.

Referenced by plugin2_process().

#define AUD_EFFECT_PLUGIN (   ...)    AUD_PLUGIN (EffectPlugin, PLUGIN_TYPE_EFFECT, __VA_ARGS__)

Definition at line 509 of file plugin.h.

#define AUD_GENERAL_PLUGIN (   ...)    AUD_PLUGIN (GeneralPlugin, PLUGIN_TYPE_GENERAL, __VA_ARGS__)

Definition at line 512 of file plugin.h.

#define AUD_IFACE_PLUGIN (   ...)    AUD_PLUGIN (IfacePlugin, PLUGIN_TYPE_IFACE, __VA_ARGS__)

Definition at line 513 of file plugin.h.

#define AUD_INPUT_PLUGIN (   ...)    AUD_PLUGIN (InputPlugin, PLUGIN_TYPE_INPUT, __VA_ARGS__)

Definition at line 508 of file plugin.h.

#define AUD_OUTPUT_PLUGIN (   ...)    AUD_PLUGIN (OutputPlugin, PLUGIN_TYPE_OUTPUT, __VA_ARGS__)

Definition at line 510 of file plugin.h.

#define AUD_PLAYLIST_PLUGIN (   ...)    AUD_PLUGIN (PlaylistPlugin, PLUGIN_TYPE_PLAYLIST, __VA_ARGS__)

Definition at line 507 of file plugin.h.

#define AUD_PLUGIN (   stype,
  itype,
  ... 
)
Value:
stype _aud_plugin_self = { \
.magic = _AUD_PLUGIN_MAGIC, \
.version = _AUD_PLUGIN_VERSION, \
.type = itype, \
.size = sizeof (stype), \
__VA_ARGS__}; \
stype * get_plugin_info (AudAPITable * table) { \
_aud_api_table = table; \
return & _aud_plugin_self; \
}

Definition at line 493 of file plugin.h.

#define AUD_TRANSPORT_PLUGIN (   ...)    AUD_PLUGIN (TransportPlugin, PLUGIN_TYPE_TRANSPORT, __VA_ARGS__)

Definition at line 506 of file plugin.h.

#define AUD_VIS_PLUGIN (   ...)    AUD_PLUGIN (VisPlugin, PLUGIN_TYPE_VIS, __VA_ARGS__)

Definition at line 511 of file plugin.h.

#define PLUGIN_COMMON_FIELDS
Value:
int magic; /* checked against _AUD_PLUGIN_MAGIC */ \
int version; /* checked against _AUD_PLUGIN_VERSION */ \
int type; /* PLUGIN_TYPE_XXX */ \
int size; /* size in bytes of the struct */ \
const char * name; \
const char * domain; /* for gettext */ \
const char * about_text; \
const PluginPreferences * prefs; \
bool_t (* init) (void); \
void (* cleanup) (void); \
int (* take_message) (const char * code, const void * data, int size); \
void (* about) (void); /* use about_text instead if possible */ \
void (* configure) (void); /* use prefs instead if possible */ \
void * reserved1; \
void * reserved2; \
void * reserved3; \
void * reserved4;

Definition at line 96 of file plugin.h.

#define PLUGIN_HAS_FUNC (   p,
  func 
)    ((p)->size > (char *) & (p)->func - (char *) (p) && (p)->func)