Commit Graph

108 Commits

Author SHA1 Message Date
Rémi Bernon 306c40e673 dinput: Use dedicated list for mouse and keyboard.
Instead of using function pointer, which is also not very CPU friendly.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-09 21:23:33 +02:00
Rémi Bernon 26c1131201 dinput: Use a single list for all acquired devices.
Instead of going through devices list of dinputs list, and checking
their acquired field, which is not CPU friendly.

This also removes the now unused IDirectInputImpl critical section and
devices list.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-09 21:23:33 +02:00
Brendan Shanks f65cfbfe9b dinput: Fix DInput8 keyboard behavior for injected events with scancode=0.
Grand Theft Auto IV injects VK_F8 and scancode=0, and expects DirectInput not
to report that F8 is pressed.

Signed-off-by: Brendan Shanks <bshanks@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-21 22:54:26 +02:00
Alistair Leslie-Hughes f10f98cfa2 dinput: Keyboard device doesn't support property DIPROP_VIDPID.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-11 12:48:08 +01:00
Alistair Leslie-Hughes ab5d9e43cb dinput: Support DIDEVICEINSTANCE_DX3 for keyboard GetDeviceInfo.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-21 18:08:37 +02:00
Alistair Leslie-Hughes 52deca4900 dinput: Trace This pointer in a consistent way.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-09 11:39:52 -05:00
Alistair Leslie-Hughes b3c5062f36 dinput: Don't report SysMouse/Keyboard devices as supporting Force Feedback.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-26 21:05:08 +02:00
Brendan McGrath 3a2834b3a4 dinput: Use the same GUID for Instance and Product.
Signed-off-by: Brendan McGrath <brendan@redmandi.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-31 17:22:36 +01:00
Michael Stefaniuc 6710a0485d dinput: Use the ARRAY_SIZE() macro.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-15 13:56:16 +02:00
Akihiro Sagawa 966b3b20de dinput: Correct key name mappings on Japanese 106 keyboard.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-17 16:51:03 +02:00
Akihiro Sagawa 6be7d14fb9 dinput: Fix DIK code mappings on Japanese 106 keyboard.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45475
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-17 16:51:03 +02:00
Akihiro Sagawa 8001dda117 dinput: Return DIDEVTYPEKEYBOARD_JAPAN106 subtype when it is used.
For the further improvments, subtype is a member of SysKeyboardImpl structure.

Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-17 16:51:03 +02:00
Dmitry Timoshkov 210cefd23d dinput/tests: Add some tests for DIK_ codes using different keyboard layouts.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-17 17:03:13 +02:00
Dmitry Timoshkov d341b0a86b dinput: The DIK_ key code should match the scan code.
This reverts commit 304ff3c728.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-17 17:03:13 +02:00
Sebastian Lackner bfb845f9fc dinput: Ensure X11 input events are forwarded to wineserver even without message loop.
This commit basically reverts b22ff8018a.

