Commit Graph

79 Commits

Author SHA1 Message Date
Henrik Rydgård 1f43b1cf23 Split the Hid code up in a few files to make it more practical to work on 2026-02-03 00:30:19 +01:00
Henrik Rydgård d6ebfed432 Fix some bugs and warnings from a pass of static analysis 2026-01-29 17:41:54 +01:00
Henrik Rydgård 9c582e4d45 Release all buttons and axes on DInput device disconnection 2026-01-25 16:26:16 +01:00
Henrik Rydgård 7d4cfdaf91 KeyMap: Add NotifyPadDisconnected, minor cleanup 2026-01-25 15:36:15 +01:00
Henrik Rydgård 062bc0dcd4 Merge pull request #21078 from hrydgard/ui-fixes
More UI fixes, code cleanup
2025-12-19 23:27:57 +01:00
Henrik Rydgård 18a67b82d2 Do the same with KeyInputFlags. Fix minor UI misalignments 2025-12-19 13:41:58 +01:00
oltolm ef49aac0e1 use ComPtr in DinputDevice 2025-11-14 21:24:09 +01:00
Henrik Rydgård 6b0e9b0989 Implement initial native DualShock/DualSense support 2025-07-03 09:41:03 +02:00
Henrik Rydgård 66785a724b Collect DInput devices in a meta device 2025-06-28 13:57:04 +02:00
Henrik Rydgård b2bd844a01 Correctly implement exclusions of DInput devices that are also XInput 2025-05-16 22:39:42 +02:00
oltolm 5c1412f84d use ComPtr for misc. things 2025-01-17 18:06:24 +01:00
Henrik Rydgård 566d9f67f6 SDL input filtering 2023-12-08 16:17:38 +01:00
Henrik Rydgård c8d7226a5f DInput: Seems sometimes we never check for pads on startup? Fix that. 2023-09-27 12:07:21 +02:00
Henrik Rydgård 80a99a67d9 Control: Change internal interfaces to batch-process input axis updates
These naturally come in bunches on many platforms like Android, so lay
some groundwork to also handle them in bunches to minimize locking in
the future.

