Ulrich Hecht : dsound: Fix notification order.

Alexandre Julliard julliard at winehq.org
Fri Jul 25 08:09:23 CDT 2008


Module: wine
Branch: master
Commit: 335dec27b7e067defa9aea893477d3c2ad06fe56
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=335dec27b7e067defa9aea893477d3c2ad06fe56

Author: Ulrich Hecht <uli at suse.de>
Date:   Thu Jul 24 13:12:39 2008 +0200

dsound: Fix notification order.

---

 dlls/dsound/mixer.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/dlls/dsound/mixer.c b/dlls/dsound/mixer.c
index 7ac6e67..7fe9423 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)) ||




More information about the wine-cvs mailing list