Vitaliy Margolen : dinput: Add handling of AXISMODE property to base device object.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Dec 18 05:34:35 CST 2006


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

Author: Vitaliy Margolen <wine-patches at kievinfo.com>
Date:   Sun Dec 17 23:22:11 2006 -0700

dinput: Add handling of AXISMODE property to base device object.

---

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

diff --git a/dlls/dinput/device.c b/dlls/dinput/device.c
index 7586530..6b05ed6 100644
--- a/dlls/dinput/device.c
+++ b/dlls/dinput/device.c
@@ -876,6 +876,25 @@ HRESULT WINAPI IDirectInputDevice2AImpl_
 
     switch (LOWORD(rguid))
     {
+        case (DWORD) DIPROP_AXISMODE:
+        {
+            LPCDIPROPDWORD pd = (LPCDIPROPDWORD)pdiph;
+
+            if (pdiph->dwSize != sizeof(DIPROPDWORD)) return DIERR_INVALIDPARAM;
+            if (pdiph->dwHow == DIPH_DEVICE && pdiph->dwObj) return DIERR_INVALIDPARAM;
+            if (This->acquired) return DIERR_ACQUIRED;
+            if (pdiph->dwHow != DIPH_DEVICE) return DIERR_UNSUPPORTED;
+
+            TRACE("Axis mode: %s\n", pd->dwData == DIPROPAXISMODE_ABS ? "absolute" :
+                                                                        "relative");
+
+            EnterCriticalSection(&This->crit);
+            This->data_format.user_df->dwFlags &= ~DIDFT_AXIS;
+            This->data_format.user_df->dwFlags |= pd->dwData == DIPROPAXISMODE_ABS ?
+                                                  DIDF_ABSAXIS : DIDF_RELAXIS;
+            LeaveCriticalSection(&This->crit);
+            break;
+        }
         case (DWORD) DIPROP_BUFFERSIZE:
         {
             LPCDIPROPDWORD pd = (LPCDIPROPDWORD)pdiph;




More information about the wine-cvs mailing list