• Rémi Bernon's avatar
    winebus.sys: Revert direction rotation for UDEV lnxev devices. · cbd32412
    Rémi Bernon authored
    This partially reverts b431dcee, 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=51922Signed-off-by: 's avatarRémi Bernon <rbernon@codeweavers.com>
    Signed-off-by: 's avatarAlexandre Julliard <julliard@winehq.org>
    cbd32412
bus_udev.c 60.2 KB