[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