From b2b95e96c159afe3226fe6a001ff780a38813fe4 Mon Sep 17 00:00:00 2001 From: Chloe Marcec Date: Sun, 24 Jan 2021 19:13:34 +1100 Subject: audout: FlushAudioOutBuffers Fixes Devil May Cry --- src/audio_core/stream.cpp | 8 ++++++++ src/audio_core/stream.h | 3 +++ 2 files changed, 11 insertions(+) (limited to 'src/audio_core') diff --git a/src/audio_core/stream.cpp b/src/audio_core/stream.cpp index afe68c9ed..5b0b285cd 100644 --- a/src/audio_core/stream.cpp +++ b/src/audio_core/stream.cpp @@ -51,6 +51,14 @@ void Stream::Stop() { UNIMPLEMENTED(); } +bool Stream::Flush() { + const bool had_buffers = !queued_buffers.empty(); + while (!queued_buffers.empty()) { + queued_buffers.pop(); + } + return had_buffers; +} + void Stream::SetVolume(float volume) { game_volume = volume; } diff --git a/src/audio_core/stream.h b/src/audio_core/stream.h index 506ac536b..559844b9b 100644 --- a/src/audio_core/stream.h +++ b/src/audio_core/stream.h @@ -56,6 +56,9 @@ public: /// Queues a buffer into the audio stream, returns true on success bool QueueBuffer(BufferPtr&& buffer); + /// Flush audio buffers + bool Flush(); + /// Returns true if the audio stream contains a buffer with the specified tag [[nodiscard]] bool ContainsBuffer(Buffer::Tag tag) const; -- cgit v1.2.3