[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