[Scummvm-git-logs] scummvm master -> 9518dc53411b7a80dbb6842e1426706d0edde536
AndywinXp
noreply at scummvm.org
Wed Jul 13 05:50:13 UTC 2022
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
9518dc5341 SCUMM: DiMUSE: Fix if guard for quarter samplerate case
Commit: 9518dc53411b7a80dbb6842e1426706d0edde536
https://github.com/scummvm/scummvm/commit/9518dc53411b7a80dbb6842e1426706d0edde536
Author: AndywinXp (andywinxp at gmail.com)
Date: 2022-07-13T07:50:04+02:00
Commit Message:
SCUMM: DiMUSE: Fix if guard for quarter samplerate case
Also, amend a5d4e15 which removed the half samplerate case.
Changed paths:
engines/scumm/imuse_digi/dimuse_internalmixer.cpp
diff --git a/engines/scumm/imuse_digi/dimuse_internalmixer.cpp b/engines/scumm/imuse_digi/dimuse_internalmixer.cpp
index 11c420e94aa..f7e7d70d507 100644
--- a/engines/scumm/imuse_digi/dimuse_internalmixer.cpp
+++ b/engines/scumm/imuse_digi/dimuse_internalmixer.cpp
@@ -1075,6 +1075,22 @@ void IMuseDigiInternalMixer::mixBits8Stereo(uint8 *srcBuf, int32 inFrameCount, i
mixBufCurCell += 2;
}
}
+ } else if (2 * inFrameCount == feedSize) {
+ srcBuf_ptr = srcBuf;
+ if (inFrameCount - 1 != 0) {
+ for (int i = 0; i < inFrameCount - 1; i++) {
+ mixBufCurCell[0] += *((uint16 *)ampTable + srcBuf_ptr[0]);
+ mixBufCurCell[1] += *((uint16 *)ampTable + srcBuf_ptr[1]);
+ mixBufCurCell[2] += (*((int16 *)ampTable + srcBuf_ptr[0]) + *((int16 *)ampTable + srcBuf_ptr[2])) >> 1;
+ mixBufCurCell[3] += (*((int16 *)ampTable + srcBuf_ptr[1]) + *((int16 *)ampTable + srcBuf_ptr[3])) >> 1;
+ mixBufCurCell += 4;
+ srcBuf_ptr += 2;
+ }
+ }
+ mixBufCurCell[0] += *((uint16 *)ampTable + srcBuf_ptr[0]);
+ mixBufCurCell[1] += *((uint16 *)ampTable + srcBuf_ptr[1]);
+ mixBufCurCell[2] += *((uint16 *)ampTable + srcBuf_ptr[0]);
+ mixBufCurCell[3] += *((uint16 *)ampTable + srcBuf_ptr[1]);
} else if (2 * feedSize == inFrameCount) {
if (feedSize) {
srcBuf_ptr = srcBuf;
@@ -1085,7 +1101,7 @@ void IMuseDigiInternalMixer::mixBits8Stereo(uint8 *srcBuf, int32 inFrameCount, i
mixBufCurCell += 2;
}
}
- } else if (2 * inFrameCount == feedSize) {
+ } else if (4 * inFrameCount == feedSize) {
srcBuf_ptr = srcBuf;
if (inFrameCount - 1 != 0) {
for (int i = 0; i < inFrameCount - 1; i++) {
More information about the Scummvm-git-logs
mailing list