comparison src/audacious/plugin.h @ 2436:f346d30bf5ab trunk

[svn] Change the input plugin API to use a struct for the currently-playing file.
author iabervon
date Sun, 28 Jan 2007 17:02:15 -0800
parents 3149d4b1a9a9
children 62d8f9c05832
comparison
equal deleted inserted replaced
2435:5b23e9b07317 2436:f346d30bf5ab
78 typedef struct _GeneralPlugin GeneralPlugin; 78 typedef struct _GeneralPlugin GeneralPlugin;
79 typedef struct _VisPlugin VisPlugin; 79 typedef struct _VisPlugin VisPlugin;
80 80
81 typedef struct _LowlevelPlugin LowlevelPlugin; 81 typedef struct _LowlevelPlugin LowlevelPlugin;
82 82
83 typedef struct _InputPlayback InputPlayback;
84
83 /* Sadly, this is the most we can generalize out of the disparate 85 /* Sadly, this is the most we can generalize out of the disparate
84 plugin structs usable with typecasts - descender */ 86 plugin structs usable with typecasts - descender */
85 struct _Plugin { 87 struct _Plugin {
86 gpointer handle; 88 gpointer handle;
87 gchar *filename; 89 gchar *filename;
143 145
144 gint (*mod_samples) (gpointer * data, gint length, AFormat fmt, gint srate, gint nch); 146 gint (*mod_samples) (gpointer * data, gint length, AFormat fmt, gint srate, gint nch);
145 void (*query_format) (AFormat * fmt, gint * rate, gint * nch); 147 void (*query_format) (AFormat * fmt, gint * rate, gint * nch);
146 }; 148 };
147 149
150 struct _InputPlayback {
151 gchar *filename;
152 InputPlugin *plugin;
153 void *data;
154 OutputPlugin *output;
155 };
156
148 struct _InputPlugin { 157 struct _InputPlugin {
149 gpointer handle; 158 gpointer handle;
150 gchar *filename; 159 gchar *filename;
151 160
152 gchar *description; 161 gchar *description;
156 void (*configure) (void); 165 void (*configure) (void);
157 166
158 gint (*is_our_file) (gchar * filename); 167 gint (*is_our_file) (gchar * filename);
159 GList *(*scan_dir) (gchar * dirname); 168 GList *(*scan_dir) (gchar * dirname);
160 169
161 void (*play_file) (gchar * filename); 170 void (*play_file) (InputPlayback * playback);
162 void (*stop) (void); 171 void (*stop) (InputPlayback * playback);
163 void (*pause) (gshort paused); 172 void (*pause) (InputPlayback * playback, gshort paused);
164 void (*seek) (gint time); 173 void (*seek) (InputPlayback * playback, gint time);
165 174
166 void (*set_eq) (gint on, gfloat preamp, gfloat * bands); 175 void (*set_eq) (gint on, gfloat preamp, gfloat * bands);
167 176
168 gint (*get_time) (void); 177 gint (*get_time) (InputPlayback * playback);
169 178
170 void (*get_volume) (gint * l, gint * r); 179 void (*get_volume) (gint * l, gint * r);
171 void (*set_volume) (gint l, gint r); 180 void (*set_volume) (gint l, gint r);
172 181
173 void (*cleanup) (void); 182 void (*cleanup) (void);