Module: wine Branch: master Commit: 7b07e4b5638544a23c22aa6f737e63f85854124f URL: http://source.winehq.org/git/wine.git/?a=commit;h=7b07e4b5638544a23c22aa6f73...
Author: Vitaliy Margolen wine-patches@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;