plugin.h File Reference

#include <glib.h>
#include <gmodule.h>
#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

Defines

#define _AUD_PLUGIN_MAGIC   0x8EAC8DE2
#define _AUD_PLUGIN_VERSION_MIN   34
#define _AUD_PLUGIN_VERSION   34
#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 > (void *) & (p)->func - (void *) (p) && (p)->func)

Define Documentation

#define _AUD_PLUGIN_MAGIC   0x8EAC8DE2

Definition at line 36 of file plugin.h.

Referenced by plugin2_process().

#define _AUD_PLUGIN_VERSION   34

Definition at line 52 of file plugin.h.

Referenced by plugin2_process().

#define _AUD_PLUGIN_VERSION_MIN   34

Definition at line 51 of file plugin.h.

Referenced by plugin2_process().

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

Definition at line 494 of file plugin.h.

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

Definition at line 497 of file plugin.h.

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

Definition at line 498 of file plugin.h.

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

Definition at line 493 of file plugin.h.

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

Definition at line 495 of file plugin.h.

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

Definition at line 492 of file plugin.h.

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

Definition at line 478 of file plugin.h.

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

Definition at line 491 of file plugin.h.

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

Definition at line 496 of file plugin.h.

#define PLUGIN_COMMON_FIELDS
Value:
gint magic; /* checked against _AUD_PLUGIN_MAGIC */ \
    gint version; /* checked against _AUD_PLUGIN_VERSION */ \
    gint type; /* PLUGIN_TYPE_XXX */ \
    gint size; /* size in bytes of the struct */ \
    const gchar * name; \
    gboolean (* init) (void); \
    void (* cleanup) (void); \
    void (* about) (void); \
    void (* configure) (void); \
    PluginPreferences * settings;

Definition at line 79 of file plugin.h.

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

Generated on 26 Jan 2012 for Audacious by  doxygen 1.6.1