mirror of
https://github.com/switchbrew/libnx.git
synced 2025-08-07 08:39:24 +02:00
fix audout events being missed. (#683)
This commit is contained in:
parent
e15a7181b4
commit
8d3dfbf370
@ -105,13 +105,20 @@ static Result _audoutCmdNoInOutU32(Service* srv, u32 *out, u32 cmd_id) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Result audoutWaitPlayFinish(AudioOutBuffer **released, u32* released_count, u64 timeout) {
|
Result audoutWaitPlayFinish(AudioOutBuffer **released, u32* released_count, u64 timeout) {
|
||||||
|
// Check if we already have a buffer free
|
||||||
|
eventClear(&g_audoutBufferEvent);
|
||||||
|
Result rc = audoutGetReleasedAudioOutBuffer(released, released_count);
|
||||||
|
|
||||||
|
// If the call didn't fail, but we don't have a buffer, wait until one is released
|
||||||
|
if (R_SUCCEEDED(rc) && !(*released_count)) {
|
||||||
// Wait on the buffer event handle
|
// Wait on the buffer event handle
|
||||||
Result rc = eventWait(&g_audoutBufferEvent, timeout);
|
rc = eventWait(&g_audoutBufferEvent, timeout);
|
||||||
|
|
||||||
if (R_SUCCEEDED(rc)) {
|
if (R_SUCCEEDED(rc)) {
|
||||||
// Grab the released buffer
|
// Grab the released buffer
|
||||||
rc = audoutGetReleasedAudioOutBuffer(released, released_count);
|
rc = audoutGetReleasedAudioOutBuffer(released, released_count);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user