[Scummvm-cvs-logs] CVS: scummvm/scumm player_v2.cpp,2.30,2.31

Max Horn fingolfin at users.sourceforge.net
Thu Sep 18 09:03:01 CEST 2003


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv24117/scumm

Modified Files:
	player_v2.cpp 
Log Message:
changed & documented the premixer semantics

Index: player_v2.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/player_v2.cpp,v
retrieving revision 2.30
retrieving revision 2.31
diff -u -d -r2.30 -r2.31
--- player_v2.cpp	18 Sep 2003 02:07:17 -0000	2.30
+++ player_v2.cpp	18 Sep 2003 16:01:31 -0000	2.31
@@ -381,7 +381,7 @@
 	set_pcjr(scumm->_midiDriver != MD_PCSPK);
 	setMasterVolume(255);
 
-	_mixer->setupPremix(this, premix_proc);
+	_mixer->setupPremix(premix_proc, this);
 }
 
 Player_V2::~Player_V2() {
@@ -820,10 +820,12 @@
 	}
 }
 
-void Player_V2::do_mix (int16 *data, uint len) {
+void Player_V2::do_mix(int16 *data, uint len) {
 	mutex_up();
 	uint step;
 
+	int16 *origData = data;
+	uint origLen = len;
 	do {
 		step = len;
 		if (step > (_next_tick >> FIXP_SHIFT))
@@ -848,6 +850,12 @@
 			}
 		}
 	} while (len -= step);
+
+	// Convert mono data to stereo
+	for (int i = (origLen - 1); i >= 0; i--) {
+		origData[2 * i] = origData[2 * i + 1] = origData[i];
+	}
+
 	mutex_down();
 }
 
@@ -911,7 +919,7 @@
 		}
 	}
 
-	memset (data, 0, sizeof(int16) * len);
+	memset(data, 0, sizeof(int16) * len);
 	if (winning_channel != -1) {
 		squareGenerator(0, _channels[winning_channel].d.freq, 0, 
 				0, data, len);





More information about the Scummvm-git-logs mailing list