summaryrefslogtreecommitdiff
path: root/src/audio_core/in
diff options
context:
space:
mode:
authorGravatar Kelebek12022-12-16 16:01:35 +0000
committerGravatar Kelebek12022-12-16 16:07:24 +0000
commit6a56f42f5d94e2be405a736a74b86ffe3ab1b37b (patch)
treef110ff43899da31442d31c219c36f2b8a20ef974 /src/audio_core/in
parentMerge pull request #9431 from liamwhite/sixty-five-oh-two (diff)
downloadyuzu-6a56f42f5d94e2be405a736a74b86ffe3ab1b37b.tar.gz
yuzu-6a56f42f5d94e2be405a736a74b86ffe3ab1b37b.tar.xz
yuzu-6a56f42f5d94e2be405a736a74b86ffe3ab1b37b.zip
Signal buffer event on audio in/out system stop, and force remove all registered audio buffers
Diffstat (limited to 'src/audio_core/in')
-rw-r--r--src/audio_core/in/audio_in_system.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/audio_core/in/audio_in_system.cpp b/src/audio_core/in/audio_in_system.cpp
index 4324cafd8..934ef8c1c 100644
--- a/src/audio_core/in/audio_in_system.cpp
+++ b/src/audio_core/in/audio_in_system.cpp
@@ -23,7 +23,6 @@ System::~System() {
23void System::Finalize() { 23void System::Finalize() {
24 Stop(); 24 Stop();
25 session->Finalize(); 25 session->Finalize();
26 buffer_event->Signal();
27} 26}
28 27
29void System::StartSession() { 28void System::StartSession() {
@@ -102,6 +101,10 @@ Result System::Stop() {
102 if (state == State::Started) { 101 if (state == State::Started) {
103 session->Stop(); 102 session->Stop();
104 session->SetVolume(0.0f); 103 session->SetVolume(0.0f);
104 session->ClearBuffers();
105 if (buffers.ReleaseBuffers(system.CoreTiming(), *session, true)) {
106 buffer_event->Signal();
107 }
105 state = State::Stopped; 108 state = State::Stopped;
106 } 109 }
107 110
@@ -138,7 +141,7 @@ void System::RegisterBuffers() {
138} 141}
139 142
140void System::ReleaseBuffers() { 143void System::ReleaseBuffers() {
141 bool signal{buffers.ReleaseBuffers(system.CoreTiming(), *session)}; 144 bool signal{buffers.ReleaseBuffers(system.CoreTiming(), *session, false)};
142 145
143 if (signal) { 146 if (signal) {
144 // Signal if any buffer was released, or if none are registered, we need more. 147 // Signal if any buffer was released, or if none are registered, we need more.