20 #ifndef _XMMS_OUTPUTPLUGIN_H_ 21 #define _XMMS_OUTPUTPLUGIN_H_ 48 #define XMMS_OUTPUT_API_VERSION 8 50 struct xmms_output_plugin_St;
188 guint *levels, guint *nchans);
226 #define XMMS_OUTPUT_PLUGIN(shname, name, ver, desc, setupfunc) XMMS_PLUGIN(XMMS_PLUGIN_TYPE_OUTPUT, XMMS_OUTPUT_API_VERSION, shname, name, ver, desc, (gboolean (*)(gpointer))setupfunc) 235 #define XMMS_OUTPUT_METHODS_INIT(m) memset (&m, 0, sizeof (xmms_output_methods_t)) 275 #define xmms_output_format_add(output, fmt, ch, rate) \ 276 xmms_output_stream_type_add (output, \ 277 XMMS_STREAM_TYPE_MIMETYPE, \ 279 XMMS_STREAM_TYPE_FMT_FORMAT, \ 281 XMMS_STREAM_TYPE_FMT_CHANNELS, \ 283 XMMS_STREAM_TYPE_FMT_SAMPLERATE, \ 285 XMMS_STREAM_TYPE_END)
gboolean(* format_set)(xmms_output_t *output, const xmms_stream_type_t *type)
Update the sample format.
xmms_config_property_t * xmms_output_config_lookup(xmms_output_t *output, const gchar *path)
Lookup a configuration directive for the output plugin.
guint(* latency_get)(xmms_output_t *)
Get the number of bytes in the soundcard buffer.
struct xmms_stream_type_St xmms_stream_type_t
gint xmms_output_read(xmms_output_t *output, char *buffer, gint len)
Read a number of bytes of data from the output buffer into a buffer.
struct xmms_output_methods_St xmms_output_methods_t
Output functions that lets XMMS2 talk to the soundcard.
xmms_config_property_t * xmms_output_config_property_register(xmms_output_t *output, const gchar *name, const gchar *default_value, xmms_object_handler_t cb, gpointer userdata)
Register a configuration directive.
gboolean(* open)(xmms_output_t *output)
Open the output device.
void(* destroy)(xmms_output_t *output)
Destroy the output plugin.
Output functions that lets XMMS2 talk to the soundcard.
void(* close)(xmms_output_t *output)
Close the output device.
struct xmms_output_St xmms_output_t
struct xmms_output_plugin_St xmms_output_plugin_t
gboolean(* format_set_always)(xmms_output_t *output, const xmms_stream_type_t *type)
Update the sample format.
gboolean(* volume_get)(xmms_output_t *output, const gchar **names, guint *levels, guint *nchans)
Get volume.
xmms_medialib_entry_t xmms_output_current_id(xmms_output_t *output)
Get the currently medialib id of the currently played entry.
gpointer xmms_output_private_data_get(xmms_output_t *output)
Retrieve the private data for the plugin that was set with xmms_output_private_data_set.
gboolean(* volume_set)(xmms_output_t *output, const gchar *chan, guint val)
Set volume.
gint xmms_output_bytes_available(xmms_output_t *output)
Gets Number of available bytes in the output buffer.
void xmms_output_stream_type_add(xmms_output_t *output,...)
Add format to list of supported formats.
void xmms_output_private_data_set(xmms_output_t *output, gpointer data)
Set the private data for the plugin that can be retrived with xmms_output_private_data_get later...
gboolean xmms_output_plugin_format_set_always(xmms_output_plugin_t *plugin)
Check if an output plugin needs format updates on each track change.
xmms_config_property_t * xmms_output_plugin_config_property_register(xmms_output_plugin_t *plugin, const gchar *name, const gchar *default_value, xmms_object_handler_t cb, gpointer userdata)
Register a configuration directive in the plugin setup function.
G_BEGIN_DECLS struct xmms_error_St xmms_error_t
gboolean(* status)(xmms_output_t *output, xmms_playback_status_t status)
Update the output plugin with the current playback status.
struct xmms_config_property_St xmms_config_property_t
void(* write)(xmms_output_t *output, gpointer buffer, gint size, xmms_error_t *err)
Write audio data to the output device.
void(* flush)(xmms_output_t *output)
Flush the soundcard buffer.
void xmms_output_plugin_methods_set(xmms_output_plugin_t *output, xmms_output_methods_t *methods)
Register the output plugin functions.
void(* xmms_object_handler_t)(xmms_object_t *object, xmmsv_t *data, gpointer userdata)
void xmms_output_set_error(xmms_output_t *output, xmms_error_t *error)
Set an error.