OutputPlugin

Data Structures

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

Defines

#define XMMS_OUTPUT_API_VERSION   8
 The current API version.
#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)
 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.
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.

Define Documentation

#define XMMS_OUTPUT_API_VERSION   8

The current API version.

Definition at line 48 of file xmms_outputplugin.h.

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

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

Parameters:
output an output object
fmt a xmms_sample_format_t
ch the number of channels
rate the sample rate

Definition at line 275 of file xmms_outputplugin.h.

#define XMMS_OUTPUT_METHODS_INIT (  )     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:
m the xmms_output_methods_t struct to initialize

Definition at line 235 of file xmms_outputplugin.h.

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

Register the output plugin.

Parameters:
shname short name of the plugin
name long name of the plugin
ver the version of the plugin, usually the XMMS_VERSION macro
desc a description of the plugin
setupfunc the function that sets up the plugin functions

Definition at line 226 of file xmms_outputplugin.h.


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

Definition at line 51 of file xmms_outputplugin.h.

typedef struct xmms_output_St xmms_output_t

Definition at line 43 of file xmms_outputplugin.h.


Function Documentation

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

Lookup a configuration directive for the output plugin.

Parameters:
output an output object
path the path to the configuration value
Returns:
a xmms_config_property_t found at the given path

Definition at line 570 of file output.c.

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:
output an output object
name the name of the configuration directive
default_value the default value of the configuration directive
cb the function to call on configuration value changes
userdata a user specified variable to be passed to the callback
Returns:
a xmms_config_property_t based on the given input

Definition at line 563 of file output.c.

xmms_medialib_entry_t xmms_output_current_id ( xmms_output_t output  ) 

Get the currently medialib id of the currently played entry.

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

Definition at line 577 of file output.c.

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:
plugin an output plugin object
name the name of the configuration directive
default_value the default value of the configuration directive
cb the function to call on configuration value changes
userdata a user specified variable to be passed to the callback
Returns:
a xmms_config_property_t based on the given input

Definition at line 145 of file outputplugin.c.

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:
plugin an output plugin object
Returns:
TRUE if the plugin should always be notified, otherwise FALSE

Definition at line 225 of file outputplugin.c.

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:
output an output plugin object
methods a struct pointing to the plugin specific functions

Definition at line 86 of file outputplugin.c.

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:
output an output object
Returns:
the private data

Definition at line 164 of file output.c.

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:
output an output object
data the private data

Definition at line 173 of file output.c.

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:
output an output object
buffer a buffer to store the read data in
len the number of bytes to read
Returns:
the number of bytes read

Definition at line 523 of file output.c.

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:
output an output object
error an error object

Definition at line 257 of file output.c.

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:
output an output object
... pairs of xmms_stream_type_key_t, value

Definition at line 182 of file output.c.


Generated on Tue Feb 23 18:14:36 2010 for XMMS2 by  doxygen 1.6.1