Signal buffer event on audio in/out system stop, and force remove all registered audio buffers
This commit is contained in:
parent
9ff891ce71
commit
6a56f42f5d
5 changed files with 26 additions and 7 deletions
|
@ -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.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue