486 Commits

Author SHA1 Message Date
Dr. Dystopia
9602f36248 Remove redundant semicolons 2024-08-20 14:59:54 +02:00
mitaclaw
de1c47a701 Misc. Container Find Changes 2024-08-15 14:25:51 -07:00
mitaclaw
9fa4eb9aab Use 'contains' method 2024-08-15 14:20:16 -07:00
Dr. Dystopia
618b41a459 Use 'contains' method 2024-08-14 22:18:28 +02:00
Dentomologist
d627b78c46 Adjust order and spacing of various #includes
Move some #includes around to match the Contributing guidelines.
2024-07-26 14:28:34 -07:00
Tillmann Karras
982893b04c Use C++20 erase_if() instead of erase(remove_if()) (NFC) 2024-07-21 16:36:06 +01:00
Admiral H. Curtiss
ed4a09fa56
Merge pull request #12850 from jordan-woyak/device-sorting
ControllerInterface: Adjust sort priorities to ensure default keyboard-mouse device is first.
2024-06-15 21:12:08 +02:00
Jordan Woyak
42e73547eb ControllerInterface: Adjust sort priorities to ensure default keyboard-mouse device is first. 2024-06-15 12:41:25 -05:00
Dentomologist
c3bdd05d2a TAS Input: Enable hotkeys and controller input when Input has focus
Enable emulator hotkeys and controller input (when that option is
enabled) when a TAS Input window has focus, as if it was the render
window instead.  This allows TASers to use frame advance and the like
without having to switch the focused window or disabling Hotkeys Require
Window Focus which also picks up keypresses while other apps are active.

Cursor updates are disabled when the TAS Input window has focus, as
otherwise the Wii IR widget (and anything else controlled by the mouse)
becomes unusable. The cursor continues to work normally when the render
window has focus.
2024-05-31 15:14:44 -07:00
JosJuice
5456d990d1 Android/ControllerInterface: Run the init code
This was broken by a9a9fdd9e9. Because Init didn't run, the Android
input backend would crash whenever it tried to call into JVM code.
2024-04-13 22:39:10 +02:00
Tilka
e62d8ecfa8
Merge pull request #12632 from jordan-woyak/input-backend-impls
Implement missing InputBackend classes.
2024-04-13 11:56:27 +01:00
Tillmann Karras
d1db347c8a evdev: close file descriptors in a separate thread
For some reason Linux is surprisingly slow at closing file descriptors
of event devices. This commit improves GUI startup times on my computer
by about 1.5 seconds.
2024-04-06 20:58:17 +01:00
OatmealDome
4421cc471d
Merge pull request #12631 from jordan-woyak/remove-osx-input-leftovers
InputCommon: Remove some IOKit leftovers.
2024-04-01 17:05:13 -04:00
Jordan Woyak
3a85725ffa SDL: Remove duplicate button/hat Inputs. Hide duplicate Axis Inputs. 2024-03-14 23:50:17 -05:00
Jordan Woyak
ee43c9508c ControllerInterface: Add IsHidden function to Control interface. 2024-03-14 23:43:58 -05:00
Jordan Woyak
0538366326 SDL: Deduplicate Motor logic with templates. 2024-03-14 23:43:58 -05:00
Jordan Woyak
0fff8374d0 SDL: Move class definition out of header. 2024-03-14 23:43:58 -05:00
Admiral H. Curtiss
c3903fcc7e
InputCommon/WiimoteController: Add inputs that report the raw IR objects seen by the Wiimote. 2024-03-11 22:46:05 +01:00
Jordan Woyak
a9a9fdd9e9 InputCommon: Add Android InputBackend class. 2024-03-11 03:25:31 -05:00
Jordan Woyak
8583b6751a InputCommon: Handle window change in Quartz. 2024-03-11 03:25:31 -05:00
Jordan Woyak
3665f7abac InputCommon: Implement xlib window change logic. 2024-03-11 03:25:31 -05:00
Jordan Woyak
341f99a3f1 InputCommon: Add Win32 InputBackend class. 2024-03-11 03:25:31 -05:00
Jordan Woyak
2ac59bf581 InputCommon: Add Pipes InputBackend class. 2024-03-11 03:05:52 -05:00
Jordan Woyak
8098be3dfa InputCommon: Add XInput2 InputBackend class. 2024-03-11 03:05:52 -05:00
Jordan Woyak
498584ac77 InputCommon: Add Quartz InputBackend class. 2024-03-11 03:05:52 -05:00
Jordan Woyak
9941c54911 InputCommon: Provide WindowSystemInfo getter for ControllerInterface. 2024-03-11 01:31:05 -05:00
Jordan Woyak
b23dbad098 InputCommon: Remove some IOKit leftovers. 2024-03-11 01:11:13 -05:00
Admiral H. Curtiss
83d4b692b8
InputCommon/WGInput: Handle add/remove events on separate thread to prevent deadlocks.
In particular this is triggered when running Dolphin with the Steam overlay.
2024-01-18 00:30:45 +01:00
Admiral H. Curtiss
c7d7ae4912
InputCommon/SDL: Code style fixes. 2024-01-15 15:19:41 +01:00
Admiral H. Curtiss
5e6e61c723
InputCommon/SDL: Avoid potential infinite loops from integer truncation. 2024-01-15 15:19:24 +01:00
Admiral H. Curtiss
d657ad5932
InputCommon/SDL: Check for errors from SDL_JoystickNumButtons(), SDL_JoystickNumAxes(), SDL_JoystickNumHats(). 2024-01-15 15:18:38 +01:00
Admiral H. Curtiss
959c39133b
InputCommon/SDL: Fix incorrect use of std::vector::assign() and check bounds. 2024-01-15 15:17:32 +01:00
Admiral H. Curtiss
1cca3b24c6
Merge pull request #12085 from SuperSamus/sdl-gamecontroller
SDL: Add GameController API, cleanup
2024-01-13 16:37:43 +01:00
Martino Fontana
51e05f468a SDL: Add GameController API, cleanup 2024-01-13 16:10:25 +01:00
Vicki Pfau
a8033f164b Steam Deck: Pad out feature report to 64 bytes
Also update the names of the setting post-Steam Deck commits to SDL

