winmm: Move the 16bit management of mixer driver type to the new 16=>32 thunking scheme.
This commit is contained in:
parent
beeac41595
commit
8aa64672de
|
@ -123,17 +123,17 @@ static void CALLBACK MMDRV_Aux_Callback(HDRVR hDev, UINT uMsg, DWORD_PTR dwInst
|
||||||
* ================================= */
|
* ================================= */
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
* xMMDRV_Mixer_Map16To32W [internal]
|
* MMSYSTDRV_Mixer_Map16To32W [internal]
|
||||||
*/
|
*/
|
||||||
static WINMM_MapType MMDRV_Mixer_Map16To32W (UINT wMsg, DWORD_PTR *lpdwUser, DWORD_PTR* lpParam1, DWORD_PTR* lpParam2)
|
static MMSYSTEM_MapType MMSYSTDRV_Mixer_Map16To32W (UINT wMsg, DWORD_PTR* lpParam1, DWORD_PTR* lpParam2)
|
||||||
{
|
{
|
||||||
return WINMM_MAP_MSGERROR;
|
return MMSYSTEM_MAP_MSGERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
* MMDRV_Mixer_UnMap16To32W [internal]
|
* MMSYSTDRV_Mixer_UnMap16To32W [internal]
|
||||||
*/
|
*/
|
||||||
static WINMM_MapType MMDRV_Mixer_UnMap16To32W(UINT wMsg, DWORD_PTR *lpdwUser, DWORD_PTR* lpParam1, DWORD_PTR* lpParam2, MMRESULT fn_ret)
|
static MMSYSTEM_MapType MMSYSTDRV_Mixer_UnMap16To32W(UINT wMsg, DWORD_PTR* lpParam1, DWORD_PTR* lpParam2, MMRESULT fn_ret)
|
||||||
{
|
{
|
||||||
#if 0
|
#if 0
|
||||||
MIXERCAPSA micA;
|
MIXERCAPSA micA;
|
||||||
|
@ -149,7 +149,7 @@ static WINMM_MapType MMDRV_Mixer_UnMap16To32W(UINT wMsg, DWORD_PTR *lpdwUser, D
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
#endif
|
#endif
|
||||||
return WINMM_MAP_MSGERROR;
|
return MMSYSTEM_MAP_MSGERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
|
@ -179,6 +179,14 @@ static void CALLBACK MMDRV_Mixer_Callback(HDRVR hDev, UINT uMsg, DWORD_PTR dwIn
|
||||||
MMDRV_Callback(mld, hDev, uMsg, dwParam1, dwParam2);
|
MMDRV_Callback(mld, hDev, uMsg, dwParam1, dwParam2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
* MMSYSTDRV_Mixer_MapCB
|
||||||
|
*/
|
||||||
|
static void MMSYSTDRV_Mixer_MapCB(DWORD uMsg, DWORD_PTR* dwUser, DWORD_PTR* dwParam1, DWORD_PTR* dwParam2)
|
||||||
|
{
|
||||||
|
FIXME("NIY\n");
|
||||||
|
}
|
||||||
|
|
||||||
/* =================================
|
/* =================================
|
||||||
* M I D I I N M A P P E R S
|
* M I D I I N M A P P E R S
|
||||||
* ================================= */
|
* ================================= */
|
||||||
|
@ -2525,6 +2533,18 @@ static WINMM_MapType MCI_UnMapMsg32WTo16(WORD uDevType, WORD wMsg, DWORD dwFlag
|
||||||
return MCI_MsgMapper32WTo16_Destroy((void*)lParam, size, map, kept);
|
return MCI_MsgMapper32WTo16_Destroy((void*)lParam, size, map, kept);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* temporary hack */
|
||||||
|
static WINMM_MapType MMDRV_Map16To32W (UINT wMsg, DWORD_PTR *lpdwUser, DWORD_PTR* lpParam1, DWORD_PTR* lpParam2)
|
||||||
|
{
|
||||||
|
return WINMM_MAP_MSGERROR;
|
||||||
|
}
|
||||||
|
static WINMM_MapType MMDRV_UnMap16To32W(UINT wMsg, DWORD_PTR *lpdwUser, DWORD_PTR* lpParam1, DWORD_PTR* lpParam2, MMRESULT fn_ret)
|
||||||
|
{
|
||||||
|
return WINMM_MAP_MSGERROR;
|
||||||
|
}
|
||||||
|
#define MMDRV_Mixer_Map16To32W MMDRV_Map16To32W
|
||||||
|
#define MMDRV_Mixer_UnMap16To32W MMDRV_UnMap16To32W
|
||||||
|
|
||||||
void MMDRV_Init16(void)
|
void MMDRV_Init16(void)
|
||||||
{
|
{
|
||||||
#define A(_x,_y) MMDRV_InstallMap(_x, \
|
#define A(_x,_y) MMDRV_InstallMap(_x, \
|
||||||
|
@ -2579,6 +2599,7 @@ static struct MMSYSTDRV_Type
|
||||||
MMSYSTDRV_MAPCB mapcb;
|
MMSYSTDRV_MAPCB mapcb;
|
||||||
} MMSYSTEM_DriversType[MMSYSTDRV_MAX] =
|
} MMSYSTEM_DriversType[MMSYSTDRV_MAX] =
|
||||||
{
|
{
|
||||||
|
{MMSYSTDRV_Mixer_Map16To32W, MMSYSTDRV_Mixer_UnMap16To32W, MMSYSTDRV_Mixer_MapCB},
|
||||||
};
|
};
|
||||||
|
|
||||||
/******************************************************************
|
/******************************************************************
|
||||||
|
|
|
@ -248,11 +248,26 @@ UINT16 WINAPI mixerGetDevCaps16(UINT16 uDeviceID, LPMIXERCAPS16 lpCaps,
|
||||||
UINT16 WINAPI mixerOpen16(LPHMIXER16 lphmix, UINT16 uDeviceID, DWORD dwCallback,
|
UINT16 WINAPI mixerOpen16(LPHMIXER16 lphmix, UINT16 uDeviceID, DWORD dwCallback,
|
||||||
DWORD dwInstance, DWORD fdwOpen)
|
DWORD dwInstance, DWORD fdwOpen)
|
||||||
{
|
{
|
||||||
HMIXER hmix;
|
HMIXER hmix;
|
||||||
UINT ret;
|
UINT ret;
|
||||||
|
struct mmsystdrv_thunk* thunk;
|
||||||
|
|
||||||
ret = MIXER_Open(&hmix, uDeviceID, dwCallback, dwInstance, fdwOpen, FALSE);
|
if (!(thunk = MMSYSTDRV_AddThunk(dwCallback, MMSYSTDRV_MIXER)))
|
||||||
if (lphmix) *lphmix = HMIXER_16(hmix);
|
{
|
||||||
|
return MMSYSERR_NOMEM;
|
||||||
|
}
|
||||||
|
if ((fdwOpen & CALLBACK_TYPEMASK) == CALLBACK_FUNCTION)
|
||||||
|
{
|
||||||
|
dwCallback = (DWORD)thunk;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = mixerOpen(&hmix, uDeviceID, dwCallback, dwInstance, fdwOpen);
|
||||||
|
if (ret == MMSYSERR_NOERROR)
|
||||||
|
{
|
||||||
|
if (lphmix) *lphmix = HMIXER_16(hmix);
|
||||||
|
if (thunk) MMSYSTDRV_SetHandle(thunk, hmix);
|
||||||
|
}
|
||||||
|
else MMSYSTDRV_DeleteThunk(thunk);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -261,7 +276,11 @@ UINT16 WINAPI mixerOpen16(LPHMIXER16 lphmix, UINT16 uDeviceID, DWORD dwCallback,
|
||||||
*/
|
*/
|
||||||
UINT16 WINAPI mixerClose16(HMIXER16 hMix)
|
UINT16 WINAPI mixerClose16(HMIXER16 hMix)
|
||||||
{
|
{
|
||||||
return mixerClose(HMIXER_32(hMix));
|
UINT ret = mixerClose(HMIXER_32(hMix));
|
||||||
|
|
||||||
|
if (ret == MMSYSERR_NOERROR)
|
||||||
|
MMSYSTDRV_CloseHandle((void*)HMIXER_32(hMix));
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
|
|
|
@ -203,8 +203,6 @@ LPSTR MCI_strdupWtoA(LPCWSTR str);
|
||||||
BOOL WINMM_CheckForMMSystem(void);
|
BOOL WINMM_CheckForMMSystem(void);
|
||||||
const char* WINMM_ErrorToString(MMRESULT error);
|
const char* WINMM_ErrorToString(MMRESULT error);
|
||||||
|
|
||||||
UINT MIXER_Open(LPHMIXER lphMix, UINT uDeviceID, DWORD_PTR dwCallback,
|
|
||||||
DWORD_PTR dwInstance, DWORD fdwOpen, BOOL bFrom32);
|
|
||||||
UINT MIDI_OutOpen(HMIDIOUT* lphMidiOut, UINT uDeviceID, DWORD_PTR dwCallback,
|
UINT MIDI_OutOpen(HMIDIOUT* lphMidiOut, UINT uDeviceID, DWORD_PTR dwCallback,
|
||||||
DWORD_PTR dwInstance, DWORD dwFlags, BOOL bFrom32);
|
DWORD_PTR dwInstance, DWORD dwFlags, BOOL bFrom32);
|
||||||
UINT MIDI_InOpen(HMIDIIN* lphMidiIn, UINT uDeviceID, DWORD_PTR dwCallback,
|
UINT MIDI_InOpen(HMIDIIN* lphMidiIn, UINT uDeviceID, DWORD_PTR dwCallback,
|
||||||
|
|
|
@ -325,8 +325,11 @@ static void CALLBACK MIXER_WCallback(HMIXEROBJ hmx, UINT uMsg, DWORD_PTR dwInsta
|
||||||
PostMessageW(hWnd, uMsg, (WPARAM)hmx, (LPARAM)dwParam);
|
PostMessageW(hWnd, uMsg, (WPARAM)hmx, (LPARAM)dwParam);
|
||||||
}
|
}
|
||||||
|
|
||||||
UINT MIXER_Open(LPHMIXER lphMix, UINT uDeviceID, DWORD_PTR dwCallback,
|
/**************************************************************************
|
||||||
DWORD_PTR dwInstance, DWORD fdwOpen, BOOL bFrom32)
|
* mixerOpen [WINMM.@]
|
||||||
|
*/
|
||||||
|
UINT WINAPI mixerOpen(LPHMIXER lphMix, UINT uDeviceID, DWORD_PTR dwCallback,
|
||||||
|
DWORD_PTR dwInstance, DWORD fdwOpen)
|
||||||
{
|
{
|
||||||
HANDLE hMix;
|
HANDLE hMix;
|
||||||
LPWINE_MLD wmld;
|
LPWINE_MLD wmld;
|
||||||
|
@ -361,7 +364,7 @@ UINT MIXER_Open(LPHMIXER lphMix, UINT uDeviceID, DWORD_PTR dwCallback,
|
||||||
}
|
}
|
||||||
|
|
||||||
wmld = MMDRV_Alloc(sizeof(WINE_MIXER), MMDRV_MIXER, &hMix, &fdwOpen,
|
wmld = MMDRV_Alloc(sizeof(WINE_MIXER), MMDRV_MIXER, &hMix, &fdwOpen,
|
||||||
&dwCallback, &dwInstance, bFrom32);
|
&dwCallback, &dwInstance, TRUE);
|
||||||
wmld->uDeviceID = uDeviceID;
|
wmld->uDeviceID = uDeviceID;
|
||||||
mod.hmx = hMix;
|
mod.hmx = hMix;
|
||||||
|
|
||||||
|
@ -377,15 +380,6 @@ UINT MIXER_Open(LPHMIXER lphMix, UINT uDeviceID, DWORD_PTR dwCallback,
|
||||||
return dwRet;
|
return dwRet;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
* mixerOpen [WINMM.@]
|
|
||||||
*/
|
|
||||||
UINT WINAPI mixerOpen(LPHMIXER lphMix, UINT uDeviceID, DWORD_PTR dwCallback,
|
|
||||||
DWORD_PTR dwInstance, DWORD fdwOpen)
|
|
||||||
{
|
|
||||||
return MIXER_Open(lphMix, uDeviceID, dwCallback, dwInstance, fdwOpen, TRUE);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
* mixerClose [WINMM.@]
|
* mixerClose [WINMM.@]
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue