Skip to content

Commit 5f3c281

Browse files
committed
AX: Fix voice dropping
1 parent 7f62b14 commit 5f3c281

File tree

1 file changed

+7
-11
lines changed

1 file changed

+7
-11
lines changed

src/Cafe/OS/libs/snd_core/ax_voice.cpp

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -401,26 +401,22 @@ namespace snd_core
401401
if (vpb != nullptr)
402402
{
403403
AXVoiceList_AddVoice(vpb, priority);
404-
vpb->userParam = userParam;
405-
vpb->callback = MPTR_NULL;
406-
vpb->callbackEx = callbackEx;
407-
AXVPB_SetVoiceDefault(vpb);
408404
}
409405
else
410406
{
411-
// no free voice available, drop voice with lower priority
412-
AXVPB* droppedVoice = AXVPB_DropVoice(priority);
413-
if (droppedVoice == nullptr)
407+
// no free voice available, try to drop a voice with lower priority
408+
vpb = AXVPB_DropVoice(priority);
409+
if (!vpb)
414410
{
415411
// no voice available
416412
__AXVoiceListSpinlock.unlock();
417413
return nullptr;
418414
}
419-
vpb->userParam = userParam;
420-
vpb->callback = MPTR_NULL;
421-
vpb->callbackEx = callbackEx;
422-
AXVPB_SetVoiceDefault(vpb);
423415
}
416+
vpb->userParam = userParam;
417+
vpb->callback = MPTR_NULL;
418+
vpb->callbackEx = callbackEx;
419+
AXVPB_SetVoiceDefault(vpb);
424420
__AXVoiceListSpinlock.unlock();
425421
return vpb;
426422
}

0 commit comments

Comments
 (0)