20 #ifndef AUDIO_OUTPUT_SOURCE_HXX
21 #define AUDIO_OUTPUT_SOURCE_HXX
67 unsigned replay_gain_serial;
73 unsigned other_replay_gain_serial;
79 Filter *replay_gain_filter_instance =
nullptr;
86 Filter *other_replay_gain_filter_instance =
nullptr;
102 Filter *filter_instance =
nullptr;
113 const Tag *pending_tag;
123 replay_gain_mode = _mode;
133 return in_audio_format;
141 void Close() noexcept;
162 assert(current_chunk !=
nullptr);
164 return std::exchange(pending_tag,
nullptr);
176 return pending_data.
ToVoid();
200 void CloseFilter() noexcept;
203 Filter *replay_gain_filter,
204 unsigned *replay_gain_serial_p);
bool IsChunkConsumed(const MusicChunk &chunk) const noexcept
A utility class which helps with consuming data from a MusicPipe.
A queue of MusicChunk objects.
The meta information about a song file.
void ClearTail(gcc_unused const MusicChunk &_chunk) noexcept
Source of audio data to be played by an AudioOutput.
const Tag * ReadTag() noexcept
Reads the Tag to be processed.
gcc_pure bool IsConsumed(const MusicChunk &_chunk) const noexcept
const AudioFormat & GetInputAudioFormat() const
Manager for a temporary buffer which grows as needed.
AudioFormat Open(AudioFormat audio_format, const MusicPipe &_pipe, PreparedFilter *prepared_replay_gain_filter, PreparedFilter *prepared_other_replay_gain_filter, PreparedFilter *prepared_filter)
void ConsumeData(size_t nbytes) noexcept
Mark portions of the PeekData() return value as "consumed".
void SetReplayGainMode(ReplayGainMode _mode)
constexpr ConstBuffer< void > ToVoid() const
bool Fill(Mutex &mutex)
Ensure that ReadTag() or PeekData() return any input.
ConstBuffer< void > PeekData() const noexcept
Returns the remaining filtered PCM data be played.
void ClearTailChunk(const MusicChunk &chunk) noexcept