Sweden-Number/dlls/winebus.sys
Rémi Bernon cbd324124c winebus.sys: Revert direction rotation for UDEV lnxev devices.
This partially reverts b431dceeca, which
followed some misleading SDL comment, as well as the original dinput
evdev backend code, and resulted in inverted directions instead.

On the Linux drivers side, both in the PID driver or the I-Force driver,
the evdev direction is simply rescaled and passed to the device. It is
then very likely that we should pass through the PID reports direction.

In some other drivers, the sine of the angle is used to modulate the
force magnitude, although that doesn't really tell anything about the
orientation of the direction itself.

The SDL comment is incorrect, and its code isn't actually doing any kind
of conversion other than the rescaling. We now do the same here, and end
up with identical values being sent to evdev, whether we use it directly
or through the SDL library.

It's also been confirmed with hidraw PID capable devices, that with this
change, the direction values in the hardware PID reports are consistent
between the three backends (SDL, evdev, and hidraw).

If some devices are expecting inverted directions then it probably is
something that will need to be solved on the Linux driver level.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51922
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-09 18:43:51 +01:00
..
Makefile.in
bus_iohid.c
bus_sdl.c winebus.sys: Use SDL_HAPTIC_INFINITY for the infinity durations in the SDL backend. 2021-12-09 18:43:51 +01:00
bus_udev.c winebus.sys: Revert direction rotation for UDEV lnxev devices. 2021-12-09 18:43:51 +01:00
hid.c winebus.sys: Use an unsigned 16bit range for saturation and deadband values. 2021-12-09 18:43:51 +01:00
main.c
pop_hid_macros.h
psh_hid_macros.h
unix_private.h
unixlib.c
unixlib.h
winebus.inf
winebus.rc
winebus.sys.spec