[Scummvm-cvs-logs] CVS: scummvm/scumm player_v2a.cpp,2.6,2.7

Max Horn fingolfin at users.sourceforge.net
Sat Sep 27 16:12:03 CEST 2003


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

Modified Files:
	player_v2a.cpp 
Log Message:
cleanup

Index: player_v2a.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/player_v2a.cpp,v
retrieving revision 2.6
retrieving revision 2.7
diff -u -d -r2.6 -r2.7
--- player_v2a.cpp	27 Sep 2003 22:53:09 -0000	2.6
+++ player_v2a.cpp	27 Sep 2003 23:11:25 -0000	2.7
@@ -251,6 +251,7 @@
 
 	int _ticks;
 };
+
 class V2A_Sound_SingleLooped : public V2A_Sound_Base<1> {
 public:
 	V2A_Sound_SingleLooped(uint16 offset, uint16 size, uint16 freq, uint8 vol, uint16 loopoffset, uint16 loopsize) :
@@ -275,6 +276,7 @@
 	const uint16 _freq;
 	const uint8 _vol;
 };
+
 class V2A_Sound_MultiLooped : public V2A_Sound_Base<2> {
 public:
 	V2A_Sound_MultiLooped(uint16 offset, uint16 size, uint16 freq1, uint8 vol1, uint16 freq2, uint8 vol2) :
@@ -301,6 +303,7 @@
 	const uint16 _freq2;
 	const uint8 _vol2;
 };
+
 class V2A_Sound_MultiLoopedDuration : public V2A_Sound_MultiLooped {
 public:
 	V2A_Sound_MultiLoopedDuration(uint16 offset, uint16 size, uint16 freq1, uint8 vol1, uint16 freq2, uint8 vol2, uint16 numframes) :
@@ -321,6 +324,7 @@
 
 	int _ticks;
 };
+
 class V2A_Sound_SingleLoopedPitchbend : public V2A_Sound_Base<1> {
 public:
 	V2A_Sound_SingleLoopedPitchbend(uint16 offset, uint16 size, uint16 freq1, uint16 freq2, uint8 vol, uint8 step) :
@@ -359,6 +363,7 @@
 
 	uint16 _curfreq;
 };
+
 class V2A_Sound_Special_FastPitchbendDownAndFadeout : public V2A_Sound_Base<1> {
 public:
 	V2A_Sound_Special_FastPitchbendDownAndFadeout(uint16 offset, uint16 size, uint16 freq, uint8 vol) :
@@ -720,6 +725,69 @@
 	}
 };
 
+class V2A_Sound_Special_TwinSirenMulti : public V2A_Sound_Base<2> {
+public:
+	V2A_Sound_Special_TwinSirenMulti(uint16 offset1, uint16 size1, uint16 offset2, uint16 size2, uint16 freq1, uint16 freq2, uint8 vol) :
+		_offset1(offset1), _size1(size1), _offset2(offset2), _size2(size2), _freq1(freq1), _freq2(freq2), _vol(vol) { }
+	virtual void start(Player_MOD *mod, int id, const byte *data) {
+		_mod = mod;
+		_id = id;
+		_data = (char *)malloc(READ_LE_UINT16(data));
+		memcpy(_data, data, READ_LE_UINT16(data));
+		
+		_loopnum = 1;
+		_step = 2;
+		_curfreq = _freq1;
+
+		soundon(_data + _offset1, _size1);
+	}
+	virtual bool update() {
+		assert(_id);
+		_mod->setChannelFreq(_id | 0x000, BASE_FREQUENCY / _curfreq);
+		_mod->setChannelFreq(_id | 0x100, BASE_FREQUENCY / (_curfreq + 3));
+		_curfreq -= _step;
+		if (_loopnum == 7) {
+			if ((BASE_FREQUENCY / _curfreq) >= 65536)
+				return false;
+			else
+				return true;
+		}
+		if (_curfreq >= _freq2)
+			return true;
+		const char steps[8] = {0,2,2,3,4,8,15,2};
+		_curfreq = _freq1;
+		_step = steps[++_loopnum];
+		if (_loopnum == 7) {
+			_mod->stopChannel(_id | 0x000);
+			_mod->stopChannel(_id | 0x100);
+			soundon(_data + _offset2, _size2);
+		}
+		return true;
+	}
+private:
+	const uint16 _offset1;
+	const uint16 _size1;
+	const uint16 _offset2;
+	const uint16 _size2;
+	const uint16 _freq1;
+	const uint16 _freq2;
+	const uint8 _vol;
+
+	int _curfreq;
+	uint16 _loopnum;
+	uint16 _step;
+
+	void soundon(const char *data, int size) {
+		char *tmp_data1 = (char *)malloc(size);
+		char *tmp_data2 = (char *)malloc(size);
+		memcpy(tmp_data1, data, size);
+		memcpy(tmp_data2, data, size);
+		int vol = (_vol << 1) | (_vol >> 5);
+		_mod->startChannel(_id | 0x000, tmp_data1, size, BASE_FREQUENCY / _curfreq, vol, 0, size, -127);
+		_mod->startChannel(_id | 0x100, tmp_data2, size, BASE_FREQUENCY / (_curfreq + 3), vol, 0, size, 127);
+	}
+};
+
 class V2A_Sound_Special_QuadSiren : public V2A_Sound_Base<4> {
 public:
 	V2A_Sound_Special_QuadSiren(uint16 offset1, uint16 size1, uint16 offset2, uint16 size2, uint8 vol) :
@@ -788,69 +856,6 @@
 			freq = max;
 			step = -step;
 		}
