[Scummvm-cvs-logs] SF.net SVN: scummvm: [32264] scummvm/trunk/sound

lordhoto at users.sourceforge.net lordhoto at users.sourceforge.net
Sun May 25 01:49:16 CEST 2008


Revision: 32264
          http://scummvm.svn.sourceforge.net/scummvm/?rev=32264&view=rev
Author:   lordhoto
Date:     2008-05-24 16:49:15 -0700 (Sat, 24 May 2008)

Log Message:
-----------
Take numLoops in account for getTotalPlayTime in FLAC and OGG/Vorbis streams.

Modified Paths:
--------------
    scummvm/trunk/sound/flac.cpp
    scummvm/trunk/sound/vorbis.cpp

Modified: scummvm/trunk/sound/flac.cpp
===================================================================
--- scummvm/trunk/sound/flac.cpp	2008-05-24 23:39:13 UTC (rev 32263)
+++ scummvm/trunk/sound/flac.cpp	2008-05-24 23:49:15 UTC (rev 32264)
@@ -90,6 +90,7 @@
 	bool _disposeAfterUse;
 
 	uint _numLoops;
+	const uint _totalNumLoops;
 
 	::FLAC__SeekableStreamDecoder *_decoder;
 
@@ -158,7 +159,7 @@
 		int32 seconds = samples / rate;
 		int32 milliseconds = (1000 * (samples % rate)) / rate;
 
-		return seconds * 1000 + milliseconds;
+		return (seconds * 1000 + milliseconds) * _totalNumLoops;
 	}
 
 	bool isStreamDecoderReady() const { return getStreamDecoderState() == FLAC__STREAM_DECODER_SEARCH_FOR_FRAME_SYNC ; }
@@ -210,6 +211,7 @@
 		_inStream(inStream),
 		_disposeAfterUse(dispose),
 		_numLoops(numLoops),
+		_totalNumLoops(numLoops),
 		_firstSample(0), _lastSample(0),
 		_outBuffer(NULL), _requestedSamples(0), _lastSampleWritten(false),
 		_methodConvertBuffers(&FlacInputStream::convertBuffersGeneric)

Modified: scummvm/trunk/sound/vorbis.cpp
===================================================================
--- scummvm/trunk/sound/vorbis.cpp	2008-05-24 23:39:13 UTC (rev 32263)
+++ scummvm/trunk/sound/vorbis.cpp	2008-05-24 23:49:15 UTC (rev 32264)
@@ -92,6 +92,7 @@
 	bool _isStereo;
 	int _rate;
 	uint _numLoops;
+	const uint _totalNumLoops;
 
 #ifdef USE_TREMOR
 	ogg_int64_t _startTime;
@@ -120,9 +121,9 @@
 
 	int32 getTotalPlayTime() const {
 #ifdef USE_TREMOR
-		return _endTime - _startTime;
+		return (_endTime - _startTime) * _totalNumLoops;
 #else
-		return (int32)((_endTime - _startTime) * 1000.0);
+		return (int32)((_endTime - _startTime) * 1000.0) * _totalNumLoops;
 #endif
 	}
 
@@ -134,6 +135,7 @@
 	_inStream(inStream),
 	_disposeAfterUse(dispose),
 	_numLoops(numLoops),
+	_totalNumLoops(numLoops),
 	_bufferEnd(_buffer + ARRAYSIZE(_buffer)) {
 
 	bool err = (ov_open_callbacks(inStream, &_ovFile, NULL, 0, g_stream_wrap) < 0);


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