diff options
author | Eugene Sandulenko | 2010-01-01 16:28:22 +0000 |
---|---|---|
committer | Eugene Sandulenko | 2010-01-01 16:28:22 +0000 |
commit | 622dd0d16dbf735323a6fae985f0231a4ef5d393 (patch) | |
tree | 6b14067f8c501153e9b378a104ffcc91ff29647c /sound/vorbis.cpp | |
parent | d1b844d3c36b9011442d3a6538bc35878b3b694e (diff) | |
download | scummvm-rg350-622dd0d16dbf735323a6fae985f0231a4ef5d393.tar.gz scummvm-rg350-622dd0d16dbf735323a6fae985f0231a4ef5d393.tar.bz2 scummvm-rg350-622dd0d16dbf735323a6fae985f0231a4ef5d393.zip |
Implemented setNumLoops() for common audio streams.
Implemented getNumPlayedLoops() for common audio streams.
Requested by m_kriewitz.
svn-id: r46836
Diffstat (limited to 'sound/vorbis.cpp')
-rw-r--r-- | sound/vorbis.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/sound/vorbis.cpp b/sound/vorbis.cpp index cd5f77a8fd..1d265e6025 100644 --- a/sound/vorbis.cpp +++ b/sound/vorbis.cpp @@ -92,9 +92,11 @@ protected: bool _isStereo; int _rate; - uint _numLoops; const uint _totalNumLoops; + uint _numLoops; ///< Number of loops to play + uint _numPlayedLoops; ///< Number of loops which have been played + #ifdef USE_TREMOR ogg_int64_t _startTime; ogg_int64_t _endTime; @@ -120,6 +122,9 @@ public: bool isStereo() const { return _isStereo; } int getRate() const { return _rate; } + void setNumLoops(uint numLoops = 1) { _numLoops = numLoops; } + uint getNumPlayedLoops() { return _numPlayedLoops; } + int32 getTotalPlayTime() const { if (!_totalNumLoops) return AudioStream::kUnknownPlayTime; @@ -220,6 +225,8 @@ int VorbisInputStream::readBuffer(int16 *buffer, const int numSamples) { if (_numLoops != 0) _numLoops--; + _numPlayedLoops++; + res = ov_time_seek(&_ovFile, _startTime); if (res < 0) { warning("Error seeking in Vorbis stream (%d)", res); |