Fixes https://bugs.dolphin-emu.org/issues/13412
2024-01-10 19:49:52 -08:00
Martino Fontana
0ab2bc2287 ControllerInterface: Make FullAnalogSurface inherit IsDetectable() 2024-01-10 12:20:07 +01:00
Filoppi
e456bef163 Input: Improve Controller Interface devices threading
This specific issue was already addressed by https://github.com/dolphin-emu/dolphin/pull/11635
though I felt like there was something more we could do, and wasn't too happy with the
likelihood of devices update calls being skipped (due to `m_devices_population_mutex` being locked).
2023-12-18 21:45:22 +02:00
Lioncash
196f8e5123 MappingCommon: Make use of std::erase_if 2023-12-12 13:31:18 -05:00
Dentomologist
2d3bae9c79 SDL: Add default case to switch statement
Fix -WSwitch warning about unhandled enum value SDL_NUM_LOG_PRIORITIES.

log_level is initialized to LNOTICE right before the switch statement so
this doesn't cause any behavior changes.
2023-11-10 12:05:20 -08:00
Jordan Woyak
30ce1f2ec2 ControllerInterface/SDL: Remove Xbox 360 controller disabling hack. 2023-10-26 18:04:11 -05:00
Admiral H. Curtiss
53df01f7d8
Merge pull request #12172 from ArcaneNibble/sd
Steam Deck: Periodically reenable gyro
2023-09-28 04:10:27 +02:00
get
63467559b2
fmt 10.0.0-10.1.1 compile fixes
Implicit conversion operators and enums was removed for parity with std::format (fce74caa15).
2023-09-21 01:19:23 +02:00
R
860acfb15d Steam Deck: Periodically reenable gyro 2023-09-07 19:56:58 +01:00
JosJuice
7197e3abd0 Use structs for config callback IDs
This way you can't mix up regular config callback IDs and CPU thread
config callback IDs. (It would be rather bad if you did!)
2023-08-17 19:19:26 +02:00
JosJuice
1d77bddc3b ControllerInterface/Android: Add null check to AddDevice
The Google Play Console is showing some users getting a crash here,
and indeed, InputDevice.getDevice can return null.
2023-08-15 13:31:18 +02:00
get
ffabb6c57b Replace std::ostringstream usage with fmt::format 2023-06-18 18:37:32 -05:00
JosJuice
71ac6ec239 InputCommon: Don't treat two analog inputs as a spurious trigger combo
I've received a report from an Android user with a gamepad (a "BSP-D3")
where one physical trigger is controlling two analog axes at the same
time. This was causing RemoveSpuriousTriggerCombinations to delete both
axes, which is clearly not a desireable outcome.

With this change, now the axis with the greatest smoothness is kept,
or both in case they have the same smoothness.
2023-06-06 22:07:14 +02:00
Admiral H. Curtiss
38b033a476
Merge pull request #11762 from jbosboom/xinput2-raw-event-query
Xinput2: use raw events and queries
2023-06-06 18:14:51 +02:00
Admiral H. Curtiss
da77084d2f
Merge pull request #11819 from JosJuice/android-input-device-null
ControllerInterface/Android: Use InputEvent.getDeviceId
2023-05-29 19:27:30 +02:00
Jeffrey Bosboom
620955d397 XInput2: Listen to master devices only
A comment removed by this commit gives two reasons for listening to
slave devices, both of which no longer apply:

- "Only slaves emit raw motion events": perhaps this was true when the
comment was written, but now master devices provide raw motion events
along with the other raw events.

- "Selecting slave keyboards avoids dealing with key focus": we get raw
key events regardless of the focus.

Listening to both master and slave devices results in duplicate raw
events.  For button and key events, that's a tiny waste of time setting
the update flag a second time, but for raw mouse events the raw motion
will be processed twice.  That makes this commit a user-facing change.
2023-05-19 14:20:10 -07:00