summaryrefslogtreecommitdiffstats
path: root/src/input_common (follow)
Commit message (Collapse)AuthorAgeFilesLines
* android: Implement amiibo reading from nfc tagNarr the Reg2023-06-032-4/+24
|
* android: Add motion sensorNarr the Reg2023-06-032-1/+27
|
* input_common: rename PAGE_SIZE to avoid conflict121011112023-05-301-3/+3
| | | | See also: https://github.com/yuzu-emu/yuzu/issues/8779
* Merge pull request #10396 from german77/amiibo_writebunnei2023-05-256-62/+376
|\ | | | | input_common: Implement amiibo writing
| * input_common: Implement amiibo writtingNarr the Reg2023-05-226-62/+376
| |
* | input_common: Map motion with relative values not absolute onesgerman772023-05-201-4/+7
|/
* input_common: Fix pro controller amiibo supportNarr the Reg2023-05-176-103/+70
|
* input_common: Make amiibo scanning less demandinggerman772023-05-143-4/+13
|
* Merge pull request #10119 from marius851000/improved_non_hd_feebackNarr the Reg2023-05-101-6/+29
|\ | | | | Attempt at improving HD Rumble emulation
| * Improve emulation of HD Rumblemarius david2023-05-051-6/+29
| |
* | input_common: Fix nfc detection for joyconsgerman772023-05-094-19/+21
| |
* | core: hid: Update motion on a better placegerman772023-05-081-1/+1
| |
* | Merge pull request #10180 from german77/debugbunnei2023-05-071-2/+0
|\ \ | | | | | | input_common: Revert debugging changes
| * | input_common: Revert debugging changesgerman772023-05-071-2/+0
| | |
* | | Merge pull request #10174 from german77/motriodbunnei2023-05-071-0/+3
|\ \ \ | |/ / |/| | input_common: Add experimental motion to button
| * | input_common: Add experimental motion to buttongerman772023-05-061-0/+3
| |/
* / input_common: Add property to invert an axis buttonNarr the Reg2023-05-062-0/+3
|/
* input_common: minor fix to mouse movementValeri2023-04-141-1/+1
|
* input_common: sdl: Only send last vibration commandgerman772023-03-131-1/+16
|
* general: fix spelling mistakesLiam2023-03-1211-16/+16
|
* Merge pull request #9906 from german77/metroid2bunnei2023-03-082-9/+19
|\ | | | | input_common: Increase mouse sensitivity range
| * input_common: Increase mouse sensitivity rangegerman772023-03-082-9/+19
| |
* | input_common: Minor typo issues (#9922)Narr the Reg2023-03-087-47/+47
| |
* | input_common: joycon: Add stick input from passive reportsgerman772023-03-053-32/+84
|/
* cmake: use correct boost imported targetsAlexandre Bouvier2023-02-281-1/+1
|
* input_common: Implement dedicated motion from mouseNarr the Reg2023-02-223-24/+85
|
* input_common: Split mouse input into individual devicesNarr the Reg2023-02-163-24/+85
|
* remove static from pointer sized or smaller types for aesthetics, change constexpr static to static constexpr for consistencyarades792023-02-1411-35/+35
| | | | Signed-off-by: arades79 <scravers@protonmail.com>
* add static lifetime to constexpr values to force compile time evaluation where possiblearades792023-02-1411-35/+35
| | | | Signed-off-by: arades79 <scravers@protonmail.com>
* input_common: Reintroduce custom pro controller supportNarr the Reg2023-02-104-4/+67
|
* input_common: Simplify stick from buttonNarr the Reg2023-02-021-32/+13
|
* Merge pull request #9696 from german77/please_forgive_me_for_this_sinbunnei2023-02-011-12/+18
|\ | | | | input_common: Implement turbo buttons
| * input_common: Implement turbo buttonsgerman772023-02-011-12/+18
| |
* | input_common: joycon: Remove Magic numbers from common protocolNarr the Reg2023-01-309-154/+221
| |
* | input_common: joycon: Fill missing enum dataNarr the Reg2023-01-306-41/+53
|/
* Move to Clang Format 15Levi Behunin2023-01-301-2/+2
| | | | | | Depends on https://github.com/yuzu-emu/build-environments/pull/69 clang-15 primary run
* Merge pull request #9689 from german77/joycon-calibrationbunnei2023-01-296-114/+215
|\ | | | | input_common: joycon: Remove magic numbers from calibration protocol
| * input_common: joycon: Replace ReadSPI vector with spanNarr the Reg2023-01-283-20/+26
| |
| * input_common: joycon: Remove magic numbers from calibration protocolNarr the Reg2023-01-286-107/+202
| |
* | Merge pull request #9677 from Morph1984/sleep-onebunnei2023-01-282-5/+6
|\ \ | |/ |/| polyfill_thread: Implement StoppableTimedWait
| * input_common: Make use of StoppableTimedWaitMorph2023-01-252-5/+6
| |
* | Merge pull request #9683 from german77/high_power_joyconbunnei2023-01-264-0/+21
|\ \ | | | | | | input_common: Implement SetLowPowerMode and TriggersElapsed
| * | input_common: Implement SetLowPowerMode and TriggersElapsed for the joycon driverNarr the Reg2023-01-264-0/+21
| | |
* | | Merge pull request #9676 from german77/revert-stick-rangeliamwhite2023-01-251-2/+7
|\| | | |/ |/| Revert #9617 and fix it on input_common
| * Revert 9617 and fix it on input_commonNarr the Reg2023-01-251-2/+7
| |
* | input_common: add missing header for libc++ after 340f15d1fa79Jan Beich2023-01-251-0/+1
|/ | | | | | | | | | | | | | | src/input_common/drivers/joycon.cpp:187:26: error: no member named 'find_if' in namespace 'std::ranges' std::ranges::find_if(left_joycons, [](auto& device) { return !device->IsConnected(); }); ~~~~~~~~~~~~~^ src/input_common/drivers/joycon.cpp:193:54: error: no member named 'find_if' in namespace 'std::ranges' const auto unconnected_device = std::ranges::find_if( ~~~~~~~~~~~~~^ src/input_common/drivers/joycon.cpp:393:51: error: no member named 'find_if' in namespace 'std::ranges' const auto matching_device = std::ranges::find_if( ~~~~~~~~~~~~~^ src/input_common/drivers/joycon.cpp:402:51: error: no member named 'find_if' in namespace 'std::ranges' const auto matching_device = std::ranges::find_if( ~~~~~~~~~~~~~^
* Merge pull request #9492 from german77/joycon_releaseliamwhite2023-01-2435-33/+5013
|\ | | | | Input_common: Implement custom joycon driver v2
| * input_common: Fix joycon mappingsgerman772023-01-202-57/+53
| |
| * input_common: Address byte reviewgerman772023-01-2016-243/+220
| |
| * input_common: Drop Pro controller support from custom drivergerman772023-01-204-43/+4
| |
| * input_common: Fix issue where ring and irs are enabled at the same timegerman772023-01-203-12/+23
| |
| * input_common: Implement joycon ir cameraNarr the Reg2023-01-2012-14/+580
| |
| * yuzu: Add ring controller test buttongerman772023-01-203-17/+32
| |
| * input_common: Use DriverResult on all enginesgerman772023-01-2015-73/+75
| |
| * Address review commentsgerman772023-01-2013-42/+42
| |
| * core: hid: Fix input regressionsNarr the Reg2023-01-202-4/+1
| |
| * input_common: Implement joycon nfcgerman772023-01-208-12/+542
| |
| * input_common: Add dual joycon supportNarr the Reg2023-01-201-24/+101
| |
| * input_common: Add support for joycon ring controllerNarr the Reg2023-01-209-4/+272
| |
| * input_common: Add support for joycon input reportsNarr the Reg2023-01-208-100/+798
| |
| * input_common: Use calibration from joyconNarr the Reg2023-01-205-0/+231
| |
| * input_common: Add support for joycon generic functionsNarr the Reg2023-01-205-3/+310
| |
| * input_common: Add joycon low level functionsNarr the Reg2023-01-203-0/+434
| |
| * core: hid: Enable pulling color data from controllersNarr the Reg2023-01-205-1/+131
| |
| * input_common: Disable SDL driver with switch controllersNarr the Reg2023-01-202-3/+20
| |
| * input_common: Initial skeleton for custom joycon driverNarr the Reg2023-01-207-0/+1763
| |
* | input_common: reset sdl motion if data is invalidgerman772023-01-181-19/+35
|/
* Merge pull request #9605 from german77/mouse_mappingbunnei2023-01-111-1/+1
|\ | | | | yuzu: Read mouse scroll
| * yuzu: Read mouse wheel inputNarr the Reg2023-01-111-1/+1
| |
* | Merge pull request #9565 from MonsterDruide1/tas-multiplayer-lengthsliamwhite2023-01-102-4/+10
|\ \ | |/ |/| TAS: Show all script lengths for multiplayer
| * TAS: Show all script lengths for multiplayerMonsterDruide12023-01-072-4/+10
| |
* | input_common: Create an update engineNarr the Reg2023-01-062-6/+37
|/
* cmake: make libusb optionalLiam2022-12-282-7/+32
|
* Merge pull request #9471 from german77/inputliamwhite2022-12-192-206/+83
|\ | | | | input_common: Cleanup project
| * input_common: Cleanup projectgerman772022-12-182-206/+83
| |
* | bootmanager: Use proper camera sizegerman772022-12-181-0/+1
|/
* Merge pull request #9456 from german77/virtual_gamepadbunnei2022-12-185-0/+183
|\ | | | | input_common: Add virtual gamepad
| * input_common: Add virtual gamepadgerman772022-12-175-0/+183
| |
* | camera: Use pre-allocated vector for camera dataameerj2022-12-172-2/+4
|/ | | | And avoid an unnecessary copy
* input_common: Filter SDL GUIDNarr the Reg2022-12-121-0/+2
|
* Merge pull request #9391 from abouvier/cmake-sdlliamwhite2022-12-061-5/+1
|\ | | | | cmake: use sdl2 imported target
| * cmake: use sdl2 imported targetAlexandre Bouvier2022-12-061-5/+1
| |
* | cmake: prefer system libusbAlexandre Bouvier2022-12-061-3/+1
| |
* | Merge pull request #9369 from german77/mifareliamwhite2022-12-062-16/+29
|\ \ | |/ |/| service: nfc: Implement mifare service
| * input_common: Allow mifare filesNarr the Reg2022-12-052-16/+29
| |
* | Merge pull request #9300 from ameerj/pchliamwhite2022-12-032-0/+11
|\ \ | | | | | | CMake: Use precompiled headers to improve compile times
| * | CMake: Consolidate common PCH headersameerj2022-12-011-7/+1
| | |
| * | CMake: Use precompiled headersameerj2022-11-302-0/+17
| | |
* | | Merge pull request #9289 from liamwhite/fruit-companyliamwhite2022-12-034-3/+3
|\ \ \ | |_|/ |/| | general: fix compile for Apple Clang
| * | general: fix compile for Apple ClangLiam2022-11-234-3/+3
| | |
* | | Merge pull request #9349 from lat9nq/cmake-322Morph2022-11-301-1/+5
|\ \ \ | |_|/ |/| | CMakeLists: Bump minimum required CMake version to 3.22
| * | CMake: Directly link to SDL2-static when appropriatelat9nq2022-11-291-1/+5
| | | | | | | | | | | | | | | Trying to be lazy and alias SDL2 to SDL2-static causes issues in later versions of CMake. Just use the same condition to tell which one to use.
* | | Merge pull request #9322 from german77/pump_eventsliamwhite2022-11-304-10/+21
|\ \ \ | |/ / |/| | input_common: Pump SDL events from main thread
| * | input_common: Pump sdl events from main threadgerman772022-11-274-10/+21
| |/
* | Merge pull request #9338 from lioncash/propertiesMorph2022-11-282-2/+18
|\ \ | | | | | | input_common/helpers: Mark analog property structs members as static constexpr
| * | input_common/helpers: Mark analog property structs members as static constexprLioncash2022-11-282-2/+18
| | | | | | | | | | | | | | | These are const with no dependency on any other data members, so we can make these static constexpr to reduce the overall object size.
* | | common/input: Add helpers functions for creating input and output devicesLioncash2022-11-283-71/+49
|/ / | | | | | | | | Avoids the redundancy of needing to explictly specify the common namespace and the type.
* / yuzu-cmd: Fix input callback crash on closegerman772022-11-271-0/+10
|/
* Merge pull request #9238 from german77/cabinet_appletbunnei2022-11-203-1/+19
|\ | | | | service: am: Implement cabinet applet
| * general: Address review commentsgerman772022-11-142-2/+2
| |
| * input_common: Add amiibo applet functionsgerman772022-11-133-1/+19
| |
* | core: hid: Implement true multitouch supportNarr the Reg2022-11-192-17/+10
|/
* Merge pull request #9107 from german77/gidoly_rulesliamwhite2022-10-256-13/+78
|\ | | | | input_common: cache vibration tests
| * input_common: cache vibration testsgerman772022-10-216-13/+78
| |
* | CMakeLists: Remove redundant warningsMorph2022-10-221-2/+0
| | | | | | | | These warnings are already included in /W3.
* | CMakeLists: Treat MSVC warnings as errorsMorph2022-10-221-1/+0
| |
* | general: Enforce C4800 everywhere except in video_coreMorph2022-10-223-11/+12
| |
* | CMakeLists: Remove all redundant warningsMorph2022-10-221-5/+0
|/ | | | These are already explicitly or implicitly set in src/CMakeLists.txt
* input_common: have an unique vector in callback statusgerman772022-10-091-2/+8
|
* common: remove "yuzu:" prefix from thread namesLiam2022-10-043-5/+5
|
* service: nfp: address commentsgerman772022-10-024-5/+6
|
* input_common: Enable virtual amiibo drivergerman772022-10-024-0/+102
|
* input_common: Create virtual amiibo drivergerman772022-10-025-0/+217
|
* Merge pull request #8864 from german77/toggle_analogbunnei2022-09-101-0/+1
|\ | | | | input_common: Add support for analog toggle
| * input_common: Add support for analog toggleNarr the Reg2022-09-061-0/+1
| |
* | input_common: sdl: Always check for motion on reconnectNarr the Reg2022-09-041-4/+7
|/
* chore: make yuzu REUSE compliantAndrea Pappacoda2022-07-2714-37/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [REUSE] is a specification that aims at making file copyright information consistent, so that it can be both human and machine readable. It basically requires that all files have a header containing copyright and licensing information. When this isn't possible, like when dealing with binary assets, generated files or embedded third-party dependencies, it is permitted to insert copyright information in the `.reuse/dep5` file. Oh, and it also requires that all the licenses used in the project are present in the `LICENSES` folder, that's why the diff is so huge. This can be done automatically with `reuse download --all`. The `reuse` tool also contains a handy subcommand that analyzes the project and tells whether or not the project is (still) compliant, `reuse lint`. Following REUSE has a few advantages over the current approach: - Copyright information is easy to access for users / downstream - Files like `dist/license.md` do not need to exist anymore, as `.reuse/dep5` is used instead - `reuse lint` makes it easy to ensure that copyright information of files like binary assets / images is always accurate and up to date To add copyright information of files that didn't have it I looked up who committed what and when, for each file. As yuzu contributors do not have to sign a CLA or similar I couldn't assume that copyright ownership was of the "yuzu Emulator Project", so I used the name and/or email of the commit author instead. [REUSE]: https://reuse.software Follow-up to 01cf05bc75b1e47beb08937439f3ed9339e7b254
* Address first part of review commentsFearlessTobi2022-07-251-1/+1
|
* input_common: Add camera drivergerman772022-07-249-4/+267
|
* input_common: sdl: lower vibration frequency and use it's own unique threadgerman772022-06-292-1/+10
|
* Merge pull request #8383 from Morph1984/shadow-of-the-pastMai2022-06-151-1/+0
|\ | | | | yuzu: Make variable shadowing a compile-time error
| * CMakeLists: Make variable shadowing a compile-time errorMorph2022-06-141-1/+0
| | | | | | | | Now that the entire project is free of variable shadowing, we can enforce this as a compile time error to prevent any further introduction of this logic bug.
* | input_common: Replace usage of string guid to common uuidNarr the Reg2022-06-072-33/+38
|/
* Merge pull request #8374 from german77/asnycvibrationsbunnei2022-05-282-2/+33
|\ | | | | input_common: Make vibration request async
| * input_common: Make vibration request asyncNarr the Reg2022-05-232-2/+33
| |
* | input_common: touch: Rewrite touch driver to support multiple touch pointsgerman772022-05-232-31/+110
|/
* Merge pull request #8272 from german77/stick_rangebunnei2022-05-031-1/+1
|\ | | | | yuzu: config: Improve analog stick mapping
| * yuzu: config: Set default range to 95%Narr the Reg2022-04-271-1/+1
| |
* | Revert "gc_adapter: fix libusb import on GCC11.2"Morph2022-05-021-4/+0
| | | | | | | | This reverts commit f72f4377f4cbbe45e5a43bb67c7245737ffa135f.
* | gc_adapter: fix libusb import on GCC11.2Levi Behunin2022-05-021-0/+4
| | | | | | | | Just to silence an intermittent error. GCC11.2 complains cannot find 'libusb.h' during a fresh build.
* | chore: add missing SPDX tagsAndrea Pappacoda2022-04-282-6/+4
|/ | | | Follow-up to 99ceb03a1cfcf35968cab589ea188a8c406cda52
* general: Convert source file copyright comments over to SPDXMorph2022-04-2314-42/+28
| | | | | 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.
* Merge pull request #7978 from german77/sidewaybunnei2022-04-229-0/+108
|\ | | | | input_common: Map sticks correctly when mapped sideways
| * input_common: Map sticks correctly when mapped sidewaysNarr the Reg2022-03-229-0/+108
| |
* | input_common: Ignore boost uninitialized local variableNarr the Reg2022-04-211-0/+9
| |
* | input_common: Replace lock_guard with scoped_lockMerry2022-04-072-29/+29
|/
* input_common: Reduce unused includesameerj2022-03-204-4/+0
|
* Merge pull request #7859 from german77/battery_againbunnei2022-02-246-34/+27
|\ | | | | input_common: Remove battery duplicated struct and update every button press
| * input_common: Remove battery duplicated struct and update every button pressgerman772022-02-076-34/+27
| |
* | Merge pull request #7852 from Morph1984/new-uuidbunnei2022-02-1110-21/+21
|\ \ | | | | | | common: Revise and fix the UUID implementation
| * | general: Rename NewUUID to UUID, and remove the previous UUID implMorph2022-02-0510-24/+24
| | | | | | | | | | | | This completes the removal of the old UUID implementation.
| * | input/hid: Migrate to the new UUID implementationMorph2022-02-0512-37/+37
| |/
* / yuzu: Add auto center on right clickgerman772022-02-072-4/+4
|/
* Merge pull request #7839 from german77/batterybunnei2022-02-051-3/+2
|\ | | | | yuzu: ui: Improve battery symbols
| * yuzu: ui: Improve battery symbolsNarr the Reg2022-02-021-3/+2
| |
* | input_common: Remove unused core includeMorph2022-02-041-1/+0
| |
* | Merge pull request #7811 from german77/analog-modbunnei2022-02-031-4/+26
|\ \ | | | | | | input_common: Use attributes for analog range modifiers
| * | input_common: Use attributes for analog range modifiersgerman772022-01-311-4/+26
| |/
* / input_common: Add home and hard touch press buttons to UDP controllersgerman772022-01-302-3/+16
|/
* Merge pull request #7784 from german77/ds5Morph2022-01-291-2/+3
|\ | | | | input_common: Add DS5 to HD rumble list
| * input_common: Add DS5 to HD rumble listNarr the Reg2022-01-271-2/+3
| |
* | Merge pull request #7770 from german77/motion-thresholdbunnei2022-01-281-4/+9
|\ \ | |/ |/| input_common: Add option to configure gyro threshold
| * input_common: Add option to configure gyro thresholdgerman772022-01-241-4/+9
| |
* | Merge pull request #7774 from lioncash/mappingMorph2022-01-255-13/+18
|\ \ | | | | | | input_common/main: Pass MappingData by const reference in callbacks
| * | input_common/input_engine: Ensure PadIdentifier UUIDs have a valid initial stateLioncash2022-01-241-1/+1
| | | | | | | | | | | | | | | The default constructor of a UUID instance doesn't initialize the underlying array.
| * | input_common/input_mapping: Simplify UUID validity checksLioncash2022-01-241-3/+3
| | | | | | | | | | | | | | | Makes the checks a little more intuitive to read and doesn't construct an extra UUID instance
| * | input_common/input_mapping: Add missing includesLioncash2022-01-242-1/+6
| | | | | | | | | | | | Ensures that the class always sees the types it needs.
| * | input_common/input_mapping: Remove const from return valueLioncash2022-01-244-4/+4
| | | | | | | | | | | | | | | Top-level const on a return by value can inhibit move semantics, and is unnecessary.
| * | input_common/input_mapping: Default constructorLioncash2022-01-241-1/+1
| | |
| * | input_common/main: Pass MappingData by const reference in callbacksLioncash2022-01-242-3/+3
| |/ | | | | | | Avoids creating unnecessary 168 byte copies per callback invocation.
* | input_common/udp_client: Replace deprecated from_string()/to_ulong() functionsLioncash2022-01-241-2/+2
| | | | | | | | These are deprecated and make_address variants and to_uint() should be used instead.
* | input_common/udp_client: Prevent unnecessary string copiesLioncash2022-01-242-4/+4
|/ | | | | We can also remove some redundant const on the return values, since these don't do anything
* Merge pull request #7735 from german77/udp_batterybunnei2022-01-222-0/+25
|\ | | | | input_common: Report battery for UDP controllers
| * input_common: Report battery for UDP controllersNarr the Reg2022-01-172-0/+25
| |
* | Merge pull request #7715 from gidoly/patch-4bunnei2022-01-191-2/+2
|\ \ | | | | | | Xbox controller default name nit pick
| * | Xbox controller default name nit pickgidoly2022-01-151-2/+2
| |/ | | | | Discord User moon lacer pointed us that official name is 'Xbox' not 'XBox'
* | Merge pull request #7725 from german77/mouse_in_motionbunnei2022-01-193-1/+47
|\ \ | | | | | | input_common: Reintroduce motion from mouse and use button names
| * | input_common: Reintroduce motion from mouse and use button namesgerman772022-01-173-1/+47
| |/
* | Merge pull request #7730 from v1993/patch-6Mai M2022-01-171-1/+1
|\ \ | | | | | | input_common: nitpick about SetHatButton usage
| * | input_common: nitpick about SetHatButton usageValeri2022-01-171-1/+1
| |/
* / input_common: fix copy-paste errorValeri2022-01-171-1/+1
|/ | | Found by static analysis with PVS-Studio.
* Change default name for ps controllersgidoly2022-01-151-0/+6
| | | | Minor nitpick Code is from narr
* Merge pull request #7633 from german77/hotkeysbunnei2022-01-113-4/+7
|\ | | | | yuzu: Add controller hotkeys
| * yuzu: Add controller hotkeysgerman772022-01-073-4/+7
| |
* | Merge pull request #7687 from german77/tas_handleMorph2022-01-101-7/+24
|\ \ | | | | | | input_common: Handle errors on TAS scripts
| * | input_common: Handle errors on TAS scriptsgerman772022-01-081-7/+24
| |/
* | Merge pull request #7682 from german77/udp_fixbunnei2022-01-081-8/+16
|\ \ | | | | | | input_common: Fix UDP controller mappings
| * | input_common: Fix udp motion not automapping to both sidesgerman772022-01-071-8/+16
| |/
* / input_common: Use accelerometer data for mappinggerman772022-01-071-2/+10
|/
* Merge pull request #7302 from VPeruS/check-deadlockbunnei2021-12-182-43/+52
|\ | | | | [input_common] Fixed thread hang
| * [input_common] Move variable declaration closer to usagevperus2021-12-171-2/+2
| | | | | | | | | | | | | | | | 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.
| * Revert of b01aa72vperus2021-11-291-35/+39
| | | | | | | | Caused worker_thread to be stuck in Stage1Completed state until job's destruction.
| * [input_common] Add completion test for CalibrationConfigurationJobvperus2021-11-291-8/+13
| |
* | Merge pull request #7581 from lioncash/input-ifaceNarr the Reg2021-12-153-55/+70
|\ \ | | | | | | common/input: Avoid numerous large copies of CallbackStatus
| * | common/input: Avoid numerous large copies of CallbackStatusLioncash2021-12-142-35/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | input_poller: Add missing override specifiersLioncash2021-12-141-20/+19
| | |
* | | Merge pull request #7577 from v1993/patch-2Narr the Reg2021-12-141-3/+4
|\ \ \ | | | | | | | | input/SDL: Update SDL hints
| * | | input/SDL: Update SDL hintsValeri2021-12-141-3/+4
| | | | | | | | | | | | | | | | | | | | 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.
* | | | input_mapping: Amend specification of parametersLioncash2021-12-141-14/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | param tags are supposed to specify the parameter name without any quoting. Silences several -Wdocumentation warnings.
* | | | input_poller: Remove several unnecessary @param tagsLioncash2021-12-141-106/+106
| |/ / |/| | | | | | | | | | | | | | 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.
* | | Merge pull request #7575 from lioncash/inputbunnei2021-12-1417-110/+107
|\ \ \ | | | | | | | | input_engine: Minor object churn cleanup
| * | | input_engine: Fix typo in TriggerOnAxisChange() parameter nameLioncash2021-12-131-1/+1
| | | |
| * | | input_engine: Simplify PreSet* family of functionsLioncash2021-12-132-24/+14
| | | | | | | | | | | | | | | | | | | | We can make use of try_emplace() to insert values only if they don't already exist.
| * | | input_engine: Avoid redundant map lookupsLioncash2021-12-131-16/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | input_engine: Remove left-over namespace qualifiersLioncash2021-12-131-3/+3
| | | | | | | | | | | | | | | | These types are part of the InputCommon namespace.
| * | | input_engine: Iterate by reference rather than by value where applicableLioncash2021-12-131-10/+10
| | | | | | | | | | | | | | | | | | | | Avoids creating copies of several object instances (some of which being over 100 bytes in size).
| * | | input_engine: Take BasicMotion by const reference with SetMotion() and TriggerOnMotionChange()Lioncash2021-12-133-6/+7
| | | | | | | | | | | | | | | | Copies the BasicMotion instance once instead of twice.
| * | | input_engine: std::move InputIdentifier in SetCallback()Lioncash2021-12-131-1/+1
| | | | | | | | | | | | | | | | Allows avoiding std::function allocations.
| * | | input_engine: Pass LedStatus by const referenceLioncash2021-12-132-2/+2
| | | | | | | | | | | | | | | | Avoids copies where reasonably applicable
| * | | input_engine: Pass VibrationStatus by const reference in SetRumble()Lioncash2021-12-136-8/+10
| | | | | | | | | | | | | | | | Avoids creating copies of the struct where not necessary.
| * | | input_engine: std::move engine name where applicableLioncash2021-12-1315-29/+29
| | | | | | | | | | | | | | | | | | | | We can allow the name to be moved into, allowing allocations to be avoided.
| * | | input_engine: Remove callback clearing in constructorLioncash2021-12-131-3/+1
| | | | | | | | | | | | | | | | | | | | The callback map is a member variable, so this will always be empty on initial construction.
| * | | input_engine: Remove unnecessary semi-colonsLioncash2021-12-131-6/+6
| | | | | | | | | | | | | | | | Silences -Wextra-semi warnings
| * | | input_engine: Remove unnecessary returnLioncash2021-12-131-3/+1
| |/ / | | | | | | | | | This is a void function, so it doesn't need this.
* | | tas_input: Avoid minor copies in Read/WriteCommandButtons()Lioncash2021-12-131-2/+2
| | | | | | | | | | | | We don't need to copy the whole pair
* | | tas_input: Remove unnecessary semicolonLioncash2021-12-131-1/+1
| | | | | | | | | | | | Resolves a -Wextra-semi warning
* | | tas_input: Execute clear() even if emptyLioncash2021-12-131-3/+2
| | | | | | | | | | | | | | | 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.
* | | tas_input: Remove unnecessary includesLioncash2021-12-131-2/+2
| | | | | | | | | | | | | | | Gets rid of indirect includes and includes only what the interface needs.
* | | tas_input: std::move strings into vectorLioncash2021-12-131-21/+24
| | | | | | | | | | | | | | | 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.
* | | tas_input: Use istringstream over stringstreamLioncash2021-12-131-2/+2
| | | | | | | | | | | | | | | This is only using the input facilities, so we don't need to use the fully-fleged stringstream.
* | | tas_input: Use u8string_view instead of u8stringLioncash2021-12-132-6/+7
| | | | | | | | | | | | Same behavior, but without the potential for extra allocations.
* | | tas_input: Remove unused std::smatch variableLioncash2021-12-131-2/+0
| | | | | | | | | | | | This also means we can get rid of the dependency on <regex>
* | | tas_input: Amend -Wdocumentation warningsLioncash2021-12-132-28/+30
| | | | | | | | | | | | Parameters shouldn't have the colon by their name.
* | | tas_input: Make TasAxes enum an enum classLioncash2021-12-132-5/+14
|/ / | | | | | | | | Prevents these values from potentially clashing with anything in other headers.
* / input_common: Fix error with thread nameNarr the Reg2021-11-301-2/+1
|/
* input_common: Fully implement UDP controllersNarr the Reg2021-11-265-35/+334
|
* input_common: Move button names to the frontendgerman772021-11-2510-49/+55
|
* input_common: Fix SDL controller with inverted axisgerman772021-11-252-24/+8
|
* kraken: Address comments from reviewgerman772021-11-2512-26/+14
| | | | Fix compiler bug
* core/hid: Improve accuary of mouse implementationgerman772021-11-252-8/+14
|
* core/hid: Fully implement native mousegerman772021-11-252-6/+32
|
* input_common: Allow keyboard to be backwards compatiblegerman772021-11-256-26/+84
|
* core/hid: Improve accuracy of the keyboard implementationgerman772021-11-254-4/+68
|
* input_common: Fix motion from 3 axisgerman772021-11-251-0/+2
|
* core/hid: Prevent Emulated controller from flapping with multiple inputs devicesgerman772021-11-252-23/+12
|
* core/hid: Fully emulate motion from buttongerman772021-11-252-1/+22
|
* second commit lion reviewgerman772021-11-257-21/+21
|
* settings: Fix Debug controller type optionsgerman772021-11-255-49/+52
|
* kraken: Address comments from reviewgerman772021-11-2515-223/+254
| | | | start lion review
* input_common: Revert deleted TAS functionsgerman772021-11-252-18/+19
|
* input_common: Fix GC adapter initializationgerman772021-11-251-12/+12
| | | | Fix GC controller
* input_common: Fix UDP uuidgerman772021-11-252-1/+11
|
* input_common: Add multiple vibration curvesgerman772021-11-251-14/+19
|
* core/hid: Rework battery mappingsgerman772021-11-252-4/+37
|
* input_common: Add manual update options to input devicesgerman772021-11-253-0/+37
|
* settings: Fix mouse and keyboard mappingsgerman772021-11-254-1/+22
|
* kraken: Address comments from reviewgerman772021-11-254-5/+9
| | | | review fixes
* service/hid: Fix gesture inputgerman772021-11-252-2/+29
|
* configuration: Migrate controller settings to emulated controllergerman772021-11-251-0/+10
|
* core/hid: Fix rumble too strong at 1%german772021-11-251-1/+19
|
* core/hid: Only signal when neededgerman772021-11-255-23/+84
|
* kraken: Fix errors from rebase and format filesgerman772021-11-2510-27/+24
|
* core/hid: Add output devicesgerman772021-11-2511-29/+117
|
* input_common: Rewrite main and add the new driversgerman772021-11-252-49/+330
|
* input_common: Remove obsolete filesgerman772021-11-255-444/+0
|
* input_common: Rewrite SDLgerman772021-11-256-1757/+950
|
* input_common: Rewrite udp clientgerman772021-11-255-441/+54
|
* input_common: Rewrite tas inputgerman772021-11-255-840/+2
|
* input_common: Rewrite gc_adaptergerman772021-11-258-827/+848
|
* input_common: Rewrite touchgerman772021-11-253-0/+99
|
* input_common: Rewrite mousegerman772021-11-257-751/+217
|
* input_common: Rewrite keyboardgerman772021-11-256-488/+53
|
* input_common: Move touch and analog from button. Move udp protocolgerman772021-11-2510-132/+172
|
* input_common: Create input poller and mappinggerman772021-11-256-0/+1305
|
* input_common: Create input_enginegerman772021-11-252-0/+585
|
* Revert "input_common: Fix data race on GC implementation"Fernando S2021-10-232-120/+115
|
* Merge pull request #6515 from german77/gc_thread_safeFernando S2021-10-232-115/+120
|\ | | | | input_common: Fix data race on GC implementation
| * input_common: Fix data race on GC implementationRodrigo Locatti2021-08-072-115/+120
| |
* | input_common: Fix VS2022 compilation errorsameerj2021-10-201-39/+35
| |
* | input_common/sdl: Fix joystick rangegerman772021-10-111-3/+4
| |
* | Merge pull request #6979 from german77/joycon_namebunnei2021-10-021-2/+16
|\ \ | | | | | | input_common: Add alternative string for joycons
| * | input_common: Add alternative string for joyconsgerman772021-09-071-2/+16
| | |
* | | general: Update style to clang-format-12ameerj2021-09-241-2/+2
| | |
* | | UI: Relocate tas menu and add brief descriptiongerman772021-09-183-55/+83
| | |
* | | input_common/tas: Document the main classgerman772021-09-183-3/+112
| | |
* | | input_common/tas: Add swap controllergerman772021-09-183-18/+74
| | |
* | | input_common/tas: overwrite file dialoggerman772021-09-182-19/+6
| | |
* | | input_common/tas: Fallback to simple updateMonsterDruide12021-09-182-73/+33
| | |
* | | config: Move TAS options to it's own menugerman772021-09-183-91/+130
| | |
* | | core: Hacky TAS syncing & load pausingMonsterDruide12021-09-182-93/+107
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | input_common/tas: Base playback & recording systemMonsterDruide12021-09-187-0/+722
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | input_common: Enable steam controllers and 8 player supportgerman772021-09-102-7/+7
|/ /
* | input_common: Disable sdl raw input modegerman772021-08-121-0/+3
| |
* | input_common: Improve SDL joystick and hide toggle optiongerman772021-08-083-28/+68
|/
* Merge pull request #6654 from german77/custom_thresholdbunnei2021-07-221-3/+3
|\ | | | | input_common: Make button threshold customizable
| * input_common: Make button threshold customizablegerman772021-07-161-3/+3
| |
* | Merge pull request #6649 from german77/toggle_sdlbunnei2021-07-211-4/+51
|\ \ | | | | | | input_common: Support SDL toggle buttons
| * | input_common: Support SDL toggle buttonsgerman772021-07-151-4/+51
| | |
* | | input/sdl_impl: fix rumble support on DualSense. (#6683)Nicolas Jallamion2021-07-201-2/+2
| | | | | | | | | - value return can be different 0, is not error is normal, error is only -1.
* | | Merge pull request #6652 from lat9nq/cmd-vulkan-fixesbunnei2021-07-201-8/+0
|\ \ \ | | | | | | | | yuzu-cmd: Linux Vulkan fixes
| * | | sdl_impl, emu_window: Remove clang ignorelat9nq2021-07-161-8/+0
| | |/ | |/| | | | | | | | | | Fixed upstream by libsdl-org/SDL@25fc40b0bd44c484051064bc6b945ea9943f88dd
* / | input_common: Fix mouse panning behaivourgerman772021-07-171-1/+1
|/ /
* | Merge pull request #6579 from ameerj/float-settingsbunnei2021-07-161-1/+1
|\ \ | |/ |/| settings: Eliminate usage of float-point setting values
| * configure_input: Use u8 for mouse sensitivityameerj2021-07-091-1/+1
| |
* | input_common: Fix build with sdl disabledgerman772021-07-111-2/+2
|/
* Merge pull request #6539 from lat9nq/default-settingAmeer J2021-07-083-4/+5
|\ | | | | general: Move most settings' defaults and labels into their definition
| * general: Code formatting improvementslat9nq2021-07-081-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | 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>
| * core, input_common: Miscellaneous fixeslat9nq2021-06-291-1/+2
| | | | | | | | | | | | | | | | | | | | bcat: Fix settings access telemetry_session: Fix settings accesses So this is what I get for testing with the web service disabled. touch_from_button: Fix settings access for clang
| * general: Make most settings a BasicSettinglat9nq2021-06-283-5/+5
| | | | | | | | | | | | | | | | | | | | | | Creates a new BasicSettings class in common/settings, and forces setting a default and label for each setting that uses it in common/settings. Moves defaults and labels from both frontends into common settings. Creates a helper function in each frontend to facillitate reading the settings now with the new default and label properties. Settings::Setting is also now a subclass of Settings::BasicSetting. Also adds documentation for both Setting and BasicSetting.
* | CMakeLists: Treat -Wsign-compare as an error on GCC/ClangMorph2021-07-061-3/+0
| | | | | | | | Treats (un)signed comparison mismatches as errors to be consistent with MSVC
* | Merge pull request #6537 from Morph1984/warningsbunnei2021-07-063-26/+4
|\ \ | | | | | | general: Enforce multiple warnings in MSVC
| * | input_common: Remove #pragma warning directives for external headersMorph2021-06-282-14/+0
| | |
| * | input_common: Enforce C4242Morph2021-06-281-12/+4
| |/
* / input_common: Add missing modifier callback to analog from buttongerman772021-07-051-0/+1
|/
* Add missing includes (#6521)Chloe2021-06-242-0/+3
| | | | | * Add missing includes * Add array
* input_common/mouse_input: Fix data raceRodrigo Locatti2021-06-222-12/+10
| | | | Fix data race using std::jthread and std::stop_token.
* Merge pull request #6407 from lat9nq/fix-libusb-2bunnei2021-06-111-2/+1
|\ | | | | cmake: Use autotools for libusb linking generally on GNU, and cleanup
| * cmake: General improvements to libusb linkinglat9nq2021-06-031-2/+1
| | | | | | | | | | | | | | | | | | Delegates libusb external communication to externals/CMakeLists.txt Ensures an interface library `usb` for every pathway input_common just links to the `usb` library now externals/libusb/CMakeLists.txt sets variables to override SDL2's libusb finding Other minor cleanup
* | Merge pull request #6389 from german77/Analog_button_fixbunnei2021-06-042-73/+123
|\ \ | |/ |/| input_common: Analog button, use time based position
| * input_common: Analog button, use time based position instead of frequent updatesgerman772021-05-302-73/+123
| |
* | Merge pull request #6318 from german77/dualJoyconbunnei2021-06-012-60/+258
|\ \ | |/ |/| input_common: Add dual joycon support
| * input_common: Add dual joycon supportgerman772021-05-232-60/+258
| |
* | Merge pull request #6312 from german77/analogMappingbunnei2021-05-241-26/+28
|\ \ | |/ |/| input_common: Rewrite sdl analog mapping and fix controller disconnection crash
| * input_common: Fix crash when controller disconnectsgerman772021-05-151-1/+3
| |
| * input_common: Rewrite sdl analog mappinggerman772021-05-151-25/+25
| |
* | Merge pull request #6310 from german77/nanMotionbunnei2021-05-201-0/+23
|\ \ | | | | | | input_common: Sanitize motion data
| * | input_common: Sanitize motion datagerman772021-05-131-0/+23
| |/
* / input_common: Implement SDL motiongerman772021-05-154-3/+159
|/
* input_common: Release mouse buttons on out of focusgerman772021-05-032-1/+16
|
* Merge pull request #6243 from german77/GCresetOriginbunnei2021-04-302-2/+7
|\ | | | | input_common: Reset GC sticks center by measuring multiple packets
| * input_common: Reset GC sticks center by measuring multiple packetsgerman772021-04-272-2/+7
| |
* | hid: Implement SevenSixAxis and ConsoleSixAxisSensorgerman772021-04-241-2/+8
|/
* general: Ignore implicit-fallthrough for SDL.hlat9nq2021-04-181-0/+10
| | | | | | SDL 2.0.14 introduces an incompatibility with Clang, causing it to trigger -Wimplicit-fallthrough even though it is marked. Ignore it for now, with a comment mentioning why this is needed.
* cmake: Use SDL 2.0.14 and fix CMake scope issuelat9nq2021-04-181-1/+1
| | | | | | | | | | Forces using SDL 2.0.14. Upgrades the SDL external to that version. Adds a message when switching to the external. Fixes an error where input_common only links to SDL when SDL2_FOUND is set, but externals/CMakeLists cannot set that variable to the required scope. Switch to using ENABLE_SDL2, which we can use since we now include the SDL source.
* Merge pull request #6119 from german77/SDLMappingbunnei2021-04-162-6/+24
|\ | | | | InputCommon: Address mapping and naming issues with SDL2
| * InputCommon: Name properly xbox 360 and one controllers, Fix mappings for Nintendo Pro controllersgerman772021-03-312-6/+24
| |
* | common: Move settings to common from core.bunnei2021-04-1510-428/+7
| | | | | | | | - Removes a dependency on core and input_common from common.
* | Use a single connection for UDP server, make connection test longer and check all pads instead of only the first onegerman772021-03-312-95/+96
|/
* Merge pull request #6040 from german77/toggleKeyboardbunnei2021-03-114-8/+84
|\ | | | | Enable toggle buttons for keyboard and mouse
| * Enable mouse toggle buttonsgerman772021-03-064-10/+63
| |
| * Enable button toggle for keyboard in the modifier buttongerman2021-03-061-3/+26
| |
* | Merge pull request #5990 from german77/mousePanningV2bunnei2021-03-082-8/+15
|\ \ | |/ |/| InputCommon: Mouse fixes
| * inputCommon: Mouse fixesgerman772021-02-282-8/+15
| |
* | inputCommon: Use an unique client id for each socket instancegerman2021-03-012-13/+19
|/
* Revert "Port citra-emu/citra#5123: "SDL: Disable hidapi drivers due to compatibility problems with certain controllers""Morph2021-02-181-7/+0
|
* Merge pull request #5929 from german77/mousePanningMorph2021-02-161-5/+21
|\ | | | | Improve mouse panning
| * Improve mouse panninggerman2021-02-141-5/+21
| |
* | Merge pull request #3603 from FearlessTobi/port-5123bunnei2021-02-161-0/+7
|\ \ | | | | | | Port citra-emu/citra#5123: "SDL: Disable hidapi drivers due to compatibility problems with certain controllers"
| * | sdl_joystick: disable the use of the hidapi drivers due to many problems caused by them.Vitor Kiguchi2020-08-301-0/+7
| | | | | | | | | | | | | | | The main problem is the loss of compatibility with some controllers, but there are also unwanted changes to the behaviour of PS4 controllers (hardcoded lightbar color).
* | | Merge pull request #4940 from german77/nativeGCbunnei2021-02-151-0/+1
|\ \ \ | |_|/ |/| | HID: Implement GC controller in game
| * | hid: Implement GC controllergerman2021-02-081-0/+1
| | |
* | | Merge pull request #5869 from german77/mousePanningbunnei2021-02-113-3/+39
|\ \ \ | | | | | | | | input_common: Add mouse panning
| * | | Add mouse panninggerman2021-02-083-3/+39
| | | |
* | | | udp: Silence unused member variable warningsLioncash2021-02-091-2/+2
| | | | | | | | | | | | | | | | Simply mark them as unused for now.
* | | | udp/client: Define ClientData constructor/destructor in cpp fileLioncash2021-02-092-0/+7
| |/ / |/| | | | | | | | | | | Prevents compilation errors on clang 12 due to incomplete types within a unique_ptr member.
* | | Add SL SR vectors, change dual joycon view, add missing raw data from keyboard/mousegerman2021-02-062-0/+14
| | |
* | | Make settings controller image change with controller inputgerman2021-02-062-0/+20
|/ /
* | analog_from_button: Fix update_thread.join exceptionameerj2021-01-301-5/+9
| | | | | | | | | | | | This commit aims to address an exception that occurs when trying to join the Analog object's update_thread. By using an atomic bool for the status of the update thread, we ensure its value is consistent across the threads accessing it.
* | sdl_impl: Set the maximum vibration duration to 1 secondMorph2021-01-231-2/+6
| |
* | Always initialize keyboard inputgerman2021-01-151-10/+8
| |
* | Add mutitouch support for touch screensgerman2021-01-153-17/+14
| |
* | Allow to return up to 16 touch inputs per enginegerman2021-01-155-92/+116
| |
* | general: Fix various spelling errorsMorph2021-01-024-9/+9
| |
* | Merge pull request #5265 from german77/port5509bunnei2020-12-311-2/+45
|\ \ | | | | | | Port citra-emu/citra#5509 "Look at direction of analog axis travel instead of instantaneous sample"
| * | Port citra-emu/citra#5509german2020-12-311-2/+45
| | |
* | | Merge pull request #5236 from gal20/udp_client_patchbunnei2020-12-291-0/+5
|\ \ \ | | | | | | | | input_common: process udp packets only for the correct pad
| * | | udp client: process packets only for the correct padgal202020-12-271-0/+5
| | | |
* | | | Allow to invert analog axis with right clickgerman2020-12-273-17/+62
|/ / /
* | | Merge pull request #5020 from german77/AnalogfromButtonFixMorph2020-12-081-1/+21
|\ \ \ | |/ / |/| | Disable analog joystick from buttons by default
| * | Disable analog joystick from buttons by defaultgerman2020-12-081-1/+21
| | |
* | | mouse_poller: Remove unused includesLioncash2020-12-031-3/+1
| | |
* | | mouse_input: Invert conditional in UpdateYuzuSettings()Lioncash2020-12-031-4/+6
| | | | | | | | | | | | Allows the struct to be constructed in place.
* | | mouse_input: Remove two casts and amend some formattingLioncash2020-12-031-11/+14
| | | | | | | | | | | | | | | Removes the use of two static casts and improves the readability of some vectors slightly.
* | | mouse_input: Resolve a -Wdocumentation warningLioncash2020-12-031-1/+1
| | |
* | | mouse_input: Remove unused includesLioncash2020-12-032-7/+3
| | |
* | | Merge pull request #4937 from german77/multiUDPbunnei2020-12-014-100/+149
|\ \ \ | | | | | | | | InputCommon: Add multiple udp server support
| * | | Add multiple udp server supportgerman2020-11-264-100/+149
| | | |
* | | | Merge pull request #5047 from german77/MouseInputLC2020-12-011-6/+8
|\ \ \ \ | | | | | | | | | | InputCommon: Fix implicit conversion in mouse input
| * | | | Fix implicit conversion in mouse inputgerman2020-12-011-6/+8
| | | | |
* | | | | Merge pull request #4939 from german77/MouseInputbunnei2020-11-309-242/+697
|\| | | | | |_|/ / |/| | | InputCommon: Implement full mouse support
| * | | Implement full mouse supportgerman2020-11-269-242/+697
| | | |
* | | | input_common: ignore some Clang warnings after 5c4774e8ce1dJan Beich2020-11-261-2/+2
| |/ / |/| | | | | | | | | | | error: unknown warning option '-Werror=unused-but-set-parameter'; did you mean '-Werror=unused-parameter'? [-Werror,-Wunknown-warning-option] error: unknown warning option '-Werror=unused-but-set-variable'; did you mean '-Werror=unused-const-variable'? [-Werror,-Wunknown-warning-option]
* | | Merge pull request #4905 from german77/AnalogFromButtonbunnei2020-11-251-19/+103
|\ \ \ | | | | | | | | Allow to dial any angle with digital joystick
| * | | fix minor clang errorgerman2020-11-101-1/+1
| | | |
| * | | Allow to dial any angle with digital joystickgerman2020-11-081-19/+103
| | | |
* | | | input_common: Fix typo in gc_poller.cpp with [[maybe_unused]].bunnei2020-11-241-2/+2
| | | |
* | | | input_common: Add more missing [[maybe_unused]] from #4927.bunnei2020-11-243-4/+6
| | | |
* | | | input_common: Treat warnings as errorsLioncash2020-11-227-9/+22
| | | | | | | | | | | | | | | | | | | | Migrates over warnings as errors for input common to match how the common library treats warnings as errors.
* | | | Modify rumble amplificationgerman772020-11-192-4/+3
| |/ / |/| |
* | | Merge pull request #4866 from Morph1984/mjolnir-p3-prodbunnei2020-11-1810-107/+177
|\ \ \ | | | | | | | | Project Mjölnir: Part 3 - Controller Profiles and Vibration Rework
| * | | sdl_impl: Pump SDL Events at 1000 HzMorph2020-11-161-1/+1
| | | |
| * | | sdl_impl: Revert to the "old" method of mapping sticksMorph2020-11-161-32/+13
| | | | | | | | | | | | | | | | | | | | | | | | Not all controllers have a SDL_GameController binding. This caused controllers not present in the SDL GameController database to have buttons mapped instead of axes. Furthermore, it was not possible to invert the axes when it could be useful such as emulating a horizontal single joycon or other potential cases. This allows us to invert the axes by reversing the order of mapping (vertical, then horizontal).
| * | | controllers/npad: Remove the old vibration filterMorph2020-11-161-15/+0
| | | | | | | | | | | | | | | | Previously we used a vibration filter that filters out amplitudes close to each other. It turns out there are cases where this results into vibrations that are too inaccurate. Remove this and move the 100Hz vibration filter (Only allowing a maximum of 100 vibrations per second) from sdl_impl to npad when enable_accurate_vibrations is set to false.
| * | | input_common: Add VibrationDevice and VibrationDeviceFactoryMorph2020-11-169-46/+159
| | | | | | | | | | | | | | | | | | | | | | | | A vibration device is an input device that returns an unsigned byte as status. It represents whether the vibration device supports vibration or not. If the status returns 1, it supports vibration. Otherwise, it does not support vibration.
| * | | configure_input: Add per-player vibrationMorph2020-11-161-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Allows for enabling and modifying vibration and vibration strength per player. Also adds a toggle for enabling/disabling accurate vibrations. Co-authored-by: Its-Rei <kupfel@gmail.com>
| * | | controllers/npad: Add heuristics to reduce rumble state changesMorph2020-11-161-29/+25
| | | | | | | | | | | | | | | | | | | | Sending too many state changes in a short period of time can cause massive performance issues. As a result, we have to use several heuristics to reduce the number of state changes to minimize/eliminate this performance impact while maintaining the quality of these vibrations as much as possible.
| * | | configure_input_player: Change "Defaults" button behaviorMorph2020-11-161-8/+0
| | | | | | | | | | | | | | | | | | | | RestoreDefaults() now restores the selected devices' mappings using UpdateMappingWithDefaults(). This allows us to move the keyboard mapping from RestoreDefaults() to UpdateMappingWithDefaults().
| * | | udp/client: Reduce testing period to 5 secondsMorph2020-11-161-1/+1
| | | |
| * | | configure_input_player: Implement input exclusivity and persistenceMorph2020-11-161-3/+3
| |/ / | | | | | | | | | With this, the "Input Devices" combobox should accurately reflect the input device being used and disallows inputs from other input devices unless the input device is set to "Any".
* | | motion_input: Mark constructor as explicitLioncash2020-11-151-1/+1
| | |
* | | motion_input: Mark member functions as [[nodiscard]] where applicableLioncash2020-11-151-10/+11
|/ /
* | Add hotplug, rumble and fix 3rd party adapters for the GC adaptergerman2020-10-293-303/+433
| |
* | sdl_impl: Fix controller reconnection issuesMorph2020-10-211-85/+84
| | | | | | | | | | | | | | It turns out that after a controller is disconnected, there is a chance that events from the previous controller are sent/processed after it has been disconnected. This causes the previously disconnected controller to reappear as connected due to GetSDLJoystickBySDLID() emplacing this controller back to the map. Fix this by only returning an SDLJoystick if and only if it exists in the map.
* | Merge pull request #4809 from Morph1984/mjolnir-p3LC2020-10-201-2/+0
|\ \ | | | | | | configure_input_player: Fix modifier buttons
| * | configure_input_player: Fix modifier buttonsMorph2020-10-201-2/+0
| | | | | | | | | | | | Fix them for real this time, now they finally work.
* | | Merge pull request #4627 from Morph1984/fix-dinput-controller-disconnectbunnei2020-10-201-15/+13
|\ \ \ | |/ / |/| | sdl_impl: Erase the SDLJoystick entry after removing a controller
| * | sdl_impl: Erase the SDLJoystick entry after removing a controllerMorph2020-10-161-15/+13
| | | | | | | | | | | | | | | | | | | | | Previously, disconnecting a controller still leaves a null SDLJoystick entry within the vector of SDLJoysticks mapped by GUID. When a DirectInput device of the same GUID is reconnected, it adds that device to a new port causing non-detectable input. Furthermore, opening the "Configure" menu would cause yuzu to crash since it first tries to resolve the name of a null SDLJoystick entry that was not removed. Resolve this by properly erasing the SDLJoystick entry from the vector.
* | | udp/client: Make use of designated initializers in TestCommunication()Lioncash2020-10-161-2/+5
| | | | | | | | | | | | Same behavior, but makes the callback list nicer to look at.
* | | udp/client: Take std::function by const reference with TestCommunication()Lioncash2020-10-162-5/+5
|/ / | | | | | | Avoids redundant copies.
* | input_common/CMakeLists: Make some warnings errorsLioncash2020-10-1616-191/+237
| | | | | | | | | | Makes the input_common code warnings consistent with the rest of the codebase.
* | Merge pull request #4757 from german77/BetterMotionbunnei2020-10-102-8/+102
|\ \ | | | | | | InputCommon: Add compatibility with only accelerometer and auto calibrate for drift
| * | Address commentsgerman2020-10-052-40/+40
| | |
| * | Add compatibility with only accelerometer and auto calibrate for driftgerman2020-10-042-12/+106
| | |
* | | Merge pull request #4677 from german77/ShakeFromButtonbunnei2020-10-089-5/+295
|\ \ \ | | | | | | | | InputCommon: Add random motion input for buttons
| * | | Add random motion input to keyboardgerman2020-09-264-0/+65
| | | |
| * | | Add random motion input to SDLgerman2020-09-265-5/+230
| | | |
* | | | Merge pull request #4727 from FrogTheFrog/patch-1bunnei2020-10-071-2/+6
|\ \ \ \ | |_|/ / |/| | | Reduce the "shake" requirements when configuring UDP.
| * | | Reduce the "shake" requirements when configuring UDP.Lukas Senionis2020-09-301-2/+6
| |/ /
* / / First implementation of controller rumblegerman2020-09-291-1/+38
|/ /
* | Add automap feature for GC adaptergerman2020-09-183-1/+103
| |
* | Merge pull request #4594 from german77/MotionHIDbunnei2020-09-179-135/+471
|\ \ | | | | | | hid/configuration: Implement motion controls to HID
| * | Minor cleanupgerman2020-09-051-19/+16
| | |
| * | Add cemu hook changes related to PR #4609german2020-09-056-137/+426
| | |
| * | Remove RealMotionDevicegerman2020-09-054-7/+25
| | |
| * | Include HID and configuration changes related to motiongerman2020-09-053-1/+33
| | |
* | | gc_adapter: Disable MSVC nonstandard extension warning on libusb.hReinUsesLisp2020-09-151-0/+9
| | | | | | | | | | | | Pragma disable zero-sized array nonstandard extension warning on MSVC.
* | | gc_adapter: Make DeviceConnected() a const member functionLioncash2020-09-073-9/+9
|/ / | | | | | | This doesn't modify instance state, so it can be made const.
* | Merge pull request #4583 from lioncash/truncbunnei2020-09-041-3/+5
|\ \ | | | | | | gc_poller: Resolve compilation warnings on MSVC
| * | gc_poller: Resolve compilation warnings on MSVCLioncash2020-08-261-3/+5
| | | | | | | | | | | | We just need to make our intentional implicit truncations explicit.
* | | input_common/motion_input: Make use of Common::PI constantMorph2020-09-022-4/+9
| | | | | | | | | | | | Also amend the copyright notice to yuzu's instead of Dolphin's, which was mistakenly copy-pasted from another file.
* | | Merge pull request #4570 from german77/motionInputbunnei2020-09-023-0/+246
|\ \ \ | | | | | | | | input_common: Add a basic class for motion devices
| * | | Fix orientation errors and improve drift correctiongerman2020-08-282-14/+31
| | | |
| * | | Address commentsgerman2020-08-282-85/+65
| | | |
| * | | Implement a basic class for motion devicesgerman2020-08-283-0/+249
| | | |
* | | | Merge pull request #4382 from FearlessTobi/port-udp-configbunnei2020-09-015-0/+89
|\ \ \ \ | | | | | | | | | | yuzu: Add motion and touch configuration from Citra
| * | | | Address second batch of reviewsFearlessTobi2020-08-303-6/+2
| | | | |
| * | | | Address review comments and fix code compilationFearlessTobi2020-08-293-6/+11
| | | | |
| * | | | yuzu: Add motion and touch configurationFearlessTobi2020-08-295-0/+88
| | |_|/ | |/| |
* | | | sdl_impl: Reduce allocations in GetButtonMappingForDevice()Lioncash2020-08-291-31/+37
| | | | | | | | | | | | | | | | These maps can be constexpr arrays of std::pair.
* | | | sdl_impl: Make use of std::move on std::string where applicableLioncash2020-08-291-3/+3
| | | | | | | | | | | | | | | | Avoids redundant copies.
* | | | sdl_impl: Make use of insert_or_assign() where applicableLioncash2020-08-291-14/+18
| | | | | | | | | | | | | | | | Avoids churning ParamPackage instances.
* | | | sdl_impl: Prevent type truncation in BuildAnalogParamPackageForButton() default argumentsLioncash2020-08-291-1/+1
| | | | | | | | | | | | | | | | | | | | We need to add the 'f' suffix to make the right hand side a float and not a double.
* | | | sdl_impl: Simplify make_tuple callLioncash2020-08-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The purpose of make_tuple is that you don't need to explicitly type out the types of the things that comprise said tuple. Given this just returns default values, we can simplify this a bit.
* | | | sdl_impl: Mark FromEvent() as a const member functionLioncash2020-08-291-2/+2
|/ / / | | | | | | | | | This doesn't modify internal member state, so it can be marked as const.
* | | input_common/main: Remove unnecessary headersLioncash2020-08-293-5/+11
| | |
* | | input_common/main: Remove unimplemented prototypeLioncash2020-08-291-3/+0
| | | | | | | | | | | | | | | I forgot to remove this in the rebase when removing most of the global variables within the input common codebase.
* | | input_common: Eliminate most global stateLioncash2020-08-272-153/+227
|/ / | | | | | | | | | | | | | | | | | | | | | | | | Abstracts most of the input mechanisms under an InputSubsystem class that is managed by the frontends, eliminating any static constructors and destructors. This gets rid of global accessor functions and also allows the frontends to have a more fine-grained control over the lifecycle of the input subsystem. This also makes it explicit which interfaces rely on the input subsystem instead of making it opaque in the interface functions. All that remains to migrate over is the factories, which can be done in a separate change.
* | input_common/main: Add "/Mouse" to the display nameMorph2020-08-271-1/+1
| |
* | input_common: Fix directional deadzone valuesMorph2020-08-262-2/+2
| | | | | | | | The hardware tested value is 0.5 which translates to SHRT_MAX / 2
* | Address feedbackMorph2020-08-265-44/+32
| |
* | Project Mjölnir: Part 1Morph2020-08-2611-102/+798
|/ | | | | Co-authored-by: James Rowe <jroweboy@gmail.com> Co-authored-by: Its-Rei <kupfel@gmail.com>
* General: Tidy up clang-format warnings part 2Lioncash2020-08-131-4/+2
|
* Remove UI changesameerj2020-08-102-2/+2
| | | | This PR is now only the Analog devices handling the range value defaulting at 100%
* Add range slider functionality for gc adapterameerj2020-08-101-7/+7
|
* undo unnecessary newlines, slider range 50-150Ameer2020-08-101-1/+1
|
* Add range slider for analog sticksAmeer2020-08-101-11/+14
|
* GCAdapter: only join worker thread if running & joinableBrian J. Tarricone2020-07-261-1/+3
|
* Merge pull request #4418 from lioncash/udp-warnbunnei2020-07-261-1/+0
|\ | | | | udp/client: Remove unused boost include
| * udp/client: Remove unused boost includeLioncash2020-07-251-1/+0
| | | | | | | | Also silences a deprecation warning from boost on Clang/GCC.
* | gc_adapter: Resolve C++20 deprecation warningLioncash2020-07-251-1/+1
| |
* | gc_poller: Resolve -Wsign-compare warningLioncash2020-07-251-1/+2
| |
* | gc_poller: Resolve -Wredundant-move warningLioncash2020-07-251-2/+1
|/
* Fix axis thresholding while pollingameerj2020-07-191-5/+2
| | | | axes were very sensitive when mapping controls.
* std::size_t where appropriate, make error message more clear if can't readameerj2020-07-171-3/+4
|
* Refactor adapter codeAmeer2020-07-162-179/+44
|
* Rebase to masterAmeer2020-07-147-31/+48
|\
| * Fix crash if gc configured but adapter not connectedAmeer2020-07-142-15/+25
| |
| * Merge pull request #4314 from lioncash/input-warnbunnei2020-07-144-11/+15
| |\ | | | | | | gcadapter: Tidy up compiler warnings
| | * gc_poller: Mark GCButtonFactory::GetNextInput() as constLioncash2020-07-122-2/+2
| | | | | | | | | | | | This doesn't modify class instance state.
| | * gc_poller: Get rid of undefined behavior in Create()Lioncash2020-07-121-0/+4
| | | | | | | | | | | | Ensures that the function always has returns in all control paths.
| | * gc_poller: Silence sign conversion warningsLioncash2020-07-121-1/+1
| | |
| | * gc_adapter: Remove deprecated usage of = in lambda capturesLioncash2020-07-121-1/+1
| | | | | | | | | | | | | | | | | | | | | It's deprecated in C++20 to use = to capture the this pointer. Instead, we can simply pass this as an argument to the thread constructor.
| | * gc_adapter: Silence sign conversion warningsLioncash2020-07-122-7/+7
| | |
| * | Merge pull request #4315 from lioncash/udp-warnbunnei2020-07-141-1/+1
| |\ \ | | | | | | | | udp: Silence a C++20 deprecation warning
| | * | udp: Silence a C++20 deprecation warningLioncash2020-07-121-1/+1
| | |/ | | | | | | | | | | | | C++20 deprecates using the = lambda capture to implicitly capture the this pointer. Instead, we must specify it explicitly.
| * | input_common: drop unused libusb.h includeAmeer2020-07-141-1/+0
| | | | | | | | | | | | Remnant of an early implementation.
| * | input_common: make libusb private to gc_adapterJan Beich2020-07-133-3/+7
| | |
| * | cmake: pass libusb include directory as wellJan Beich2020-07-091-0/+1
| |/ | | | | | | | | | | | | In file included from src/input_common/gcadapter/gc_adapter.cpp:8: src/./input_common/gcadapter/gc_adapter.h:11:10: fatal error: 'libusb.h' file not found #include <libusb.h> ^~~~~~~~~~
* | Break out of scan loop if can't find adapter on first runAmeer2020-07-101-0/+3
| |
* | Rebase to master, fix merge conflictsAmeer2020-07-092-10/+30
|\|
| * Merge pull request #4266 from jbeich/freebsdbunnei2020-07-081-0/+1
| |\ | | | | | | gcadapter: unbreak build on FreeBSD
| | * input_common/gcadapter: add missing C++11 header required by libc++Jan Beich2020-07-071-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In file included from src/input_common/gcadapter/gc_adapter.cpp:8: src/./input_common/gcadapter/gc_adapter.h:77:10: error: no template named 'unordered_map' in namespace 'std' std::unordered_map<int, bool> buttons; ~~~~~^ src/./input_common/gcadapter/gc_adapter.h:78:10: error: no template named 'unordered_map' in namespace 'std' std::unordered_map<int, u16> axes; ~~~~~^
| * | Address comments for better clarity/signed dev countAmeer2020-07-081-11/+15
| | |
| * | Add more libusb error checksAmeer2020-07-081-3/+18
| |/
* | Address PR feedback, fix axis button thresholdingAmeer2020-07-073-58/+22
| |
* | Brace the code! Fix compile error due to class member construction orderAmeer2020-07-072-15/+31
| |
* | Recalibrate reconnected controllersAmeer2020-07-071-0/+5
| |
* | Save origin state of GC controller analog features, compare against origin for input detectionAmeer2020-07-073-28/+72
|/
* Fix for always firing triggers on some controllers, trigger threshold more universalAmeer2020-07-042-5/+5
|
* Address lioncash feedback: Log formatting, extern const PadButtonArray, little touch upsAmeer2020-07-033-24/+32
|
* Fix unnecessary diffsAmeer2020-07-023-3/+3
|
* Add LR triggers as axes, half press to initiate a press, add GC axis id in config, clarify some code blocks for better readabilityAmeer2020-07-022-10/+34
|
* Reset adapter state on init, fixes errors relating driver hang from unexpected unplugAmeer2020-07-012-0/+9
|
* Address feedback regarding increments, const vars, and general cleanupAmeer2020-06-302-24/+21
|
* fix implicit conversion of size_t type to intAmeer2020-06-301-1/+1
|
* left const auto&, comment punctuation.Ameer J2020-06-271-2/+2
| | | Co-authored-by: Morph <39850852+Morph1984@users.noreply.github.com>
* const& to button in button arrayAmeer J2020-06-261-2/+2
| | | Co-authored-by: VolcaEM <63682805+VolcaEM@users.noreply.github.com>
* Stop reading loop if error is encounteredAmeer2020-06-261-4/+4
|
* padbutton enum class and struct initiailizationAmeer2020-06-243-36/+32
|
* cleanup check access, read, and factory GetNextInput funcs. Use size rather than magic numberAmeer2020-06-234-151/+101
|
* Fix deallocation of GC AdapterAmeer2020-06-233-4/+10
|
* std::array and const reference passing of non-trivial objectsAmeer2020-06-232-14/+13
|
* Update src/input_common/main.cppameerj2020-06-221-1/+1
| | | | | | Co-authored-by: LC <mathew1800@gmail.com> update libusb submodule (hopefully windows build error fixed)
* Tidy up the pointers, use pair over tuple where appropriateAmeer2020-06-224-24/+22
|
* fix for sleep using stlAmeer2020-06-221-1/+3
|
* shared_ptr for the GC adapter class, constexpr constantsAmeer2020-06-225-66/+52
|
* std::arrays where appropriate, clear q in adapter class, other touch upsAmeer2020-06-225-27/+15
|
* fix include threadAmeer2020-06-221-0/+1
|
* Singleton GC Adapter class, remove globals, fix naming conventionAmeer2020-06-227-202/+259
| | | | | | | | Fix clang formatting Manual fix for configure_input_player formatting Add missing lib usb cmake command
* Clang FormattingAmeer2020-06-216-77/+99
|
* Cleanup after linterAmeer2020-06-219-167/+98
|
* GC Adapter ImplementationAmeer2020-06-2115-100/+1039
|
* input_common/motion_emu: Remove redundant moveMerryMage2020-06-191-1/+1
| | | | Named return value optimization automatically applies here.
* input_common/keyboard: Remove redundant moveMerryMage2020-06-191-1/+1
| | | | Named return value optimization automatically applies here.
* input_common: fix build when SDL2 is disabledFearlessTobi2020-05-021-0/+6
|
* Merge pull request #3673 from lioncash/extrabunnei2020-04-171-0/+1
|\ | | | | CMakeLists: Specify -Wextra on linux builds
| * CMakeLists: Specify -Wextra on linux buildsLioncash2020-04-161-0/+1
| | | | | | | | | | | | | | | | | | | | | | Allows reporting more cases where logic errors may exist, such as implicit fallthrough cases, etc. We currently ignore unused parameters, since we currently have many cases where this is intentional (virtual interfaces). While we're at it, we can also tidy up any existing code that causes warnings. This also uncovered a few bugs as well.
* | input_common: Use the CMake target instead of the variable.Markus Wick2020-04-161-1/+1
|/
* Merge pull request #3525 from FearlessTobi/linux-compile-errorbunnei2020-03-211-1/+1
|\ | | | | input_common/udp: Fix Linux build by using a backwards compatible way of error checking
| * input_common/udp: Fix Linux build by using a backwards compatible way of error checkingFearlessTobi2020-03-171-1/+1
| | | | | | | | | | | | | | Should fix https://github.com/yuzu-emu/yuzu/issues/3487. error_code::failed is a function which has been introduced in Boost 1.69. This version of boost hasn't landed in most major distros yet.
* | input_common/udp: Fix clang build issuesReinUsesLisp2020-03-181-1/+2
|/
* input/udp - Add minor error handling to prevent bad input from crashingJames Rowe2020-03-041-4/+13
|
* input/udp - Dont log on invalid packet receivedJames Rowe2020-03-041-1/+0
|
* analog_from_button get direction implementationCJBok2020-02-181-0/+14
|
* input_common/udp: Ensure that UDP is shut down within Shutdown()Lioncash2020-02-031-0/+1
| | | | Previously the UDP backend would never actually get shut down.
* input_common/udp: Add missing override specifiersLioncash2020-02-031-2/+2
| | | | | Prevents trivial warnings and ensures interfaces are properly maintained between the base class.
* input_common/udp: std::move SocketCallback instances where applicableLioncash2020-02-031-2/+2
| | | | | | std::function is allowed to heap allocate if the size of the captures associated with each lambda exceed a certain threshold. This prevents potentially unnecessary reallocations from occurring.
* input_common/udp: std::move shared_ptr within Client constructorLioncash2020-02-031-1/+1
| | | | | Gets rid of a trivially avoidable atomic reference count increment and decrement.
* udp/client: Replace deprecated from_string() call with make_address_v4()Lioncash2020-02-031-2/+2
| | | | Future-proofs code if boost is ever updated.
* input_common/udp: Silence -Wreorder warning for SocketLioncash2020-02-031-4/+3
| | | | | Amends the constructor initializer list to specify the order of its elements in the same order that initialization would occur.
* input_common/udp: Remove unnecessary inclusionsLioncash2020-02-034-8/+4
|
* input_common/udp: Add missing header guardLioncash2020-02-031-0/+2
|
* Merge pull request #3284 from CJBok/hid-fixbunnei2020-02-011-0/+16
|\ | | | | hid: Fix analog sticks directional states
| * Moved analog direction logic to sdl_implCJBok2020-01-151-0/+16
| |
* | Address second part of review commentsFearlessTobi2020-01-233-13/+17
| |
* | Address review commentsFearlessTobi2020-01-234-65/+72
| |
* | Input: UDP Client to provide motion and touch controlsfearlessTobi2020-01-238-4/+846
|/ | | | | | | | An implementation of the cemuhook motion/touch protocol, this adds the ability for users to connect several different devices to citra to send direct motion and touch data to citra. Co-Authored-By: jroweboy <jroweboy@gmail.com>
* input_common/sdl/sdl_impl: Correct logging string in SDLState constructorLioncash2019-06-031-1/+1
| | | | | | If this path was ever taken, a runtime exception would occur due to the lack of a formatting specifier to insert the error code into the format string.
* input_common/sdl/sdl_impl: Move documentation comments to header where applicableLioncash2019-06-032-7/+6
| | | | | Places the documentation comments with the rest of SDLState's member function documentation.
* input_common/sdl/sdl_impl: Amend names for axes for SDLAnalogPollerLioncash2019-06-031-13/+13
| | | | Adds another underscore to clearly indicate the axis names.
* input_common/sdl/sdl_impl: Mark variables const where applicableLioncash2019-06-031-10/+11
| | | | | Make it explicit that these aren't modified elsewhere (either through functions by reference, or by other operations).
* input_common/sdl/sdl_impl: Mark SDLEventToButtonParamPackage() as staticLioncash2019-06-031-1/+1
| | | | | | Its prototype declared at the top of the translation unit contains the static qualifier, so the function itself should also contain it to make it a proper internally linked function.
* input_common/sdl/sdl_impl: Convert reinterpret_cast into a static_castLioncash2019-06-031-2/+4
| | | | It's valid to static_cast a void pointer back into its proper type.
* input_common/sdl/sdl_impl: Use insert_or_assign() where applicableLioncash2019-06-031-3/+3
| | | | | Same behavior, but without a potential need to unnecessarily default construct a value.
* input_common/sdl/sdl_impl: Simplify SDL_Joystick deleter handlingLioncash2019-06-031-15/+14
| | | | | | | | | The deleter can just be set in the constructor and maintained throughout the lifetime of the object. If a contained pointer is null, then the deleter won't execute, so this is safe to do. We don't need to swap it out with a version of a deleter that does nothing.
* input_common/sdl/sdl_impl: Resolve two sign conversion warningsLioncash2019-06-031-10/+16
| | | | Silences the final two warnings in SDL code.
* input_common/sdl: Remove unused header includes and forward declarationsLioncash2019-06-033-11/+5
| | | | | Gets rid of a few unnecessary inclusion dependencies. It also uncovered a few indirect inclusion dependencies being relied upon.
* input_common/sdl/sdl_impl: Use nested namespace specifiers where applicableLioncash2019-06-031-5/+2
|
* input_common/sdl/sdl_impl: Silence sign conversion warningsLioncash2019-05-311-3/+3
| | | | Makes the conversions explicit, as opposed to implicit.
* general: Use deducation guides for std::lock_guard and std::unique_lockLioncash2019-04-013-21/+23
| | | | | | | Since C++17, the introduction of deduction guides for locking facilities means that we no longer need to hardcode the mutex type into the locks themselves, making it easier to switch mutex types, should it ever be necessary in the future.
* input_common/sdl: Correct return values within implementations of GetPollers()Lioncash2019-03-182-2/+6
| | | | | In both cases, we weren't actually returning anything, which is undefined behavior.
* input_common/sdl: Use a type alias to shorten declaration of GetPollersLioncash2019-03-183-11/+9
| | | | Just makes the definitions a little bit more tidy.
* input_common/sdl_impl: Make lambda capture more specific in SDLState constructorLioncash2019-03-171-1/+1
| | | | | We don't need to universally capture by reference. We specifically just need to capture the this pointer.
* input_common/sdl_impl: Remove unnecessary std::chrono::duration constructionLioncash2019-03-171-1/+1
| | | | Specifying the time unit itself is sufficient here.
* input_common/sdl_impl: Remove unused variable in SDLState constructorLioncash2019-03-171-1/+0
|
* fixup! Joystick: Allow for background events; Add deadzone to SDLAnalogB3n302019-03-021-6/+17
|
* input/sdl: lock map mutex after SDL callWeiyi Wang2019-03-021-11/+17
| | | | Any SDL invocation can call the even callback on the same thread, which can call GetSDLJoystickBySDLID and eventually cause double lock on joystick_map_mutex. To avoid this, lock guard should be placed as closer as possible to the object accessing code, so that any SDL invocation is with the mutex unlocked
* Input: Remove global variables from SDL InputJames Rowe2019-03-027-800/+201
| | | | | | | | | Changes the interface as well to remove any unique methods that frontends needed to call such as StartJoystickEventHandler by conditionally starting the polling thread only if the frontend hasn't started it already. Additionally, moves all global state into a single SDLState class in order to guarantee that the destructors are called in the proper order
* Input: Copy current SDL.h/cpp files to implJames Rowe2019-03-022-0/+680
| | | | | This should make reviewing much easier as you can then see what changed happened between the old file and the new one
* common/math_util: Move contents into the Common namespaceLioncash2019-02-271-2/+2
| | | | | These types are within the common library, so they should be within the Common namespace.
* common/vector_math: Move Vec[x] types into the Common namespaceLioncash2019-02-271-11/+11
| | | | | These types are within the common library, so they should be using the Common namespace.
* common/quaternion: Move Quaternion into the Common namespaceLioncash2019-02-271-4/+4
| | | | | Quaternion is within the common library, so it should be using the Common namespace.
* Port #4141 from citra: Joystick hotplug support (#1275)Tobias2018-09-114-88/+322
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Joystick hotplug support (#4141) * use SDL_PollEvent instead of SDL_JoystickUpdate Register hot plugged controller by GUID if they were configured in a previous session * Move SDL_PollEvent into its own thread * Don't store SDLJoystick pointer in Input Device; Get pointer on each GetStatus call * Fix that joystick_list gets cleared after SDL_Quit * Add VirtualJoystick for InputDevices thats never nullptr * fixup! Add VirtualJoystick for InputDevices thats never nullptr * fixup! fixup! Add VirtualJoystick for InputDevices thats never nullptr * Remove SDL_GameController, make SDL_Joystick* unique_ptr * fixup! Remove SDL_GameController, make SDL_Joystick* unique_ptr * Adressed feedback; fixed handling of same guid reconnects * fixup! Adressed feedback; fixed handling of same guid reconnects * merge the two joystick_lists into one * make SDLJoystick a member of VirtualJoystick * fixup! make SDLJoystick a member of VirtualJoystick * fixup! make SDLJoystick a member of VirtualJoystick * fixup! fixup! make SDLJoystick a member of VirtualJoystick * SDLJoystick: Addressed review comments * Address one missed review comment
* input_common: Use std::move where applicableLioncash2018-08-032-5/+6
| | | | Avoids unnecessary atomic reference count increments and decrements
* input_common: Add missing override specifiersLioncash2018-08-033-14/+2
|
* Rename logging macro back to LOG_*James Rowe2018-07-031-3/+3
|
* input_common: Move old logging macros over to fmt-capable onesLioncash2018-04-271-3/+3
|
* math_util: Remove the Clamp() functionLioncash2018-04-201-2/+3
| | | | | C++17 adds clamp() to the standard library, so we can remove ours in favor of it.
* Format: Run the new clang format on everythingJames Rowe2018-01-211-1/+2
|
* Merge pull request #84 from lioncash/cmakebunnei2018-01-181-19/+12
|\ | | | | CMakeLists: Derive the source directory grouping from targets themselves
| * CMakeLists: Derive the source directory grouping from targets themselvesLioncash2018-01-181-19/+12
| | | | | | | | | | Removes the need to store to separate SRC and HEADER variables, and then construct the target in most cases.
* | input_common/sdl: Silence a -Wpessimizing-move warningLioncash2018-01-181-1/+1
|/
* Adding meumart's Citra SDL Joystick support. Citra PR #3116muemart2018-01-164-1/+248
|
* motion_emu: fix initialization orderwwylele2017-08-221-1/+4
|
* Merge pull request #2861 from wwylele/motion-refactorJames Rowe2017-08-205-2/+231
|\ | | | | Refactor MotionEmu into a InputDevice
| * motion_emu: no need to include thread in headerwwylele2017-08-192-2/+7
| |
| * move MotionEmu from core/frontend to input_common as a InputDevicewwylele2017-08-115-2/+226
| |
* | Fix Spelling/English mistakesDave Leaver2017-08-131-1/+1
|/
* Fix some spelling mistakesdanzel2017-08-111-1/+1
|
* CMake: Define an interface target for SDL2 definitionsYuri Kunde Schlesner2017-05-281-2/+1
|
* CMake: Correct inter-module dependencies and library visibilityYuri Kunde Schlesner2017-05-281-3/+3
| | | | | | | | | | Modules didn't correctly define their dependencies before, which relied on the frontends implicitly including every module for linking to succeed. Also changed every target_link_libraries call to specify visibility of dependencies to avoid leaking definitions to dependents when not necessary.
* input_common/sdl: add support for binding button to axiswwylele2017-04-171-4/+53
|
* citra-qt: release all buttons when render window focus is lostwwylele2017-03-172-0/+13
| | | | credit to @Hawkheart for the original idea
* InputCommon: add SDL joystick supportwwylele2017-03-014-0/+241
|
* InputCommon: add AnalogFromButtonwwylele2017-03-015-0/+113
|
* InputCommon: add Keyboardwwylele2017-03-015-0/+202