MPD

- Main Page
- Data Structures
- Files

- Data Structures
- Data Fields

Data Fields

# audio_output_plugin Struct Reference

A plugin which controls an audio output device. More...

`#include <output_plugin.h>`

## Data Fields
const char * | name
| the plugin's name
bool(* | test_default_device )(void)
| Test if this plugin can provide a default output, in case none has been configured.
void *(* | init )(const struct audio_format *audio_format, const struct config_param *param, GError **error)
| Configure and initialize the device, but do not open it yet.
void(* | finish )(void *data)
| Free resources allocated by this device.
bool(* | enable )(void *data, GError **error_r)
| Enable the device.
void(* | disable )(void *data)
| Disables the device.
bool(* | open )(void *data, struct audio_format *audio_format, GError **error)
| Really open the device.
void(* | close )(void *data)
| Close the device.
unsigned(* | delay )(void *data)
| Returns a positive number if the output thread shall delay the next call to play() or pause().
void(* | send_tag )(void *data, const struct tag *tag)
| Display metadata for the next chunk.
size_t(* | play )(void *data, const void *chunk, size_t size, GError **error)
| Play a chunk of audio data.
void(* | drain )(void *data)
| Wait until the device has finished playing.
void(* | cancel )(void *data)
| Try to cancel data which may still be in the device's buffers.
bool(* | pause )(void *data)
| Pause the device.
struct mixer_plugin * | mixer_plugin
| The mixer plugin associated with this output plugin.

## Detailed Description

A plugin which controls an audio output device.

Definition at line 35 of file output_plugin.h.

## Field Documentation

void(* audio_output_plugin::cancel)(void *data)

Try to cancel data which may still be in the device's buffers.

Definition at line 138 of file output_plugin.h.

void(* audio_output_plugin::close)(void *data)

Close the device.

Definition at line 101 of file output_plugin.h.

unsigned(* audio_output_plugin::delay)(void *data)

Returns a positive number if the output thread shall delay the next call to play() or pause().

This should be implemented instead of doing a sleep inside the plugin, because this allows MPD to listen to commands meanwhile.

Returns:
  the number of milliseconds to wait

Definition at line 111 of file output_plugin.h.

void(* audio_output_plugin::disable)(void *data)

Disables the device.

It is closed before this method is called.

Definition at line 85 of file output_plugin.h.

void(* audio_output_plugin::drain)(void *data)

Wait until the device has finished playing.

Definition at line 132 of file output_plugin.h.

bool(* audio_output_plugin::enable)(void *data, GError **error_r)

Enable the device.

This may allocate resources, preparing for the device to be opened. Enabling a device cannot fail: if an error occurs during that, it should be reported by the open() method.

Parameters:

  error_r | location to store the error occuring, or NULL to ignore errors

Returns:
  true on success, false on error

Definition at line 79 of file output_plugin.h.

void(* audio_output_plugin::finish)(void *data)

Free resources allocated by this device.

Definition at line 67 of file output_plugin.h.

void*(* audio_output_plugin::init)(const struct audio_format *audio_format, const struct config_param *param, GError **error)

Configure and initialize the device, but do not open it yet.

Parameters:

  audio_format | the configured audio format, or NULL if none is configured
  param | the configuration section, or NULL if there is no configuration
  error | location to store the error occuring, or NULL to ignore errors

Returns:
  NULL on error, or an opaque pointer to the plugin's data

Definition at line 60 of file output_plugin.h.

struct mixer_plugin* audio_output_plugin::mixer_plugin

The mixer plugin associated with this output plugin.

This may be NULL if no mixer plugin is implemented. When created, this mixer plugin gets the same config_param as this audio output device.

Definition at line 159 of file output_plugin.h.

const char* audio_output_plugin::name

the plugin's name

Definition at line 39 of file output_plugin.h.

bool(* audio_output_plugin::open)(void *data, struct audio_format *audio_format, GError **error)

Really open the device.

Parameters:

  audio_format | the audio format in which data is going to be delivered; may be modified by the plugin
  error | location to store the error occuring, or NULL to ignore errors

Definition at line 95 of file output_plugin.h.

bool(* audio_output_plugin::pause)(void *data)

Pause the device.

If supported, it may perform a special action, which keeps the device open, but does not play anything. Output plugins like "shout" might want to play silence during pause, so their clients won't be disconnected. Plugins which do not support pausing will simply be closed, and have to be reopened when unpaused.

Returns:
  false on error (output will be closed then), true for continue to pause

Definition at line 151 of file output_plugin.h.

size_t(* audio_output_plugin::play)(void *data, const void *chunk, size_t size, GError **error)

Play a chunk of audio data.

Parameters:

  error | location to store the error occuring, or NULL to ignore errors

Returns:
  the number of bytes played, or 0 on error

Definition at line 126 of file output_plugin.h.

void(* audio_output_plugin::send_tag)(void *data, const struct tag *tag)

Display metadata for the next chunk.

Optional method, because not all devices can display metadata.

Definition at line 117 of file output_plugin.h.

bool(* audio_output_plugin::test_default_device)(void)

Test if this plugin can provide a default output, in case none has been configured.

This method is optional.

Definition at line 45 of file output_plugin.h.

The documentation for this struct was generated from the following file:

- src/output_plugin.h