[Scummvm-cvs-logs] CVS: scummvm/scumm imuse_digi.cpp,1.46,1.47 sound.cpp,1.246,1.247 player_v3a.cpp,1.7,1.8
Max Horn
fingolfin at users.sourceforge.net
Wed Sep 10 05:54:07 CEST 2003
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv18561/scumm
Modified Files:
imuse_digi.cpp sound.cpp player_v3a.cpp
Log Message:
added refCon parameter to timer class
Index: imuse_digi.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi.cpp,v
retrieving revision 1.46
retrieving revision 1.47
diff -u -d -r1.46 -r1.47
--- imuse_digi.cpp 8 Sep 2003 17:06:44 -0000 1.46
+++ imuse_digi.cpp 10 Sep 2003 12:43:53 -0000 1.47
@@ -689,11 +689,9 @@
return ret_sound;
}
-void IMuseDigital::timer_handler(void *engine) {
- // Avoid race condition
- Scumm *scumm = (Scumm *)engine;
- if (scumm && scumm->_imuseDigital)
- scumm->_imuseDigital->musicTimer();
+void IMuseDigital::timer_handler(void *refCon) {
+ IMuseDigital *imuseDigital = (IMuseDigital *)refCon;
+ imuseDigital->musicTimer();
}
IMuseDigital::IMuseDigital(Scumm *scumm)
@@ -702,7 +700,7 @@
for (int l = 0; l < MAX_DIGITAL_CHANNELS; l++) {
_channel[l]._mixerChannel = 0;
}
- _scumm->_timer->installProcedure(timer_handler, 200000);
+ _scumm->_timer->installProcedure(timer_handler, 200000, this);
_pause = false;
}
@@ -717,7 +715,7 @@
void IMuseDigital::musicTimer() {
int l = 0;
- if (_pause)
+ if (_pause || !_scumm)
return;
for (l = 0; l < MAX_DIGITAL_CHANNELS;l ++) {
Index: sound.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/sound.cpp,v
retrieving revision 1.246
retrieving revision 1.247
diff -u -d -r1.246 -r1.247
--- sound.cpp 9 Sep 2003 17:50:20 -0000 1.246
+++ sound.cpp 10 Sep 2003 12:43:53 -0000 1.247
@@ -1046,8 +1046,9 @@
return s_size;
}
-static void music_handler (void *engine) {
- g_scumm->_sound->bundleMusicHandler(g_scumm);
+static void music_handler(void *refCon) {
+ Sound *sound = (Sound *)refCon;
+ sound->bundleMusicHandler(g_scumm);
}
void Sound::playBundleMusic(const char *song) {
@@ -1088,7 +1089,7 @@
_bundleMusicTrack = 0;
_numberSamplesBundleMusic = _bundle->getNumberOfMusicSamplesByName(song);
_nameBundleMusic = song;
- _scumm->_timer->installProcedure(&music_handler, 1000000);
+ _scumm->_timer->installProcedure(&music_handler, 1000000, this);
return;
}
if (strcmp(_nameBundleMusic, song) != 0) {
@@ -1443,8 +1444,8 @@
// We use a real timer in an attempt to get better sync with CD tracks. This is
// necessary for games like Loom CD.
-static void cd_timer_handler(void *ptr) {
- Scumm *scumm = (Scumm *) ptr;
+static void cd_timer_handler(void *refCon) {
+ Scumm *scumm = (Scumm *)refCon;
// FIXME: Turn off the timer when it's no longer needed. In theory, it
// should be possible to check with pollCD(), but since CD sound isn't
@@ -1467,7 +1468,7 @@
timer_interval = 101;
_scumm->_timer->releaseProcedure(&cd_timer_handler);
- _scumm->_timer->installProcedure(&cd_timer_handler, 1000 * timer_interval);
+ _scumm->_timer->installProcedure(&cd_timer_handler, 1000 * timer_interval, _scumm);
}
void Sound::stopCDTimer() {
Index: player_v3a.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/player_v3a.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- player_v3a.cpp 8 Sep 2003 11:29:57 -0000 1.7
+++ player_v3a.cpp 10 Sep 2003 12:43:53 -0000 1.8
@@ -56,7 +56,7 @@
_maxvol = 255;
- scumm->_timer->installProcedure(timerHandler, 16666);
+ scumm->_timer->installProcedure(timerHandler, 16666, this);
_isinit = false;
}
@@ -143,6 +143,7 @@
}
void Player_V3A::startSound(int nr) {
+ assert(_scumm);
byte *data = _scumm->getResourceAddress(rtSound, nr);
assert(data);
@@ -228,10 +229,10 @@
}
}
-void Player_V3A::timerHandler(void *engine) {
- Scumm *scumm = (Scumm *)engine;
- if (scumm && scumm->_playerV3A)
- scumm->_playerV3A->playMusic();
+void Player_V3A::timerHandler(void *refCon) {
+ Player_V3A *player = (Player_V3A *)refCon;
+ assert(player);
+ player->playMusic();
}
void Player_V3A::playMusic() {
More information about the Scummvm-git-logs
mailing list