Pavel Semerad : dinput: Fixed joystick with POV and JoystickAImpl_SetProperty-proprange.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Apr 5 04:46:26 CDT 2006


Module: wine
Branch: refs/heads/master
Commit: ff8debd2be326099cd4d69b5d593202f62ec2ae8
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=ff8debd2be326099cd4d69b5d593202f62ec2ae8

Author: Pavel Semerad <semerad at sisal.mff.cuni.cz>
Date:   Tue Apr  4 00:01:50 2006 +0200

dinput: Fixed joystick with POV and JoystickAImpl_SetProperty-proprange.

---

 dlls/dinput/joystick_linux.c |   32 ++++++++++++++++----------------
 1 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/dlls/dinput/joystick_linux.c b/dlls/dinput/joystick_linux.c
index 6c49427..13b8c77 100644
--- a/dlls/dinput/joystick_linux.c
+++ b/dlls/dinput/joystick_linux.c
@@ -862,24 +862,24 @@ static int offset_to_object(JoystickImpl
 
 static LONG calculate_pov(JoystickImpl *This, int index)
 {
-    if (This->povs[index].lX < 16384) {
-        if (This->povs[index].lY < 16384)
+    if (This->povs[index].lX < -16384) {
+        if (This->povs[index].lY < -16384)
             This->js.rgdwPOV[index] = 31500;
-        else if (This->povs[index].lY > 49150)
+        else if (This->povs[index].lY > 16384)
             This->js.rgdwPOV[index] = 22500;
         else
             This->js.rgdwPOV[index] = 27000;
-    } else if (This->povs[index].lX > 49150) {
-        if (This->povs[index].lY < 16384)
+    } else if (This->povs[index].lX > 16384) {
+        if (This->povs[index].lY < -16384)
             This->js.rgdwPOV[index] = 4500;
-        else if (This->povs[index].lY > 49150)
+        else if (This->povs[index].lY > 16384)
             This->js.rgdwPOV[index] = 13500;
         else
             This->js.rgdwPOV[index] = 9000;
     } else {
-        if (This->povs[index].lY < 16384)
+        if (This->povs[index].lY < -16384)
             This->js.rgdwPOV[index] = 0;
-        else if (This->povs[index].lY > 49150)
+        else if (This->povs[index].lY > 16384)
             This->js.rgdwPOV[index] = 18000;
         else
             This->js.rgdwPOV[index] = -1;
@@ -953,30 +953,30 @@ static void joy_polldev(JoystickImpl *Th
                 case 8:
                     /* FIXME don't go off array */
                     if (This->axis_map[jse.number + 1] == number)
-                        This->povs[0].lX = value;
+                        This->povs[0].lX = jse.value;
                     else if (This->axis_map[jse.number - 1] == number)
-                        This->povs[0].lY = value;
+                        This->povs[0].lY = jse.value;
                     value = calculate_pov(This, 0);
                     break;
                 case 9:
                     if (This->axis_map[jse.number + 1] == number)
-                        This->povs[1].lX = value;
+                        This->povs[1].lX = jse.value;
                     else if (This->axis_map[jse.number - 1] == number)
-                        This->povs[1].lY = value;
+                        This->povs[1].lY = jse.value;
                     value = calculate_pov(This, 1);
                     break;
                 case 10:
                     if (This->axis_map[jse.number + 1] == number)
-                        This->povs[2].lX = value;
+                        This->povs[2].lX = jse.value;
                     else if (This->axis_map[jse.number - 1] == number)
-                        This->povs[2].lY = value;
+                        This->povs[2].lY = jse.value;
                     value = calculate_pov(This, 2);
                     break;
                 case 11:
                     if (This->axis_map[jse.number + 1] == number)
-                        This->povs[3].lX = value;
+                        This->povs[3].lX = jse.value;
                     else if (This->axis_map[jse.number - 1] == number)
-                        This->povs[3].lY = value;
+                        This->povs[3].lY = jse.value;
                     value = calculate_pov(This, 3);
                     break;
                 }




More information about the wine-cvs mailing list