Windows does not do that, but our current implementation of winex11
requires periodic event polling to forward events to the wineserver.

Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Michael Müller <michael@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-06 01:13:58 +09:00
Sebastian Lackner 0d91274def dinput: Reset device state in SysKeyboard*Impl_Acquire. 2015-05-18 19:59:28 +09:00
Austin English bfafb1ffc5 dinput: Consistently use GetCurrentTime(). 2013-12-11 16:26:01 +01:00
Andrew Eikum 0ba314ebfa dinput: Enumerate devices past the first non-matching device. 2013-05-21 12:08:01 +02:00
Marcus Meissner 8990cf091d dinput: GetKeyNameW takes chars not bytes (Coverity). 2013-05-13 11:07:24 +02:00
Lucas Zawacki ac9a10f815 dinput: Return a valid keyboard type in keyboard GetCapabilities. 2012-08-20 14:59:45 +02:00
Vitaliy Margolen 5bb094c9a2 dinput: Return correct key names for num_lock and pause.
Scan codes and DIK codes for num_lock and pause are reversed.
2011-11-09 11:54:25 +01:00
Vitaliy Margolen 35016b0513 dinput: Report mouse and keyboard as being emulated. This works better for some games. 2011-10-31 16:46:21 +01:00
Lucas Fialho Zawacki 64c1f4778c dinput: Proper conversion of username parameters for Set and BuildActionMap. 2011-08-24 11:51:51 +02:00
Lucas Fialho Zawacki d175c1526f dinput: Common implementation for joystick, keyboard and mouse SetActionMap. 2011-08-24 11:51:42 +02:00
Lucas Fialho Zawacki c0fd222321 dinput: Common implementation of BuildActionMap for keyboard and mouse. 2011-08-24 11:51:39 +02:00
Lucas Fialho Zawacki 39684c7e3a dinput: SetActionMap and queue_event setting mapped data. 2011-07-04 20:25:00 +02:00
Lucas Fialho Zawacki b590090a48 dinput: SetActionMap constructing a dataformat for keyboard and mouse. 2011-07-04 20:24:48 +02:00
Lucas Fialho Zawacki 83aded2754 dinput: Keyboard and mouse implementation of BuildActionMap. 2011-07-04 20:24:10 +02:00
Vitaliy Margolen eb6cec1656 dinput: Keyboard does not support DIPROP_RANGE property. 2011-05-31 11:12:35 +02:00
Vitaliy Margolen 0ac5c60374 dinput: Combine ASCII and Unicode device create callbacks. Add tests. 2011-01-24 14:43:09 +01:00
Vitaliy Margolen 9441d898f7 dinput: Make newly created device append itself to Direct Input's list. 2011-01-19 12:58:01 +01:00
Vitaliy Margolen 6b30480021 dinput: COM cleanup - use interfaces instead of vtbl. Combine both Unicode and ASCII interfaces into the same classes. 2011-01-10 12:41:20 +01:00
Vitaliy Margolen 9f9e376239 dinput: Explicitly define ASCII and Unicode methods in keyboard. 2011-01-10 11:03:34 +01:00
Vitaliy Margolen 0f24b9e86f dinput: Explicitly define ASCII and Unicode methods in DirectInputDevice base class. Make ASCII methods call Unicode. Use new methods in child classes. 2011-01-10 11:03:17 +01:00
Vitaliy Margolen 31c828ea27 dinput: COM cleanup - use helper function instead of direct typecast in keyboard. 2011-01-10 11:01:46 +01:00
Vitaliy Margolen 0b99bf3edb dinput: COM cleanup - use proper interface instead of typecasting This when calling queue_event. 2011-01-10 10:58:26 +01:00
Vitaliy Margolen 15216098e0 dinput: COM cleanup - use proper DirectInput interface with IUknown calls. 2011-01-10 10:58:14 +01:00
Vitaliy Margolen 179b862738 dinput: Rename IDirectInputDevice2AImpl into IDirectInputDeviceImpl. 2011-01-03 16:46:41 +01:00
Michael Stefaniuc 2004db1bb1 dinput: Don't use HIWORD to check if a REFGUID is a DIPROP. 2010-02-02 11:47:20 +01:00
Vitaliy Margolen 2665272d6c dinput: Pass event instance ID to queue_event instead of offset. 2009-11-30 12:49:11 +01:00
Vitaliy Margolen 8dac79d38b dinput: Add few special cases for key mappings. 2009-03-03 12:35:14 +01:00
Vitaliy Margolen 74f2eccc90 dinput: Let each device decide which hook event to skip.
Some programs acquire mouse in exclusive and keyboard in non-exclusive mode.
2009-02-23 12:19:25 +01:00
Alexandre Julliard fffcd23cce dinput: Fix pointer cast warnings on 64-bit. 2009-01-05 12:39:44 +01:00
Michael Stefaniuc bb2d8577c3 dinput: Remove superfluous backslashes at end of lines. 2008-10-16 11:28:53 +02:00
Vitaliy Margolen d939367ac8 dinput: Implement DIPROP_KEYNAME property for keyboard device.
Based on patch from Sergey Khodych.
2008-09-15 13:23:13 +02:00
Aric Stewart 304ff3c728 dinput: The DIK_ keycode is not the same as the scancode.
It is mapped with the keyboard mapping to the resulting character so
the key 'A' is DIK_A nomatter what its scancode or vkey would be. This
is relevant to Japanese keymapping where the '@' key is in the '['
location the scancode for both is 0x22 but dinput generates DIK_AT in
japanese and DIK_LBRACKET in us_qwerty.
2008-08-20 13:58:25 +02:00
Vitaliy Margolen aa0188cd6f dinput: Zero the out buffer. 2008-07-28 12:16:34 +02:00
Vitaliy Margolen e850b4f13d dinput: Convert keyboard buffer from internal data format to user data format. 2008-05-28 19:31:59 +02:00
Vitaliy Margolen 4a2f7497ab dinput: Explicitly set extended key flag for Right Shift. 2008-04-28 13:27:51 +02:00
Austin English 06d429d6b6 Spelling fixes. 2008-03-27 20:48:19 +01:00