[PATCH] resubmit: dsound: notification order
Ulrich Hecht
uli at suse.de
Thu Jul 24 06:12:39 CDT 2008
This fixes sound in Ootake (http://www.ouma.jp/ootake/). Looks like
DSBPN_OFFSETSTOP is not always the last element. Simplified as suggested by
Vitaliy Margolen.
CU
Uli
---
dlls/dsound/mixer.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/dlls/dsound/mixer.c b/dlls/dsound/mixer.c
index 7ac6e67..062cce6 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,9 @@ 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;
+ continue;
} else
- return;
+ continue;
}
if ((playpos + len) >= dsb->buflen) {
if ((offset < ((playpos + len) % dsb->buflen)) ||
--
1.5.4.5
More information about the wine-patches
mailing list