diff options
| author | Kelebek1 <eeeedddccc@hotmail.co.uk> | 2022-12-16 16:01:35 +0000 |
|---|---|---|
| committer | Kelebek1 <eeeedddccc@hotmail.co.uk> | 2022-12-16 16:07:24 +0000 |
| commit | 6a56f42f5d94e2be405a736a74b86ffe3ab1b37b (patch) | |
| tree | f110ff43899da31442d31c219c36f2b8a20ef974 /src/audio_core/device/audio_buffers.h | |
| parent | 9ff891ce71bfe89f46a1b6f018e421db5dec5762 (diff) | |
Signal buffer event on audio in/out system stop, and force remove all registered audio buffers
Diffstat (limited to 'src/audio_core/device/audio_buffers.h')
| -rw-r--r-- | src/audio_core/device/audio_buffers.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/audio_core/device/audio_buffers.h b/src/audio_core/device/audio_buffers.h index 3dae1a3b7..15082f6c6 100644 --- a/src/audio_core/device/audio_buffers.h +++ b/src/audio_core/device/audio_buffers.h @@ -91,9 +91,10 @@ public: * @param core_timing - The CoreTiming instance * @param session - The device session * - * @return Is the buffer was released. + * @return If any buffer was released. */ - bool ReleaseBuffers(const Core::Timing::CoreTiming& core_timing, const DeviceSession& session) { + bool ReleaseBuffers(const Core::Timing::CoreTiming& core_timing, const DeviceSession& session, + bool force) { std::scoped_lock l{lock}; bool buffer_released{false}; while (registered_count > 0) { @@ -103,7 +104,8 @@ public: } // Check with the backend if this buffer can be released yet. - if (!session.IsBufferConsumed(buffers[index])) { + // If we're shutting down, we don't care if it's been played or not. + if (!force && !session.IsBufferConsumed(buffers[index])) { break; } |
