AX: Fix voice dropping
Some checks failed
Generate translation template / generate-pot (push) Failing after 36s
Build check / build (push) Has been cancelled

This commit is contained in:
Exzap 2025-07-08 19:01:20 +02:00
parent 7f62b145dd
commit 5f3c2816ec

View file

@ -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;
} }