Andrew Eikum : winmm: Remove driver implementation of mixer*.

Alexandre Julliard julliard at winehq.org
Fri Jul 15 11:45:12 CDT 2011


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

Author: Andrew Eikum <aeikum at codeweavers.com>
Date:   Wed Jul 13 14:20:37 2011 -0500

winmm: Remove driver implementation of mixer*.

---

 dlls/winmm/waveform.c |  191 +++++--------------------------------------------
 1 files changed, 19 insertions(+), 172 deletions(-)

diff --git a/dlls/winmm/waveform.c b/dlls/winmm/waveform.c
index 48faf0f..6894464 100644
--- a/dlls/winmm/waveform.c
+++ b/dlls/winmm/waveform.c
@@ -2999,66 +2999,9 @@ UINT WINAPI waveInMessage(HWAVEIN hWaveIn, UINT uMessage,
     return MMSYSERR_NOTSUPPORTED;
 }
 
-/**************************************************************************
- * find out the real mixer ID depending on hmix (depends on dwFlags)
- */
-static UINT MIXER_GetDev(HMIXEROBJ hmix, DWORD dwFlags, LPWINE_MIXER * lplpwm)
-{
-    LPWINE_MIXER	lpwm = NULL;
-    UINT		uRet = MMSYSERR_NOERROR;
-
-    switch (dwFlags & 0xF0000000ul) {
-    case MIXER_OBJECTF_MIXER:
-	lpwm = (LPWINE_MIXER)MMDRV_Get(hmix, MMDRV_MIXER, TRUE);
-	break;
-    case MIXER_OBJECTF_HMIXER:
-	lpwm = (LPWINE_MIXER)MMDRV_Get(hmix, MMDRV_MIXER, FALSE);
-	break;
-    case MIXER_OBJECTF_WAVEOUT:
-	lpwm = (LPWINE_MIXER)MMDRV_GetRelated(hmix, MMDRV_WAVEOUT, TRUE,  MMDRV_MIXER);
-	break;
-    case MIXER_OBJECTF_HWAVEOUT:
-	lpwm = (LPWINE_MIXER)MMDRV_GetRelated(hmix, MMDRV_WAVEOUT, FALSE, MMDRV_MIXER);
-	break;
-    case MIXER_OBJECTF_WAVEIN:
-	lpwm = (LPWINE_MIXER)MMDRV_GetRelated(hmix, MMDRV_WAVEIN,  TRUE,  MMDRV_MIXER);
-	break;
-    case MIXER_OBJECTF_HWAVEIN:
-	lpwm = (LPWINE_MIXER)MMDRV_GetRelated(hmix, MMDRV_WAVEIN,  FALSE, MMDRV_MIXER);
-	break;
-    case MIXER_OBJECTF_MIDIOUT:
-	lpwm = (LPWINE_MIXER)MMDRV_GetRelated(hmix, MMDRV_MIDIOUT, TRUE,  MMDRV_MIXER);
-	break;
-    case MIXER_OBJECTF_HMIDIOUT:
-	lpwm = (LPWINE_MIXER)MMDRV_GetRelated(hmix, MMDRV_MIDIOUT, FALSE, MMDRV_MIXER);
-	break;
-    case MIXER_OBJECTF_MIDIIN:
-	lpwm = (LPWINE_MIXER)MMDRV_GetRelated(hmix, MMDRV_MIDIIN,  TRUE,  MMDRV_MIXER);
-	break;
-    case MIXER_OBJECTF_HMIDIIN:
-	lpwm = (LPWINE_MIXER)MMDRV_GetRelated(hmix, MMDRV_MIDIIN,  FALSE, MMDRV_MIXER);
-	break;
-    case MIXER_OBJECTF_AUX:
-	lpwm = (LPWINE_MIXER)MMDRV_GetRelated(hmix, MMDRV_AUX,     TRUE,  MMDRV_MIXER);
-	break;
-    default:
-	WARN("Unsupported flag (%08lx)\n", dwFlags & 0xF0000000ul);
-        lpwm = 0;
-        uRet = MMSYSERR_INVALFLAG;
-	break;
-    }
-    *lplpwm = lpwm;
-    if (lpwm == 0 && uRet == MMSYSERR_NOERROR)
-        uRet = MMSYSERR_INVALPARAM;
-    return uRet;
-}
-
-/**************************************************************************
- * 				mixerGetNumDevs			[WINMM.@]
- */
 UINT WINAPI mixerGetNumDevs(void)
 {
-    return MMDRV_GetNum(MMDRV_MIXER);
+    return 0;
 }
 
 /**************************************************************************
@@ -3092,24 +3035,10 @@ UINT WINAPI mixerGetDevCapsA(UINT_PTR uDeviceID, LPMIXERCAPSA lpCaps, UINT uSize
  */
 UINT WINAPI mixerGetDevCapsW(UINT_PTR uDeviceID, LPMIXERCAPSW lpCaps, UINT uSize)
 {
-    LPWINE_MLD wmld;
-
-    if (lpCaps == NULL)        return MMSYSERR_INVALPARAM;
-
-    if ((wmld = MMDRV_Get((HANDLE)uDeviceID, MMDRV_MIXER, TRUE)) == NULL)
-        return MMSYSERR_BADDEVICEID;
-
-    return MMDRV_Message(wmld, MXDM_GETDEVCAPS, (DWORD_PTR)lpCaps, uSize);
-}
-
-static void CALLBACK MIXER_WCallback(HMIXEROBJ hmx, UINT uMsg, DWORD_PTR dwInstance, DWORD_PTR dwParam, DWORD_PTR param2)
-{
-    HWND hWnd = (HWND)dwInstance;
-
-    if (!dwInstance)
-        return;
+    if(!lpCaps)
+        return MMSYSERR_INVALPARAM;
 
-    PostMessageW(hWnd, uMsg, (WPARAM)hmx, (LPARAM)dwParam);
+    return MMSYSERR_BADDEVICEID;
 }
 
 /**************************************************************************
@@ -3118,10 +3047,7 @@ static void CALLBACK MIXER_WCallback(HMIXEROBJ hmx, UINT uMsg, DWORD_PTR dwInsta
 UINT WINAPI mixerOpen(LPHMIXER lphMix, UINT uDeviceID, DWORD_PTR dwCallback,
                       DWORD_PTR dwInstance, DWORD fdwOpen)
 {
-    HANDLE		hMix;
-    LPWINE_MLD		wmld;
-    DWORD		dwRet;
-    MIXEROPENDESC	mod;
+    DWORD dwRet;
 
     TRACE("(%p, %d, %08lx, %08lx, %08x)\n",
 	  lphMix, uDeviceID, dwCallback, dwInstance, fdwOpen);
@@ -3130,33 +3056,7 @@ UINT WINAPI mixerOpen(LPHMIXER lphMix, UINT uDeviceID, DWORD_PTR dwCallback,
     if (dwRet != MMSYSERR_NOERROR)
         return dwRet;
 
-    mod.dwCallback = (DWORD_PTR)MIXER_WCallback;
-    if ((fdwOpen & CALLBACK_TYPEMASK) == CALLBACK_WINDOW)
-        mod.dwInstance = dwCallback;
-    else
-        mod.dwInstance = 0;
-
-    /* We're remapping to CALLBACK_FUNCTION because that's what old winmm is
-     * documented to do when opening the mixer driver.
-     * FIXME: Native supports CALLBACK_EVENT + CALLBACK_THREAD flags since w2k.
-     * FIXME: The non ALSA drivers ignore callback requests - bug.
-     */
-
-    wmld = MMDRV_Alloc(sizeof(WINE_MIXER), MMDRV_MIXER, &hMix, &fdwOpen,
-		       &dwCallback, &dwInstance);
-    wmld->uDeviceID = uDeviceID;
-    mod.hmx = hMix;
-
-    dwRet = MMDRV_Open(wmld, MXDM_OPEN, (DWORD_PTR)&mod, CALLBACK_FUNCTION);
-
-    if (dwRet != MMSYSERR_NOERROR) {
-	MMDRV_Free(hMix, wmld);
-	hMix = 0;
-    }
-    if (lphMix) *lphMix = hMix;
-    TRACE("=> %d hMixer=%p\n", dwRet, hMix);
-
-    return dwRet;
+    return MMSYSERR_BADDEVICEID;
 }
 
 /**************************************************************************
@@ -3164,17 +3064,8 @@ UINT WINAPI mixerOpen(LPHMIXER lphMix, UINT uDeviceID, DWORD_PTR dwCallback,
  */
 UINT WINAPI mixerClose(HMIXER hMix)
 {
-    LPWINE_MLD		wmld;
-    DWORD		dwRet;
-
     TRACE("(%p)\n", hMix);
-
-    if ((wmld = MMDRV_Get(hMix, MMDRV_MIXER, FALSE)) == NULL) return MMSYSERR_INVALHANDLE;
-
-    dwRet = MMDRV_Close(wmld, MXDM_CLOSE);
-    MMDRV_Free(hMix, wmld);
-
-    return dwRet;
+    return MMSYSERR_INVALHANDLE;
 }
 
 /**************************************************************************
@@ -3182,18 +3073,8 @@ UINT WINAPI mixerClose(HMIXER hMix)
  */
 UINT WINAPI mixerGetID(HMIXEROBJ hmix, LPUINT lpid, DWORD fdwID)
 {
-    LPWINE_MIXER	lpwm;
-    UINT		uRet = MMSYSERR_NOERROR;
-
-    TRACE("(%p %p %08x)\n", hmix, lpid, fdwID);
-
-    if ((uRet = MIXER_GetDev(hmix, fdwID, &lpwm)) != MMSYSERR_NOERROR)
-	return uRet;
-
-    if (lpid)
-      *lpid = lpwm->mld.uDeviceID;
-
-    return uRet;
+    TRACE("(%p, %p, %08x)\n", hmix, lpid, fdwID);
+    return MMSYSERR_INVALHANDLE;
 }
 
 /**************************************************************************
@@ -3202,19 +3083,12 @@ UINT WINAPI mixerGetID(HMIXEROBJ hmix, LPUINT lpid, DWORD fdwID)
 UINT WINAPI mixerGetControlDetailsW(HMIXEROBJ hmix, LPMIXERCONTROLDETAILS lpmcdW,
 				    DWORD fdwDetails)
 {
-    LPWINE_MIXER	lpwm;
-    UINT		uRet = MMSYSERR_NOERROR;
-
     TRACE("(%p, %p, %08x)\n", hmix, lpmcdW, fdwDetails);
 
-    if ((uRet = MIXER_GetDev(hmix, fdwDetails, &lpwm)) != MMSYSERR_NOERROR)
-	return uRet;
-
-    if (lpmcdW == NULL || lpmcdW->cbStruct != sizeof(*lpmcdW))
-	return MMSYSERR_INVALPARAM;
+    if(!lpmcdW || lpmcdW->cbStruct != sizeof(*lpmcdW))
+        return MMSYSERR_INVALPARAM;
 
-    return MMDRV_Message(&lpwm->mld, MXDM_GETCONTROLDETAILS, (DWORD_PTR)lpmcdW,
-			 fdwDetails);
+    return MMSYSERR_INVALHANDLE;
 }
 
 /**************************************************************************
@@ -3350,19 +3224,12 @@ UINT WINAPI mixerGetLineControlsA(HMIXEROBJ hmix, LPMIXERLINECONTROLSA lpmlcA,
 UINT WINAPI mixerGetLineControlsW(HMIXEROBJ hmix, LPMIXERLINECONTROLSW lpmlcW,
 				  DWORD fdwControls)
 {
-    LPWINE_MIXER	lpwm;
-    UINT		uRet = MMSYSERR_NOERROR;
-
     TRACE("(%p, %p, %08x)\n", hmix, lpmlcW, fdwControls);
 
-    if ((uRet = MIXER_GetDev(hmix, fdwControls, &lpwm)) != MMSYSERR_NOERROR)
-	return uRet;
-
-    if (lpmlcW == NULL || lpmlcW->cbStruct != sizeof(*lpmlcW))
-	return MMSYSERR_INVALPARAM;
+    if(!lpmlcW || lpmlcW->cbStruct != sizeof(*lpmlcW))
+        return MMSYSERR_INVALPARAM;
 
-    return MMDRV_Message(&lpwm->mld, MXDM_GETLINECONTROLS, (DWORD_PTR)lpmlcW,
-			 fdwControls);
+    return MMSYSERR_INVALHANDLE;
 }
 
 /**************************************************************************
@@ -3370,16 +3237,9 @@ UINT WINAPI mixerGetLineControlsW(HMIXEROBJ hmix, LPMIXERLINECONTROLSW lpmlcW,
  */
 UINT WINAPI mixerGetLineInfoW(HMIXEROBJ hmix, LPMIXERLINEW lpmliW, DWORD fdwInfo)
 {
-    LPWINE_MIXER	lpwm;
-    UINT		uRet = MMSYSERR_NOERROR;
-
     TRACE("(%p, %p, %08x)\n", hmix, lpmliW, fdwInfo);
 
-    if ((uRet = MIXER_GetDev(hmix, fdwInfo, &lpwm)) != MMSYSERR_NOERROR)
-	return uRet;
-
-    return MMDRV_Message(&lpwm->mld, MXDM_GETLINEINFO, (DWORD_PTR)lpmliW,
-			 fdwInfo);
+    return MMSYSERR_INVALHANDLE;
 }
 
 /**************************************************************************
@@ -3457,16 +3317,9 @@ UINT WINAPI mixerGetLineInfoA(HMIXEROBJ hmix, LPMIXERLINEA lpmliA,
 UINT WINAPI mixerSetControlDetails(HMIXEROBJ hmix, LPMIXERCONTROLDETAILS lpmcd,
 				   DWORD fdwDetails)
 {
-    LPWINE_MIXER	lpwm;
-    UINT		uRet = MMSYSERR_NOERROR;
-
     TRACE("(%p, %p, %08x)\n", hmix, lpmcd, fdwDetails);
 
-    if ((uRet = MIXER_GetDev(hmix, fdwDetails, &lpwm)) != MMSYSERR_NOERROR)
-	return uRet;
-
-    return MMDRV_Message(&lpwm->mld, MXDM_SETCONTROLDETAILS, (DWORD_PTR)lpmcd,
-			 fdwDetails);
+    return MMSYSERR_INVALHANDLE;
 }
 
 /**************************************************************************
@@ -3474,13 +3327,7 @@ UINT WINAPI mixerSetControlDetails(HMIXEROBJ hmix, LPMIXERCONTROLDETAILS lpmcd,
  */
 DWORD WINAPI mixerMessage(HMIXER hmix, UINT uMsg, DWORD_PTR dwParam1, DWORD_PTR dwParam2)
 {
-    LPWINE_MLD		wmld;
-
-    TRACE("(%p, %d, %08lx, %08lx): semi-stub?\n",
-	  hmix, uMsg, dwParam1, dwParam2);
-
-    if ((wmld = MMDRV_Get(hmix, MMDRV_MIXER, FALSE)) == NULL)
-	return MMSYSERR_INVALHANDLE;
+    TRACE("(%p, %d, %08lx, %08lx)\n", hmix, uMsg, dwParam1, dwParam2);
 
-    return MMDRV_Message(wmld, uMsg, dwParam1, dwParam2);
+    return MMSYSERR_INVALHANDLE;
 }




More information about the wine-cvs mailing list