[PATCH v2 06/10] winmm: Reimplement joyGetPos with joyGetPosEx.
Andrew Eikum
aeikum at codeweavers.com
Thu Dec 9 09:32:23 CST 2021
Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>
On Fri, Dec 03, 2021 at 12:19:06PM +0100, Rémi Bernon wrote:
> Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
> ---
> dlls/winmm/joystick.c | 26 ++++++++++++++++----------
> 1 file changed, 16 insertions(+), 10 deletions(-)
>
> diff --git a/dlls/winmm/joystick.c b/dlls/winmm/joystick.c
> index 604b0d7c0ba..666b0e6c871 100644
> --- a/dlls/winmm/joystick.c
> +++ b/dlls/winmm/joystick.c
> @@ -263,20 +263,26 @@ MMRESULT WINAPI DECLSPEC_HOTPATCH joyGetPosEx(UINT wID, LPJOYINFOEX lpInfo)
> /**************************************************************************
> * joyGetPos [WINMM.@]
> */
> -MMRESULT WINAPI joyGetPos(UINT wID, LPJOYINFO lpInfo)
> +MMRESULT WINAPI joyGetPos( UINT id, JOYINFO *info )
> {
> - TRACE("(%d, %p);\n", wID, lpInfo);
> + JOYINFOEX infoex =
> + {
> + .dwSize = sizeof(JOYINFOEX),
> + .dwFlags = JOY_RETURNX | JOY_RETURNY | JOY_RETURNZ | JOY_RETURNBUTTONS,
> + };
> + MMRESULT res;
>
> - if (!lpInfo) return MMSYSERR_INVALPARAM;
> - if (wID >= ARRAY_SIZE(joysticks)) return JOYERR_PARMS;
> - if (!JOY_LoadDriver(wID)) return MMSYSERR_NODRIVER;
> + TRACE( "id %u, info %p.\n", id, info );
>
> - lpInfo->wXpos = 0;
> - lpInfo->wYpos = 0;
> - lpInfo->wZpos = 0;
> - lpInfo->wButtons = 0;
> + if (!info) return MMSYSERR_INVALPARAM;
> + if ((res = joyGetPosEx( id, &infoex ))) return res;
>
> - return SendDriverMessage( joysticks[wID].hDriver, JDD_GETPOS, (LPARAM)lpInfo, 0 );
> + info->wXpos = infoex.dwXpos;
> + info->wYpos = infoex.dwYpos;
> + info->wZpos = infoex.dwZpos;
> + info->wButtons = infoex.dwButtons;
> +
> + return JOYERR_NOERROR;
> }
>
> /**************************************************************************
> --
> 2.34.0
>
>
More information about the wine-devel
mailing list