From 335dec27b7e067defa9aea893477d3c2ad06fe56 Mon Sep 17 00:00:00 2001 From: Ulrich Hecht Date: Thu, 24 Jul 2008 13:12:39 +0200 Subject: [PATCH] dsound: Fix notification order. --- dlls/dsound/mixer.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/dlls/dsound/mixer.c b/dlls/dsound/mixer.c index 7ac6e6705fd..7fe94239f12 100644 --- a/dlls/dsound/mixer.c +++ b/dlls/dsound/mixer.c @@ -240,6 +240,8 @@ void DSOUND_CheckEvent(const IDirectSoundBufferImpl *dsb, DWORD playpos, int len i, offset, event->hEventNotify); /* DSBPN_OFFSETSTOP has to be the last element. So this is */ /* OK. [Inside DirectX, p274] */ + /* Windows does not seem to enforce this, and some apps rely */ + /* on that, so we can't stop there. */ /* */ /* This also means we can't sort the entries by offset, */ /* because DSBPN_OFFSETSTOP == -1 */ @@ -247,9 +249,8 @@ void DSOUND_CheckEvent(const IDirectSoundBufferImpl *dsb, DWORD playpos, int len if (dsb->state == STATE_STOPPED) { SetEvent(event->hEventNotify); TRACE("signalled event %p (%d)\n", event->hEventNotify, i); - return; - } else - return; + } + continue; } if ((playpos + len) >= dsb->buflen) { if ((offset < ((playpos + len) % dsb->buflen)) ||