From 74d898d1606ffc3fd9df4fec58efd02ef4a5dc6c Mon Sep 17 00:00:00 2001 From: Nicolas Bacca Date: Sun, 18 Jul 2004 16:30:01 +0000 Subject: Fix Digital Imuse deadlocks for CE platforms. Other platforms using event-based timers may be interested in it, too svn-id: r14248 --- scumm/imuse_digi/dimuse_script.cpp | 3 +++ scumm/imuse_digi/dimuse_track.cpp | 3 +++ 2 files changed, 6 insertions(+) (limited to 'scumm/imuse_digi') 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; -- cgit v1.2.3