Jacek Caban : winmm: Introduce compare_uint helper.
Module: wine Branch: master Commit: 12f6e8086b7dcf7738953d4d2eeb63d310654447 URL: https://source.winehq.org/git/wine.git/?a=commit;h=12f6e8086b7dcf7738953d4d2... Author: Jacek Caban <jacek(a)codeweavers.com> Date: Wed May 27 23:55:50 2020 +0200 winmm: Introduce compare_uint helper. Signed-off-by: Jacek Caban <jacek(a)codeweavers.com> Signed-off-by: Andrew Eikum <aeikum(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/winmm/joystick.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/dlls/winmm/joystick.c b/dlls/winmm/joystick.c index e844be1837..2b1811d377 100644 --- a/dlls/winmm/joystick.c +++ b/dlls/winmm/joystick.c @@ -55,6 +55,12 @@ typedef struct tagWINE_JOYSTICK { static WINE_JOYSTICK JOY_Sticks[MAXJOYSTICK]; +static BOOL compare_uint(unsigned int x, unsigned int y, unsigned int max_diff) +{ + unsigned int diff = x > y ? x - y : y - x; + return diff <= max_diff; +} + /************************************************************************** * JOY_LoadDriver [internal] */ @@ -106,14 +112,14 @@ static void CALLBACK JOY_Timer(HWND hWnd, UINT wMsg, UINT_PTR wTimer, DWORD dwTi pos = MAKELONG(ji.wXpos, ji.wYpos); if (!joy->bChanged || - abs(joy->ji.wXpos - ji.wXpos) > joy->threshold || - abs(joy->ji.wYpos - ji.wYpos) > joy->threshold) { + !compare_uint(joy->ji.wXpos, ji.wXpos, joy->threshold) || + !compare_uint(joy->ji.wYpos, ji.wYpos, joy->threshold)) { SendMessageA(joy->hCapture, MM_JOY1MOVE + i, ji.wButtons, pos); joy->ji.wXpos = ji.wXpos; joy->ji.wYpos = ji.wYpos; } if (!joy->bChanged || - abs(joy->ji.wZpos - ji.wZpos) > joy->threshold) { + !compare_uint(joy->ji.wZpos, ji.wZpos, joy->threshold)) { SendMessageA(joy->hCapture, MM_JOY1ZMOVE + i, ji.wButtons, pos); joy->ji.wZpos = ji.wZpos; }
participants (1)
-
Alexandre Julliard