[Scummvm-cvs-logs] CVS: scummvm/scumm/smush smush_mixer.cpp,1.5,1.6 smush_player.cpp,1.36,1.37

Max Horn fingolfin at users.sourceforge.net
Sat Jun 21 12:59:01 CEST 2003


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

Modified Files:
	smush_mixer.cpp smush_player.cpp 
Log Message:
reduce code duplication a bit

Index: smush_mixer.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/smush/smush_mixer.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- smush_mixer.cpp	7 Jun 2003 00:45:32 -0000	1.5
+++ smush_mixer.cpp	21 Jun 2003 19:58:38 -0000	1.6
@@ -108,44 +108,40 @@
 			} else {
 				int32 rate;
 				bool stereo, is_short;
+				void *data;
 
 				_channels[i].chan->getParameters(rate, stereo, is_short);
 				int32 size = _channels[i].chan->availableSoundData();
 				int32 flags = stereo ? SoundMixer::FLAG_STEREO : 0;
 
 				if (is_short) {
-					short *data = new int16[size * (stereo ? 2 : 1) * 2];
-					_channels[i].chan->getSoundData(data, size);
-					if (_channels[i].chan->getRate() == 11025) size *= 2;
+					data = malloc(size * (stereo ? 2 : 1) * 4);
+					_channels[i].chan->getSoundData((int16 *)data, size);
+					if (_channels[i].chan->getRate() == 11025)
+						size *= 2;
 					size *= stereo ? 4 : 2;
 
-					if (_silentMixer == false) {
-						if (_channels[i].first) {
-							_channels[i].mixer_index = _mixer->playStream(NULL, -1, data, size, rate, flags | SoundMixer::FLAG_16BITS);
-							_channels[i].first = false;
-						} else {
-							_mixer->append(_channels[i].mixer_index, data, size, rate, flags | SoundMixer::FLAG_16BITS);
-						}
-					}
+					flags |= SoundMixer::FLAG_16BITS;
 
-					delete []data;
 				} else {
-					int8 *data = new int8[size * (stereo ? 2 : 1) * 2];
-					_channels[i].chan->getSoundData(data, size);
-					if (_channels[i].chan->getRate() == 11025) size *= 2;
+					data = malloc(size * (stereo ? 2 : 1) * 2);
+					_channels[i].chan->getSoundData((int8 *)data, size);
+					if (_channels[i].chan->getRate() == 11025)
+						size *= 2;
 					size *= stereo ? 2 : 1;
 
-					if (_silentMixer == false) {
-						if (_channels[i].first) {
-							_channels[i].mixer_index = _mixer->playStream(NULL, -1, data, size, rate, flags | SoundMixer::FLAG_UNSIGNED);
-							_channels[i].first = false;
-						} else {
-							_mixer->append(_channels[i].mixer_index, data, size, rate, flags | SoundMixer::FLAG_UNSIGNED);
-						}
-					}
+					flags |= SoundMixer::FLAG_UNSIGNED;
+				}
 
-					delete []data;
+				if (_silentMixer == false) {
+					if (_channels[i].first) {
+						_channels[i].mixer_index = _mixer->playStream(NULL, -1, data, size, rate, flags);
+						_channels[i].first = false;
+					} else {
+						_mixer->append(_channels[i].mixer_index, data, size, rate, flags);
+					}
 				}
+				free(data);
 			}
 		}
 	}

Index: smush_player.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/smush/smush_player.cpp,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -d -r1.36 -r1.37
--- smush_player.cpp	20 Jun 2003 11:21:52 -0000	1.36
+++ smush_player.cpp	21 Jun 2003 19:58:38 -0000	1.37
@@ -436,7 +436,7 @@
 							*dst++ = *d_src2++;
 						} else {
 							int16 val = (int8)value << variable2;
-							*dst++ = val>> 8;
+							*dst++ = val >> 8;
 							*dst++ = (byte)(val);
 						}
 						value = *(d_src2++);





More information about the Scummvm-git-logs mailing list