Commit graph

65 commits

Author SHA1 Message Date
Henrik Rydgård
4b77cfd53b Add confirmation popup support on Exit App key
This adds a new mechanism so we can delay "vkey" events until the next
frame, making for safer code. Will move a bunch of the virtkeys to this
later.

Fixes #20020
2025-02-24 10:23:11 -06:00
Henrik Rydgård
e51c58716b Fix minor code issues flagged by PVS-Studio and reported by alphrixus. 2024-10-10 14:10:30 +02:00
Henrik Rydgård
e01ca5b057
Logging API change (refactor) (#19324)
* Rename LogType to Log

* Explicitly use the Log:: enum when logging. Allows for autocomplete when editing.

* Mac/ARM64 buildfix

* Do the same with the hle result log macros

* Rename the log names to mixed case while at it.

* iOS buildfix

* Qt buildfix attempt, ARM32 buildfix
2024-07-14 14:42:59 +02:00
Henrik Rydgård
c7c7e0a36d Fix the AxisSwap feature - had a double mutex lock, oops. 2024-04-14 13:43:20 +02:00
Henrik Rydgård
cf1fd714fd
Merge pull request #18786 from hrydgard/release-inputs-on-pause
Release all keys on pause.
2024-01-29 19:21:22 +01:00
Henrik Rydgård
1faef374a9 Strengthen the axis-threshold reduction for related axes a bit. See #17792 2024-01-29 18:50:08 +01:00
Henrik Rydgård
7920d3a44b Release all keys on pause.
Fixes #18767

Not sure about merging for the 1.17 series though, maybe someone really
likes to bring up the pause menu briefly while holding a direction.. we
could actually handle that with some extra logic.
2024-01-29 18:41:43 +01:00
Henrik Rydgård
04ea4987b0 Bring back the old combo behavior, make the new behavior a checkbox (strict combo order). 2024-01-29 18:06:31 +01:00
Henrik Rydgård
3e53d1e895 Joystick input: Fix low-end radius (inverse deadzone) 2023-12-31 16:47:26 +01:00
Henrik Rydgård
706b98a0b9 Joystick: Bias down the axis-to-button threshold if the "co-axis" is active.
This makes it much easier to hit the diagonals in the case where you map
the right stick on your 360 controller to say the DPAD for camera
control in some game.

No setting, let's see if that's required.

Fixes #17792, it should now "just work".
2023-12-31 13:55:04 +01:00
Henrik Rydgård
3895cfff74 Add "Analog trigger threshold" setting, for conversion of analog trigger inputs to digital button inputs. 2023-12-28 13:36:03 +01:00
Henrik Rydgård
33c0052c70
Merge pull request #18597 from hrydgard/combo-key-behavior
Combo key: Only trigger when keys are pressed in the mapped order
2023-12-22 22:52:23 +01:00
Henrik Rydgård
d21b185b5c Combo keys: Only trigger if keys are pressed in the same order 2023-12-21 12:07:14 +01:00
Henrik Rydgård
81923034f6 ControlMapper: Keep track of when inputs were triggered 2023-12-21 12:02:15 +01:00
Henrik Rydgård
16a31c2554 Avoid spamming the keymap lock during input processing 2023-12-21 11:54:30 +01:00
Henrik Rydgård
144ed7a3ab Reduce memory allocations during controller processing 2023-12-21 11:15:40 +01:00
Henrik Rydgård
ee93e4a2ca Batch axis events all the way into ControlMapper 2023-09-29 11:14:19 +02:00
Henrik Rydgård
65a787026d Fix a range check and array size. In reality, probably not a danger. 2023-09-27 17:36:51 +02:00
Henrik Rydgård
72be2f5459 Restore the D-Pad behavior (see #18028) 2023-09-11 11:41:29 +02:00
Henrik Rydgård
be2f81c3eb Controls: Make the analog/digital mapping clash resolution more gentle.
Now takes the time into account, so clashing digital input will only shrink
analog inputs once it's a few seconds old.

Also fixes a bug where if there are both inputs, it was hard to reach
the limits because the digital input itself ended up getting shrunk.

This might help #17860
2023-08-23 18:51:27 +02:00
Henrik Rydgård
a07079bdf9 Timestamp control inputs 2023-08-23 17:52:30 +02:00
Henrik Rydgård
9623f515e7 Add back support for custom buttons to control analog inputs 2023-05-08 10:46:28 +02:00
Henrik Rydgård
b0d05a5a7c Remove some logic that did not do the right thing 2023-05-02 23:51:40 +02:00
Henrik Rydgård
c037f6731d Better (but not great) workaround for key bindings that pop up dialogs. 2023-05-02 21:36:17 +02:00
Henrik Rydgård
4bb7c05132 Remove some unnecessary state clearing 2023-04-20 11:00:19 +02:00
Henrik Rydgård
7594ae8785 Resurrect and refactor the AxisSwap feature. Fixes #17292 2023-04-20 10:53:11 +02:00
Henrik Rydgård
9612bff2ac Properly fix the analog limiter feature ("lightly"). 2023-04-15 19:56:27 +02:00
Henrik Rydgård
23c940370e abs->fabsf. Might fix #17284 2023-04-15 10:13:57 +02:00
Henrik Rydgård
d1e21ab896 Fix return value from control mapper Key. Fixes volume key issue on Android. 2023-04-02 10:41:26 +02:00
Henrik Rydgård
c1b5aed9b7 Cleanup, confine g_controllerMap access to KeyMap.cpp 2023-04-01 20:28:42 +02:00
Henrik Rydgård
d523005c2b Cleanup 2023-04-01 19:02:20 +02:00
Henrik Rydgård
0e1c42ce70 Plumb multimappings all the way through. 2023-04-01 13:50:57 +02:00
Henrik Rydgård
f3012f6914 Break out the signed->unsigned axis mapping 2023-04-01 09:07:29 +02:00
Henrik Rydgård
0b574613b9 Address assorted feedback 2023-04-01 09:01:27 +02:00
Henrik Rydgård
04321284c0 Remove redundant callback 2023-04-01 08:57:42 +02:00
Henrik Rydgård
9804a905c8 More tweaks (work around the old problem where lingering analog values biased the digital input) 2023-03-31 20:27:30 +02:00
Henrik Rydgård
48993f4f4b Control: Add debug display, do assorted fixes. 2023-03-31 20:12:48 +02:00
Henrik Rydgård
025ec248e4 Don't need two SetCallback functions. 2023-03-31 11:11:46 +02:00
Henrik Rydgård
778d9ac5ca Handle mapping signed axis to our only unsigned input, VIRTKEY_SPEED_ANALOG. 2023-03-31 11:05:33 +02:00
Henrik Rydgård
ea60ff2235 Add missing locking to control mapper 2023-03-31 11:05:33 +02:00
Henrik Rydgård
88e89653b1 Bring back zeroing of the opposite direction. 2023-03-31 11:05:33 +02:00
Henrik Rydgård
fa0fb6eee6 Rework and simplify VIRTKEY_SPEED_ANALOG 2023-03-31 11:05:33 +02:00
Henrik Rydgård
ca300a4dfd More callback fixes 2023-03-31 11:05:33 +02:00
Henrik Rydgård
7dfa587fe2 Remove in/out function arguments 2023-03-31 11:05:33 +02:00
Henrik Rydgård
526b4f782d Fixes, add callback for analog virtual keys
Some fixes
2023-03-31 11:05:33 +02:00
Henrik Rydgård
8dabcaea7d Enable virtual key mappings in UpdatePSPState 2023-03-31 11:05:32 +02:00
Henrik Rydgård
38f4cc4cc9 Make reverse mapping lookup work for the simple PSP buttons. 2023-03-31 11:05:29 +02:00
Henrik Rydgård
2814668cf5
Show a MIPS stack trace on crash screen (#17211)
* Print simple stack traces to log on crashes.

* Display stack traces on crash screen

* Show the in-function offset in the printed callstacks.

* Libretro buildfix attempt
2023-03-31 10:08:12 +02:00
Henrik Rydgård
26bf40c497
ControlMapper: Change the callbacks to be more suitable for the upcoming refactor. (#17209)
* ControlMapper: Change the callbacks to be more suitable for the upcoming refactor.

* SetAllButtons: Separate bits to set and bits to clear.

* Oops, missed committing some files somehow
2023-03-30 10:47:28 +02:00
Henrik Rydgård
d00809ae53 Rename KeyDef to InputMapping and give it responsibility for Axis encoding 2023-03-29 11:59:31 +02:00