20 #ifndef MPD_OUTPUT_PLUGIN_HXX 21 #define MPD_OUTPUT_PLUGIN_HXX 120 const void *chunk,
size_t size);
184 std::chrono::steady_clock::duration
void ao_plugin_disable(AudioOutput *ao)
void(* enable)(AudioOutput *data)
Enable the device.
void(* close)(AudioOutput *data)
Close the device.
bool(* test_default_device)()
Test if this plugin can provide a default output, in case none has been configured.
size_t(* play)(AudioOutput *data, const void *chunk, size_t size)
Play a chunk of audio data.
std::chrono::steady_clock::duration(* delay)(AudioOutput *data) noexcept
Returns a positive number if the output thread shall further delay the next call to play() or pause()...
The meta information about a song file.
void(* open)(AudioOutput *data, AudioFormat &audio_format)
Really open the device.
void ao_plugin_drain(AudioOutput *ao)
const char * name
the plugin's name
void ao_plugin_send_tag(AudioOutput *ao, const Tag &tag)
void(* finish)(AudioOutput *data)
Free resources allocated by this device.
static bool ao_plugin_test_default_device(const AudioOutputPlugin *plugin)
void ao_plugin_finish(AudioOutput *ao)
void(* cancel)(AudioOutput *data)
Try to cancel data which may still be in the device's buffers.
void ao_plugin_cancel(AudioOutput *ao)
void ao_plugin_enable(AudioOutput *ao)
gcc_pure std::chrono::steady_clock::duration ao_plugin_delay(AudioOutput *ao) noexcept
bool(* pause)(AudioOutput *data)
Pause the device.
void(* drain)(AudioOutput *data)
Wait until the device has finished playing.
void ao_plugin_close(AudioOutput *ao)
void ao_plugin_open(AudioOutput *ao, AudioFormat &audio_format)
void(* send_tag)(AudioOutput *data, const Tag &tag)
Display metadata for the next chunk.
const MixerPlugin * mixer_plugin
The mixer plugin associated with this output plugin.
size_t ao_plugin_play(AudioOutput *ao, const void *chunk, size_t size)
gcc_malloc AudioOutput * ao_plugin_init(const AudioOutputPlugin *plugin, const ConfigBlock &block)
bool ao_plugin_pause(AudioOutput *ao)
void(* disable)(AudioOutput *data)
Disables the device.
A plugin which controls an audio output device.