MPD
Data Fields
audio_output Struct Reference

#include <output_internal.h>

Data Fields

const char * name
 The device's configured display name.
 
struct audio_output_pluginplugin
 The plugin which implements this output device.
 
void * data
 The plugin's internal data.
 
struct mixermixer
 The mixer object associated with this audio output device.
 
bool always_on
 Shall this output always play something (i.e.
 
bool enabled
 Has the user enabled this device?
 
bool really_enabled
 Is this device actually enabled, i.e.
 
bool open
 Is the device (already) open and functional?
 
bool pause
 Is the device paused? i.e.
 
bool allow_play
 When this flag is set, the output thread will not do any playback.
 
GTimer * fail_timer
 If not NULL, the device has failed, and this timer is used to estimate how long it should stay disabled (unless explicitly reopened with "play").
 
struct audio_format config_audio_format
 The configured audio format.
 
struct audio_format in_audio_format
 The audio_format in which audio data is received from the player thread (which in turn receives it from the decoder).
 
struct audio_format out_audio_format
 The audio_format which is really sent to the device.
 
struct pcm_buffer cross_fade_buffer
 The buffer used to allocate the cross-fading result.
 
struct filterfilter
 The filter object of this audio output.
 
struct filterreplay_gain_filter
 The replay_gain_filter_plugin instance of this audio output.
 
unsigned replay_gain_serial
 The serial number of the last replay gain info.
 
struct filterother_replay_gain_filter
 The replay_gain_filter_plugin instance of this audio output, to be applied to the second chunk during cross-fading.
 
unsigned other_replay_gain_serial
 The serial number of the last replay gain info by the "other" chunk during cross-fading.
 
struct filterconvert_filter
 The convert_filter_plugin instance of this audio output.
 
GThread * thread
 The thread handle, or NULL if the output thread isn't running.
 
enum audio_output_command command
 The next command to be performed by the output thread.
 
struct music_pipe * pipe
 The music pipe which provides music chunks to be played.
 
GMutex * mutex
 This mutex protects open, fail_timer, chunk and chunk_finished.
 
GCond * cond
 This condition object wakes up the output thread after command has been set.
 
struct music_chunkchunk
 The music_chunk which is currently being played.
 
bool chunk_finished
 Has the output finished playing chunk?
 

Detailed Description

Definition at line 55 of file output_internal.h.

Field Documentation

bool audio_output::allow_play

When this flag is set, the output thread will not do any playback.

It will wait until the flag is cleared.

This is used to synchronize the "clear" operation on the shared music pipe during the CANCEL command.

Definition at line 119 of file output_internal.h.

bool audio_output::always_on

Shall this output always play something (i.e.

silence), even when playback is stopped?

Definition at line 83 of file output_internal.h.

struct music_chunk* audio_output::chunk

The music_chunk which is currently being played.

All chunks before this one may be returned to the #music_buffer, because they are not going to be used by this output anymore.

Definition at line 225 of file output_internal.h.

bool audio_output::chunk_finished

Has the output finished playing chunk?

Definition at line 230 of file output_internal.h.

enum audio_output_command audio_output::command

The next command to be performed by the output thread.

Definition at line 200 of file output_internal.h.

GCond* audio_output::cond

This condition object wakes up the output thread after command has been set.

Definition at line 217 of file output_internal.h.

struct audio_format audio_output::config_audio_format

The configured audio format.

Definition at line 131 of file output_internal.h.

struct filter* audio_output::convert_filter

The convert_filter_plugin instance of this audio output.

It is the last item in the filter chain, and is responsible for converting the input data into the appropriate format for this audio output.

Definition at line 189 of file output_internal.h.

struct pcm_buffer audio_output::cross_fade_buffer

The buffer used to allocate the cross-fading result.

Definition at line 150 of file output_internal.h.

void* audio_output::data

The plugin's internal data.

It is passed to every plugin method.

Definition at line 70 of file output_internal.h.

bool audio_output::enabled

Has the user enabled this device?

Definition at line 88 of file output_internal.h.

GTimer* audio_output::fail_timer

If not NULL, the device has failed, and this timer is used to estimate how long it should stay disabled (unless explicitly reopened with "play").

Definition at line 126 of file output_internal.h.

struct filter* audio_output::filter

The filter object of this audio output.

This is an instance of chain_filter_plugin.

Definition at line 156 of file output_internal.h.

struct audio_format audio_output::in_audio_format

The audio_format in which audio data is received from the player thread (which in turn receives it from the decoder).

Definition at line 137 of file output_internal.h.

struct mixer* audio_output::mixer

The mixer object associated with this audio output device.

May be NULL if none is available, or if software volume is configured.

Definition at line 77 of file output_internal.h.

GMutex* audio_output::mutex

This mutex protects open, fail_timer, chunk and chunk_finished.

Definition at line 211 of file output_internal.h.

const char* audio_output::name

The device's configured display name.

Definition at line 59 of file output_internal.h.

bool audio_output::open

Is the device (already) open and functional?

This attribute may only be modified by the output thread. It is protected with mutex: write accesses inside the output thread and read accesses outside of it may only be performed while the lock is held.

Definition at line 104 of file output_internal.h.

struct filter* audio_output::other_replay_gain_filter

The replay_gain_filter_plugin instance of this audio output, to be applied to the second chunk during cross-fading.

Definition at line 175 of file output_internal.h.

unsigned audio_output::other_replay_gain_serial

The serial number of the last replay gain info by the "other" chunk during cross-fading.

Definition at line 181 of file output_internal.h.

struct audio_format audio_output::out_audio_format

The audio_format which is really sent to the device.

This is basically config_audio_format (if configured) or in_audio_format, but may have been modified by plugin->open().

Definition at line 145 of file output_internal.h.

bool audio_output::pause

Is the device paused? i.e.

the output thread is in the ao_pause() loop.

Definition at line 110 of file output_internal.h.

struct music_pipe* audio_output::pipe

The music pipe which provides music chunks to be played.

Definition at line 205 of file output_internal.h.

struct audio_output_plugin* audio_output::plugin

The plugin which implements this output device.

Definition at line 64 of file output_internal.h.

bool audio_output::really_enabled

Is this device actually enabled, i.e.

the "enable" method has succeeded?

Definition at line 94 of file output_internal.h.

struct filter* audio_output::replay_gain_filter

The replay_gain_filter_plugin instance of this audio output.

Definition at line 162 of file output_internal.h.

unsigned audio_output::replay_gain_serial

The serial number of the last replay gain info.

0 means no replay gain info was available.

Definition at line 168 of file output_internal.h.

GThread* audio_output::thread

The thread handle, or NULL if the output thread isn't running.

Definition at line 195 of file output_internal.h.


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