[Scummvm-cvs-logs] SF.net SVN: scummvm: [27798] scummvm/trunk/sound/mixer.cpp
fingolfin at users.sourceforge.net
fingolfin at users.sourceforge.net
Sat Jun 30 23:02:58 CEST 2007
Revision: 27798
http://scummvm.svn.sourceforge.net/scummvm/?rev=27798&view=rev
Author: fingolfin
Date: 2007-06-30 14:02:58 -0700 (Sat, 30 Jun 2007)
Log Message:
-----------
Changed semantics of Mixer::pause*() methods -- if you pause n times, you have to unpause n times before the sound resumes (this means pauseAll works correct in engines which selectively pause/resume single sounds)
Modified Paths:
--------------
scummvm/trunk/sound/mixer.cpp
Modified: scummvm/trunk/sound/mixer.cpp
===================================================================
--- scummvm/trunk/sound/mixer.cpp 2007-06-30 18:22:21 UTC (rev 27797)
+++ scummvm/trunk/sound/mixer.cpp 2007-06-30 21:02:58 UTC (rev 27798)
@@ -54,7 +54,7 @@
bool _permanent;
byte _volume;
int8 _balance;
- bool _paused;
+ int _pauseLevel;
int _id;
uint32 _samplesConsumed;
uint32 _samplesDecoded;
@@ -77,10 +77,15 @@
return _input->endOfStream();
}
void pause(bool paused) {
- _paused = paused;
+ assert((paused && _pauseLevel >= 0) || (!paused && _pauseLevel));
+
+ if (paused)
+ _pauseLevel++;
+ else
+ _pauseLevel--;
}
bool isPaused() {
- return _paused;
+ return _pauseLevel != 0;
}
void setVolume(const byte volume) {
_volume = volume;
@@ -375,7 +380,7 @@
Channel::Channel(Mixer *mixer, Mixer::SoundType type, AudioStream *input,
bool autofreeStream, bool reverseStereo, int id, bool permanent)
: _type(type), _mixer(mixer), _autofreeStream(autofreeStream),
- _volume(Mixer::kMaxChannelVolume), _balance(0), _paused(false), _id(id), _samplesConsumed(0),
+ _volume(Mixer::kMaxChannelVolume), _balance(0), _pauseLevel(0), _id(id), _samplesConsumed(0),
_samplesDecoded(0), _mixerTimeStamp(0), _converter(0), _input(input), _permanent(permanent) {
assert(mixer);
assert(input);
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