-	}
-};
-
-class V2A_Sound_Special_TwinSirenMulti : public V2A_Sound_Base<2> {
-public:
-	V2A_Sound_Special_TwinSirenMulti(uint16 offset1, uint16 size1, uint16 offset2, uint16 size2, uint16 freq1, uint16 freq2, uint8 vol) :
-		_offset1(offset1), _size1(size1), _offset2(offset2), _size2(size2), _freq1(freq1), _freq2(freq2), _vol(vol) { }
-	virtual void start(Player_MOD *mod, int id, const byte *data) {
-		_mod = mod;
-		_id = id;
-		_data = (char *)malloc(READ_LE_UINT16(data));
-		memcpy(_data, data, READ_LE_UINT16(data));
-		
-		_loopnum = 1;
-		_step = 2;
-		_curfreq = _freq1;
-
-		soundon(_data + _offset1, _size1);
-	}
-	virtual bool update() {
-		assert(_id);
-		_mod->setChannelFreq(_id | 0x000, BASE_FREQUENCY / _curfreq);
-		_mod->setChannelFreq(_id | 0x100, BASE_FREQUENCY / (_curfreq + 3));
-		_curfreq -= _step;
-		if (_loopnum == 7) {
-			if ((BASE_FREQUENCY / _curfreq) >= 65536)
-				return false;
-			else
-				return true;
-		}
-		if (_curfreq >= _freq2)
-			return true;
-		const char steps[8] = {0,2,2,3,4,8,15,2};
-		_curfreq = _freq1;
-		_step = steps[++_loopnum];
-		if (_loopnum == 7) {
-			_mod->stopChannel(_id | 0x000);
-			_mod->stopChannel(_id | 0x100);
-			soundon(_data + _offset2, _size2);
-		}
-		return true;
-	}
-private:
-	const uint16 _offset1;
-	const uint16 _size1;
-	const uint16 _offset2;
-	const uint16 _size2;
-	const uint16 _freq1;
-	const uint16 _freq2;
-	const uint8 _vol;
-
-	int _curfreq;
-	uint16 _loopnum;
-	uint16 _step;
-
-	void soundon(const char *data, int size) {
-		char *tmp_data1 = (char *)malloc(size);
-		char *tmp_data2 = (char *)malloc(size);
-		memcpy(tmp_data1, data, size);
-		memcpy(tmp_data2, data, size);
-		int vol = (_vol << 1) | (_vol >> 5);
-		_mod->startChannel(_id | 0x000, tmp_data1, size, BASE_FREQUENCY / _curfreq, vol, 0, size, -127);
-		_mod->startChannel(_id | 0x100, tmp_data2, size, BASE_FREQUENCY / (_curfreq + 3), vol, 0, size, 127);
 	}
 };
 





More information about the Scummvm-git-logs mailing list