[Scummvm-cvs-logs] CVS: scummvm/sound mixer.h,1.99,1.100 mixer.cpp,1.186,1.187
Max Horn
fingolfin at users.sourceforge.net
Tue Mar 22 10:30:11 CET 2005
Update of /cvsroot/scummvm/scummvm/sound
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7394
Modified Files:
mixer.h mixer.cpp
Log Message:
Make sure SoundHandle's are inited
Index: mixer.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sound/mixer.h,v
retrieving revision 1.99
retrieving revision 1.100
diff -u -d -r1.99 -r1.100
--- mixer.h 12 Mar 2005 20:26:49 -0000 1.99
+++ mixer.h 22 Mar 2005 18:29:00 -0000 1.100
@@ -33,7 +33,14 @@
class File;
class OSystem;
-typedef uint32 SoundHandle;
+class SoundHandle {
+ friend class Channel;
+ friend class SoundMixer;
+ uint32 _val;
+public:
+ inline SoundHandle() : _val(0xFFFFFFFF) {}
+};
+
class SoundMixer {
public:
Index: mixer.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sound/mixer.cpp,v
retrieving revision 1.186
retrieving revision 1.187
diff -u -d -r1.186 -r1.187
--- mixer.cpp 12 Mar 2005 20:26:48 -0000 1.186
+++ mixer.cpp 22 Mar 2005 18:29:02 -0000 1.187
@@ -166,7 +166,7 @@
}
_channels[index] = chan;
- chan->_handle = index + (_handleSeed * NUM_CHANNELS);
+ chan->_handle._val = index + (_handleSeed * NUM_CHANNELS);
_handleSeed++;
if (handle) {
*handle = chan->_handle;
@@ -288,8 +288,8 @@
Common::StackLock lock(_mutex);
// Simply ignore stop requests for handles of sounds that already terminated
- const int index = handle % NUM_CHANNELS;
- if (!_channels[index] || _channels[index]->_handle != handle)
+ const int index = handle._val % NUM_CHANNELS;
+ if (!_channels[index] || _channels[index]->_handle._val != handle._val)
return;
delete _channels[index];
@@ -299,8 +299,8 @@
void SoundMixer::setChannelVolume(SoundHandle handle, byte volume) {
Common::StackLock lock(_mutex);
- const int index = handle % NUM_CHANNELS;
- if (!_channels[index] || _channels[index]->_handle != handle)
+ const int index = handle._val % NUM_CHANNELS;
+ if (!_channels[index] || _channels[index]->_handle._val != handle._val)
return;
_channels[index]->setVolume(volume);
@@ -309,8 +309,8 @@
void SoundMixer::setChannelBalance(SoundHandle handle, int8 balance) {
Common::StackLock lock(_mutex);
- const int index = handle % NUM_CHANNELS;
- if (!_channels[index] || _channels[index]->_handle != handle)
+ const int index = handle._val % NUM_CHANNELS;
+ if (!_channels[index] || _channels[index]->_handle._val != handle._val)
return;
_channels[index]->setBalance(balance);
@@ -327,8 +327,8 @@
uint32 SoundMixer::getSoundElapsedTime(SoundHandle handle) {
Common::StackLock lock(_mutex);
- const int index = handle % NUM_CHANNELS;
- if (!_channels[index] || _channels[index]->_handle != handle)
+ const int index = handle._val % NUM_CHANNELS;
+ if (!_channels[index] || _channels[index]->_handle._val != handle._val)
return 0;
return _channels[index]->getElapsedTime();
@@ -352,8 +352,8 @@
Common::StackLock lock(_mutex);
// Simply ignore pause/unpause requests for handles of sound that alreayd terminated
- const int index = handle % NUM_CHANNELS;
- if (!_channels[index] || _channels[index]->_handle != handle)
+ const int index = handle._val % NUM_CHANNELS;
+ if (!_channels[index] || _channels[index]->_handle._val != handle._val)
return;
_channels[index]->pause(paused);
@@ -368,8 +368,8 @@
}
bool SoundMixer::isSoundHandleActive(SoundHandle handle) {
- const int index = handle % NUM_CHANNELS;
- return _channels[index] && _channels[index]->_handle == handle;
+ const int index = handle._val % NUM_CHANNELS;
+ return _channels[index] && _channels[index]->_handle._val == handle._val;
}
bool SoundMixer::hasActiveChannelOfType(SoundType type) {
More information about the Scummvm-git-logs
mailing list