summaryrefslogtreecommitdiffstats
path: root/src/audio_core/device/audio_buffers.h
diff options
context:
space:
mode:
authorliamwhite <liamwhite@users.noreply.github.com>2022-12-17 16:21:19 +0100
committerGitHub <noreply@github.com>2022-12-17 16:21:19 +0100
commitfa10374d39effc79b5b9ed789bf873030cb08d7f (patch)
tree0e4cac7d6e87771e8f18c0d3bba7d8e3cddbb2c7 /src/audio_core/device/audio_buffers.h
parentMerge pull request #9457 from Kelebek1/silence_tfb (diff)
parentSignal buffer event on audio in/out system stop, and force remove all registered audio buffers (diff)
downloadyuzu-fa10374d39effc79b5b9ed789bf873030cb08d7f.tar
yuzu-fa10374d39effc79b5b9ed789bf873030cb08d7f.tar.gz
yuzu-fa10374d39effc79b5b9ed789bf873030cb08d7f.tar.bz2
yuzu-fa10374d39effc79b5b9ed789bf873030cb08d7f.tar.lz
yuzu-fa10374d39effc79b5b9ed789bf873030cb08d7f.tar.xz
yuzu-fa10374d39effc79b5b9ed789bf873030cb08d7f.tar.zst
yuzu-fa10374d39effc79b5b9ed789bf873030cb08d7f.zip
Diffstat (limited to 'src/audio_core/device/audio_buffers.h')
-rw-r--r--src/audio_core/device/audio_buffers.h8
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;
}