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>
oldstable
Bruno Jesus 2016-08-16 22:24:03 -03:00 committed by Alexandre Julliard
parent 7439f7948c
commit cfd3076c31
1 changed files with 23 additions and 23 deletions

View File

@ -281,29 +281,6 @@ static INT find_joystick_devices(void)
return joystick_devices_count;
}
static void fill_joystick_dideviceinstanceA(LPDIDEVICEINSTANCEA lpddi, DWORD version, int id)
{
DWORD dwSize = lpddi->dwSize;
TRACE("%d %p\n", dwSize, lpddi);
memset(lpddi, 0, dwSize);
/* Return joystick */
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);
strcpy(lpddi->tszInstanceName, joystick_devices[id].name);
strcpy(lpddi->tszProductName, joystick_devices[id].name);
lpddi->guidFFDriver = GUID_NULL;
}
static void fill_joystick_dideviceinstanceW(LPDIDEVICEINSTANCEW lpddi, DWORD version, int id)
{
DWORD dwSize = lpddi->dwSize;
@ -327,6 +304,29 @@ static void fill_joystick_dideviceinstanceW(LPDIDEVICEINSTANCEW lpddi, DWORD ver
lpddi->guidFFDriver = GUID_NULL;
}
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);
/* Convert W->A */
lpddi->dwSize = dwSize;
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)
{
int fd = -1;