Merge branch 'v0.22.x'

This commit is contained in:
Max Kellermann
2020-11-16 09:41:20 +01:00
10 changed files with 167 additions and 5 deletions

View File

@@ -39,6 +39,17 @@ AudioOutputControl::AudioOutputControl(std::unique_ptr<FilteredAudioOutput> _out
{
}
AudioOutputControl::AudioOutputControl(AudioOutputControl *_output,
AudioOutputClient &_client) noexcept
:output(_output->Steal()),
name(output->GetName()),
client(_client),
thread(BIND_THIS_METHOD(Task))
{
tags =_output->tags;
always_on=_output->always_on;
}
AudioOutputControl::~AudioOutputControl() noexcept
{
StopThread();

View File

@@ -245,6 +245,9 @@ public:
AudioOutputControl(std::unique_ptr<FilteredAudioOutput> _output,
AudioOutputClient &_client) noexcept;
AudioOutputControl(AudioOutputControl *_outputControl,
AudioOutputClient &_client) noexcept;
~AudioOutputControl() noexcept;
AudioOutputControl(const AudioOutputControl &) = delete;

View File

@@ -140,6 +140,19 @@ MultipleOutputs::Add(std::unique_ptr<FilteredAudioOutput> output,
client.ApplyEnabled();
}
void
MultipleOutputs::AddCopy(AudioOutputControl *outputControl,
bool enable) noexcept
{
// TODO: this operation needs to be protected with a mutex
outputs.emplace_back(std::make_unique<AudioOutputControl>(outputControl,
client));
outputs.back()->LockSetEnabled(enable);
client.ApplyEnabled();
}
void
MultipleOutputs::EnableDisable()
{

View File

@@ -128,6 +128,10 @@ public:
void Add(std::unique_ptr<FilteredAudioOutput> output,
bool enable) noexcept;
void AddCopy(AudioOutputControl *outputControl,
bool enable) noexcept;
void SetReplayGainMode(ReplayGainMode mode) noexcept;
/**