diff options
author | Nicolas Bacca | 2004-07-18 16:30:01 +0000 |
---|---|---|
committer | Nicolas Bacca | 2004-07-18 16:30:01 +0000 |
commit | 74d898d1606ffc3fd9df4fec58efd02ef4a5dc6c (patch) | |
tree | dcf938dffc551bbd539d64fd99db77d6bdf12b86 /scumm/imuse_digi | |
parent | 8a593e2e05114dae3120604f0d39bd62e99119f8 (diff) | |
download | scummvm-rg350-74d898d1606ffc3fd9df4fec58efd02ef4a5dc6c.tar.gz scummvm-rg350-74d898d1606ffc3fd9df4fec58efd02ef4a5dc6c.tar.bz2 scummvm-rg350-74d898d1606ffc3fd9df4fec58efd02ef4a5dc6c.zip |
Fix Digital Imuse deadlocks for CE platforms. Other platforms using event-based timers may be interested in it, too
svn-id: r14248
Diffstat (limited to 'scumm/imuse_digi')
-rw-r--r-- | scumm/imuse_digi/dimuse_script.cpp | 3 | ||||
-rw-r--r-- | scumm/imuse_digi/dimuse_track.cpp | 3 |
2 files changed, 6 insertions, 0 deletions
diff --git a/scumm/imuse_digi/dimuse_script.cpp b/scumm/imuse_digi/dimuse_script.cpp index a66024ad4c..cc55827f99 100644 --- a/scumm/imuse_digi/dimuse_script.cpp +++ b/scumm/imuse_digi/dimuse_script.cpp @@ -381,6 +381,9 @@ void IMuseDigital::stopAllSounds() { break; flushTracks(); _vm->_system->delay_msecs(50); +#ifdef _WIN32_WCE + _vm->parseEvents(); // timers are events, we need to consume them +#endif } } diff --git a/scumm/imuse_digi/dimuse_track.cpp b/scumm/imuse_digi/dimuse_track.cpp index 0b24a894a3..d160a5efd4 100644 --- a/scumm/imuse_digi/dimuse_track.cpp +++ b/scumm/imuse_digi/dimuse_track.cpp @@ -82,6 +82,9 @@ void IMuseDigital::startSound(int soundId, const char *soundName, int soundType, Track *track = _track[l]; for (;;) { +#ifdef _WIN32_WCE + _vm->parseEvents(); // timers are events, we need to consume them +#endif flushTracks(); if (!track->used) { track->pan = 64; |