mirror of
https://github.com/cemu-project/Cemu.git
synced 2025-07-12 01:38:29 +12:00
AX: Fix voice dropping
This commit is contained in:
parent
7f62b145dd
commit
5f3c2816ec
1 changed files with 7 additions and 11 deletions
|
@ -401,26 +401,22 @@ namespace snd_core
|
|||
if (vpb != nullptr)
|
||||
{
|
||||
AXVoiceList_AddVoice(vpb, priority);
|
||||
vpb->userParam = userParam;
|
||||
vpb->callback = MPTR_NULL;
|
||||
vpb->callbackEx = callbackEx;
|
||||
AXVPB_SetVoiceDefault(vpb);
|
||||
}
|
||||
else
|
||||
{
|
||||
// no free voice available, drop voice with lower priority
|
||||
AXVPB* droppedVoice = AXVPB_DropVoice(priority);
|
||||
if (droppedVoice == nullptr)
|
||||
// no free voice available, try to drop a voice with lower priority
|
||||
vpb = AXVPB_DropVoice(priority);
|
||||
if (!vpb)
|
||||
{
|
||||
// no voice available
|
||||
__AXVoiceListSpinlock.unlock();
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
vpb->userParam = userParam;
|
||||
vpb->callback = MPTR_NULL;
|
||||
vpb->callbackEx = callbackEx;
|
||||
AXVPB_SetVoiceDefault(vpb);
|
||||
}
|
||||
__AXVoiceListSpinlock.unlock();
|
||||
return vpb;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue