Vitaliy Margolen : dinput: Implement saturation property for evdev joystick driver.

Alexandre Julliard julliard at winehq.org
Mon Jul 28 08:06:55 CDT 2008


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

Author: Vitaliy Margolen <wine-patches at kievinfo.com>
Date:   Fri Jul 25 14:20:37 2008 -0600

dinput: Implement saturation property for evdev joystick driver.

---

 dlls/dinput/joystick_linuxinput.c |   31 +++++++++++++++++++++++++++++++
 1 files changed, 31 insertions(+), 0 deletions(-)

diff --git a/dlls/dinput/joystick_linuxinput.c b/dlls/dinput/joystick_linuxinput.c
index aad25a4..d3f7dc0 100644
--- a/dlls/dinput/joystick_linuxinput.c
+++ b/dlls/dinput/joystick_linuxinput.c
@@ -885,6 +885,26 @@ static HRESULT WINAPI JoystickAImpl_SetProperty(LPDIRECTINPUTDEVICE8A iface,
       FIXME("DIPROP_AUTOCENTER(%d)\n", pd->dwData);
       break;
     }
+    case (DWORD)DIPROP_SATURATION: {
+      LPCDIPROPDWORD pd = (LPCDIPROPDWORD)ph;
+
+      if (ph->dwHow == DIPH_DEVICE) {
+        int i;
+
+        TRACE("saturation(%d) all\n", pd->dwData);
+        for (i = 0; i < This->base.data_format.wine_df->dwNumObjs; i++)
+          This->props[i].lSaturation = pd->dwData;
+      } else {
+          int obj = find_property(&This->base.data_format, ph);
+
+          if (obj < 0) return DIERR_OBJECTNOTFOUND;
+
+          TRACE("saturation(%d) obj=%d\n", pd->dwData, obj);
+          This->props[obj].lSaturation = pd->dwData;
+      }
+      fake_current_js_state(This);
+      break;
+    }
     default:
       return IDirectInputDevice2AImpl_SetProperty(iface, rguid, ph);
     }
@@ -977,6 +997,17 @@ static HRESULT WINAPI JoystickAImpl_GetProperty(LPDIRECTINPUTDEVICE8A iface,
         TRACE("deadzone(%d) obj=%d\n", pd->dwData, obj);
         break;
     }
+    case (DWORD) DIPROP_SATURATION:
+    {
+        LPDIPROPDWORD pd = (LPDIPROPDWORD)pdiph;
+        int obj = find_property(&This->base.data_format, pdiph);
+
+        if (obj < 0) return DIERR_OBJECTNOTFOUND;
+
+        pd->dwData = This->props[obj].lSaturation;
+        TRACE("saturation(%d) obj=%d\n", pd->dwData, obj);
+        break;
+    }
 
     default:
         return IDirectInputDevice2AImpl_GetProperty(iface, rguid, pdiph);




More information about the wine-cvs mailing list