XMMS2
Data Structures | Macros | Typedefs | Functions
OutputPlugin

Data Structures

struct  xmms_output_methods_St
 Output functions that lets XMMS2 talk to the soundcard. More...
 

Macros

#define XMMS_OUTPUT_API_VERSION   8
 The current API version.
 
#define XMMS_OUTPUT_PLUGIN_DEFINE(shname, name, ver, desc, setupfunc)   XMMS_PLUGIN_DEFINE(XMMS_PLUGIN_TYPE_OUTPUT, XMMS_OUTPUT_API_VERSION, shname, name, ver, desc, (gboolean (*)(gpointer))setupfunc)
 Register the output plugin.
 
#define XMMS_OUTPUT_METHODS_INIT(m)   memset (&m, 0, sizeof (xmms_output_methods_t))
 Initialize the xmms_output_methods_t struct.
 
#define xmms_output_format_add(output, fmt, ch, rate)
 Add a format that the output plugin can feed the soundcard with.
 

Typedefs

typedef struct xmms_output_St xmms_output_t
 
typedef struct xmms_output_plugin_St xmms_output_plugin_t
 
typedef struct xmms_output_methods_St xmms_output_methods_t
 Output functions that lets XMMS2 talk to the soundcard.
 

Functions

void xmms_output_plugin_methods_set (xmms_output_plugin_t *output, xmms_output_methods_t *methods)
 Register the output plugin functions.
 
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.
 
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.
 
void xmms_output_stream_type_add (xmms_output_t *output,...)
 Add format to list of supported formats.
 
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.
 
gint xmms_output_bytes_available (xmms_output_t *output)
 Gets Number of available bytes in the output buffer.
 
void xmms_output_set_error (xmms_output_t *output, xmms_error_t *error)
 Set an error.
 
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_txmms_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.
 
xmms_config_property_txmms_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.
 
xmms_config_property_txmms_output_config_lookup (xmms_output_t *output, const gchar *path)
 Lookup a configuration directive for the output plugin.
 
xmms_medialib_entry_t xmms_output_current_id (xmms_output_t *output)
 Get the currently medialib id of the currently played entry.
 

Detailed Description

Macro Definition Documentation

◆ XMMS_OUTPUT_API_VERSION

#define XMMS_OUTPUT_API_VERSION   8

The current API version.

Referenced by xmms_plugin_load().

◆ xmms_output_format_add

#define xmms_output_format_add ( output,
fmt,
ch,
rate )
Value:

Add a format that the output plugin can feed the soundcard with.

Parameters
outputan output object
fmta xmms_sample_format_t
chthe number of channels
ratethe sample rate

◆ XMMS_OUTPUT_METHODS_INIT

#define XMMS_OUTPUT_METHODS_INIT ( m)    memset (&m, 0, sizeof (xmms_output_methods_t))

Initialize the xmms_output_methods_t struct.

This should be run before any functions are associated.

Parameters
mthe xmms_output_methods_t struct to initialize

◆ XMMS_OUTPUT_PLUGIN_DEFINE

#define XMMS_OUTPUT_PLUGIN_DEFINE ( shname,
name,
ver,
desc,
setupfunc )   XMMS_PLUGIN_DEFINE(XMMS_PLUGIN_TYPE_OUTPUT, XMMS_OUTPUT_API_VERSION, shname, name, ver, desc, (gboolean (*)(gpointer))setupfunc)

Register the output plugin.

Parameters
shnameshort name of the plugin
namelong name of the plugin
verthe version of the plugin, usually the XMMS_VERSION macro
desca description of the plugin
setupfuncthe function that sets up the plugin functions

Typedef Documentation

◆ xmms_output_methods_t

Output functions that lets XMMS2 talk to the soundcard.

An output plugin can behave in two diffrent ways. It can either use it's own event system, or it can depend on the one XMMS2 provides. If the architechture uses its own event mechanism the plugin should not implement open/close/write. Instead a status function is implemented which will be notified on playback status updates, and perform the proper actions based on this.

◆ xmms_output_plugin_t

typedef struct xmms_output_plugin_St xmms_output_plugin_t

◆ xmms_output_t

typedef struct xmms_output_St xmms_output_t

Function Documentation

◆ xmms_output_bytes_available()

gint xmms_output_bytes_available ( xmms_output_t * output)

Gets Number of available bytes in the output buffer.

This is typically used when the output plugin is event driven, and is then used when the status is set to playing, and the output needs more data from xmms2 to write to the soundcard.

Parameters
outputan output object
buffera buffer to store the read data in
lenthe number of bytes to read
Returns
the number of bytes read

◆ xmms_output_config_lookup()

xmms_config_property_t * xmms_output_config_lookup ( xmms_output_t * output,
const gchar * path )

Lookup a configuration directive for the output plugin.

Parameters
outputan output object
paththe path to the configuration value
Returns
a xmms_config_property_t found at the given path

◆ xmms_output_config_property_register()

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.

As an optional, but recomended functionality the plugin can decide to subscribe on the configuration value and will thus be notified when it changes by passing a callback, and if needed, userdata.

Parameters
outputan output object
namethe name of the configuration directive
default_valuethe default value of the configuration directive
cbthe function to call on configuration value changes
userdataa user specified variable to be passed to the callback
Returns
a xmms_config_property_t based on the given input

◆ xmms_output_current_id()

xmms_medialib_entry_t xmms_output_current_id ( xmms_output_t * output)

Get the currently medialib id of the currently played entry.

Parameters
outputan output object
Returns
the current entry as xmms_medialib_entry_t or 0 on error

◆ xmms_output_plugin_config_property_register()

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.

As an optional, but recomended functionality the plugin can decide to subscribe on the configuration value and will thus be notified when it changes by passing a callback, and if needed, userdata.

Parameters
pluginan output plugin object
namethe name of the configuration directive
default_valuethe default value of the configuration directive
cbthe function to call on configuration value changes
userdataa user specified variable to be passed to the callback
Returns
a xmms_config_property_t based on the given input

◆ xmms_output_plugin_format_set_always()

gboolean xmms_output_plugin_format_set_always ( xmms_output_plugin_t * plugin)

Check if an output plugin needs format updates on each track change.

Parameters
pluginan output plugin object
Returns
TRUE if the plugin should always be notified, otherwise FALSE

◆ xmms_output_plugin_methods_set()

void xmms_output_plugin_methods_set ( xmms_output_plugin_t * output,
xmms_output_methods_t * methods )

Register the output plugin functions.

Performs basic validation, see xmms_output_methods_St for more information.

Parameters
outputan output plugin object
methodsa struct pointing to the plugin specific functions

◆ xmms_output_private_data_get()

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.

Parameters
outputan output object
Returns
the private data

◆ xmms_output_private_data_set()

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.

Parameters
outputan output object
datathe private data

◆ xmms_output_read()

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.

This is typically used when the output plugin is event driven, and is then used when the status is set to playing, and the output needs more data from xmms2 to write to the soundcard.

Parameters
outputan output object
buffera buffer to store the read data in
lenthe number of bytes to read
Returns
the number of bytes read

◆ xmms_output_set_error()

void xmms_output_set_error ( xmms_output_t * output,
xmms_error_t * error )

Set an error.

When an error occurs in an asynchronous function, the error can be propagated using this function.

Parameters
outputan output object
erroran error object

◆ xmms_output_stream_type_add()

void xmms_output_stream_type_add ( xmms_output_t * output,
... )

Add format to list of supported formats.

Should be called from initialisation function for every supported format. Any call to the format_set function will be with one of these formats.

Parameters
outputan output object
...pairs of xmms_stream_type_key_t, value