Module: wine Branch: master Commit: cfd3076c3165d067a6c76234a2d92015f81a2437 URL: http://source.winehq.org/git/wine.git/?a=commit;h=cfd3076c3165d067a6c76234a2...
Author: Bruno Jesus 00cpxxx@gmail.com Date: Tue Aug 16 22:24:03 2016 -0300
dinput: Implement GetDeviceInfo(A) using the W version in the js driver.
Signed-off-by: Bruno Jesus 00cpxxx@gmail.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/dinput/joystick_linux.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-)
diff --git a/dlls/dinput/joystick_linux.c b/dlls/dinput/joystick_linux.c index f7061d5..b08d4c9 100644 --- a/dlls/dinput/joystick_linux.c +++ b/dlls/dinput/joystick_linux.c @@ -281,7 +281,7 @@ static INT find_joystick_devices(void) return joystick_devices_count; }
-static void fill_joystick_dideviceinstanceA(LPDIDEVICEINSTANCEA lpddi, DWORD version, int id) +static void fill_joystick_dideviceinstanceW(LPDIDEVICEINSTANCEW lpddi, DWORD version, int id) { DWORD dwSize = lpddi->dwSize;
@@ -298,33 +298,33 @@ static void fill_joystick_dideviceinstanceA(LPDIDEVICEINSTANCEA lpddi, DWORD ver lpddi->dwDevType = DI8DEVTYPE_JOYSTICK | (DI8DEVTYPEJOYSTICK_STANDARD << 8); else lpddi->dwDevType = DIDEVTYPE_JOYSTICK | (DIDEVTYPEJOYSTICK_TRADITIONAL << 8); - strcpy(lpddi->tszInstanceName, joystick_devices[id].name); - strcpy(lpddi->tszProductName, joystick_devices[id].name);
+ MultiByteToWideChar(CP_ACP, 0, joystick_devices[id].name, -1, lpddi->tszInstanceName, MAX_PATH); + MultiByteToWideChar(CP_ACP, 0, joystick_devices[id].name, -1, lpddi->tszProductName, MAX_PATH); lpddi->guidFFDriver = GUID_NULL; }
-static void fill_joystick_dideviceinstanceW(LPDIDEVICEINSTANCEW lpddi, DWORD version, int id) +static void fill_joystick_dideviceinstanceA(LPDIDEVICEINSTANCEA lpddi, DWORD version, int id) { + DIDEVICEINSTANCEW lpddiW; DWORD dwSize = lpddi->dwSize;
+ lpddiW.dwSize = sizeof(lpddiW); + fill_joystick_dideviceinstanceW(&lpddiW, version, id); + TRACE("%d %p\n", dwSize, lpddi); memset(lpddi, 0, dwSize);
- /* Return joystick */ + /* Convert W->A */ lpddi->dwSize = dwSize; - lpddi->guidInstance = DInput_Wine_Joystick_GUID; - lpddi->guidInstance.Data3 = id; - lpddi->guidProduct = joystick_devices[id].guid_product; - /* we only support traditional joysticks for now */ - if (version >= 0x0800) - lpddi->dwDevType = DI8DEVTYPE_JOYSTICK | (DI8DEVTYPEJOYSTICK_STANDARD << 8); - else - lpddi->dwDevType = DIDEVTYPE_JOYSTICK | (DIDEVTYPEJOYSTICK_TRADITIONAL << 8); - - MultiByteToWideChar(CP_ACP, 0, joystick_devices[id].name, -1, lpddi->tszInstanceName, MAX_PATH); - MultiByteToWideChar(CP_ACP, 0, joystick_devices[id].name, -1, lpddi->tszProductName, MAX_PATH); - lpddi->guidFFDriver = GUID_NULL; + lpddi->guidInstance = lpddiW.guidInstance; + lpddi->guidProduct = lpddiW.guidProduct; + lpddi->dwDevType = lpddiW.dwDevType; + strcpy(lpddi->tszInstanceName, joystick_devices[id].name); + strcpy(lpddi->tszProductName, joystick_devices[id].name); + lpddi->guidFFDriver = lpddiW.guidFFDriver; + lpddi->wUsagePage = lpddiW.wUsagePage; + lpddi->wUsage = lpddiW.wUsage; }
static HRESULT joydev_enum_deviceA(DWORD dwDevType, DWORD dwFlags, LPDIDEVICEINSTANCEA lpddi, DWORD version, int id)