Christian Costa : mciqtz32: Stop the device only after param and device checks are done.
Alexandre Julliard
julliard at winehq.org
Thu Apr 23 11:27:22 CDT 2009
Module: wine
Branch: master
Commit: fd80a7b7c44e91fd365e0204bd83ce0d46d2ff67
URL: http://source.winehq.org/git/wine.git/?a=commit;h=fd80a7b7c44e91fd365e0204bd83ce0d46d2ff67
Author: Christian Costa <titan.costa at wanadoo.fr>
Date: Thu Apr 23 00:04:04 2009 +0200
mciqtz32: Stop the device only after param and device checks are done.
---
dlls/mciqtz32/mciqtz.c | 31 +++++++++++++++----------------
1 files changed, 15 insertions(+), 16 deletions(-)
diff --git a/dlls/mciqtz32/mciqtz.c b/dlls/mciqtz32/mciqtz.c
index 07b774c..0435a11 100644
--- a/dlls/mciqtz32/mciqtz.c
+++ b/dlls/mciqtz32/mciqtz.c
@@ -99,12 +99,12 @@ static DWORD MCIQTZ_drvClose(DWORD dwDevID)
TRACE("(%04x)\n", dwDevID);
- /* finish all outstanding things */
- MCIQTZ_mciClose(dwDevID, MCI_WAIT, NULL);
-
wma = MCIQTZ_mciGetOpenDev(dwDevID);
if (wma) {
+ /* finish all outstanding things */
+ MCIQTZ_mciClose(dwDevID, MCI_WAIT, NULL);
+
HeapFree(GetProcessHeap(), 0, wma);
return 1;
}
@@ -121,16 +121,15 @@ static DWORD MCIQTZ_drvConfigure(DWORD dwDevID)
TRACE("(%04x)\n", dwDevID);
- MCIQTZ_mciStop(dwDevID, MCI_WAIT, NULL);
-
wma = MCIQTZ_mciGetOpenDev(dwDevID);
+ if (!wma)
+ return 0;
- if (wma) {
- MessageBoxA(0, "Sample QTZ Wine Driver !", "MM-Wine Driver", MB_OK);
- return 1;
- }
+ MCIQTZ_mciStop(dwDevID, MCI_WAIT, NULL);
- return 0;
+ MessageBoxA(0, "Sample QTZ Wine Driver !", "MM-Wine Driver", MB_OK);
+
+ return 1;
}
/***************************************************************************
@@ -144,8 +143,6 @@ static DWORD MCIQTZ_mciOpen(UINT wDevID, DWORD dwFlags,
TRACE("(%04x, %08X, %p)\n", wDevID, dwFlags, lpOpenParms);
- MCIQTZ_mciStop(wDevID, MCI_WAIT, NULL);
-
if (!lpOpenParms)
return MCIERR_NULL_PARAMETER_BLOCK;
@@ -153,6 +150,8 @@ static DWORD MCIQTZ_mciOpen(UINT wDevID, DWORD dwFlags,
if (!wma)
return MCIERR_INVALID_DEVICE_ID;
+ MCIQTZ_mciStop(wDevID, MCI_WAIT, NULL);
+
CoInitializeEx(NULL, COINIT_MULTITHREADED);
hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, &IID_IGraphBuilder, (LPVOID*)&wma->pgraph);
@@ -211,12 +210,12 @@ static DWORD MCIQTZ_mciClose(UINT wDevID, DWORD dwFlags, LPMCI_GENERIC_PARMS lpP
TRACE("(%04x, %08X, %p)\n", wDevID, dwFlags, lpParms);
- MCIQTZ_mciStop(wDevID, MCI_WAIT, NULL);
-
wma = MCIQTZ_mciGetOpenDev(wDevID);
if (!wma)
return MCIERR_INVALID_DEVICE_ID;
+ MCIQTZ_mciStop(wDevID, MCI_WAIT, NULL);
+
if (wma->opened) {
IGraphBuilder_Release(wma->pgraph);
IMediaControl_Release(wma->pmctrl);
@@ -267,8 +266,6 @@ static DWORD MCIQTZ_mciSeek(UINT wDevID, DWORD dwFlags, LPMCI_SEEK_PARMS lpParms
TRACE("(%04x, %08X, %p)\n", wDevID, dwFlags, lpParms);
- MCIQTZ_mciStop(wDevID, MCI_WAIT, NULL);
-
if (!lpParms)
return MCIERR_NULL_PARAMETER_BLOCK;
@@ -276,6 +273,8 @@ static DWORD MCIQTZ_mciSeek(UINT wDevID, DWORD dwFlags, LPMCI_SEEK_PARMS lpParms
if (!wma)
return MCIERR_INVALID_DEVICE_ID;
+ MCIQTZ_mciStop(wDevID, MCI_WAIT, NULL);
+
if (dwFlags & MCI_SEEK_TO_START) {
newpos = 0;
} else if (dwFlags & MCI_SEEK_TO_END) {
More information about the wine-cvs
mailing list