=?UTF-8?Q?J=C3=B6rg=20H=C3=B6hle=20?=: mciseq: Play returns MCIERR_OUTOFRANGE as required.

Alexandre Julliard julliard at winehq.org
Mon Oct 8 13:39:57 CDT 2012


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

Author: Jörg Höhle <hoehle at users.sourceforge.net>
Date:   Tue Mar  1 21:35:23 2011 +0100

mciseq: Play returns MCIERR_OUTOFRANGE as required.

---

 dlls/mciseq/mcimidi.c |   14 ++++++++------
 1 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/dlls/mciseq/mcimidi.c b/dlls/mciseq/mcimidi.c
index 86ce66c..2a65027 100644
--- a/dlls/mciseq/mcimidi.c
+++ b/dlls/mciseq/mcimidi.c
@@ -1170,17 +1170,19 @@ static DWORD MIDI_mciPlay(WINE_MCIMIDI* wmm, DWORD dwFlags, LPMCI_PLAY_PARMS lpP
 	return MCI_SendCommandAsync(wmm->wDevID, MCI_PLAY, dwFlags, (DWORD_PTR)lpParms, sizeof(MCI_PLAY_PARMS));
     }
 
+    if (lpParms && (dwFlags & MCI_TO)) {
+	dwEndMS = MIDI_ConvertTimeFormatToMS(wmm, lpParms->dwTo);
+	/* FIXME: if (dwEndMS > length) return MCIERR_OUTOFRANGE; */
+    } else {
+	dwEndMS = 0xFFFFFFFFul; /* FIXME: dwEndMS = length; */
+    }
     if (lpParms && (dwFlags & MCI_FROM)) {
 	dwStartMS = MIDI_ConvertTimeFormatToMS(wmm, lpParms->dwFrom);
     } else {
 	dwStartMS = wmm->dwPositionMS;
     }
-
-    if (lpParms && (dwFlags & MCI_TO)) {
-	dwEndMS = MIDI_ConvertTimeFormatToMS(wmm, lpParms->dwTo);
-    } else {
-	dwEndMS = 0xFFFFFFFFul;
-    }
+    if (dwEndMS < dwStartMS)
+	return MCIERR_OUTOFRANGE;
 
     TRACE("Playing from %u to %u\n", dwStartMS, dwEndMS);
 




More information about the wine-cvs mailing list