[Scummvm-cvs-logs] CVS: scummvm/backends/midi adlib.cpp,1.49,1.50
Max Horn
fingolfin at users.sourceforge.net
Thu Sep 18 09:03:08 CEST 2003
Update of /cvsroot/scummvm/scummvm/backends/midi
In directory sc8-pr-cvs1:/tmp/cvs-serv24117/backends/midi
Modified Files:
adlib.cpp
Log Message:
changed & documented the premixer semantics
Index: adlib.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/backends/midi/adlib.cpp,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -d -r1.49 -r1.50
--- adlib.cpp 18 Sep 2003 02:07:15 -0000 1.49
+++ adlib.cpp 18 Sep 2003 16:01:30 -0000 1.50
@@ -866,7 +866,7 @@
_samples_per_tick = (_mixer->getOutputRate() << FIXP_SHIFT) / BASE_FREQ;
- _mixer->setupPremix(this, premix_proc);
+ _mixer->setupPremix(premix_proc, this);
return 0;
}
@@ -1014,6 +1014,9 @@
void MidiDriver_ADLIB::generate_samples(int16 *data, int len) {
int step;
+ int16 *origData = data;
+ uint origLen = len;
+
do {
step = len;
if (step > (_next_tick >> FIXP_SHIFT))
@@ -1030,6 +1033,11 @@
data += step;
len -= step;
} while (len);
+
+ // Convert mono data to stereo
+ for (int i = (origLen - 1); i >= 0; i--) {
+ origData[2 * i] = origData[2 * i + 1] = origData[i];
+ }
}
void MidiDriver_ADLIB::reset_tick() {
More information about the Scummvm-git-logs
mailing list