Morph
99ceb03a1c
general: Convert source file copyright comments over to SPDX
...
This formats all copyright comments according to SPDX formatting guidelines.
Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
2022-04-23 05:55:32 -04:00
bunnei
764e5c7fe5
Merge pull request #7978 from german77/sideway
...
input_common: Map sticks correctly when mapped sideways
2022-04-21 22:21:59 -07:00
Narr the Reg
17bff6bf57
input_common: Ignore boost uninitialized local variable
2022-04-20 18:28:24 -05:00
Merry
159ae5e47c
input_common: Replace lock_guard with scoped_lock
2022-04-07 19:44:07 +01:00
Narr the Reg
ee532e5c01
input_common: Map sticks correctly when mapped sideways
2022-03-21 19:39:33 -06:00
ameerj
967ed01fcf
input_common: Reduce unused includes
2022-03-20 02:25:09 -04:00
bunnei
1079215871
Merge pull request #7859 from german77/battery_again
...
input_common: Remove battery duplicated struct and update every button press
2022-02-24 11:42:51 -08:00
bunnei
ca9da569ce
Merge pull request #7852 from Morph1984/new-uuid
...
common: Revise and fix the UUID implementation
2022-02-10 21:52:13 -07:00
german77
6a4ab3e0d2
yuzu: Add auto center on right click
2022-02-06 19:56:03 -06:00
german77
21742f0096
input_common: Remove battery duplicated struct and update every button press
2022-02-06 18:33:55 -06:00
Morph
25db62ce15
general: Rename NewUUID to UUID, and remove the previous UUID impl
...
This completes the removal of the old UUID implementation.
2022-02-05 13:56:21 -05:00
Morph
cb30fe50cd
input/hid: Migrate to the new UUID implementation
2022-02-05 13:18:41 -05:00
bunnei
0ec5b9bff2
Merge pull request #7839 from german77/battery
...
yuzu: ui: Improve battery symbols
2022-02-04 18:23:35 -07:00
Morph
fbefcf7280
input_common: Remove unused core include
2022-02-03 22:44:28 -05:00
bunnei
fc8aef7323
Merge pull request #7811 from german77/analog-mod
...
input_common: Use attributes for analog range modifiers
2022-02-03 12:21:11 -07:00
Narr the Reg
064aa3de11
yuzu: ui: Improve battery symbols
2022-02-02 13:18:06 -06:00
german77
5bd0c1517f
input_common: Use attributes for analog range modifiers
2022-01-30 22:42:40 -06:00
german77
3d2d77eb3f
input_common: Add home and hard touch press buttons to UDP controllers
2022-01-30 09:17:22 -06:00
Morph
1900abde13
Merge pull request #7784 from german77/ds5
...
input_common: Add DS5 to HD rumble list
2022-01-28 18:36:28 -05:00
bunnei
0dec42431f
Merge pull request #7770 from german77/motion-threshold
...
input_common: Add option to configure gyro threshold
2022-01-27 15:44:04 -08:00
Narr the Reg
fd1cef5616
input_common: Add DS5 to HD rumble list
2022-01-26 21:49:32 -06:00
Morph
432f4441b9
Merge pull request #7774 from lioncash/mapping
...
input_common/main: Pass MappingData by const reference in callbacks
2022-01-25 16:15:45 -05:00
Lioncash
651358d0b6
input_common/input_engine: Ensure PadIdentifier UUIDs have a valid initial state
...
The default constructor of a UUID instance doesn't initialize the
underlying array.
2022-01-24 11:57:48 -05:00
Lioncash
187c9d7e33
input_common/input_mapping: Simplify UUID validity checks
...
Makes the checks a little more intuitive to read and doesn't construct
an extra UUID instance
2022-01-24 11:49:52 -05:00
Lioncash
0849be094e
input_common/input_mapping: Add missing includes
...
Ensures that the class always sees the types it needs.
2022-01-24 11:49:31 -05:00
Lioncash
8bb39750a1
input_common/input_mapping: Remove const from return value
...
Top-level const on a return by value can inhibit move semantics, and is
unnecessary.
2022-01-24 11:39:20 -05:00
Lioncash
12e7d3b254
input_common/input_mapping: Default constructor
2022-01-24 11:37:48 -05:00
Lioncash
51dd3da11c
input_common/main: Pass MappingData by const reference in callbacks
...
Avoids creating unnecessary 168 byte copies per callback invocation.
2022-01-24 11:31:43 -05:00
Lioncash
87eb3cb083
input_common/udp_client: Replace deprecated from_string()/to_ulong() functions
...
These are deprecated and make_address variants and to_uint() should be used instead.
2022-01-24 11:14:30 -05:00
Lioncash
b084a9bf0a
input_common/udp_client: Prevent unnecessary string copies
...
We can also remove some redundant const on the return values, since
these don't do anything
2022-01-24 10:58:25 -05:00
german77
ebf19616f4
input_common: Add option to configure gyro threshold
2022-01-23 21:54:33 -06:00
bunnei
8433edacb3
Merge pull request #7735 from german77/udp_battery
...
input_common: Report battery for UDP controllers
2022-01-22 01:28:14 -08:00
bunnei
fc3eb72359
Merge pull request #7715 from gidoly/patch-4
...
Xbox controller default name nit pick
2022-01-18 21:14:30 -08:00
bunnei
eceee8e5f4
Merge pull request #7725 from german77/mouse_in_motion
...
input_common: Reintroduce motion from mouse and use button names
2022-01-18 18:16:27 -08:00
Narr the Reg
36144a5690
input_common: Report battery for UDP controllers
2022-01-17 13:30:15 -06:00
Mai M
45ac3f414e
Merge pull request #7730 from v1993/patch-6
...
input_common: nitpick about SetHatButton usage
2022-01-17 13:43:34 -05:00
Valeri
3431e0acf5
input_common: nitpick about SetHatButton usage
2022-01-17 12:04:38 +03:00
Valeri
a99f84f4b2
input_common: fix copy-paste error
...
Found by static analysis with PVS-Studio.
2022-01-17 11:31:38 +03:00
german77
9eab07f863
input_common: Reintroduce motion from mouse and use button names
2022-01-16 20:37:34 -06:00
gidoly
92d676d788
Xbox controller default name nit pick
...
Discord User moon lacer pointed us that official name is 'Xbox' not 'XBox'
2022-01-16 05:59:31 +09:00
gidoly
7978ea4e8c
Change default name for ps controllers
...
Minor nitpick
Code is from narr
2022-01-15 10:29:42 +09:00
bunnei
c65c651b6f
Merge pull request #7633 from german77/hotkeys
...
yuzu: Add controller hotkeys
2022-01-11 10:49:23 -08:00
Morph
18adea343e
Merge pull request #7687 from german77/tas_handle
...
input_common: Handle errors on TAS scripts
2022-01-09 16:43:06 -08:00
bunnei
acbfb0083a
Merge pull request #7682 from german77/udp_fix
...
input_common: Fix UDP controller mappings
2022-01-08 13:41:39 -08:00
german77
ea089c012e
input_common: Handle errors on TAS scripts
2022-01-08 12:27:16 -06:00
german77
d05675242a
input_common: Fix udp motion not automapping to both sides
2022-01-07 16:56:36 -06:00
german77
72c8a94a6c
yuzu: Add controller hotkeys
2022-01-06 21:26:05 -06:00
german77
4b4af29f86
input_common: Use accelerometer data for mapping
2022-01-06 20:05:49 -06:00
bunnei
212b497d5c
Merge pull request #7302 from VPeruS/check-deadlock
...
[input_common] Fixed thread hang
2021-12-17 23:43:19 -08:00
vperus
11f4bf8a9a
[input_common] Move variable declaration closer to usage
...
MSVC supplied with VS2022 generates "warning C4189: 'CALIBRATION_THRESHOLD':
local variable is initialized but not referenced" which is treated as an
error.
Circumvent it by moving constexpr variable directly into body of lambda function.
2021-12-17 20:51:47 +02:00
Narr the Reg
5e732e7aec
Merge pull request #7581 from lioncash/input-iface
...
common/input: Avoid numerous large copies of CallbackStatus
2021-12-14 19:10:39 -06:00
Narr the Reg
ac0c5be7c0
Merge pull request #7577 from v1993/patch-2
...
input/SDL: Update SDL hints
2021-12-14 10:12:17 -06:00
Valeri
7f965172c5
input/SDL: Update SDL hints
...
SDL_HINT_JOYSTICK_HIDAPI_SWITCH_HOME_LED is no longer needed thanks to new default in SDL 2.0.18.
SDL_HINT_JOYSTICK_HIDAPI_XBOX is reported to cause conflicts with native driver Xbox driver on Linux, and Xbox controllers don't benefit from hidapi anyways.
2021-12-14 15:02:03 +03:00
Lioncash
e05d2a70b2
common/input: Avoid numerous large copies of CallbackStatus
...
CallbackStatus instances aren't the cheapest things to copy around
(relative to everything else), given that they're currently 520 bytes in
size and are currently copied numerous times when callbacks are invoked.
Instead, we can pass the status by const reference to avoid all the
copying.
2021-12-13 21:22:02 -05:00
Lioncash
5e7e38ac72
input_poller: Add missing override specifiers
2021-12-13 20:41:17 -05:00
Lioncash
6497fbfa96
input_mapping: Amend specification of parameters
...
param tags are supposed to specify the parameter name without any
quoting.
Silences several -Wdocumentation warnings.
2021-12-13 20:31:59 -05:00
Lioncash
7783c0aaef
input_poller: Remove several unnecessary @param tags
...
Silences quite a bit of -Wdocumentation warnings, given the @param tag
is only intended to be used to identify function parameters, not what it
contains.
2021-12-13 20:28:30 -05:00
bunnei
ad45963b45
Merge pull request #7575 from lioncash/input
...
input_engine: Minor object churn cleanup
2021-12-13 16:50:54 -08:00
Lioncash
54ca48e8b7
tas_input: Avoid minor copies in Read/WriteCommandButtons()
...
We don't need to copy the whole pair
2021-12-13 11:45:19 -05:00
Lioncash
734fb180bb
tas_input: Remove unnecessary semicolon
...
Resolves a -Wextra-semi warning
2021-12-13 11:45:19 -05:00
Lioncash
ddda6ae776
tas_input: Execute clear() even if empty
...
clear() when empty is simply a no-op, so we can get rid of the check
here and let the stdlib do it for us.
2021-12-13 11:45:18 -05:00
Lioncash
db9320e754
tas_input: Remove unnecessary includes
...
Gets rid of indirect includes and includes only what the interface
needs.
2021-12-13 11:45:18 -05:00
Lioncash
26ef76213c
tas_input: std::move strings into vector
...
While we're in the same area, we can also avoid performing std::stoi in
a loop when it only needs to be performed once.
2021-12-13 11:45:15 -05:00
Lioncash
a515ede2af
tas_input: Use istringstream over stringstream
...
This is only using the input facilities, so we don't need to use the
fully-fleged stringstream.
2021-12-13 10:57:53 -05:00
Lioncash
6be730bdcd
tas_input: Use u8string_view instead of u8string
...
Same behavior, but without the potential for extra allocations.
2021-12-13 10:54:43 -05:00
Lioncash
37a8e2a67e
tas_input: Remove unused std::smatch variable
...
This also means we can get rid of the dependency on <regex>
2021-12-13 10:50:24 -05:00
Lioncash
d52ad96ce3
tas_input: Amend -Wdocumentation warnings
...
Parameters shouldn't have the colon by their name.
2021-12-13 10:49:11 -05:00
Lioncash
c126b0718c
tas_input: Make TasAxes enum an enum class
...
Prevents these values from potentially clashing with anything in other
headers.
2021-12-13 10:41:32 -05:00
Lioncash
e4de1783e1
input_engine: Fix typo in TriggerOnAxisChange() parameter name
2021-12-13 10:21:37 -05:00
Lioncash
a9d39b6895
input_engine: Simplify PreSet* family of functions
...
We can make use of try_emplace() to insert values only if they don't
already exist.
2021-12-13 10:18:04 -05:00
Lioncash
4d4a234476
input_engine: Avoid redundant map lookups
...
We can use iterators to avoid looking up into maps twice in the getter
functions.
At the same time we can also avoid copying the ControllerData structs,
since they're 264 bytes in size.
2021-12-13 09:57:51 -05:00
Lioncash
e51b852aee
input_engine: Remove left-over namespace qualifiers
...
These types are part of the InputCommon namespace.
2021-12-13 09:57:51 -05:00
Lioncash
e826e6715a
input_engine: Iterate by reference rather than by value where applicable
...
Avoids creating copies of several object instances (some of which being
over 100 bytes in size).
2021-12-13 09:57:51 -05:00
Lioncash
755822ceec
input_engine: Take BasicMotion by const reference with SetMotion() and TriggerOnMotionChange()
...
Copies the BasicMotion instance once instead of twice.
2021-12-13 09:57:39 -05:00
Lioncash
a92dbec962
input_engine: std::move InputIdentifier in SetCallback()
...
Allows avoiding std::function allocations.
2021-12-13 09:23:23 -05:00
Lioncash
985599e485
input_engine: Pass LedStatus by const reference
...
Avoids copies where reasonably applicable
2021-12-13 09:20:58 -05:00
Lioncash
38f3442ea5
input_engine: Pass VibrationStatus by const reference in SetRumble()
...
Avoids creating copies of the struct where not necessary.
2021-12-13 09:16:10 -05:00
Lioncash
2b92d22bda
input_engine: std::move engine name where applicable
...
We can allow the name to be moved into, allowing allocations to be
avoided.
2021-12-13 09:05:50 -05:00
Lioncash
9a104e2b60
input_engine: Remove callback clearing in constructor
...
The callback map is a member variable, so this will always be empty on
initial construction.
2021-12-13 08:54:23 -05:00
Lioncash
479369db43
input_engine: Remove unnecessary semi-colons
...
Silences -Wextra-semi warnings
2021-12-13 08:53:01 -05:00
Lioncash
3c618a3306
input_engine: Remove unnecessary return
...
This is a void function, so it doesn't need this.
2021-12-13 08:52:09 -05:00
Narr the Reg
e4492a9a82
input_common: Fix error with thread name
2021-11-29 22:03:47 -05:00
vperus
660c6bec22
Revert of b01aa72
...
Caused worker_thread to be stuck in Stage1Completed state until job's destruction.
2021-11-29 16:37:11 +02:00
vperus
04fa990b0c
[input_common] Add completion test for CalibrationConfigurationJob
2021-11-29 16:33:12 +02:00
Narr the Reg
639402850a
input_common: Fully implement UDP controllers
2021-11-26 15:46:36 -06:00
german77
746c85b560
input_common: Move button names to the frontend
2021-11-24 20:30:28 -06:00
german77
c4760489a0
input_common: Fix SDL controller with inverted axis
2021-11-24 20:30:28 -06:00
german77
42949738f2
kraken: Address comments from review
...
Fix compiler bug
2021-11-24 20:30:28 -06:00
german77
f4e5f89e6f
core/hid: Improve accuary of mouse implementation
2021-11-24 20:30:28 -06:00
german77
654d76e79e
core/hid: Fully implement native mouse
2021-11-24 20:30:28 -06:00
german77
bca299e8e0
input_common: Allow keyboard to be backwards compatible
2021-11-24 20:30:28 -06:00
german77
b673857d7d
core/hid: Improve accuracy of the keyboard implementation
2021-11-24 20:30:28 -06:00
german77
c35af8d1c0
input_common: Fix motion from 3 axis
2021-11-24 20:30:27 -06:00
german77
157e0b85fd
core/hid: Prevent Emulated controller from flapping with multiple inputs devices
2021-11-24 20:30:27 -06:00
german77
136eb9c4c2
core/hid: Fully emulate motion from button
2021-11-24 20:30:27 -06:00
german77
77fa4d4bf6
second commit lion review
2021-11-24 20:30:26 -06:00
german77
730f078302
settings: Fix Debug controller type options
2021-11-24 20:30:26 -06:00
german77
2b1b0c2a30
kraken: Address comments from review
...
start lion review
2021-11-24 20:30:26 -06:00
german77
61d9eb9f69
input_common: Revert deleted TAS functions
2021-11-24 20:30:26 -06:00
german77
d8e3f2b10b
input_common: Fix GC adapter initialization
...
Fix GC controller
2021-11-24 20:30:26 -06:00
german77
1d71d4b874
input_common: Fix UDP uuid
2021-11-24 20:30:26 -06:00
german77
7348e205d9
input_common: Add multiple vibration curves
2021-11-24 20:30:26 -06:00
german77
064ddacf49
core/hid: Rework battery mappings
2021-11-24 20:30:26 -06:00
german77
c6c32daf40
input_common: Add manual update options to input devices
2021-11-24 20:30:26 -06:00
german77
464c4d26ac
settings: Fix mouse and keyboard mappings
2021-11-24 20:30:25 -06:00
german77
b5e72de753
kraken: Address comments from review
...
review fixes
2021-11-24 20:30:25 -06:00
german77
85052b8662
service/hid: Fix gesture input
2021-11-24 20:30:25 -06:00
german77
af55dd1935
configuration: Migrate controller settings to emulated controller
2021-11-24 20:30:25 -06:00
german77
c3ff0a8ac0
core/hid: Fix rumble too strong at 1%
2021-11-24 20:30:24 -06:00
german77
601ac43495
core/hid: Only signal when needed
2021-11-24 20:30:24 -06:00
german77
e0da5c1bbc
kraken: Fix errors from rebase and format files
2021-11-24 20:30:24 -06:00
german77
06a5ef5874
core/hid: Add output devices
2021-11-24 20:30:24 -06:00
german77
29ae42f3e2
input_common: Rewrite main and add the new drivers
2021-11-24 20:30:23 -06:00
german77
6d108f0dcb
input_common: Remove obsolete files
2021-11-24 20:30:23 -06:00
german77
59b995a9e5
input_common: Rewrite SDL
2021-11-24 20:30:23 -06:00
german77
10241886dd
input_common: Rewrite udp client
2021-11-24 20:30:22 -06:00
german77
dc3ab9e110
input_common: Rewrite tas input
2021-11-24 20:30:22 -06:00
german77
395e9a449d
input_common: Rewrite gc_adapter
2021-11-24 20:30:22 -06:00
german77
fa8e23b842
input_common: Rewrite touch
2021-11-24 20:30:22 -06:00
german77
00834b84dd
input_common: Rewrite mouse
2021-11-24 20:30:22 -06:00
german77
5a785ed794
input_common: Rewrite keyboard
2021-11-24 20:30:22 -06:00
german77
4c6f2c2547
input_common: Move touch and analog from button. Move udp protocol
2021-11-24 20:30:22 -06:00
german77
854c933716
input_common: Create input poller and mapping
2021-11-24 20:30:22 -06:00
german77
ea7b1fbc67
input_common: Create input_engine
2021-11-24 20:30:22 -06:00
Fernando S
33e92c15eb
Revert "input_common: Fix data race on GC implementation"
2021-10-23 23:32:16 +02:00
Fernando S
7461196839
Merge pull request #6515 from german77/gc_thread_safe
...
input_common: Fix data race on GC implementation
2021-10-23 23:28:22 +02:00
ameerj
b01aa721ff
input_common: Fix VS2022 compilation errors
2021-10-20 01:21:59 -04:00
german77
8212a864ca
input_common/sdl: Fix joystick range
2021-10-11 01:03:01 -05:00
bunnei
21ed944ff9
Merge pull request #6979 from german77/joycon_name
...
input_common: Add alternative string for joycons
2021-10-02 02:58:25 -07:00
ameerj
73666fb262
general: Update style to clang-format-12
2021-09-24 15:52:05 -04:00
german77
75d8ec1e9f
UI: Relocate tas menu and add brief description
2021-09-18 23:23:03 +02:00
german77
33a1d790e8
input_common/tas: Document the main class
2021-09-18 23:22:48 +02:00
german77
e6c4bf52f0
input_common/tas: Add swap controller
2021-09-18 23:22:42 +02:00
german77
9bb6580d89
input_common/tas: overwrite file dialog
2021-09-18 23:22:42 +02:00
MonsterDruide1
f078b15565
input_common/tas: Fallback to simple update
2021-09-18 23:22:30 +02:00
german77
c01a872c8e
config: Move TAS options to it's own menu
2021-09-18 23:22:30 +02:00
MonsterDruide1
4297d2fea2
core: Hacky TAS syncing & load pausing
...
To keep the TAS inputs synced to the game speed even through lag spikes and loading zones, deeper access is required.
First, the `TAS::UpdateThread` has to be executed exactly once per frame. This is done by connecting it to the service method the game calls to pass parameters to the GPU: `Service::VI::QueueBuffer`.
Second, the loading time of new subareas and/or kingdoms (SMO) can vary. To counteract that, the `CPU_BOOST_MODE` can be detected: In the `APM`-interface, the call to enabling/disabling the boost mode can be caught and forwarded to the TASing system, which can pause the script execution if neccessary and enabled in the settings.
2021-09-18 23:22:20 +02:00
MonsterDruide1
b42c3ce21d
input_common/tas: Base playback & recording system
...
The base playback system supports up to 8 controllers (specified by `PLAYER_NUMBER` in `tas_input.h`), which all change their inputs simulataneously when `TAS::UpdateThread` is called.
The recording system uses the controller debugger to read the state of the first controller and forwards that data to the TASing system for recording. Currently, this process sadly is not frame-perfect and pixel-accurate.
Co-authored-by: Naii-the-Baf <sfabian200@gmail.com>
Co-authored-by: Narr-the-Reg <juangerman-13@hotmail.com>
2021-09-18 23:22:00 +02:00
german77
5798537ce4
input_common: Enable steam controllers and 8 player support
2021-09-10 00:58:12 -05:00
german77
4bc3c788f5
input_common: Add alternative string for joycons
2021-09-06 22:20:19 -05:00
german77
2a2f0bfe9e
input_common: Disable sdl raw input mode
2021-08-12 13:17:07 -05:00
german77
48b6d41f1b
input_common: Improve SDL joystick and hide toggle option
2021-08-07 23:11:23 -05:00
Rodrigo Locatti
d4cab35533
input_common: Fix data race on GC implementation
2021-08-07 16:46:26 -05:00
bunnei
dff438e219
Merge pull request #6654 from german77/custom_threshold
...
input_common: Make button threshold customizable
2021-07-21 20:31:33 -04:00
bunnei
29fb110049
Merge pull request #6649 from german77/toggle_sdl
...
input_common: Support SDL toggle buttons
2021-07-20 20:35:20 -04:00
Nicolas Jallamion
6573ff64b4
input/sdl_impl: fix rumble support on DualSense. ( #6683 )
...
- value return can be different 0, is not error is normal, error is only -1.
2021-07-20 04:00:07 -04:00
bunnei
ffc78ce9c1
Merge pull request #6652 from lat9nq/cmd-vulkan-fixes
...
yuzu-cmd: Linux Vulkan fixes
2021-07-19 20:54:03 -04:00
german77
14d5202da6
input_common: Fix mouse panning behaivour
2021-07-16 18:57:29 -05:00
lat9nq
f785933125
sdl_impl, emu_window: Remove clang ignore
...
Fixed upstream by
libsdl-org/SDL@25fc40b0bd
2021-07-16 15:43:12 -04:00
german77
240019feca
input_common: Make button threshold customizable
2021-07-15 23:56:57 -05:00