[Scummvm-cvs-logs] SF.net SVN: scummvm:[47935] scummvm/trunk/sound/audiostream.cpp

lordhoto at users.sourceforge.net lordhoto at users.sourceforge.net
Sat Feb 6 17:42:16 CET 2010


Revision: 47935
          http://scummvm.svn.sourceforge.net/scummvm/?rev=47935&view=rev
Author:   lordhoto
Date:     2010-02-06 16:42:15 +0000 (Sat, 06 Feb 2010)

Log Message:
-----------
Fix bug in LoopingAudioStream::readBuffer, this makes the unit tests complete without any error.

Modified Paths:
--------------
    scummvm/trunk/sound/audiostream.cpp

Modified: scummvm/trunk/sound/audiostream.cpp
===================================================================
--- scummvm/trunk/sound/audiostream.cpp	2010-02-06 16:41:53 UTC (rev 47934)
+++ scummvm/trunk/sound/audiostream.cpp	2010-02-06 16:42:15 UTC (rev 47935)
@@ -104,6 +104,9 @@
 }
 
 int LoopingAudioStream::readBuffer(int16 *buffer, const int numSamples) {
+	if ((_loops && _completeIterations == _loops) || !numSamples)
+		return 0;
+
 	int samplesRead = _parent->readBuffer(buffer, numSamples);
 
 	if (_parent->endOfStream()) {
@@ -111,7 +114,7 @@
 		if (_completeIterations == _loops)
 			return samplesRead;
 
-		int remainingSamples = numSamples - samplesRead;
+		const int remainingSamples = numSamples - samplesRead;
 
 		if (!_parent->rewind()) {
 			// TODO: Properly indicate error
@@ -119,7 +122,7 @@
 			return samplesRead;
 		}
 
-		samplesRead += _parent->readBuffer(buffer + samplesRead, remainingSamples);
+		return samplesRead + readBuffer(buffer + samplesRead, remainingSamples);
 	}
 
 	return samplesRead;


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list