another flush async fix

This commit is contained in:
RadWolfie 2020-03-13 23:47:23 -05:00
parent 145e827d68
commit 178ec004c8
1 changed files with 7 additions and 7 deletions

View File

@ -105,14 +105,14 @@ void DirectSoundDoWork_Stream(xboxkrnl::LARGE_INTEGER& time)
pThis->EmuFlags &= ~DSE_FLAG_PAUSE;
// Don't call play here, let DSStream_Packet_Process deal with it.
}
if ((pThis->EmuFlags & DSE_FLAG_FLUSH_ASYNC) == 0) {
DSStream_Packet_Process(pThis);
} else {
// Confirmed flush packet must be done in DirectSoundDoWork only when title is ready.
if (pThis->Xb_rtFlushEx != 0LL && pThis->Xb_rtFlushEx <= time.QuadPart) {
pThis->Xb_rtFlushEx = 0LL;
DSStream_Packet_Flush(pThis);
// If has flush async requested then verify time has expired to perform flush process.
if ((pThis->EmuFlags & DSE_FLAG_FLUSH_ASYNC) > 0 && pThis->Xb_rtFlushEx <= time.QuadPart) {
if (pThis->Xb_rtFlushEx == 0LL) {
EmuLog(LOG_LEVEL::WARNING, "Attempted to flush without Xb_rtFlushEx set to non-zero");
}
while(DSStream_Packet_Flush(pThis));
} else {
DSStream_Packet_Process(pThis);
}
}
}