[Scummvm-cvs-logs] CVS: scummvm/sword1 music.cpp,1.18,1.19 music.h,1.9,1.10

Torbj?rn Andersson eriktorbjorn at users.sourceforge.net
Thu Jan 8 05:06:00 CET 2004


Update of /cvsroot/scummvm/scummvm/sword1
In directory sc8-pr-cvs1:/tmp/cvs-serv24543

Modified Files:
	music.cpp music.h 
Log Message:
Merged read() and readBuffer(), like in BS2.


Index: music.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sword1/music.cpp,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -d -r1.18 -r1.19
--- music.cpp	7 Jan 2004 17:47:46 -0000	1.18
+++ music.cpp	8 Jan 2004 13:05:32 -0000	1.19
@@ -52,38 +52,32 @@
 }
 
 int SwordMusicHandle::readBuffer(int16 *buffer, const int numSamples) {
-	// TODO: merge the read() code into readBuffer(), for higher efficency;
-	// we then can remove read() (as it isn't needed for anything anymore).
 	int samples;
-	for (samples = 0; samples < numSamples && !endOfData(); samples++)
-		*buffer++ = read();
-	return samples;
-}
-
-int16 SwordMusicHandle::read() {
-	if (!streaming())
-		return 0;
-	int16 sample = _file.readUint16LE();
-	if (_file.ioFailed()) {
-		if (!_looping) {
-			stop();
-			return 0;
+	for (samples = 0; samples < numSamples && !endOfData(); samples++) {
+		int16 sample = _file.readUint16LE();
+		if (_file.ioFailed()) {
+			if (!_looping) {
+				stop();
+				sample = 0;
+			} else {
+				_file.clearIOFailed();
+				_file.seek(WAVEHEADERSIZE);
+				sample = _file.readUint16LE();
+			}
 		}
-		_file.clearIOFailed();
-		_file.seek(WAVEHEADERSIZE);
-		sample = _file.readUint16LE();
-	}
-	if (_fading > 0) {
-		if (--_fading == 0) {
-			_looping = false;
-			_file.close();
+		if (_fading > 0) {
+			if (--_fading == 0) {
+				_looping = false;
+				_file.close();
+			}
+			sample = (sample * _fading) / _fadeSamples;
+		} else if (_fading < 0) {
+			_fading++;
+			sample = (sample * (_fadeSamples + _fading)) / _fadeSamples;
 		}
-		sample = (sample * _fading) / _fadeSamples;
-	} else if (_fading < 0) {
-		_fading++;
-		sample = (sample * (_fadeSamples + _fading)) / _fadeSamples;
+		*buffer++ = sample;
 	}
-	return sample;
+	return samples;
 }
 
 bool SwordMusicHandle::play(const char *filename, bool loop) {

Index: music.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sword1/music.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- music.h	7 Jan 2004 17:47:46 -0000	1.9
+++ music.h	8 Jan 2004 13:05:32 -0000	1.10
@@ -45,7 +45,6 @@
 public:
 	SwordMusicHandle() : _looping(false), _fading(0) {}
 	virtual int readBuffer(int16 *buffer, const int numSamples);
-	int16 read();
 	bool play(const char *filename, bool loop);
 	void stop();
 	void fadeUp();





More information about the Scummvm-git-logs mailing list