Implement sound stop/flush (stopping boombox no longer asserts)

This commit is contained in:
elasota
2019-12-26 13:32:54 -05:00
parent b9f1d5222f
commit 501f36070a
7 changed files with 66 additions and 4 deletions

View File

@@ -80,6 +80,15 @@ void GpAudioChannelXAudio2::PostBuffer(const void *buffer, size_t bufferSize)
}
}
void GpAudioChannelXAudio2::Stop()
{
// Set voice state BEFORE calling FlushSourceBuffers so state is idle before any callbacks trigger
m_sourceVoice->Stop(0, 0);
m_voiceState = VoiceState_Idle;
m_sourceVoice->FlushSourceBuffers();
}
void GpAudioChannelXAudio2::Destroy()
{
this->~GpAudioChannelXAudio2();