annotate audacious/plugin.h @ 1938:1d9c1026d9f8 trunk

[svn] - DoubleSize support. This has bugs, the most notable one being that DoubleSize only works right if you restart the player. The second bug is rather obvious too. No osmosis skinengine. No TinyPlayer. Classic-esque skinengine only. This is because the doublesize algorithm hates you and wants you to go die in a fire.
author nenolod
date Sun, 05 Nov 2006 04:43:16 -0800
parents c4640c88942d
children c2a63f41d8c6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1 /* BMP - Cross-platform multimedia player
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2 * Copyright (C) 2003-2004 BMP development team.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3 *
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
4 * Based on XMMS:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
5 * Copyright (C) 1998-2000 Peter Alm, Mikael Alm, Olle Hallnas, Thomas Nilsson and 4Front Technologies
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
6 *
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
7 * Redistribution and use in source and binary forms, with or without
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
8 * modification, are permitted provided that the following conditions are
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
9 * met: 1. Redistributions of source code must retain the above copyright
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
10 * notice, this list of conditions and the following disclaimer. 2.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
11 * Redistributions in binary form must reproduce the above copyright notice,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
12 * this list of conditions and the following disclaimer in the documentation
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
13 * and/or other materials provided with the distribution.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
14 *
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
16 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
17 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
18 * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
19 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
20 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
21 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
22 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
25 * SUCH DAMAGE.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
26 */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
27
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
28 /* Please see the BMP Wiki for information about the plugin interface */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
29
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
30 #ifndef BMP_PLUGIN_H
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
31 #define BMP_PLUGIN_H
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
32
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
33
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
34 #include <glib.h>
1248
6d9c45d157f9 [svn] - this is a hack until I find a better solution
nenolod
parents: 1231
diff changeset
35 #include "audacious/titlestring.h"
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
36
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
37 #define INPUT_PLUGIN(x) ((InputPlugin *)(x))
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
38 #define OUTPUT_PLUGIN(x) ((OutputPlugin *)(x))
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
39 #define EFFECT_PLUGIN(x) ((EffectPlugin *)(x))
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
40 #define GENERAL_PLUGIN(x) ((GeneralPlugin *)(x))
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
41 #define VIS_PLUGIN(x) ((VisPlugin *)(x))
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
42
1563
c4640c88942d [svn] - lowlevel plugin stuff
nenolod
parents: 1273
diff changeset
43 #define LOWLEVEL_PLUGIN(x) ((LowlevelPlugin *)(x))
c4640c88942d [svn] - lowlevel plugin stuff
nenolod
parents: 1273
diff changeset
44
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
45
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
46 typedef enum {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
47 FMT_U8,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
48 FMT_S8,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
49 FMT_U16_LE,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
50 FMT_U16_BE,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
51 FMT_U16_NE,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
52 FMT_S16_LE,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
53 FMT_S16_BE,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
54 FMT_S16_NE
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
55 } AFormat;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
56
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
57 typedef enum {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
58 INPUT_VIS_ANALYZER,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
59 INPUT_VIS_SCOPE,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
60 INPUT_VIS_VU,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
61 INPUT_VIS_OFF
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
62 } InputVisType;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
63
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
64
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
65 typedef struct _Plugin Plugin;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
66 typedef struct _InputPlugin InputPlugin;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
67 typedef struct _OutputPlugin OutputPlugin;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
68 typedef struct _EffectPlugin EffectPlugin;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
69 typedef struct _GeneralPlugin GeneralPlugin;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
70 typedef struct _VisPlugin VisPlugin;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
71
1563
c4640c88942d [svn] - lowlevel plugin stuff
nenolod
parents: 1273
diff changeset
72 typedef struct _LowlevelPlugin LowlevelPlugin;
c4640c88942d [svn] - lowlevel plugin stuff
nenolod
parents: 1273
diff changeset
73
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
74 /* Sadly, this is the most we can generalize out of the disparate
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
75 plugin structs usable with typecasts - descender */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
76 struct _Plugin {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
77 gpointer handle;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
78 gchar *filename;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
79 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
80
1563
c4640c88942d [svn] - lowlevel plugin stuff
nenolod
parents: 1273
diff changeset
81 /*
c4640c88942d [svn] - lowlevel plugin stuff
nenolod
parents: 1273
diff changeset
82 * LowlevelPlugin is used for lowlevel system services, such as PlaylistContainers,
c4640c88942d [svn] - lowlevel plugin stuff
nenolod
parents: 1273
diff changeset
83 * VFSContainers and the like.
c4640c88942d [svn] - lowlevel plugin stuff
nenolod
parents: 1273
diff changeset
84 *
c4640c88942d [svn] - lowlevel plugin stuff
nenolod
parents: 1273
diff changeset
85 * They are not GUI visible at this time.
c4640c88942d [svn] - lowlevel plugin stuff
nenolod
parents: 1273
diff changeset
86 */
c4640c88942d [svn] - lowlevel plugin stuff
nenolod
parents: 1273
diff changeset
87 struct _LowlevelPlugin {
c4640c88942d [svn] - lowlevel plugin stuff
nenolod
parents: 1273
diff changeset
88 gpointer handle;
c4640c88942d [svn] - lowlevel plugin stuff
nenolod
parents: 1273
diff changeset
89 gchar *filename;
c4640c88942d [svn] - lowlevel plugin stuff
nenolod
parents: 1273
diff changeset
90
c4640c88942d [svn] - lowlevel plugin stuff
nenolod
parents: 1273
diff changeset
91 gchar *description;
c4640c88942d [svn] - lowlevel plugin stuff
nenolod
parents: 1273
diff changeset
92
c4640c88942d [svn] - lowlevel plugin stuff
nenolod
parents: 1273
diff changeset
93 void (*init) (void);
c4640c88942d [svn] - lowlevel plugin stuff
nenolod
parents: 1273
diff changeset
94 void (*cleanup) (void);
c4640c88942d [svn] - lowlevel plugin stuff
nenolod
parents: 1273
diff changeset
95 };
c4640c88942d [svn] - lowlevel plugin stuff
nenolod
parents: 1273
diff changeset
96
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
97 struct _OutputPlugin {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
98 gpointer handle;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
99 gchar *filename;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
100
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
101 gchar *description;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
102
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
103 void (*init) (void);
309
b04ce1c98b6f [svn] Plugin cleanup functionality, via giacomo.
nenolod
parents: 0
diff changeset
104 void (*cleanup) (void);
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
105 void (*about) (void);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
106 void (*configure) (void);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
107 void (*get_volume) (gint * l, gint * r);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
108 void (*set_volume) (gint l, gint r);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
109
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
110 gint (*open_audio) (AFormat fmt, gint rate, gint nch);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
111 void (*write_audio) (gpointer ptr, gint length);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
112 void (*close_audio) (void);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
113
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
114 void (*flush) (gint time);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
115 void (*pause) (gshort paused);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
116 gint (*buffer_free) (void);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
117 gint (*buffer_playing) (void);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
118 gint (*output_time) (void);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
119 gint (*written_time) (void);
515
802a8ed87f67 [svn] Add support for tell_audio(), an output plugin accessor which will give us the information the input plugin passed to
nenolod
parents: 309
diff changeset
120
516
69a70ab41ed7 [svn] tell_audio returns void, not gint.
nenolod
parents: 515
diff changeset
121 void (*tell_audio) (AFormat * fmt, gint * rate, gint * nch);
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
122 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
123
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
124 struct _EffectPlugin {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
125 gpointer handle;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
126 gchar *filename;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
127
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
128 gchar *description;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
129
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
130 void (*init) (void);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
131 void (*cleanup) (void);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
132 void (*about) (void);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
133 void (*configure) (void);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
134
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
135 gint (*mod_samples) (gpointer * data, gint length, AFormat fmt, gint srate, gint nch);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
136 void (*query_format) (AFormat * fmt, gint * rate, gint * nch);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
137 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
138
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
139 struct _InputPlugin {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
140 gpointer handle;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
141 gchar *filename;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
142
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
143 gchar *description;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
144
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
145 void (*init) (void);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
146 void (*about) (void);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
147 void (*configure) (void);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
148
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
149 gint (*is_our_file) (gchar * filename);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
150 GList *(*scan_dir) (gchar * dirname);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
151
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
152 void (*play_file) (gchar * filename);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
153 void (*stop) (void);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
154 void (*pause) (gshort paused);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
155 void (*seek) (gint time);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
156
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
157 void (*set_eq) (gint on, gfloat preamp, gfloat * bands);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
158
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
159 gint (*get_time) (void);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
160
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
161 void (*get_volume) (gint * l, gint * r);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
162 void (*set_volume) (gint l, gint r);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
163
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
164 void (*cleanup) (void);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
165
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
166 InputVisType (*get_vis_type) (void);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
167 void (*add_vis_pcm) (gint time, AFormat fmt, gint nch, gint length, gpointer ptr);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
168
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
169 void (*set_info) (gchar * title, gint length, gint rate, gint freq, gint nch);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
170 void (*set_info_text) (gchar * text);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
171 void (*get_song_info) (gchar * filename, gchar ** title, gint * length);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
172 void (*file_info_box) (gchar * filename);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
173
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
174 OutputPlugin *output;
1231
502b369314c1 [svn] - InputPlugin class:
nenolod
parents: 516
diff changeset
175
502b369314c1 [svn] - InputPlugin class:
nenolod
parents: 516
diff changeset
176 TitleInput *(*get_song_tuple) (gchar * filename);
502b369314c1 [svn] - InputPlugin class:
nenolod
parents: 516
diff changeset
177 void (*set_song_tuple) (TitleInput * tuple);
1273
3b990c26fc46 [svn] - Support for the buffer indicator in playpaus.png that was apparently
nhjm449
parents: 1248
diff changeset
178 void (*set_status_buffering) (gboolean status);
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
179 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
180
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
181 struct _GeneralPlugin {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
182 gpointer handle;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
183 gchar *filename;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
184
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
185 gint xmms_session;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
186 gchar *description;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
187
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
188 void (*init) (void);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
189 void (*about) (void);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
190 void (*configure) (void);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
191 void (*cleanup) (void);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
192 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
193
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
194 struct _VisPlugin {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
195 gpointer handle;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
196 gchar *filename;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
197
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
198 gint xmms_session;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
199 gchar *description;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
200
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
201 gint num_pcm_chs_wanted;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
202 gint num_freq_chs_wanted;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
203
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
204 void (*init) (void);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
205 void (*cleanup) (void);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
206 void (*about) (void);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
207 void (*configure) (void);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
208 void (*disable_plugin) (struct _VisPlugin *);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
209 void (*playback_start) (void);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
210 void (*playback_stop) (void);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
211 void (*render_pcm) (gint16 pcm_data[2][512]);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
212 void (*render_freq) (gint16 freq_data[2][256]);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
213 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
214
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
215
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
216 G_BEGIN_DECLS
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
217
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
218 /* So that input plugins can get the title formatting information */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
219 G_CONST_RETURN gchar * xmms_get_gentitle_format(void);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
220
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
221 /* So that output plugins can communicate with effect plugins */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
222 EffectPlugin *get_current_effect_plugin(void);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
223 gboolean effects_enabled(void);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
224 gboolean plugin_set_errortext(const gchar * text);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
225
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
226 G_END_DECLS
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
227
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
228 #endif