dinput8: Use scan codes to test uAppData.
Virtual key codes are layout dependant while direct input works with scan codes. Using virtual key code for 'A' with AZERTY layout resulted in scan code for 'Q' being sent out, which in turn made the tests fail. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50987 Signed-off-by: Arkadiusz Hiler <ahiler@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
06fa39cd76
commit
6b777d0b20
|
@ -91,7 +91,7 @@ static void test_device_input(IDirectInputDevice8A *lpdid, DWORD event_type, DWO
|
|||
ok (SUCCEEDED(hr), "Failed to acquire device hr=%08x\n", hr);
|
||||
|
||||
if (event_type == INPUT_KEYBOARD)
|
||||
keybd_event(event, MapVirtualKeyA(event, MAPVK_VK_TO_VSC), 0, 0);
|
||||
keybd_event(0, event, KEYEVENTF_SCANCODE, 0);
|
||||
|
||||
if (event_type == INPUT_MOUSE)
|
||||
mouse_event( event, 0, 0, 0, 0);
|
||||
|
@ -307,7 +307,7 @@ static void test_appdata_property_vs_map(struct enum_data *data)
|
|||
hr = IDirectInputDevice8_SetProperty(data->keyboard, DIPROP_APPDATA, &(dp.diph));
|
||||
ok(SUCCEEDED(hr), "IDirectInputDevice8_SetProperty failed hr=%08x\n", hr);
|
||||
|
||||
test_device_input(data->keyboard, INPUT_KEYBOARD, VK_SPACE, 10);
|
||||
test_device_input(data->keyboard, INPUT_KEYBOARD, DIK_SPACE, 10);
|
||||
|
||||
dp.diph.dwHow = DIPH_BYID;
|
||||
dp.diph.dwObj = DIDFT_MAKEINSTANCE(DIK_V) | DIDFT_PSHBUTTON;
|
||||
|
@ -319,7 +319,7 @@ static void test_appdata_property_vs_map(struct enum_data *data)
|
|||
hr = IDirectInputDevice8_SetDataFormat(data->keyboard, &c_dfDIKeyboard);
|
||||
ok(SUCCEEDED(hr), "SetDataFormat failed: %08x\n", hr);
|
||||
|
||||
test_device_input(data->keyboard, INPUT_KEYBOARD, VK_SPACE, -1);
|
||||
test_device_input(data->keyboard, INPUT_KEYBOARD, DIK_SPACE, -1);
|
||||
|
||||
dp.diph.dwHow = DIPH_BYID;
|
||||
dp.diph.dwObj = DIDFT_MAKEINSTANCE(DIK_V) | DIDFT_PSHBUTTON;
|
||||
|
@ -327,13 +327,13 @@ static void test_appdata_property_vs_map(struct enum_data *data)
|
|||
hr = IDirectInputDevice8_SetProperty(data->keyboard, DIPROP_APPDATA, &(dp.diph));
|
||||
ok(SUCCEEDED(hr), "IDirectInputDevice8_SetProperty failed hr=%08x\n", hr);
|
||||
|
||||
test_device_input(data->keyboard, INPUT_KEYBOARD, 'V', 11);
|
||||
test_device_input(data->keyboard, INPUT_KEYBOARD, DIK_V, 11);
|
||||
|
||||
/* back to action map */
|
||||
hr = IDirectInputDevice8_SetActionMap(data->keyboard, data->lpdiaf, NULL, 0);
|
||||
ok(SUCCEEDED(hr), "SetActionMap failed hr=%08x\n", hr);
|
||||
|
||||
test_device_input(data->keyboard, INPUT_KEYBOARD, VK_SPACE, 2);
|
||||
test_device_input(data->keyboard, INPUT_KEYBOARD, DIK_SPACE, 2);
|
||||
}
|
||||
|
||||
static void test_action_mapping(void)
|
||||
|
@ -402,19 +402,19 @@ static void test_action_mapping(void)
|
|||
/* Test keyboard BuildActionMap */
|
||||
test_build_action_map(data.keyboard, data.lpdiaf, DITEST_KEYBOARDSPACE, DIDFT_PSHBUTTON, DIK_SPACE);
|
||||
/* Test keyboard input */
|
||||
test_device_input(data.keyboard, INPUT_KEYBOARD, VK_SPACE, 2);
|
||||
test_device_input(data.keyboard, INPUT_KEYBOARD, DIK_SPACE, 2);
|
||||
|
||||
/* setting format should reset action map */
|
||||
hr = IDirectInputDevice8_SetDataFormat(data.keyboard, &c_dfDIKeyboard);
|
||||
ok (SUCCEEDED(hr), "IDirectInputDevice8_SetDataFormat failed: %08x\n", hr);
|
||||
|
||||
test_device_input(data.keyboard, INPUT_KEYBOARD, VK_SPACE, -1);
|
||||
test_device_input(data.keyboard, INPUT_KEYBOARD, DIK_SPACE, -1);
|
||||
|
||||
/* back to action map */
|
||||
hr = IDirectInputDevice8_SetActionMap(data.keyboard, data.lpdiaf, NULL, 0);
|
||||
ok (SUCCEEDED(hr), "SetActionMap should succeed hr=%08x\n", hr);
|
||||
|
||||
test_device_input(data.keyboard, INPUT_KEYBOARD, VK_SPACE, 2);
|
||||
test_device_input(data.keyboard, INPUT_KEYBOARD, DIK_SPACE, 2);
|
||||
|
||||
test_appdata_property_vs_map(&data);
|
||||
|
||||
|
@ -958,7 +958,7 @@ static void test_appdata_property(void)
|
|||
ok(SUCCEEDED(hr), "IDirectInputDevice8_SetProperty failed hr=%08x\n", hr);
|
||||
|
||||
/* the default value */
|
||||
test_device_input(di_keyboard, INPUT_KEYBOARD, 'A', -1);
|
||||
test_device_input(di_keyboard, INPUT_KEYBOARD, DIK_A, -1);
|
||||
|
||||
dp.diph.dwHow = DIPH_DEVICE;
|
||||
dp.diph.dwObj = 0;
|
||||
|
@ -992,19 +992,19 @@ static void test_appdata_property(void)
|
|||
hr = IDirectInputDevice8_SetProperty(di_keyboard, DIPROP_APPDATA, &(dp.diph));
|
||||
ok(SUCCEEDED(hr), "IDirectInputDevice8_SetProperty failed hr=%08x\n", hr);
|
||||
|
||||
test_device_input(di_keyboard, INPUT_KEYBOARD, VK_SPACE, 3);
|
||||
test_device_input(di_keyboard, INPUT_KEYBOARD, 'A', 4);
|
||||
test_device_input(di_keyboard, INPUT_KEYBOARD, 'B', 5);
|
||||
test_device_input(di_keyboard, INPUT_KEYBOARD, 'C', -1);
|
||||
test_device_input(di_keyboard, INPUT_KEYBOARD, DIK_SPACE, 3);
|
||||
test_device_input(di_keyboard, INPUT_KEYBOARD, DIK_A, 4);
|
||||
test_device_input(di_keyboard, INPUT_KEYBOARD, DIK_B, 5);
|
||||
test_device_input(di_keyboard, INPUT_KEYBOARD, DIK_C, -1);
|
||||
|
||||
/* setting data format resets APPDATA */
|
||||
hr = IDirectInputDevice8_SetDataFormat(di_keyboard, &c_dfDIKeyboard);
|
||||
ok(SUCCEEDED(hr), "IDirectInputDevice8_SetDataFormat failed: %08x\n", hr);
|
||||
|
||||
test_device_input(di_keyboard, INPUT_KEYBOARD, VK_SPACE, -1);
|
||||
test_device_input(di_keyboard, INPUT_KEYBOARD, 'A', -1);
|
||||
test_device_input(di_keyboard, INPUT_KEYBOARD, 'B', -1);
|
||||
test_device_input(di_keyboard, INPUT_KEYBOARD, 'C', -1);
|
||||
test_device_input(di_keyboard, INPUT_KEYBOARD, DIK_A, -1);
|
||||
test_device_input(di_keyboard, INPUT_KEYBOARD, DIK_B, -1);
|
||||
test_device_input(di_keyboard, INPUT_KEYBOARD, DIK_C, -1);
|
||||
|
||||
DestroyWindow(hwnd);
|
||||
IDirectInputDevice_Release(di_keyboard);
|
||||
|
|
Loading…
Reference in New Issue