summaryrefslogtreecommitdiff
path: root/src/JSystem/JAudio/JASAiCtrl.cpp
diff options
context:
space:
mode:
authorLagoLunatic <LagoLunatic@users.noreply.github.com>2026-10-27 00:29:52 -0400
committerLagoLunatic <LagoLunatic@users.noreply.github.com>2026-10-27 00:29:52 -0400
commit81ebe0dfd449166e00de31ce9be2d7449e31536c (patch)
tree0f7b648f69950c3d5edd916041ac52697c94ca4d /src/JSystem/JAudio/JASAiCtrl.cpp
parent02de6b772d06b2ed15bbe7b25d01901fdca84966 (diff)
Work on JAS inlines, fix limits/climits headers
Diffstat (limited to 'src/JSystem/JAudio/JASAiCtrl.cpp')
-rw-r--r--src/JSystem/JAudio/JASAiCtrl.cpp74
1 files changed, 7 insertions, 67 deletions
diff --git a/src/JSystem/JAudio/JASAiCtrl.cpp b/src/JSystem/JAudio/JASAiCtrl.cpp
index 41ded9e0..67007cfb 100644
--- a/src/JSystem/JAudio/JASAiCtrl.cpp
+++ b/src/JSystem/JAudio/JASAiCtrl.cpp
@@ -124,25 +124,8 @@ void JASystem::Kernel::mixMonoTrack(s16* dest, s32 size, s16* (*cb)(s32)) {
s16* destPtr = dest;
s16* srcPtr = src;
for (int i = 0; i < size; i++) {
- s32 var1 = destPtr[0] + srcPtr[0];
- s16 var2;
- if (var1 < -0x8000) {
- var2 = -0x7fff;
- } else if (var1 > 0x7fff) {
- var2 = 0x7fff;
- } else {
- var2 = var1;
- }
- destPtr[0] = var2;
- var1 = destPtr[1] + srcPtr[0];
- if (var1 < -0x8000) {
- var2 = -0x7fff;
- } else if (var1 > 0x7fff) {
- var2 = 0x7fff;
- } else {
- var2 = var1;
- }
- destPtr[1] = var2;
+ destPtr[0] = JASAiMixLimit16(destPtr[0] + srcPtr[0]);
+ destPtr[1] = JASAiMixLimit16(destPtr[1] + srcPtr[0]);
destPtr += 2;
srcPtr++;
}
@@ -159,25 +142,8 @@ void JASystem::Kernel::mixMonoTrackWide(s16* dest, s32 size, s16* (*cb)(s32)) {
s16* destPtr = dest;
s16* srcPtr = src;
for (int i = 0; i < size; i++) {
- s32 var1 = destPtr[0] + srcPtr[0];
- s16 var2;
- if (var1 < -0x8000) {
- var2 = -0x7fff;
- } else if (var1 > 0x7fff) {
- var2 = 0x7fff;
- } else {
- var2 = var1;
- }
- destPtr[0] = var2;
- var1 = destPtr[1] - srcPtr[0];
- if (var1 < -0x8000) {
- var2 = -0x7fff;
- } else if (var1 > 0x7fff) {
- var2 = 0x7fff;
- } else {
- var2 = var1;
- }
- destPtr[1] = var2;
+ destPtr[0] = JASAiMixLimit16(destPtr[0] + srcPtr[0]);
+ destPtr[1] = JASAiMixLimit16(destPtr[1] - srcPtr[0]);
destPtr += 2;
srcPtr++;
}
@@ -196,25 +162,8 @@ void JASystem::Kernel::mixExtraTrack(s16* dest, s32 size, s16* (*cb)(s32)) {
s16* srcPtr = src;
s16* srcPtr2 = src + getFrameSamples();
for (int i = 0; i < size; i++) {
- s32 var1 = destPtr[0] + srcPtr2[0];
- s16 var2;
- if (var1 < -0x8000) {
- var2 = -0x7fff;
- } else if (var1 > 0x7fff) {
- var2 = 0x7fff;
- } else {
- var2 = var1;
- }
- destPtr[0] = var2;
- var1 = destPtr[1] + srcPtr[0];
- if (var1 < -0x8000) {
- var2 = -0x7fff;
- } else if (var1 > 0x7fff) {
- var2 = 0x7fff;
- } else {
- var2 = var1;
- }
- destPtr[1] = var2;
+ destPtr[0] = JASAiMixLimit16(destPtr[0] + srcPtr2[0]);
+ destPtr[1] = JASAiMixLimit16(destPtr[1] + srcPtr[0]);
destPtr += 2;
srcPtr2++;
srcPtr++;
@@ -230,16 +179,7 @@ void JASystem::Kernel::mixInterleaveTrack(s16* dest, s32 size, s16* (*cb)(s32))
}
s16* destPtr = dest;
for (int i = 0; i < size * 2 ; i++) {
- s32 var1 = destPtr[0] + src[0];
- s16 var2;
- if (var1 < -0x8000) {
- var2 = -0x7fff;
- } else if (var1 > 0x7fff) {
- var2 = 0x7fff;
- } else {
- var2 = var1;
- }
- destPtr[0] = var2;
+ destPtr[0] = JASAiMixLimit16(destPtr[0] + src[0]);
destPtr++;
src++;
}