output/Multiple: use std::unique_ptr<FilteredAudioOutput>
This commit is contained in:
+11
-4
@@ -37,13 +37,21 @@ static constexpr PeriodClock::Duration REOPEN_AFTER = std::chrono::seconds(10);
|
||||
|
||||
struct notify audio_output_client_notify;
|
||||
|
||||
AudioOutputControl::AudioOutputControl(FilteredAudioOutput *_output,
|
||||
AudioOutputControl::AudioOutputControl(std::unique_ptr<FilteredAudioOutput> _output,
|
||||
AudioOutputClient &_client) noexcept
|
||||
:output(_output), client(_client),
|
||||
:output(std::move(_output)), client(_client),
|
||||
thread(BIND_THIS_METHOD(Task))
|
||||
{
|
||||
}
|
||||
|
||||
AudioOutputControl::~AudioOutputControl() noexcept
|
||||
{
|
||||
assert(!fail_timer.IsDefined());
|
||||
assert(!thread.IsDefined());
|
||||
assert(output == nullptr);
|
||||
assert(!open);
|
||||
}
|
||||
|
||||
void
|
||||
AudioOutputControl::Configure(const ConfigBlock &block)
|
||||
{
|
||||
@@ -377,6 +385,5 @@ AudioOutputControl::FinishDestroy() noexcept
|
||||
if (thread.IsDefined())
|
||||
thread.Join();
|
||||
|
||||
delete output;
|
||||
output = nullptr;
|
||||
output.reset();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user