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. More...
 
#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. More...
 
#define XMMS_OUTPUT_METHODS_INIT(m)   memset (&m, 0, sizeof (xmms_output_methods_t))
 Initialize the xmms_output_methods_t struct. More...
 
#define xmms_output_format_add(output, fmt, ch, rate)
 Add a format that the output plugin can feed the soundcard with. More...
 

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. More...
 

Functions

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

Detailed Description

Macro Definition Documentation

#define XMMS_OUTPUT_API_VERSION   8

The current API version.

Referenced by xmms_plugin_load().

#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
#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
#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

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.

typedef struct xmms_output_plugin_St xmms_output_plugin_t
typedef struct xmms_output_St xmms_output_t

Function Documentation

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_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_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_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_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
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
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
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
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
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
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
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