summaryrefslogtreecommitdiff
path: root/src/output
diff options
context:
space:
mode:
Diffstat (limited to 'src/output')
-rw-r--r--src/output/plugins/wasapi/WasapiOutputPlugin.cxx9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/output/plugins/wasapi/WasapiOutputPlugin.cxx b/src/output/plugins/wasapi/WasapiOutputPlugin.cxx
index 970f6e8cd..508d3f71d 100644
--- a/src/output/plugins/wasapi/WasapiOutputPlugin.cxx
+++ b/src/output/plugins/wasapi/WasapiOutputPlugin.cxx
@@ -258,6 +258,7 @@ public:
std::chrono::steady_clock::duration Delay() const noexcept override;
size_t Play(const void *chunk, size_t size) override;
void Drain() override;
+ void Cancel() noexcept override;
bool Pause() override;
void Interrupt() noexcept override;
@@ -664,6 +665,14 @@ WasapiOutput::Drain()
thread->CheckException();
}
+void
+WasapiOutput::Cancel() noexcept
+{
+ assert(thread);
+
+ thread->spsc_buffer.consume_all([](auto &&) {});
+}
+
/// run inside COMWorkerThread
void
WasapiOutput::OpenDevice()