aboutsummaryrefslogtreecommitdiff
path: root/sound/vorbis.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2010-01-01 16:28:22 +0000
committerEugene Sandulenko2010-01-01 16:28:22 +0000
commit622dd0d16dbf735323a6fae985f0231a4ef5d393 (patch)
tree6b14067f8c501153e9b378a104ffcc91ff29647c /sound/vorbis.cpp
parentd1b844d3c36b9011442d3a6538bc35878b3b694e (diff)
downloadscummvm-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.cpp9
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);