From 4ed7cb86562d99ea5a8a4fe01d07a1eef948f57f Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=B6rg=20H=C3=B6hle?= Date: Thu, 26 Nov 2009 16:59:51 +0100 Subject: [PATCH] mciavi: Do not stub unsupported recording or editing functions. Native does not announce CAN SAVE / RECORD / LOCK capabilities either. --- dlls/mciavi32/mciavi.c | 323 +++-------------------------------------- 1 file changed, 19 insertions(+), 304 deletions(-) diff --git a/dlls/mciavi32/mciavi.c b/dlls/mciavi32/mciavi.c index 8613bff205..cb24d6ee6b 100644 --- a/dlls/mciavi32/mciavi.c +++ b/dlls/mciavi32/mciavi.c @@ -562,28 +562,6 @@ mci_play_done: return dwRet; } -/*************************************************************************** - * MCIAVI_mciRecord [internal] - */ -static DWORD MCIAVI_mciRecord(UINT wDevID, DWORD dwFlags, LPMCI_DGV_RECORD_PARMS lpParms) -{ - WINE_MCIAVI *wma; - - FIXME("(%04x, %08X, %p) : stub\n", wDevID, dwFlags, lpParms); - - MCIAVI_mciStop(wDevID, MCI_WAIT, NULL); - - if (lpParms == NULL) return MCIERR_NULL_PARAMETER_BLOCK; - - wma = MCIAVI_mciGetOpenDev(wDevID); - if (wma == NULL) return MCIERR_INVALID_DEVICE_ID; - - EnterCriticalSection(&wma->cs); - wma->dwStatus = MCI_MODE_RECORD; - LeaveCriticalSection(&wma->cs); - return 0; -} - /*************************************************************************** * MCIAVI_mciStop [internal] */ @@ -750,44 +728,6 @@ static DWORD MCIAVI_mciLoad(UINT wDevID, DWORD dwFlags, LPMCI_DGV_LOAD_PARMSW lp return 0; } -/****************************************************************************** - * MCIAVI_mciSave [internal] - */ -static DWORD MCIAVI_mciSave(UINT wDevID, DWORD dwFlags, LPMCI_DGV_SAVE_PARMSW lpParms) -{ - WINE_MCIAVI *wma; - - FIXME("(%04x, %08x, %p) : stub\n", wDevID, dwFlags, lpParms); - - MCIAVI_mciStop(wDevID, MCI_WAIT, NULL); - - if (lpParms == NULL) return MCIERR_NULL_PARAMETER_BLOCK; - - wma = MCIAVI_mciGetOpenDev(wDevID); - if (wma == NULL) return MCIERR_INVALID_DEVICE_ID; - - return 0; -} - -/****************************************************************************** - * MCIAVI_mciFreeze [internal] - */ -static DWORD MCIAVI_mciFreeze(UINT wDevID, DWORD dwFlags, LPMCI_DGV_RECT_PARMS lpParms) -{ - WINE_MCIAVI *wma; - - FIXME("(%04x, %08x, %p) : stub\n", wDevID, dwFlags, lpParms); - - MCIAVI_mciStop(wDevID, MCI_WAIT, NULL); - - if (lpParms == NULL) return MCIERR_NULL_PARAMETER_BLOCK; - - wma = MCIAVI_mciGetOpenDev(wDevID); - if (wma == NULL) return MCIERR_INVALID_DEVICE_ID; - - return 0; -} - /****************************************************************************** * MCIAVI_mciRealize [internal] */ @@ -807,25 +747,6 @@ static DWORD MCIAVI_mciRealize(UINT wDevID, DWORD dwFlags, LPMCI_GENERIC_PARMS l return 0; } -/****************************************************************************** - * MCIAVI_mciUnFreeze [internal] - */ -static DWORD MCIAVI_mciUnFreeze(UINT wDevID, DWORD dwFlags, LPMCI_DGV_RECT_PARMS lpParms) -{ - WINE_MCIAVI *wma; - - FIXME("(%04x, %08x, %p) : stub\n", wDevID, dwFlags, lpParms); - - MCIAVI_mciStop(wDevID, MCI_WAIT, NULL); - - if (lpParms == NULL) return MCIERR_NULL_PARAMETER_BLOCK; - - wma = MCIAVI_mciGetOpenDev(wDevID); - if (wma == NULL) return MCIERR_INVALID_DEVICE_ID; - - return 0; -} - /****************************************************************************** * MCIAVI_mciUpdate [internal] */ @@ -869,82 +790,6 @@ static DWORD MCIAVI_mciStep(UINT wDevID, DWORD dwFlags, LPMCI_DGV_STEP_PARMS lpP return 0; } -/****************************************************************************** - * MCIAVI_mciCopy [internal] - */ -static DWORD MCIAVI_mciCopy(UINT wDevID, DWORD dwFlags, LPMCI_DGV_COPY_PARMS lpParms) -{ - WINE_MCIAVI *wma; - - FIXME("(%04x, %08x, %p) : stub\n", wDevID, dwFlags, lpParms); - - MCIAVI_mciStop(wDevID, MCI_WAIT, NULL); - - if (lpParms == NULL) return MCIERR_NULL_PARAMETER_BLOCK; - - wma = MCIAVI_mciGetOpenDev(wDevID); - if (wma == NULL) return MCIERR_INVALID_DEVICE_ID; - - return 0; -} - -/****************************************************************************** - * MCIAVI_mciCut [internal] - */ -static DWORD MCIAVI_mciCut(UINT wDevID, DWORD dwFlags, LPMCI_DGV_CUT_PARMS lpParms) -{ - WINE_MCIAVI *wma; - - FIXME("(%04x, %08x, %p) : stub\n", wDevID, dwFlags, lpParms); - - MCIAVI_mciStop(wDevID, MCI_WAIT, NULL); - - if (lpParms == NULL) return MCIERR_NULL_PARAMETER_BLOCK; - - wma = MCIAVI_mciGetOpenDev(wDevID); - if (wma == NULL) return MCIERR_INVALID_DEVICE_ID; - - return 0; -} - -/****************************************************************************** - * MCIAVI_mciDelete [internal] - */ -static DWORD MCIAVI_mciDelete(UINT wDevID, DWORD dwFlags, LPMCI_DGV_DELETE_PARMS lpParms) -{ - WINE_MCIAVI *wma; - - FIXME("(%04x, %08x, %p) : stub\n", wDevID, dwFlags, lpParms); - - MCIAVI_mciStop(wDevID, MCI_WAIT, NULL); - - if (lpParms == NULL) return MCIERR_NULL_PARAMETER_BLOCK; - - wma = MCIAVI_mciGetOpenDev(wDevID); - if (wma == NULL) return MCIERR_INVALID_DEVICE_ID; - - return 0; -} - -/****************************************************************************** - * MCIAVI_mciPaste [internal] - */ -static DWORD MCIAVI_mciPaste(UINT wDevID, DWORD dwFlags, LPMCI_DGV_PASTE_PARMS lpParms) -{ - WINE_MCIAVI *wma; - - FIXME("(%04x, %08x, %p) : stub\n", wDevID, dwFlags, lpParms); - - MCIAVI_mciStop(wDevID, MCI_WAIT, NULL); - - if (lpParms == NULL) return MCIERR_NULL_PARAMETER_BLOCK; - - wma = MCIAVI_mciGetOpenDev(wDevID); - if (wma == NULL) return MCIERR_INVALID_DEVICE_ID; - - return 0; -} - /****************************************************************************** * MCIAVI_mciCue [internal] */ @@ -964,63 +809,6 @@ static DWORD MCIAVI_mciCue(UINT wDevID, DWORD dwFlags, LPMCI_DGV_CUE_PARMS lpPar return 0; } -/****************************************************************************** - * MCIAVI_mciCapture [internal] - */ -static DWORD MCIAVI_mciCapture(UINT wDevID, DWORD dwFlags, LPMCI_DGV_CAPTURE_PARMSW lpParms) -{ - WINE_MCIAVI *wma; - - FIXME("(%04x, %08x, %p) : stub\n", wDevID, dwFlags, lpParms); - - MCIAVI_mciStop(wDevID, MCI_WAIT, NULL); - - if (lpParms == NULL) return MCIERR_NULL_PARAMETER_BLOCK; - - wma = MCIAVI_mciGetOpenDev(wDevID); - if (wma == NULL) return MCIERR_INVALID_DEVICE_ID; - - return 0; -} - -/****************************************************************************** - * MCIAVI_mciMonitor [internal] - */ -static DWORD MCIAVI_mciMonitor(UINT wDevID, DWORD dwFlags, LPMCI_DGV_MONITOR_PARMS lpParms) -{ - WINE_MCIAVI *wma; - - FIXME("(%04x, %08x, %p) : stub\n", wDevID, dwFlags, lpParms); - - MCIAVI_mciStop(wDevID, MCI_WAIT, NULL); - - if (lpParms == NULL) return MCIERR_NULL_PARAMETER_BLOCK; - - wma = MCIAVI_mciGetOpenDev(wDevID); - if (wma == NULL) return MCIERR_INVALID_DEVICE_ID; - - return 0; -} - -/****************************************************************************** - * MCIAVI_mciReserve [internal] - */ -static DWORD MCIAVI_mciReserve(UINT wDevID, DWORD dwFlags, LPMCI_DGV_RESERVE_PARMSW lpParms) -{ - WINE_MCIAVI *wma; - - FIXME("(%04x, %08x, %p) : stub\n", wDevID, dwFlags, lpParms); - - MCIAVI_mciStop(wDevID, MCI_WAIT, NULL); - - if (lpParms == NULL) return MCIERR_NULL_PARAMETER_BLOCK; - - wma = MCIAVI_mciGetOpenDev(wDevID); - if (wma == NULL) return MCIERR_INVALID_DEVICE_ID; - - return 0; -} - /****************************************************************************** * MCIAVI_mciSetAudio [internal] */ @@ -1078,63 +866,6 @@ static DWORD MCIAVI_mciSetVideo(UINT wDevID, DWORD dwFlags, LPMCI_DGV_SETVIDEO_P return 0; } -/****************************************************************************** - * MCIAVI_mciQuality [internal] - */ -static DWORD MCIAVI_mciQuality(UINT wDevID, DWORD dwFlags, LPMCI_DGV_QUALITY_PARMSW lpParms) -{ - WINE_MCIAVI *wma; - - FIXME("(%04x, %08x, %p) : stub\n", wDevID, dwFlags, lpParms); - - MCIAVI_mciStop(wDevID, MCI_WAIT, NULL); - - if (lpParms == NULL) return MCIERR_NULL_PARAMETER_BLOCK; - - wma = MCIAVI_mciGetOpenDev(wDevID); - if (wma == NULL) return MCIERR_INVALID_DEVICE_ID; - - return 0; -} - -/****************************************************************************** - * MCIAVI_mciList [internal] - */ -static DWORD MCIAVI_mciList(UINT wDevID, DWORD dwFlags, LPMCI_DGV_LIST_PARMSW lpParms) -{ - WINE_MCIAVI *wma; - - FIXME("(%04x, %08x, %p) : stub\n", wDevID, dwFlags, lpParms); - - MCIAVI_mciStop(wDevID, MCI_WAIT, NULL); - - if (lpParms == NULL) return MCIERR_NULL_PARAMETER_BLOCK; - - wma = MCIAVI_mciGetOpenDev(wDevID); - if (wma == NULL) return MCIERR_INVALID_DEVICE_ID; - - return 0; -} - -/****************************************************************************** - * MCIAVI_mciUndo [internal] - */ -static DWORD MCIAVI_mciUndo(UINT wDevID, DWORD dwFlags, LPMCI_GENERIC_PARMS lpParms) -{ - WINE_MCIAVI *wma; - - FIXME("(%04x, %08x, %p) : stub\n", wDevID, dwFlags, lpParms); - - MCIAVI_mciStop(wDevID, MCI_WAIT, NULL); - - if (lpParms == NULL) return MCIERR_NULL_PARAMETER_BLOCK; - - wma = MCIAVI_mciGetOpenDev(wDevID); - if (wma == NULL) return MCIERR_INVALID_DEVICE_ID; - - return 0; -} - /****************************************************************************** * MCIAVI_mciConfigure [internal] */ @@ -1154,25 +885,6 @@ static DWORD MCIAVI_mciConfigure(UINT wDevID, DWORD dwFlags, LPMCI_GENERIC_PARMS return 0; } -/****************************************************************************** - * MCIAVI_mciRestore [internal] - */ -static DWORD MCIAVI_mciRestore(UINT wDevID, DWORD dwFlags, LPMCI_DGV_RESTORE_PARMSW lpParms) -{ - WINE_MCIAVI *wma; - - FIXME("(%04x, %08x, %p) : stub\n", wDevID, dwFlags, lpParms); - - MCIAVI_mciStop(wDevID, MCI_WAIT, NULL); - - if (lpParms == NULL) return MCIERR_NULL_PARAMETER_BLOCK; - - wma = MCIAVI_mciGetOpenDev(wDevID); - if (wma == NULL) return MCIERR_INVALID_DEVICE_ID; - - return 0; -} - /*======================================================================* * MCI AVI entry points * *======================================================================*/ @@ -1206,7 +918,6 @@ LRESULT CALLBACK MCIAVI_DriverProc(DWORD_PTR dwDevID, HDRVR hDriv, UINT wMsg, case MCI_OPEN_DRIVER: return MCIAVI_mciOpen (dwDevID, dwParam1, (LPMCI_DGV_OPEN_PARMSW) dwParam2); case MCI_CLOSE_DRIVER: return MCIAVI_mciClose (dwDevID, dwParam1, (LPMCI_GENERIC_PARMS) dwParam2); case MCI_PLAY: return MCIAVI_mciPlay (dwDevID, dwParam1, (LPMCI_PLAY_PARMS) dwParam2); - case MCI_RECORD: return MCIAVI_mciRecord (dwDevID, dwParam1, (LPMCI_DGV_RECORD_PARMS) dwParam2); case MCI_STOP: return MCIAVI_mciStop (dwDevID, dwParam1, (LPMCI_GENERIC_PARMS) dwParam2); case MCI_SET: return MCIAVI_mciSet (dwDevID, dwParam1, (LPMCI_DGV_SET_PARMS) dwParam2); case MCI_PAUSE: return MCIAVI_mciPause (dwDevID, dwParam1, (LPMCI_GENERIC_PARMS) dwParam2); @@ -1218,34 +929,38 @@ LRESULT CALLBACK MCIAVI_DriverProc(DWORD_PTR dwDevID, HDRVR hDriv, UINT wMsg, case MCI_PUT: return MCIAVI_mciPut (dwDevID, dwParam1, (LPMCI_DGV_PUT_PARMS) dwParam2); case MCI_WINDOW: return MCIAVI_mciWindow (dwDevID, dwParam1, (LPMCI_DGV_WINDOW_PARMSW) dwParam2); case MCI_LOAD: return MCIAVI_mciLoad (dwDevID, dwParam1, (LPMCI_DGV_LOAD_PARMSW) dwParam2); - case MCI_SAVE: return MCIAVI_mciSave (dwDevID, dwParam1, (LPMCI_DGV_SAVE_PARMSW) dwParam2); - case MCI_FREEZE: return MCIAVI_mciFreeze (dwDevID, dwParam1, (LPMCI_DGV_RECT_PARMS) dwParam2); case MCI_REALIZE: return MCIAVI_mciRealize (dwDevID, dwParam1, (LPMCI_GENERIC_PARMS) dwParam2); - case MCI_UNFREEZE: return MCIAVI_mciUnFreeze (dwDevID, dwParam1, (LPMCI_DGV_RECT_PARMS) dwParam2); case MCI_UPDATE: return MCIAVI_mciUpdate (dwDevID, dwParam1, (LPMCI_DGV_UPDATE_PARMS) dwParam2); case MCI_WHERE: return MCIAVI_mciWhere (dwDevID, dwParam1, (LPMCI_DGV_RECT_PARMS) dwParam2); case MCI_STEP: return MCIAVI_mciStep (dwDevID, dwParam1, (LPMCI_DGV_STEP_PARMS) dwParam2); - case MCI_COPY: return MCIAVI_mciCopy (dwDevID, dwParam1, (LPMCI_DGV_COPY_PARMS) dwParam2); - case MCI_CUT: return MCIAVI_mciCut (dwDevID, dwParam1, (LPMCI_DGV_CUT_PARMS) dwParam2); - case MCI_DELETE: return MCIAVI_mciDelete (dwDevID, dwParam1, (LPMCI_DGV_DELETE_PARMS) dwParam2); - case MCI_PASTE: return MCIAVI_mciPaste (dwDevID, dwParam1, (LPMCI_DGV_PASTE_PARMS) dwParam2); case MCI_CUE: return MCIAVI_mciCue (dwDevID, dwParam1, (LPMCI_DGV_CUE_PARMS) dwParam2); /* Digital Video specific */ - case MCI_CAPTURE: return MCIAVI_mciCapture (dwDevID, dwParam1, (LPMCI_DGV_CAPTURE_PARMSW) dwParam2); - case MCI_MONITOR: return MCIAVI_mciMonitor (dwDevID, dwParam1, (LPMCI_DGV_MONITOR_PARMS) dwParam2); - case MCI_RESERVE: return MCIAVI_mciReserve (dwDevID, dwParam1, (LPMCI_DGV_RESERVE_PARMSW) dwParam2); case MCI_SETAUDIO: return MCIAVI_mciSetAudio (dwDevID, dwParam1, (LPMCI_DGV_SETAUDIO_PARMSW) dwParam2); case MCI_SIGNAL: return MCIAVI_mciSignal (dwDevID, dwParam1, (LPMCI_DGV_SIGNAL_PARMS) dwParam2); case MCI_SETVIDEO: return MCIAVI_mciSetVideo (dwDevID, dwParam1, (LPMCI_DGV_SETVIDEO_PARMSW) dwParam2); - case MCI_QUALITY: return MCIAVI_mciQuality (dwDevID, dwParam1, (LPMCI_DGV_QUALITY_PARMSW) dwParam2); - case MCI_LIST: return MCIAVI_mciList (dwDevID, dwParam1, (LPMCI_DGV_LIST_PARMSW) dwParam2); - case MCI_UNDO: return MCIAVI_mciUndo (dwDevID, dwParam1, (LPMCI_GENERIC_PARMS) dwParam2); case MCI_CONFIGURE: return MCIAVI_mciConfigure (dwDevID, dwParam1, (LPMCI_GENERIC_PARMS) dwParam2); - case MCI_RESTORE: return MCIAVI_mciRestore (dwDevID, dwParam1, (LPMCI_DGV_RESTORE_PARMSW) dwParam2); + /* no editing, recording, saving, locking without inputs */ + case MCI_CAPTURE: + case MCI_COPY: + case MCI_CUT: + case MCI_DELETE: + case MCI_FREEZE: + case MCI_LIST: + case MCI_MONITOR: + case MCI_PASTE: + case MCI_QUALITY: + case MCI_RECORD: + case MCI_RESERVE: + case MCI_RESTORE: + case MCI_SAVE: + case MCI_UNDO: + case MCI_UNFREEZE: + TRACE("Unsupported function [0x%x] flags=%08x\n", wMsg, (DWORD)dwParam1); + return MCIERR_UNSUPPORTED_FUNCTION; case MCI_SPIN: case MCI_ESCAPE: - WARN("Unsupported command [%u]\n", wMsg); + WARN("Unsupported command [0x%x] %08x\n", wMsg, (DWORD)dwParam1); break; case MCI_OPEN: case MCI_CLOSE: -- 2.32.0.93.g670b81a890