mirror of
https://github.com/cemu-project/Cemu.git
synced 2026-06-05 06:04:58 -06:00
AX: Fix voice dropping
This commit is contained in:
parent
7f62b145dd
commit
5f3c2816ec
@ -401,26 +401,22 @@ namespace snd_core
|
|||||||
if (vpb != nullptr)
|
if (vpb != nullptr)
|
||||||
{
|
{
|
||||||
AXVoiceList_AddVoice(vpb, priority);
|
AXVoiceList_AddVoice(vpb, priority);
|
||||||
vpb->userParam = userParam;
|
|
||||||
vpb->callback = MPTR_NULL;
|
|
||||||
vpb->callbackEx = callbackEx;
|
|
||||||
AXVPB_SetVoiceDefault(vpb);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// no free voice available, drop voice with lower priority
|
// no free voice available, try to drop a voice with lower priority
|
||||||
AXVPB* droppedVoice = AXVPB_DropVoice(priority);
|
vpb = AXVPB_DropVoice(priority);
|
||||||
if (droppedVoice == nullptr)
|
if (!vpb)
|
||||||
{
|
{
|
||||||
// no voice available
|
// no voice available
|
||||||
__AXVoiceListSpinlock.unlock();
|
__AXVoiceListSpinlock.unlock();
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
vpb->userParam = userParam;
|
|
||||||
vpb->callback = MPTR_NULL;
|
|
||||||
vpb->callbackEx = callbackEx;
|
|
||||||
AXVPB_SetVoiceDefault(vpb);
|
|
||||||
}
|
}
|
||||||
|
vpb->userParam = userParam;
|
||||||
|
vpb->callback = MPTR_NULL;
|
||||||
|
vpb->callbackEx = callbackEx;
|
||||||
|
AXVPB_SetVoiceDefault(vpb);
|
||||||
__AXVoiceListSpinlock.unlock();
|
__AXVoiceListSpinlock.unlock();
|
||||||
return vpb;
|
return vpb;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user