summaryrefslogtreecommitdiff
path: root/src/audio_core/in
diff options
context:
space:
mode:
authorliamwhite <liamwhite@users.noreply.github.com>2022-12-17 10:21:19 -0500
committerGitHub <noreply@github.com>2022-12-17 10:21:19 -0500
commitfa10374d39effc79b5b9ed789bf873030cb08d7f (patch)
tree0e4cac7d6e87771e8f18c0d3bba7d8e3cddbb2c7 /src/audio_core/in
parent98135dee16390b2d07c138e2e2dd66440b6f60a5 (diff)
parent6a56f42f5d94e2be405a736a74b86ffe3ab1b37b (diff)
Merge pull request #9455 from Kelebek1/audio_signal
[audio_core] Signal buffer event on audio in/out system stop
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() {
void System::Finalize() {
Stop();
session->Finalize();
- buffer_event->Signal();
}
void System::StartSession() {
@@ -102,6 +101,10 @@ Result System::Stop() {
if (state == State::Started) {
session->Stop();
session->SetVolume(0.0f);
+ session->ClearBuffers();
+ if (buffers.ReleaseBuffers(system.CoreTiming(), *session, true)) {
+ buffer_event->Signal();
+ }
state = State::Stopped;
}
@@ -138,7 +141,7 @@ void System::RegisterBuffers() {
}
void System::ReleaseBuffers() {
- bool signal{buffers.ReleaseBuffers(system.CoreTiming(), *session)};
+ bool signal{buffers.ReleaseBuffers(system.CoreTiming(), *session, false)};
if (signal) {
// Signal if any buffer was released, or if none are registered, we need more.