Linux buildfix
2023-08-31 11:55:53 +02:00
Henrik Rydgård 2675d6ea43 Input event and device enums (#17514)
* Switch deviceID from int to enum InputDeviceID, globally

* Switch axisId to enum InputAxis

* Change int keycodes to InputKeyCode where it makes sense.

* SDL input buildfix

* SDL keycode buildfix

* Switch on enum warning fixes

* Qt keycode buildfix

* iOS keycode buildfix

* UWP keycode buildfix

* More iOS buildfix

* More iOS buildfix

* Update DinputDevice.cpp
2023-05-26 18:40:13 +02:00
Henrik Rydgård 0e1c42ce70 Plumb multimappings all the way through. 2023-04-01 13:50:57 +02:00
Unknown W. Brackets 49f6c461ad Reporting: Fix some header includes.
Particularly in Common, avoid including Core/Reporting.h.
2022-12-27 14:58:20 -08:00
Unknown W. Brackets 536c050943 Core: Track names of connected pad devices.
Rather than just that it's a pad.  This tries to get the identifier if
possible.
2022-07-04 19:14:04 -07:00
Yifan Gu 633a6f612b Refactor and unify analog input settings 2021-07-05 12:38:46 +02:00
Unknown W. Brackets e1e5a8b49b UI: Ignore duplicate axis events.
We already ignore these on Windows, so this makes other platforms follow
the same logic.
2021-05-23 13:21:45 -07:00
Unknown W. Brackets eca3a405b6 UI: Flip Y analog direction based on config. 2021-04-04 08:39:49 -07:00
Unknown W. Brackets c9428975fe Windows: Normalize left and right analog stick. 2021-04-04 08:16:26 -07:00
Unknown W. Brackets 2c165c9b6d Windows: Fix improper case or missing includes.
As per mingw errors/warnings.
2021-02-14 10:30:10 -08:00
Unknown W. Brackets ce8bbfaf54 Windows: Fix some type conversion warnings. 2021-01-01 08:37:32 -08:00
Henrik Rydgård f01ba6dc84 Move NativeApp.h to Common/System, split into NativeApp.h and System.h
Buildfix
2020-10-04 11:42:16 +02:00
Henrik Rydgård 342ed97291 Move input utilities from native to Common/Input. 2020-10-01 09:42:32 +02:00
Unknown W. Brackets d30d75ab38 Windows: Check for devices on Windows events only.
A user reported stuttering after the periodic checks, and devices failing
until unplug/replug.  Presumably, this is caused by poor drivers reacting
badly to periodic DirectInput queries, so less queries should help.
2018-11-01 21:42:12 -07:00
Unknown W. Brackets 52e2e0763a Windows: Detect DirectInput devices after launch. 2018-10-08 21:21:37 -07:00
aliaspider f94e9b1e74 set _WIN32_WINNT to 0x0601 in stdafx.h 2018-03-23 22:54:12 +01:00
Unknown W. Brackets 9e390510df Remove legacy InputState. 2017-03-14 22:07:07 -07:00
Henrik Rydgard 28d8ed5881 Win32: Fix a bunch of little window resizing issues 2015-05-15 18:04:05 +02:00
Josh Palmer 929866edd3 XInput/DInput: Rename settings, fix sensitivity
* Change deadzone inverter naming convention to 'analog mapper'
* Remove hokey mathematics from sensitivity calculations
2015-02-05 06:30:29 +00:00
Josh Palmer 4c6410cd0d DInput/XInput: Further fixes & improvements
* Remove redundant second analog settings for XInput
* Replace DInput circle->square mapping with improved XInput version
2015-02-05 05:48:29 +00:00
Josh Palmer 6856709b1d DInput/XInput: Deadzone fixes & Sensitivity
* DInput Deadzone & Deadzone Inverter now function correctly
* Added analog Sensitivity options to DInput and XInput
2015-02-05 05:30:39 +00:00
Josh Palmer 918b96500c DInput/XInput: Configurable deadzone + inverter
* Add configurable shared deadzone for all DInput axes
* Add configurable separate deadzones for left & right XInput sticks
* Add configurable deadzone inverter for DInput X/Y axes
* Add configurable deadzone inverter for XInput sticks
2015-01-17 21:26:08 +00:00
Unknown W. Brackets 913914a4c1 Fix some type conversion warnings. 2014-06-15 10:01:54 -07:00
Henrik Rydgård 91cb320e6f Merge pull request #6212 from thedax/win32-buildfix
Win32: fix three warnings.
2014-06-02 23:42:58 +02:00
The Dax 70e1abac08 Win32: Use CALLBACK (__stdcall) for DinputDevice::DevicesCallback. Fixes 32-bit compilation. 2014-06-02 08:28:35 -04:00
The Dax 58411136ee Remove the const int, and fix another warning. 2014-06-01 18:32:14 -04:00
The Dax 9672701743 Win32 buildfix and warning fix.
I don't know how many pads are supposed to be supported, but I went with a reasonable number until the proper amount is committed.
2014-06-01 18:25:35 -04:00
Peter Tissen 5e34dbf3fc limit Dinput devices to the max supported in input_state and update the native submodule to get the MAX_NUM_PADS constant 2014-06-01 12:37:32 +02:00
Peter Tissen 46eb74e98a undo visual studio auto-indenting 2014-06-01 12:37:31 +02:00
Peter Tissen 1024eb7b63 initial commit for multiple DInput devices.
allow multiple dinput devices but still block all dinput devices if an xinput device is present.
This still has some issues with devices not being able to be dynamically added or removed but
even many commercial games react to hot-plug DInput events. Also, the axis handling is not really
ideal yet but it works for now.
2014-06-01 12:37:30 +02:00
Sacha 8b4280b297 Rename KEYCODE to NKCODE (native key code) to stop name collision. Implement Blackberry keymapping. 2013-08-05 03:31:40 +10:00
Unknown W. Brackets b46ab5f5a4 Always defined WIN32_LEAN_AND_MEAN.
Might as well, less mess everywhere else.
2013-07-28 21:04:20 -07:00
Unknown W. Brackets d9bfcce0de Switch to buttons instead of A/B/X/Y for dinput.
This way people don't say "but my X button shows up as L1."
2013-07-07 17:05:03 -07:00
Unknown W. Brackets 4f93d57186 Add a few more dinput axises since it's easy. 2013-07-07 16:28:36 -07:00
Unknown W. Brackets 4541a79d54 Send only changed analog sticks in dinput. 2013-07-07 16:10:21 -07:00
Unknown W. Brackets 3852e26558 Remove the force device setting, map instead. 2013-07-07 13:44:21 -07:00
Unknown W. Brackets b3b2269536 Remove some dead code. 2013-07-07 13:43:53 -07:00