Details
INPUT_PLUGIN()
#define INPUT_PLUGIN(x) ((InputPlugin *)(x))
OUTPUT_PLUGIN()
#define OUTPUT_PLUGIN(x) ((OutputPlugin *)(x))
EFFECT_PLUGIN()
#define EFFECT_PLUGIN(x) ((EffectPlugin *)(x))
GENERAL_PLUGIN()
#define GENERAL_PLUGIN(x) ((GeneralPlugin *)(x))
VIS_PLUGIN()
#define VIS_PLUGIN(x) ((VisPlugin *)(x))
LOWLEVEL_PLUGIN()
#define LOWLEVEL_PLUGIN(x) ((LowlevelPlugin *)(x))
enum AFormat
typedef enum {
FMT_U8,
FMT_S8,
FMT_U16_LE,
FMT_U16_BE,
FMT_U16_NE,
FMT_S16_LE,
FMT_S16_BE,
FMT_S16_NE
} AFormat;
enum InputVisType
typedef enum {
INPUT_VIS_ANALYZER,
INPUT_VIS_SCOPE,
INPUT_VIS_VU,
INPUT_VIS_OFF
} InputVisType;
Plugin
typedef struct {
gpointer handle;
gchar *filename;
} Plugin;
InputPlugin
typedef struct {
gpointer handle;
gchar *filename;
gchar *description;
void (*init) (void);
void (*about) (void);
void (*configure) (void);
gint (*is_our_file) (gchar * filename);
GList *(*scan_dir) (gchar * dirname);
void (*play_file) (InputPlayback * playback);
void (*stop) (InputPlayback * playback);
void (*pause) (InputPlayback * playback, gshort paused);
void (*seek) (InputPlayback * playback, gint time);
void (*set_eq) (gint on, gfloat preamp, gfloat * bands);
gint (*get_time) (InputPlayback * playback);
gint (*get_volume) (gint * l, gint * r);
gint (*set_volume) (gint l, gint r);
void (*cleanup) (void);
InputVisType (*get_vis_type) (void);
void (*add_vis_pcm) (gint time, AFormat fmt, gint nch, gint length, gpointer ptr);
void (*set_info) (gchar * title, gint length, gint rate, gint freq, gint nch);
void (*set_info_text) (gchar * text);
void (*get_song_info) (gchar * filename, gchar ** title, gint * length);
void (*file_info_box) (gchar * filename);
OutputPlugin *output; /* deprecated */
/* Added in Audacious 1.1.0 */
TitleInput *(*get_song_tuple) (gchar * filename);
void (*set_song_tuple) (TitleInput * tuple);
void (*set_status_buffering) (gboolean status);
/* Added in Audacious 1.3.0 */
gint (*is_our_file_from_vfs) (gchar *filename, VFSFile *fd);
gchar **vfs_extensions;
} InputPlugin;
OutputPlugin
typedef struct {
gpointer handle;
gchar *filename;
gchar *description;
void (*init) (void);
void (*cleanup) (void);
void (*about) (void);
void (*configure) (void);
void (*get_volume) (gint * l, gint * r);
void (*set_volume) (gint l, gint r);
gint (*open_audio) (AFormat fmt, gint rate, gint nch);
void (*write_audio) (gpointer ptr, gint length);
void (*close_audio) (void);
void (*flush) (gint time);
void (*pause) (gshort paused);
gint (*buffer_free) (void);
gint (*buffer_playing) (void);
gint (*output_time) (void);
gint (*written_time) (void);
void (*tell_audio) (AFormat * fmt, gint * rate, gint * nch);
} OutputPlugin;
EffectPlugin
typedef struct {
gpointer handle;
gchar *filename;
gchar *description;
void (*init) (void);
void (*cleanup) (void);
void (*about) (void);
void (*configure) (void);
gint (*mod_samples) (gpointer * data, gint length, AFormat fmt, gint srate, gint nch);
void (*query_format) (AFormat * fmt, gint * rate, gint * nch);
} EffectPlugin;
GeneralPlugin
typedef struct {
gpointer handle;
gchar *filename;
gint xmms_session;
gchar *description;
void (*init) (void);
void (*about) (void);
void (*configure) (void);
void (*cleanup) (void);
} GeneralPlugin;
VisPlugin
typedef struct {
gpointer handle;
gchar *filename;
gint xmms_session;
gchar *description;
gint num_pcm_chs_wanted;
gint num_freq_chs_wanted;
void (*init) (void);
void (*cleanup) (void);
void (*about) (void);
void (*configure) (void);
void (*disable_plugin) (struct _VisPlugin *);
void (*playback_start) (void);
void (*playback_stop) (void);
void (*render_pcm) (gint16 pcm_data[2][512]);
void (*render_freq) (gint16 freq_data[2][256]);
} VisPlugin;
LowlevelPlugin
typedef struct {
gpointer handle;
gchar *filename;
gchar *description;
void (*init) (void);
void (*cleanup) (void);
} LowlevelPlugin;
InputPlayback
typedef struct {
gchar *filename;
InputPlugin *plugin;
void *data;
OutputPlugin *output;
int playing;
gboolean error;
gboolean eof;
} InputPlayback;
xmms_get_gentitle_format ()
const gchar* xmms_get_gentitle_format (void);
get_current_effect_plugin ()
EffectPlugin* get_current_effect_plugin (void);
effects_enabled ()
gboolean effects_enabled (void);
plugin_set_errortext ()
gboolean plugin_set_errortext (const gchar *text);