50 std::vector<AudioOutput *> outputs;
88 unsigned Size() const noexcept {
89 return outputs.size();
206 bool SetVolume(
unsigned volume) noexcept;
230 bool AllFinished() const noexcept;
232 void WaitAll() noexcept;
245 bool Update(
bool force);
250 bool IsChunkConsumed(const
MusicChunk *chunk) const noexcept;
257 void ClearTailChunk(const
MusicChunk *chunk,
bool *locked);
An interface between the AudioOutput and the #Player.
bool SetVolume(unsigned volume) noexcept
Sets the volume on all available mixers.
void Open(const AudioFormat audio_format, MusicBuffer &_buffer)
Opens all audio outputs which are not disabled.
void Pause()
Puts all audio outputs into pause mode.
A queue of MusicChunk objects.
const AudioOutput & Get(unsigned i) const
Returns the "i"th audio output device.
void SetReplayGainMode(ReplayGainMode mode)
void Drain()
Drain all audio outputs.
An event loop that polls for events on file/socket descriptors.
gcc_pure unsigned Size() const noexcept
Returns the total number of audio output devices, including those which are disabled right now...
MultipleOutputs(MixerListener &_mixer_listener)
Load audio outputs from the configuration file and initialize them.
unsigned Check()
Checks if the output devices have drained their music pipe, and returns the consumed music chunks to ...
An allocator for MusicChunk objects.
void Play(MusicChunk *chunk)
Enqueue a MusicChunk object for playing, i.e.
void Release()
Closes all audio outputs.
static constexpr SignedSongTime Negative()
Generate a negative value.
gcc_pure SignedSongTime GetElapsedTime() const noexcept
Returns the "elapsed_time" stamp of the most recently finished chunk.
void Close()
Closes all audio outputs.
void SetSoftwareVolume(unsigned volume) noexcept
Similar to SetVolume(), but sets the volume only for software mixers.
void EnableDisable()
Checks the "enabled" flag of all audio outputs, and if one has changed, commit the change...
void Cancel()
Try to cancel data which may still be in the device's buffers.
gcc_pure AudioOutput * FindByName(const char *name) const noexcept
Returns the audio output device with the specified name.
A variant of SongTime that is based on a signed integer.
An interface that listens on events from mixer plugins.
void SongBorder()
Indicate that a new song will begin now.
void Configure(EventLoop &event_loop, const ReplayGainConfig &replay_gain_config, AudioOutputClient &client)
AudioOutput & Get(unsigned i)
gcc_pure int GetVolume() const noexcept
Returns the average volume of all available mixers (range 0..100).
gcc_pure int GetSoftwareVolume() const noexcept
Similar to GetVolume(), but gets the volume only for software mixers.
const Partition const char * name