Lioncash
c73ebb7d89
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
7347d2e33f
Merge pull request #7575 from lioncash/input
...
input_engine: Minor object churn cleanup
2021-12-13 16:50:54 -08:00
Lioncash
f63a50ce9d
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
bac72cecf9
tas_input: Remove unnecessary semicolon
...
Resolves a -Wextra-semi warning
2021-12-13 11:45:19 -05:00
Lioncash
6a9fe940d2
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
8b6137eb79
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
4284fe0d78
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
c12653670c
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
4dce3a6cf4
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
b2c94d8cd4
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
f1ff42541a
tas_input: Amend -Wdocumentation warnings
...
Parameters shouldn't have the colon by their name.
2021-12-13 10:49:11 -05:00
Lioncash
a82bb17b08
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
71467b1383
input_engine: Fix typo in TriggerOnAxisChange() parameter name
2021-12-13 10:21:37 -05:00
Lioncash
e609218c0f
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
14f7f35957
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
e7c5737e2e
input_engine: Remove left-over namespace qualifiers
...
These types are part of the InputCommon namespace.
2021-12-13 09:57:51 -05:00
Lioncash
f8db0a76af
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
190cfc5997
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
e0e9f98fc6
input_engine: std::move InputIdentifier in SetCallback()
...
Allows avoiding std::function allocations.
2021-12-13 09:23:23 -05:00
Lioncash
cd45635f56
input_engine: Pass LedStatus by const reference
...
Avoids copies where reasonably applicable
2021-12-13 09:20:58 -05:00
Lioncash
f41c22d30f
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
54e164d9de
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
d62545828a
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
7e34562d34
input_engine: Remove unnecessary semi-colons
...
Silences -Wextra-semi warnings
2021-12-13 08:53:01 -05:00
Lioncash
caae5d3868
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
48537c07cd
input_common: Fix error with thread name
2021-11-29 22:03:47 -05:00
vperus
e899505921
Revert of 1dabf6d
...
Caused worker_thread to be stuck in Stage1Completed state until job's destruction.
2021-11-29 16:37:11 +02:00
vperus
bd95c199bc
[input_common] Add completion test for CalibrationConfigurationJob
2021-11-29 16:33:12 +02:00
Narr the Reg
7b56b2cab6
input_common: Fully implement UDP controllers
2021-11-26 15:46:36 -06:00
german77
b8b849dc2e
input_common: Move button names to the frontend
2021-11-24 20:30:28 -06:00
german77
bc9641614d
input_common: Fix SDL controller with inverted axis
2021-11-24 20:30:28 -06:00
german77
30de38ee7f
kraken: Address comments from review
...
Fix compiler bug
2021-11-24 20:30:28 -06:00
german77
25521cd948
core/hid: Improve accuary of mouse implementation
2021-11-24 20:30:28 -06:00
german77
dfb63175d1
core/hid: Fully implement native mouse
2021-11-24 20:30:28 -06:00
german77
6032358402
input_common: Allow keyboard to be backwards compatible
2021-11-24 20:30:28 -06:00
german77
ebfe40dec8
core/hid: Improve accuracy of the keyboard implementation
2021-11-24 20:30:28 -06:00
german77
94c972fb36
input_common: Fix motion from 3 axis
2021-11-24 20:30:27 -06:00
german77
a4cdafed54
core/hid: Prevent Emulated controller from flapping with multiple inputs devices
2021-11-24 20:30:27 -06:00
german77
93997b234f
core/hid: Fully emulate motion from button
2021-11-24 20:30:27 -06:00
german77
4736326a05
second commit lion review
2021-11-24 20:30:26 -06:00
german77
a8852024b6
settings: Fix Debug controller type options
2021-11-24 20:30:26 -06:00
german77
9f91335a71
kraken: Address comments from review
...
start lion review
2021-11-24 20:30:26 -06:00
german77
f63c6fce6d
input_common: Revert deleted TAS functions
2021-11-24 20:30:26 -06:00
german77
254d133be2
input_common: Fix GC adapter initialization
...
Fix GC controller
2021-11-24 20:30:26 -06:00
german77
3cd0dd4227
input_common: Fix UDP uuid
2021-11-24 20:30:26 -06:00
german77
124404e756
input_common: Add multiple vibration curves
2021-11-24 20:30:26 -06:00
german77
012691087a
core/hid: Rework battery mappings
2021-11-24 20:30:26 -06:00
german77
ae6ba2c8bd
input_common: Add manual update options to input devices
2021-11-24 20:30:26 -06:00
german77
d1bac9024d
settings: Fix mouse and keyboard mappings
2021-11-24 20:30:25 -06:00
german77
b3f59b4407
kraken: Address comments from review
...
review fixes
2021-11-24 20:30:25 -06:00
german77
8ea02d19a1
service/hid: Fix gesture input
2021-11-24 20:30:25 -06:00
german77
6774c7988b
configuration: Migrate controller settings to emulated controller
2021-11-24 20:30:25 -06:00
german77
6c7814bc9c
core/hid: Fix rumble too strong at 1%
2021-11-24 20:30:24 -06:00
german77
00f654cd22
core/hid: Only signal when needed
2021-11-24 20:30:24 -06:00
german77
0292fe0198
kraken: Fix errors from rebase and format files
2021-11-24 20:30:24 -06:00
german77
66cf94709a
core/hid: Add output devices
2021-11-24 20:30:24 -06:00
german77
547a1e6dc9
input_common: Rewrite main and add the new drivers
2021-11-24 20:30:23 -06:00
german77
4fc8607f61
input_common: Remove obsolete files
2021-11-24 20:30:23 -06:00
german77
9a108578ed
input_common: Rewrite SDL
2021-11-24 20:30:23 -06:00
german77
13413c2290
input_common: Rewrite udp client
2021-11-24 20:30:22 -06:00
german77
ec744b3b04
input_common: Rewrite tas input
2021-11-24 20:30:22 -06:00
german77
78a8ed6290
input_common: Rewrite gc_adapter
2021-11-24 20:30:22 -06:00
german77
86a57fb096
input_common: Rewrite touch
2021-11-24 20:30:22 -06:00
german77
280342cd0a
input_common: Rewrite mouse
2021-11-24 20:30:22 -06:00
german77
00d3c058c5
input_common: Rewrite keyboard
2021-11-24 20:30:22 -06:00
german77
1d0e9b62da
input_common: Move touch and analog from button. Move udp protocol
2021-11-24 20:30:22 -06:00
german77
783c01771a
input_common: Create input poller and mapping
2021-11-24 20:30:22 -06:00
german77
312dd2fb89
input_common: Create input_engine
2021-11-24 20:30:22 -06:00
Fernando S
0b63955efe
Revert "input_common: Fix data race on GC implementation"
2021-10-23 23:32:16 +02:00
Fernando S
8eda2922b2
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
1dabf6d025
input_common: Fix VS2022 compilation errors
2021-10-20 01:21:59 -04:00
german77
cfa3acd4a5
input_common/sdl: Fix joystick range
2021-10-11 01:03:01 -05:00
bunnei
ceafd4f92c
Merge pull request #6979 from german77/joycon_name
...
input_common: Add alternative string for joycons
2021-10-02 02:58:25 -07:00
ameerj
d7977be416
general: Update style to clang-format-12
2021-09-24 15:52:05 -04:00
german77
1b060a47b2
UI: Relocate tas menu and add brief description
2021-09-18 23:23:03 +02:00
german77
d71f067db8
input_common/tas: Document the main class
2021-09-18 23:22:48 +02:00
german77
d552f84322
input_common/tas: Add swap controller
2021-09-18 23:22:42 +02:00
german77
368c9db4ee
input_common/tas: overwrite file dialog
2021-09-18 23:22:42 +02:00
MonsterDruide1
1b67085cda
input_common/tas: Fallback to simple update
2021-09-18 23:22:30 +02:00
german77
bba1ab83d6
config: Move TAS options to it's own menu
2021-09-18 23:22:30 +02:00
MonsterDruide1
cce0d58312
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
31068a63a9
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
0cea589993
input_common: Enable steam controllers and 8 player support
2021-09-10 00:58:12 -05:00
german77
94028da35e
input_common: Add alternative string for joycons
2021-09-06 22:20:19 -05:00
german77
134a2c23ac
input_common: Disable sdl raw input mode
2021-08-12 13:17:07 -05:00
german77
32e0572a68
input_common: Improve SDL joystick and hide toggle option
2021-08-07 23:11:23 -05:00
Rodrigo Locatti
84bdc6969f
input_common: Fix data race on GC implementation
2021-08-07 16:46:26 -05:00
bunnei
18a787b357
Merge pull request #6654 from german77/custom_threshold
...
input_common: Make button threshold customizable
2021-07-21 20:31:33 -04:00
bunnei
def3f59ed9
Merge pull request #6649 from german77/toggle_sdl
...
input_common: Support SDL toggle buttons
2021-07-20 20:35:20 -04:00
Nicolas Jallamion
d417596f27
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
40a1066bf7
Merge pull request #6652 from lat9nq/cmd-vulkan-fixes
...
yuzu-cmd: Linux Vulkan fixes
2021-07-19 20:54:03 -04:00
german77
0fb8912834
input_common: Fix mouse panning behaivour
2021-07-16 18:57:29 -05:00
lat9nq
7a30ae6845
sdl_impl, emu_window: Remove clang ignore
...
Fixed upstream by
libsdl-org/SDL@25fc40b0bd
2021-07-16 15:43:12 -04:00
german77
9e0f89e081
input_common: Make button threshold customizable
2021-07-15 23:56:57 -05:00
bunnei
24f798804c
Merge pull request #6579 from ameerj/float-settings
...
settings: Eliminate usage of float-point setting values
2021-07-15 18:03:11 -04:00
german77
f098c2163b
input_common: Support SDL toggle buttons
2021-07-15 14:31:58 -05:00
german77
77db68f9e3
input_common: Fix build with sdl disabled
2021-07-10 20:02:02 -05:00
ameerj
4e2d71a8ce
configure_input: Use u8 for mouse sensitivity
2021-07-08 23:24:31 -04:00
Ameer J
60e29dd3b0
Merge pull request #6539 from lat9nq/default-setting
...
general: Move most settings' defaults and labels into their definition
2021-07-08 14:46:31 -04:00
lat9nq
d9109a708b
general: Code formatting improvements
...
Slight improvements to readability.
Dropped suggestions for string_view (settings.h:101), pass by value
(settings.h:82), reverting double to a float (config.cpp:316), and other
smaller ones, some out of scope.
Addresses review feedback.
Co-authored-by: Ameer J <52414509+ameerj@users.noreply.github.com>
2021-07-08 14:07:10 -04:00