diff --git a/dlls/dinput/dinput_main.c b/dlls/dinput/dinput_main.c index 3d6d5732cfb..62e70e0535c 100644 --- a/dlls/dinput/dinput_main.c +++ b/dlls/dinput/dinput_main.c @@ -382,11 +382,11 @@ static HRESULT WINAPI IDirectInputWImpl_EnumDevices( return DIERR_NOTINITIALIZED; for (i = 0; i < ARRAY_SIZE(dinput_devices); i++) { - if (!dinput_devices[i]->enum_deviceW) continue; + if (!dinput_devices[i]->enum_device) continue; for (j = 0, r = S_OK; SUCCEEDED(r); j++) { devInstance.dwSize = sizeof(devInstance); TRACE(" - checking device %u ('%s')\n", i, dinput_devices[i]->name); - r = dinput_devices[i]->enum_deviceW(dwDevType, dwFlags, &devInstance, This->dwVersion, j); + r = dinput_devices[i]->enum_device(dwDevType, dwFlags, &devInstance, This->dwVersion, j); if (r == S_OK) if (enum_callback_wrapper(lpCallback, &devInstance, pvRef) == DIENUM_STOP) return S_OK; @@ -825,14 +825,14 @@ static HRESULT WINAPI IDirectInput8WImpl_EnumDevicesBySemantics( { HRESULT enumSuccess; - if (!dinput_devices[i]->enum_deviceW) continue; + if (!dinput_devices[i]->enum_device) continue; for (j = 0, enumSuccess = S_OK; SUCCEEDED(enumSuccess); j++) { TRACE(" - checking device %u ('%s')\n", i, dinput_devices[i]->name); /* Default behavior is to enumerate attached game controllers */ - enumSuccess = dinput_devices[i]->enum_deviceW(DI8DEVCLASS_GAMECTRL, DIEDFL_ATTACHEDONLY | dwFlags, &didevi, This->dwVersion, j); + enumSuccess = dinput_devices[i]->enum_device(DI8DEVCLASS_GAMECTRL, DIEDFL_ATTACHEDONLY | dwFlags, &didevi, This->dwVersion, j); if (enumSuccess == S_OK && should_enumerate_device(ptszUserName, dwFlags, &This->device_players, &didevi.guidInstance)) { @@ -998,13 +998,13 @@ static HRESULT WINAPI JoyConfig8Impl_GetConfig(IDirectInputJoyConfig8 *iface, UI /* Enumerate all joysticks in order */ for (i = 0; i < ARRAY_SIZE(dinput_devices); i++) { - if (!dinput_devices[i]->enum_deviceA) continue; + if (!dinput_devices[i]->enum_device) continue; for (j = 0, r = S_OK; SUCCEEDED(r); j++) { - DIDEVICEINSTANCEA dev; + DIDEVICEINSTANCEW dev; dev.dwSize = sizeof(dev); - if ((r = dinput_devices[i]->enum_deviceA(DI8DEVCLASS_GAMECTRL, 0, &dev, di->dwVersion, j)) == S_OK) + if ((r = dinput_devices[i]->enum_device(DI8DEVCLASS_GAMECTRL, 0, &dev, di->dwVersion, j)) == S_OK) { /* Only take into account the chosen id */ if (found == id) diff --git a/dlls/dinput/dinput_private.h b/dlls/dinput/dinput_private.h index 404eaad1d52..7e0f56c68df 100644 --- a/dlls/dinput/dinput_private.h +++ b/dlls/dinput/dinput_private.h @@ -55,8 +55,7 @@ extern const IDirectInput8AVtbl dinput8_a_vtbl DECLSPEC_HIDDEN; /* Function called by all devices that Wine supports */ struct dinput_device { const char *name; - HRESULT (*enum_deviceA)(DWORD dwDevType, DWORD dwFlags, LPDIDEVICEINSTANCEA lpddi, DWORD version, int id); - HRESULT (*enum_deviceW)(DWORD dwDevType, DWORD dwFlags, LPDIDEVICEINSTANCEW lpddi, DWORD version, int id); + HRESULT (*enum_device)(DWORD dwDevType, DWORD dwFlags, LPDIDEVICEINSTANCEW lpddi, DWORD version, int id); HRESULT (*create_device)(IDirectInputImpl *dinput, REFGUID rguid, IDirectInputDevice8W **out); }; diff --git a/dlls/dinput/joystick_linux.c b/dlls/dinput/joystick_linux.c index 32e355c47e8..5a88e643e07 100644 --- a/dlls/dinput/joystick_linux.c +++ b/dlls/dinput/joystick_linux.c @@ -369,59 +369,7 @@ 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; - - if (id >= find_joystick_devices()) return E_FAIL; - - if (dwFlags & DIEDFL_FORCEFEEDBACK) { - WARN("force feedback not supported\n"); - return S_FALSE; - } - - if ((dwDevType == 0) || - ((dwDevType == DIDEVTYPE_JOYSTICK) && (version >= 0x0300 && version < 0x0800)) || - (((dwDevType == DI8DEVCLASS_GAMECTRL) || (dwDevType == DI8DEVTYPE_JOYSTICK)) && (version >= 0x0800))) { - /* check whether we have a joystick */ - if ((fd = open(joystick_devices[id].device, O_RDONLY)) == -1) - { - WARN("open(%s, O_RDONLY) failed: %s\n", joystick_devices[id].device, strerror(errno)); - return S_FALSE; - } - fill_joystick_dideviceinstanceA( lpddi, version, id ); - close(fd); - TRACE("Enumerating the linux Joystick device: %s (%s)\n", joystick_devices[id].device, joystick_devices[id].name); - return S_OK; - } - - return S_FALSE; -} - -static HRESULT joydev_enum_deviceW(DWORD dwDevType, DWORD dwFlags, LPDIDEVICEINSTANCEW lpddi, DWORD version, int id) +static HRESULT joydev_enum_device(DWORD dwDevType, DWORD dwFlags, LPDIDEVICEINSTANCEW lpddi, DWORD version, int id) { int fd = -1; @@ -616,8 +564,7 @@ static HRESULT joydev_create_device( IDirectInputImpl *dinput, REFGUID rguid, ID const struct dinput_device joystick_linux_device = { "Wine Linux joystick driver", - joydev_enum_deviceA, - joydev_enum_deviceW, + joydev_enum_device, joydev_create_device }; @@ -877,7 +824,6 @@ const struct dinput_device joystick_linux_device = { "Wine Linux joystick driver", NULL, NULL, - NULL }; #endif /* HAVE_LINUX_22_JOYSTICK_API */ diff --git a/dlls/dinput/joystick_linuxinput.c b/dlls/dinput/joystick_linuxinput.c index 0b7a4e63c8f..488e9c04759 100644 --- a/dlls/dinput/joystick_linuxinput.c +++ b/dlls/dinput/joystick_linuxinput.c @@ -371,55 +371,7 @@ static void fill_joystick_dideviceinstanceW(LPDIDEVICEINSTANCEW lpddi, DWORD ver MultiByteToWideChar(CP_ACP, 0, joydevs[id].name, -1, lpddi->tszProductName, MAX_PATH); } -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; - lstrcpynA(lpddi->tszInstanceName, joydevs[id].name, MAX_PATH); - lstrcpynA(lpddi->tszProductName, joydevs[id].name, MAX_PATH); - 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) -{ - find_joydevs(); - - if (id >= have_joydevs) { - return E_FAIL; - } - - if (!((dwDevType == 0) || - ((dwDevType == DIDEVTYPE_JOYSTICK) && (version >= 0x0300 && version < 0x0800)) || - (((dwDevType == DI8DEVCLASS_GAMECTRL) || (dwDevType == DI8DEVTYPE_JOYSTICK)) && (version >= 0x0800)))) - return S_FALSE; - -#ifndef HAVE_STRUCT_FF_EFFECT_DIRECTION - if (dwFlags & DIEDFL_FORCEFEEDBACK) - return S_FALSE; -#endif - - if (!(dwFlags & DIEDFL_FORCEFEEDBACK) || joydevs[id].has_ff) { - fill_joystick_dideviceinstanceA(lpddi, version, id); - return S_OK; - } - return S_FALSE; -} - -static HRESULT joydev_enum_deviceW(DWORD dwDevType, DWORD dwFlags, LPDIDEVICEINSTANCEW lpddi, DWORD version, int id) +static HRESULT joydev_enum_device(DWORD dwDevType, DWORD dwFlags, LPDIDEVICEINSTANCEW lpddi, DWORD version, int id) { find_joydevs(); @@ -640,8 +592,7 @@ static HRESULT joydev_create_device( IDirectInputImpl *dinput, REFGUID rguid, ID const struct dinput_device joystick_linuxinput_device = { "Wine Linux-input joystick driver", - joydev_enum_deviceA, - joydev_enum_deviceW, + joydev_enum_device, joydev_create_device }; @@ -1318,7 +1269,6 @@ const struct dinput_device joystick_linuxinput_device = { "Wine Linux-input joystick driver", NULL, NULL, - NULL }; #endif /* HAS_PROPER_HEADER */ diff --git a/dlls/dinput/joystick_osx.c b/dlls/dinput/joystick_osx.c index 38a708d4cae..6d37a476380 100644 --- a/dlls/dinput/joystick_osx.c +++ b/dlls/dinput/joystick_osx.c @@ -984,53 +984,7 @@ static DWORD make_vid_pid(IOHIDDeviceRef device) return MAKELONG(vendID, prodID); } -static HRESULT joydev_enum_deviceA(DWORD dwDevType, DWORD dwFlags, LPDIDEVICEINSTANCEA lpddi, DWORD version, int id) -{ - IOHIDDeviceRef device; - BOOL is_joystick; - - TRACE("dwDevType %u dwFlags 0x%08x version 0x%04x id %d\n", dwDevType, dwFlags, version, id); - - if (id >= find_joystick_devices()) return E_FAIL; - - device = get_device_ref(id); - - if ((dwDevType == 0) || - ((dwDevType == DIDEVTYPE_JOYSTICK) && (version >= 0x0300 && version < 0x0800)) || - (((dwDevType == DI8DEVCLASS_GAMECTRL) || (dwDevType == DI8DEVTYPE_JOYSTICK)) && (version >= 0x0800))) - { - if (dwFlags & DIEDFL_FORCEFEEDBACK) { - if(!device) - return S_FALSE; - if(get_ff(device, NULL) != S_OK) - return S_FALSE; - } - is_joystick = get_device_property_long(device, CFSTR(kIOHIDDeviceUsageKey)) == kHIDUsage_GD_Joystick; - /* Return joystick */ - lpddi->guidInstance = DInput_Wine_OsX_Joystick_GUID; - lpddi->guidInstance.Data3 = id; - lpddi->guidProduct = DInput_PIDVID_Product_GUID; - lpddi->guidProduct.Data1 = make_vid_pid(device); - lpddi->dwDevType = get_device_type(version, is_joystick); - lpddi->dwDevType |= DIDEVTYPE_HID; - lpddi->wUsagePage = 0x01; /* Desktop */ - if (is_joystick) - lpddi->wUsage = 0x04; /* Joystick */ - else - lpddi->wUsage = 0x05; /* Game Pad */ - sprintf(lpddi->tszInstanceName, "Joystick %d", id); - - /* get the device name */ - get_osx_device_name(id, lpddi->tszProductName, MAX_PATH); - - lpddi->guidFFDriver = GUID_NULL; - return S_OK; - } - - return S_FALSE; -} - -static HRESULT joydev_enum_deviceW(DWORD dwDevType, DWORD dwFlags, LPDIDEVICEINSTANCEW lpddi, DWORD version, int id) +static HRESULT joydev_enum_device(DWORD dwDevType, DWORD dwFlags, LPDIDEVICEINSTANCEW lpddi, DWORD version, int id) { char name[MAX_PATH]; char friendly[32]; @@ -1522,8 +1476,7 @@ static HRESULT WINAPI JoystickWImpl_SendForceFeedbackCommand(IDirectInputDevice8 const struct dinput_device joystick_osx_device = { "Wine OS X joystick driver", - joydev_enum_deviceA, - joydev_enum_deviceW, + joydev_enum_device, joydev_create_device }; @@ -1700,7 +1653,6 @@ const struct dinput_device joystick_osx_device = { "Wine OS X joystick driver", NULL, NULL, - NULL }; #endif /* HAVE_IOHIDMANAGERCREATE */ diff --git a/dlls/dinput/keyboard.c b/dlls/dinput/keyboard.c index 0e371e31b99..fc9dbdb2ed4 100644 --- a/dlls/dinput/keyboard.c +++ b/dlls/dinput/keyboard.c @@ -149,30 +149,6 @@ static DWORD get_keyboard_subtype(void) return dev_subtype; } -static void fill_keyboard_dideviceinstanceA(LPDIDEVICEINSTANCEA lpddi, DWORD version, DWORD subtype) { - DWORD dwSize; - DIDEVICEINSTANCEA ddi; - - dwSize = lpddi->dwSize; - - TRACE("%d %p\n", dwSize, lpddi); - - memset(lpddi, 0, dwSize); - memset(&ddi, 0, sizeof(ddi)); - - ddi.dwSize = dwSize; - ddi.guidInstance = GUID_SysKeyboard;/* DInput's GUID */ - ddi.guidProduct = GUID_SysKeyboard; - if (version >= 0x0800) - ddi.dwDevType = DI8DEVTYPE_KEYBOARD | (subtype << 8); - else - ddi.dwDevType = DIDEVTYPE_KEYBOARD | (subtype << 8); - strcpy(ddi.tszInstanceName, "Keyboard"); - strcpy(ddi.tszProductName, "Wine Keyboard"); - - memcpy(lpddi, &ddi, (dwSize < sizeof(ddi) ? dwSize : sizeof(ddi))); -} - static void fill_keyboard_dideviceinstanceW(LPDIDEVICEINSTANCEW lpddi, DWORD version, DWORD subtype) { DWORD dwSize; DIDEVICEINSTANCEW ddi; @@ -197,28 +173,7 @@ static void fill_keyboard_dideviceinstanceW(LPDIDEVICEINSTANCEW lpddi, DWORD ver memcpy(lpddi, &ddi, (dwSize < sizeof(ddi) ? dwSize : sizeof(ddi))); } -static HRESULT keyboarddev_enum_deviceA(DWORD dwDevType, DWORD dwFlags, LPDIDEVICEINSTANCEA lpddi, DWORD version, int id) -{ - if (id != 0) - return E_FAIL; - - if (dwFlags & DIEDFL_FORCEFEEDBACK) - return S_FALSE; - - if ((dwDevType == 0) || - ((dwDevType == DIDEVTYPE_KEYBOARD) && (version < 0x0800)) || - (((dwDevType == DI8DEVCLASS_KEYBOARD) || (dwDevType == DI8DEVTYPE_KEYBOARD)) && (version >= 0x0800))) { - TRACE("Enumerating the Keyboard device\n"); - - fill_keyboard_dideviceinstanceA(lpddi, version, get_keyboard_subtype()); - - return S_OK; - } - - return S_FALSE; -} - -static HRESULT keyboarddev_enum_deviceW(DWORD dwDevType, DWORD dwFlags, LPDIDEVICEINSTANCEW lpddi, DWORD version, int id) +static HRESULT keyboarddev_enum_device(DWORD dwDevType, DWORD dwFlags, LPDIDEVICEINSTANCEW lpddi, DWORD version, int id) { if (id != 0) return E_FAIL; @@ -306,8 +261,7 @@ static HRESULT keyboarddev_create_device( IDirectInputImpl *dinput, REFGUID rgui const struct dinput_device keyboard_device = { "Wine keyboard driver", - keyboarddev_enum_deviceA, - keyboarddev_enum_deviceW, + keyboarddev_enum_device, keyboarddev_create_device }; diff --git a/dlls/dinput/mouse.c b/dlls/dinput/mouse.c index 09cfe945a50..22e40a60285 100644 --- a/dlls/dinput/mouse.c +++ b/dlls/dinput/mouse.c @@ -93,30 +93,6 @@ static void _dump_mouse_state(const DIMOUSESTATE2 *m_state) TRACE(")\n"); } -static void fill_mouse_dideviceinstanceA(LPDIDEVICEINSTANCEA lpddi, DWORD version) { - DWORD dwSize; - DIDEVICEINSTANCEA ddi; - - dwSize = lpddi->dwSize; - - TRACE("%d %p\n", dwSize, lpddi); - - memset(lpddi, 0, dwSize); - memset(&ddi, 0, sizeof(ddi)); - - ddi.dwSize = dwSize; - ddi.guidInstance = GUID_SysMouse;/* DInput's GUID */ - ddi.guidProduct = GUID_SysMouse; - if (version >= 0x0800) - ddi.dwDevType = DI8DEVTYPE_MOUSE | (DI8DEVTYPEMOUSE_TRADITIONAL << 8); - else - ddi.dwDevType = DIDEVTYPE_MOUSE | (DIDEVTYPEMOUSE_TRADITIONAL << 8); - strcpy(ddi.tszInstanceName, "Mouse"); - strcpy(ddi.tszProductName, "Wine Mouse"); - - memcpy(lpddi, &ddi, (dwSize < sizeof(ddi) ? dwSize : sizeof(ddi))); -} - static void fill_mouse_dideviceinstanceW(LPDIDEVICEINSTANCEW lpddi, DWORD version) { DWORD dwSize; DIDEVICEINSTANCEW ddi; @@ -141,28 +117,7 @@ static void fill_mouse_dideviceinstanceW(LPDIDEVICEINSTANCEW lpddi, DWORD versio memcpy(lpddi, &ddi, (dwSize < sizeof(ddi) ? dwSize : sizeof(ddi))); } -static HRESULT mousedev_enum_deviceA(DWORD dwDevType, DWORD dwFlags, LPDIDEVICEINSTANCEA lpddi, DWORD version, int id) -{ - if (id != 0) - return E_FAIL; - - if (dwFlags & DIEDFL_FORCEFEEDBACK) - return S_FALSE; - - if ((dwDevType == 0) || - ((dwDevType == DIDEVTYPE_MOUSE) && (version < 0x0800)) || - (((dwDevType == DI8DEVCLASS_POINTER) || (dwDevType == DI8DEVTYPE_MOUSE)) && (version >= 0x0800))) { - TRACE("Enumerating the mouse device\n"); - - fill_mouse_dideviceinstanceA(lpddi, version); - - return S_OK; - } - - return S_FALSE; -} - -static HRESULT mousedev_enum_deviceW(DWORD dwDevType, DWORD dwFlags, LPDIDEVICEINSTANCEW lpddi, DWORD version, int id) +static HRESULT mousedev_enum_device(DWORD dwDevType, DWORD dwFlags, LPDIDEVICEINSTANCEW lpddi, DWORD version, int id) { if (id != 0) return E_FAIL; @@ -263,8 +218,7 @@ static HRESULT mousedev_create_device( IDirectInputImpl *dinput, REFGUID rguid, const struct dinput_device mouse_device = { "Wine mouse driver", - mousedev_enum_deviceA, - mousedev_enum_deviceW, + mousedev_enum_device, mousedev_create_device };