[Scummvm-cvs-logs] CVS: scummvm/sound mixer.cpp,1.71,1.72

Max Horn fingolfin at users.sourceforge.net
Thu Jul 17 13:45:12 CEST 2003


Update of /cvsroot/scummvm/scummvm/sound
In directory sc8-pr-cvs1:/tmp/cvs-serv23468

Modified Files:
	mixer.cpp 
Log Message:
simplified code

Index: mixer.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sound/mixer.cpp,v
retrieving revision 1.71
retrieving revision 1.72
diff -u -d -r1.71 -r1.72
--- mixer.cpp	14 Jul 2003 20:45:33 -0000	1.71
+++ mixer.cpp	17 Jul 2003 20:44:36 -0000	1.72
@@ -469,15 +469,15 @@
 	}
 };
 
-static inline int clamped_add_16(int a, int b) {
+static inline void clamped_add_16(int16& a, int16 b) {
 	int val = a + b;
 
-	if (val > 32767) {
-		return 32767;
-	} else if (val < -32768) {
-		return -32768;
-	} else
-		return val;
+	if (val > 32767)
+		a = 32767;
+	else if (val < -32768)
+		a = -32768;
+	else
+		a = val;
 }
 
 static void mix_signed_mono_8(int16 *data, uint &len, byte *&s, uint32 &fp_pos,
@@ -489,10 +489,8 @@
 		do {
 			result = interp.interpolate(fp_pos);
 
-			*data = clamped_add_16(*data, result);
-			data++;
-			*data = clamped_add_16(*data, result);
-			data++;
+			clamped_add_16(*data++, result);
+			clamped_add_16(*data++, result);
 
 			fp_pos += fp_speed;
 			inc = fp_pos >> 16;
@@ -518,10 +516,8 @@
 		do {
 			result = interp.interpolate(fp_pos);
 
-			*data = clamped_add_16(*data, result);
-			data++;
-			*data = clamped_add_16(*data, result);
-			data++;
+			clamped_add_16(*data++, result);
+			clamped_add_16(*data++, result);
 
 			fp_pos += fp_speed;
 			inc = fp_pos >> 16;
@@ -551,15 +547,11 @@
 	do {
 		do {
 			if (!reverse_stereo) {
-				*data = clamped_add_16(*data, left.interpolate(fp_pos));
-				data++;
-				*data = clamped_add_16(*data, right.interpolate(fp_pos));
-				data++;
+				clamped_add_16(*data++, left.interpolate(fp_pos));
+				clamped_add_16(*data++, right.interpolate(fp_pos));
 			} else {
-				*data = clamped_add_16(*data, right.interpolate(fp_pos));
-				data++;
-				*data = clamped_add_16(*data, left.interpolate(fp_pos));
-				data++;
+				clamped_add_16(*data++, right.interpolate(fp_pos));
+				clamped_add_16(*data++, left.interpolate(fp_pos));
 			}
 
 			fp_pos += fp_speed;
@@ -586,10 +578,8 @@
 		int16 sample = ((int16)READ_BE_UINT16(s) * volume) / 256;
 		fp_pos += fp_speed;
 
-		*data = clamped_add_16(*data, sample);
-		data++;
-		*data = clamped_add_16(*data, sample);
-		data++;
+		clamped_add_16(*data++, sample);
+		clamped_add_16(*data++, sample);
 
 		s += (fp_pos >> 16) << 1;
 		fp_pos &= 0x0000FFFF;
@@ -609,15 +599,11 @@
 		fp_pos += fp_speed;
 
 		if (!reverse_stereo) {
-			*data = clamped_add_16(*data, leftS);
-			data++;
-			*data = clamped_add_16(*data, rightS);
-			data++;
+			clamped_add_16(*data++, leftS);
+			clamped_add_16(*data++, rightS);
 		} else {
-			*data = clamped_add_16(*data, rightS);
-			data++;
-			*data = clamped_add_16(*data, leftS);
-			data++;
+			clamped_add_16(*data++, rightS);
+			clamped_add_16(*data++, leftS);
 		}
 		s += (fp_pos >> 16) << 2;
 		fp_pos &= 0x0000FFFF;
@@ -700,7 +686,7 @@
 
 	_pos = s - _ptr;
 
-	if (_size < 1) {
+	if (_size <= 0) {
 		if (_flags & SoundMixer::FLAG_LOOP) {
 			_ptr = _loop_ptr;
 			_size = _loop_size;
@@ -895,10 +881,8 @@
 
 		while ((_posInFrame < _synth.pcm.length) && (len > 0)) {
 			int16 sample = (int16)((scale_sample(*ch++) * volume) / 32);
-			*data = clamped_add_16(*data, sample);
-			data++;
-			*data = clamped_add_16(*data, sample);
-			data++;
+			clamped_add_16(*data++, sample);
+			clamped_add_16(*data++, sample);
 			len--;
 			_posInFrame++;
 		}
@@ -991,10 +975,8 @@
 		ch = _synth.pcm.samples[0] + _posInFrame;
 		while ((_posInFrame < _synth.pcm.length) && (len > 0)) {
 			int16 sample = (int16)((scale_sample(*ch++) * volume) / 32);
-			*data = clamped_add_16(*data, sample);
-			data++;
-			*data = clamped_add_16(*data, sample);
-			data++;
+			clamped_add_16(*data++, sample);
+			clamped_add_16(*data++, sample);
 			len--;
 			_posInFrame++;
 		}
@@ -1106,12 +1088,10 @@
 	// Mix the samples in
 	for (uint i = 0; i < len; i++) {
 		int16 sample = (int16) ((int32) samples[i * channels] * volume / 256);
-		*data = clamped_add_16(*data, sample);
-		data++;
+		clamped_add_16(*data++, sample);
 		if (channels > 1)
 			sample = (int16) ((int32) samples[i * channels + 1] * volume / 256);
-		*data = clamped_add_16(*data, sample);
-		data++;
+		clamped_add_16(*data++, sample);
 	}
 
 	delete [] samples;





More information about the Scummvm-git-logs mailing list