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
Rob Shearman
fe75a8c616
dinput: Fix character count passed to GetKeyNameTextW in SysKeyboardWImpl_GetObjectInfo.
2008-02-25 13:31:34 +01:00
Vitaliy Margolen
8f28d4369e
dinput: Rename set_dinput_hook and call it from the base class.
...
Since keyboard's acquire and unacquire don't do anything special just call
the base class.
2007-07-09 14:31:38 +02:00
Vitaliy Margolen
deb74efc04
dinput: Handle multiple keyboard and mouse devices.
2007-07-09 14:27:25 +02:00
Vitaliy Margolen
6d6e4f4ea2
dinput: Export Mouse and Keyboard GUIDs.
2007-07-09 14:25:47 +02:00
Vitaliy Margolen
b9e8284a7d
dinput: Move key state array into object.
2007-06-29 12:31:45 +02:00
Vitaliy Margolen
fb1082ae73
dinput: Combine all Release functionality into base class.
2007-06-28 12:16:11 +02:00
Vitaliy Margolen
d2966c2dfb
dinput: Move parent dinput reference into base class.
2007-06-28 12:16:11 +02:00
Vitaliy Margolen
6a8bf96d73
dinput: Make sure to unacquire device before freeing it.
2007-06-04 13:10:04 +02:00
Dmitry Timoshkov
3c9e7a7f33
wine: Switch to using 'long' for INT_PTR type for 64-bit compatibility.
2007-05-25 20:37:56 +02:00
Jan Zerebecki
52a630a3a8
dinput: Add DebugInfo to critical sections.
2007-03-08 22:21:43 +01:00
Andrew Talbot
e744c3a5b1
dinput: Constify some variables.
2007-02-13 12:08:26 +01:00
Vitaliy Margolen
dbd2112eee
dinput: Internal data format is not const anymore.
2007-01-11 11:49:12 +01:00
Vitaliy Margolen
af71538d33
dinput: Remove duplicate Keyboard->Poll it is the same as base class.
2007-01-10 12:23:18 +01:00
Vitaliy Margolen
4b33fd691a
dinput: Set event from queue_event, simplifying code a bit.
2007-01-08 21:13:40 +01:00
Vitaliy Margolen
8e8b4f03b0
dinput: Use proper offset when queuing keyboard events.
2007-01-08 21:13:35 +01:00
Vitaliy Margolen
b223b021a5
dinput: Fix memory leak.
2007-01-06 11:40:46 +01:00
Vitaliy Margolen
20ba784aac
dinput: Move keyboard to using new GetObjectInfo.
2007-01-04 09:57:11 +01:00
Andrew Talbot
e946ce6b38
dinput: Declare some functions static.
2007-01-04 09:53:58 +01:00
Vitaliy Margolen
263d5ce171
dinput: Move keyboard to using new EnumObjects from base class.
2006-12-29 20:54:38 +01:00
Vitaliy Margolen
b22ff8018a
dinput: Remove MsgWaitForMultipleObjects calls.
2006-12-28 12:22:29 +01:00
Vitaliy Margolen
ce5fb9bb29
dinput: AddRef and Release parent DirectInput class.
2006-12-24 13:07:15 +01:00
Vitaliy Margolen
1db55d2511
dinput: Don't return non existent keys.
2006-12-18 12:00:41 +01:00
Vitaliy Margolen
6246fa62f9
dinput: Remove redundant parameter.
2006-12-12 20:24:10 +01:00
Vitaliy Margolen
d5b57f3904
dinput: Move mouse & keyboard user data format to base class.
2006-12-12 20:23:57 +01:00
Vitaliy Margolen
564ad7da8c
dinput: Move keyboard event queue into base device class.
...
This removes [Get|Set]Property and GetDeviceData.
2006-12-05 11:32:38 +01:00
Vitaliy Margolen
429c8ac948
dinput: Implement Poll for keyboard.
2006-12-04 12:34:08 +01:00
Vitaliy Margolen
0da0486cc3
dinput: Move critical section to the base device class.
2006-12-04 12:33:47 +01:00
Vitaliy Margolen
f7eacd64d1
dinput: Move acquired flag to the base device class. Add tests.
2006-12-04 12:33:35 +01:00
Vitaliy Margolen
af34ef12ba
dinput: Move SetEventNotification and associated event into base class.
2006-10-17 12:36:00 +02:00
Vitaliy Margolen
7d838d9e6f
dinput: Use dinput device as a base class for keyboard, mouse and joystick.
2006-10-17 12:35:39 +02:00
Vitaliy Margolen
7123f3e80e
dinput: Win64 printf format warning fixes.
2006-10-09 12:53:41 +02:00
Vitaliy Margolen
6bd7451ece
dinput: Keyboard: Use the same event queue mechanism as mouse.
2006-07-28 12:32:08 +02:00
Vitaliy Margolen
83bda8e6d4
dinput: Unacquire correct device.
2006-07-17 13:51:31 +02:00
Vitaliy Margolen
13ce1a4543
dinput: Ignore repeated key events.
2006-07-17 13:51:20 +02:00
Jonathan Ernst
360a3f9142
Update the address of the Free Software Foundation.
2006-05-23 14:11:13 +02:00
Vitaliy Margolen
bc1440699c
dinput: Keyboard should be acquired before calling GetDeviceState.
2006-04-03 11:39:28 +02:00
Vitaliy Margolen
e66e34ef7b
dinput: Create single thread for mouse and keyboard hook.
...
Put keyboard & mouse hook callbacks into separate thread.
Move few global variables into object. Delete no longer used crit section.
For hooks to work properly hook callback have to be in a thread
with message loop. Some games create separate threads just to handle
mouse and/or keyboard events that do not have message loop.
2006-03-21 11:27:49 +01:00
Alexandre Julliard
f8ee161a1b
Fixed some traces to use the right printf format and avoid typecasts.
2005-09-12 10:30:05 +00:00
Alexandre Julliard
20a1a203c6
Use a more portable scheme for storing the name of a critical
...
section.
2005-09-09 10:19:44 +00:00
Mike McCormack
50a6d970f5
gcc 4.0 warning fixes for Interlocked* functions.
2005-08-03 11:03:05 +00:00
Dmitry Timoshkov
247246ede7
Make more of the OLE interface vtables const.
2005-05-30 10:01:08 +00:00
Robert Reif
6dd763e03b
Pass around real version and do correct thing based on it.
...
Change cooperative level to pass on windows.
2005-05-16 08:44:14 +00:00
Raphael Junqueira
97d848aa19
- use WINE_DINPUT_KEYBOARD_MAX_KEYS instead hard-coded 256 value
...
- better use of critical section
- some cleanup to better understand code paths
- logic correction on SetWindowsHookExA/UnhookWindowsHookEx on
keyboard.
2005-03-24 15:08:27 +00:00
Alexandre Julliard
6451e221f3
Build a static list of devices instead of relying on ELF
...
constructors.
2005-03-15 19:36:15 +00:00
Alexandre Julliard
7b738b7f8c
Make sure to always pass valid QS_* flags to
...
MsgWaitForMultipleObjects.
2005-03-08 17:00:38 +00:00
Christian Costa
9a99dc14eb
Implemented GetProperty method for keyboard device.
2005-02-15 15:03:03 +00:00
Michael Stefaniuc
5ad7d858e0
Do not check for non NULL pointer before HeapFree'ing it. It's
...
redundant.
2004-12-23 17:06:43 +00:00
Christian Costa
6a8ae41c9d
Handle device class in DX8 enumeration (found by Robert Reif).
...
Fixed remaining DX8 device types.
Factorized a bit GetCapabilities for keyboard and mouse.
2004-12-13 13:17:03 +00:00
Torbjörn Andersson
09a2eab38d
Fixed size check in GetDeviceData.
2004-10-28 21:01:44 +00:00
Robert Reif
9a75ae0a2f
Add dx3 capabilities.
2004-09-21 20:04:37 +00:00