[Scummvm-git-logs] scummvm master -> 344349dbd92d71ffea956d81f7fa9a292892ed28
AndywinXp
noreply at scummvm.org
Sun Nov 27 11:25:19 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:
344349dbd9 SCUMM: DiMUSE: Allow original mono mixing routines to work
Commit: 344349dbd92d71ffea956d81f7fa9a292892ed28
https://github.com/scummvm/scummvm/commit/344349dbd92d71ffea956d81f7fa9a292892ed28
Author: AndywinXp (andywinxp at gmail.com)
Date: 2022-11-27T12:25:14+01:00
Commit Message:
SCUMM: DiMUSE: Allow original mono mixing routines to work
These changes make use of _mixer->getOutputStereo() to select the proper number of audio channels.
This makes it possible to have mono audio produced using the proper DiMUSE internal mixer mono
routines, instead of having the ScummVM mixer folding down a stereo mix.
Changed paths:
engines/scumm/imuse_digi/dimuse_internalmixer.cpp
engines/scumm/imuse_digi/dimuse_waveout.cpp
diff --git a/engines/scumm/imuse_digi/dimuse_internalmixer.cpp b/engines/scumm/imuse_digi/dimuse_internalmixer.cpp
index f7e7d70d507..43f7d1ccccc 100644
--- a/engines/scumm/imuse_digi/dimuse_internalmixer.cpp
+++ b/engines/scumm/imuse_digi/dimuse_internalmixer.cpp
@@ -31,8 +31,8 @@
namespace Scumm {
IMuseDigiInternalMixer::IMuseDigiInternalMixer(Audio::Mixer *mixer, bool isEarlyDiMUSE) {
- _stream = Audio::makeQueuingAudioStream(DIMUSE_SAMPLERATE, true);
_mixer = mixer;
+ _stream = Audio::makeQueuingAudioStream(DIMUSE_SAMPLERATE, _mixer->getOutputStereo());
_isEarlyDiMUSE = isEarlyDiMUSE;
_radioChatter = 0;
_amp8Table = nullptr;
diff --git a/engines/scumm/imuse_digi/dimuse_waveout.cpp b/engines/scumm/imuse_digi/dimuse_waveout.cpp
index d3433c31996..39f9b83163c 100644
--- a/engines/scumm/imuse_digi/dimuse_waveout.cpp
+++ b/engines/scumm/imuse_digi/dimuse_waveout.cpp
@@ -27,7 +27,7 @@ int IMuseDigital::waveOutInit(int sampleRate, waveOutParamsStruct *waveOutSettin
_waveOutSampleRate = sampleRate;
_waveOutBytesPerSample = 2;
- _waveOutNumChannels = 2;
+ _waveOutNumChannels = _mixer->getOutputStereo() ? 2 : 1;
_waveOutZeroLevel = 0;
_waveOutPreferredFeedSize = DIMUSE_FEEDSIZE;
@@ -92,7 +92,12 @@ void IMuseDigital::waveOutCallback() {
}
byte IMuseDigital::waveOutGetStreamFlags() {
- byte flags = Audio::FLAG_16BITS | Audio::FLAG_STEREO;
+ byte flags = Audio::FLAG_16BITS;
+
+ if (_mixer->getOutputStereo()) {
+ flags |= Audio::FLAG_STEREO;
+ }
+
#ifdef SCUMM_LITTLE_ENDIAN
flags |= Audio::FLAG_LITTLE_ENDIAN;
#endif
More information about the Scummvm-git-logs
mailing list