summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/hid/controllers (unfollow)
Commit message (Collapse)AuthorFilesLines
2023-02-14remove static from pointer sized or smaller types for aesthetics, change constexpr static to static constexpr for consistencyarades791-5/+5
Signed-off-by: arades79 <scravers@protonmail.com>
2023-02-14apply clang-formatarades791-3/+3
Signed-off-by: arades79 <scravers@protonmail.com>
2023-02-14add static lifetime to constexpr values to force compile time evaluation where possiblearades791-3/+3
Signed-off-by: arades79 <scravers@protonmail.com>
2023-02-10core: hid: Use gyro thresholds modes set by the gameNarr the Reg2-12/+9
2023-02-08service: hid: Return error if arguments of SetSupportedNpadIdType is invalidNarr the Reg2-3/+11
2023-02-03Revert "Merge pull request #9718 from yuzu-emu/revert-9508-hle-ipc-buffer-span"ameerj2-3/+5
This reverts commit 25fc5c0e1158cb8e81cbc769b24ad84032a1fbfd, reversing changes made to af20e25081f97d55b451606c87922e2b49f0d363.
2023-02-02Revert "hle_ipc: Use std::span to avoid heap allocations/copies when calling ReadBuffer"liamwhite2-5/+3
2023-02-01input_common: Implement turbo buttonsgerman771-0/+3
2023-01-20core: hid: Only set the polling mode to the correct sideNarr the Reg1-1/+13
2023-01-20core: hid: Fix input regressionsNarr the Reg1-0/+1
2023-01-20service: hid: Set led pattern and fix color detectionNarr the Reg1-0/+5
2022-12-29hidbus: Use ReadBufferSpanameerj2-3/+5
2022-12-25service: Use ReadBufferSpan where it is trivial to do soameerj2-2/+2
2022-10-22general: Enforce C4800 everywhere except in video_coreMorph1-10/+10
2022-10-21input_common: cache vibration testsgerman771-2/+2
2022-10-21hid/npad: Fix copy size in GetSupportedNpadIdTypesLioncash1-2/+3
Previously this was passing the size of the vector into memcpy rather than the size in bytes to copy, which would result in a partial read. Thankfully, this function isn't used yet, so this gets rid of a bug before it's able to do anything.
2022-10-13kernel: remove KWritableEventLiam2-11/+10
2022-09-25service: hid: Partially implement palma controllerNarr the Reg3-1/+397
2022-08-08hid: core: Properly emulate controller color and battery levelNarr the Reg1-15/+62
2022-06-29input_common: sdl: lower vibration frequency and use it's own unique threadgerman771-2/+2
2022-06-29service: hid: Correct some mistakes and add more validationsNarr the Reg2-9/+28
2022-06-27core: Replace all instances of ResultCode with Resultgerman772-65/+64
2022-06-14common: Change semantics of UNREACHABLE to unconditionally crashLiam1-4/+4
2022-06-10service: hid: Fix gesture regressionNarr the Reg2-4/+3
2022-05-27service: hid: Implement ResetIsSixAxisSensorDeviceNewlyAssignedgerman772-5/+88
Needed by Nintendo Switch Sports
2022-05-27service: hid: Implement LoadSixAxisSensorCalibrationParameter and GetSixAxisSensorIcInformationgerman772-1/+39
Needed by Nintendo Switch Sports
2022-05-27service: hid: Implement EnableSixAxisSensorUnalteredPassthrough and IsSixAxisSensorUnalteredPassthroughEnabledgerman772-0/+31
Needed by Nintendo Switch Sports
2022-05-27service: hid: Add error handling to sixaxis functionsgerman772-31/+54
2022-05-27service: hid: Refractor sixaxis functionsgerman772-185/+88
2022-05-27service: hid: Implement MergeSingleJoyAsDualJoy according to REgerman772-62/+52
2022-05-27service: hid: Add error handling to setNpadAssignment and variantsgerman772-12/+14
2022-05-27service: hid: Quick RE fixes and commentsgerman772-26/+37
2022-05-23input_common: touch: Rewrite touch driver to support multiple touch pointsgerman771-1/+5
2022-05-06service: hid: Fix motion refresh rateNarr the Reg1-0/+5
2022-05-06service: hid: Disable correctly motion inputgerman771-50/+41
2022-04-24service: hid: Ensure all structs are initializedNarr the Reg15-68/+69
2022-04-23service: hid: Access shared memory directlyNarr the Reg19-278/+324
2022-04-23general: Convert source file copyright comments over to SPDXMorph20-60/+40
This formats all copyright comments according to SPDX formatting guidelines. Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
2022-04-18service: hid: Improve accuracy of sixaxis functionsNarr the Reg2-59/+264
2022-04-07core/hle: Replace lock_guard with scoped_lockMerry1-1/+1
2022-04-03service: npad: Default initialize shared memorygerman771-48/+48
2022-03-31service: hid: Remove inaccurate behavior on initializationgerman772-14/+21
2022-03-19core: Reduce unused includesameerj10-20/+2
2021-12-16core/hid: Cancel any vibration after the testNarr the Reg2-10/+4
2021-12-13service/hid: Improve console motion accuracyNarr the Reg2-14/+16
2021-12-05service/hid: Implement SetNpadJoyAssignmentModegerman772-25/+148
2021-12-05core/hid: Ensure only valid npad are connectedgerman771-17/+13
2021-11-30npad: Return NpadButton in GetAndResetPressStateMorph2-5/+5
We were previously truncating this to a u32 as there were no known buttons that used the full 64 bits of this type. Fix this now that we know they are used.
2021-11-29general: Fix handheld typoMorph1-1/+1
2021-11-28settings: Add debug setting to enable all controllersgerman771-0/+4
2021-11-25service/hid: Finish converting LIFO objects and address some nitsNarr the Reg11-89/+45
2021-11-25kraken: Address comments from reviewgerman771-1/+1
Fix compiler bug
2021-11-25core/hid: Improve accuary of mouse implementationgerman774-5/+8
2021-11-25core/hid: Fully implement native mousegerman771-4/+5
2021-11-25core/hid: Improve accuracy of the keyboard implementationgerman771-0/+1
2021-11-25core/hid: Fix keyboard alignmentgerman771-0/+1
2021-11-25core/hid: Remove usage of native types, fix a couple of errors with motiongerman772-280/+379
2021-11-25service/hid: Remove includes of core.h and settings.hgerman7720-49/+53
2021-11-25service/hid: Add support for new controllersgerman771-1/+30
2021-11-25core/hid: Rename NpadType to NpadStyleIndexgerman772-68/+72
2021-11-25second commit lion reviewgerman778-5/+13
2021-11-25kraken: Address comments from reviewgerman773-6/+1
start lion review
2021-11-25core/hid: Update structs to 13.1.0german778-29/+76
2021-11-25core/hid: Rework battery mappingsgerman771-2/+9
2021-11-25service/hid: Fix memory allocated incorrectlygerman775-7/+7
2021-11-25Morph review first wavegerman7711-69/+51
2021-11-25service/hid: Match shared memory closer to HWgerman772-26/+75
2021-11-25kraken: Address comments from reviewgerman772-6/+6
review fixes
2021-11-25service/hid: Use ring buffer for gesturesgerman772-79/+52
2021-11-25service/hid: Fix gesture inputgerman772-61/+92
2021-11-25core/hid: Only signal when neededgerman771-2/+4
2021-11-25hid: Fix controller connection/disconnectiongerman773-26/+56
2021-11-25core/hid: Add output devicesgerman772-40/+5
2021-11-25service/hid: Rewrite npad to use ring lifo and the emulated controllergerman772-890/+605
2021-11-25service/hid: Update console sixaxis to the emulated consolegerman772-28/+26
2021-11-25service/hid: Update mouse and keyboard to use ring lifo and the emulated devicegerman774-158/+71
2021-11-25service/hid: Update touch and gestures to use ring lifo and the emulated consolegerman774-370/+191
2021-11-25service/hid: Update debug pad, xpad, stubbed and controller base to use ring lifo and the emulated controllergerman777-166/+80
2021-11-25settings: Cleanup settingsgerman773-3/+3
2021-11-04core: Remove unused includesameerj1-1/+0
2021-09-27service/hid: Update to 13.0.0german771-0/+1
2021-09-10hid: Stub SetTouchScreenConfigurationgerman771-0/+14
2021-07-21hle: service: hid: npad: Remove unused kernel reference.bunnei1-1/+0
2021-07-21hle: service: Add a helper module for managing kernel objects.bunnei2-6/+14
2021-07-11npad: Disable vibration check if disabledgerman771-0/+5
2021-06-22npad: Fix data race when updating devicesRodrigo Locatti2-0/+8
Add a lock to avoid data races. This reduces the number of -fsanitize=thread errors significantly.
2021-05-28touchscreen: Make use of common point structLioncash2-10/+10
2021-05-28common: Extract point into a common structLioncash1-29/+7
This is generic enough that it can be moved into the Common class for reuse.
2021-05-18hid/gesture: Factor out last gesture retrieval into its own functionLioncash2-14/+23
Deduplicates a commonly repeated expression.
2021-05-18hid/gesture: Ensure all ID arrays are initializedLioncash1-4/+4
Makes for deterministic initial state.
2021-05-18hid/gesture: Make Point a templateLioncash2-38/+46
We can now use this in a generic context to reuse it with the finger position.
2021-05-18hid/gesture: Replace x,y members of GestureState with a PointLioncash2-6/+4
Simplifies assignments.
2021-05-18hid/gesture: Add default comparators to PointLioncash2-10/+7
Simplifies some comparisons.
2021-05-18hid/gesture: Rename Points to PointLioncash1-5/+5
This only represents a single point
2021-05-16core: Make variable shadowing a compile-time errorLioncash4-34/+41
Now that we have most of core free of shadowing, we can enable the warning as an error to catch anything that may be remaining and also eliminate this class of logic bug entirely.
2021-05-06hle: kernel: Remove deprecated Object class.bunnei1-1/+0
2021-05-06hle: kernel: Migrate KReadableEvent and KWritableEvent to KAutoObject.bunnei2-6/+5
2021-05-06hle: kernel: Refactor several threads/events/sharedmemory to use slab heaps.bunnei2-4/+9
2021-05-06hle: kernel: Ensure all kernel objects with KAutoObject are properly created.bunnei1-0/+1
2021-05-06hle: kernel: Migrate KEvent to KAutoObject.bunnei2-4/+3
2021-05-06hle: kernel: Refactor IPC interfaces to not use std::shared_ptr.bunnei2-3/+2
2021-05-05hid: Improve hardware accuracy of gesturesgerman772-76/+340
2021-05-04service: Resolve cases of member field shadowingLioncash18-19/+19
Now all that remains is for kernel code to be 'shadow-free' and then -Wshadow can be turned into an error.
2021-05-03hid: Fix touch not initializing properly if disabledgerman772-2/+10
2021-05-01Disable touch if setting is not enabledgerman772-2/+2
2021-04-27address commentsgerman772-5/+5
2021-04-24hid: Implement SevenSixAxis and ConsoleSixAxisSensorgerman774-2/+174
2021-04-19npad: Remove duplicated class member variableLioncash2-2/+1
ControllerBase already has a System reference that can be accessed from this class, so we can get rid of this to make the class layout a little more straightforward.
2021-04-15common: Move settings to common from core.bunnei9-9/+9
- Removes a dependency on core and input_common from common.
2021-04-08service: hid: Stub SetAnalogStickUseCenterClampMorph2-0/+6
- Used by eBASEBALLパワフルプロ野球2020
2021-04-02HID: Fix SL and SR buttons for right joycongerman771-2/+6
2021-03-26HID: Initialize correctly the gesture finger_id and filter invalid resultsNarr the Reg2-3/+13
2021-02-28Implements touch, pan, pinch and rotation gesturesgerman2-11/+240
2021-02-08hid: Implement GC controllergerman2-1/+88
2021-02-05hle: kernel: Reimplement KReadableEvent and KWritableEvent.bunnei2-7/+13
2021-02-05hle: kernel: Rename WritableEvent to KWritableEvent.bunnei2-3/+3
2021-02-05hle: kernel: Rename ReadableEvent to KReadableEvent.bunnei2-3/+4
2021-02-04Add footer types and address commentsgerman7-58/+106
2021-02-04Fix npad struct to match switchbrewgerman2-104/+133
2021-02-04Adds missing controller types and propertiesgerman7-19/+172
2021-01-27npad: Remove unused device handle parameterMorph2-7/+6
2021-01-24Stub Set/Get/Reset SixaxisSensorFusionParametersgerman2-0/+23
2021-01-18npad: Add check for HANDHELD_INDEX in UpdateControllerAt()Morph1-1/+1
2021-01-15core: Silence Wclass-memaccess warningsReinUsesLisp2-10/+19
This requires making several types trivial and properly initialize them whenever they are called.
2021-01-15Always initialize keyboard inputgerman1-5/+1
2021-01-15Add mutitouch support for touch screensgerman2-19/+25
2021-01-15Allow to return up to 16 touch inputs per enginegerman2-55/+75
2021-01-15Allow all touch inputs at the same time and remove config options that are not longer necesarygerman2-11/+20
2021-01-15Add multitouch supportgerman2-23/+93
2020-12-18controllers/npad: Make press_state atomicMorph2-2/+3
2020-12-12controllers/npad: Validate device handles before useMorph2-0/+45
Some games such as NEKOPARA Vol. 3 send invalid device handles when calling InitializeVibrationDevice. Introduce a check to validate the device handle before use.
2020-11-29Add missing types to NpadCommunicationModegerman1-0/+2
2020-11-27Stub set and get NpadCommunicationModegerman2-0/+18
2020-11-16hid: Reimplement Begin/EndPermitVibrationSessionMorph2-2/+9
Upon further investigation, these commands allow temporary vibrations even when the "Controller Vibration" system setting is disabled. As a result, vibrations are allowed when either the system setting or this flag is set to true. Therefore, we can only block vibrations when both flags are set to false.
2020-11-16controllers/npad: Load input devices on initMorph1-0/+2
2020-11-16general: Fix compiler warnings on linux and miscellaneous changesMorph2-8/+11
2020-11-16controllers/npad: Remove the old vibration filterMorph2-49/+63
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.
2020-11-16hid: Implement InitializeVibrationDevice and IsVibrationDeviceMountedMorph2-1/+48
2020-11-16input_common: Add VibrationDevice and VibrationDeviceFactoryMorph2-33/+26
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.
2020-11-16configure_input: Add per-player vibrationMorph1-2/+11
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>
2020-11-16settings: Remove global vibration strength modifierMorph1-3/+1
This will be replaced in favor of per-player vibration strength modifiers.
2020-11-16hid: Mark Begin/EndPermitVibrationSession as stubsMorph2-12/+1
The implementation of these commands seem incomplete and causes rumble in Super Mario Party to stop working since only EndPermitVibrationSession is called. Thus, these are better off being marked as a stub until this can be investigated more thoroughly.
2020-11-16controllers/npad: Send an empty vibration on destruction/deactivationMorph2-20/+36
This stops all controllers from continuously vibrating when emulation is stopped.
2020-11-16controllers/npad: Add heuristics to reduce rumble state changesMorph1-5/+46
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.
2020-11-16configure_input: Hook up the vibration percentage spinboxMorph1-1/+2
This allows setting the vibration strength percentage anywhere from 1% to 100%. Also hooks up the remaining motion button and checkbox in the Controller Applet.
2020-11-16controllers/npad: Stop games from vibrating incorrect controllersMorph1-0/+10
Fixes vibration in 1-2 Switch and potentially other games where they would vibrate both players' joycons at the same time.
2020-11-16hid: Fix controller rumble based on new researchMorph2-24/+33
This fixes the issue where rumble is only sent to the first controller. Now, individual controllers can receive their own rumble commands.
2020-11-16hid: Reorder all HID commandsMorph2-24/+24
Reorders all HID commands in command id order.
2020-11-16controllers/npad: Rename NPadType to NpadStyleSetMorph2-8/+8
This more accurately represents the underlying type and avoids confusion with NpadType
2020-11-16controllers/npad: Add DeviceHandle structMorph1-27/+50
A DeviceHandle describes a vibration device or six-axis sensor based on the npad type, npad id, and device index/position
2020-11-16settings: Preparation for per-game input settingsMorph1-18/+24
2020-11-16controllers/npad: Connect a controller on init if none are connectedMorph1-0/+13
2020-10-21Revert "core: Fix clang build"bunnei9-80/+52
2020-10-18core: Fix clang buildLioncash9-52/+80
Recent changes to the build system that made more warnings be flagged as errors caused building via clang to break. Fixes #4795
2020-10-13core/CMakeLists: Make some warnings errorsLioncash2-27/+2
Makes our error coverage a little more consistent across the board by applying it to Linux side of things as well. This also makes it more consistent with the warning settings in other libraries in the project. This also updates httplib to 0.7.9, as there are several warning cleanups made that allow us to enable several warnings as errors.
2020-10-02Only use inputs corresponding to controller typegerman1-49/+58
2020-09-30hid: Stub HomeButtonInputProtection service commandsMorph2-0/+12
- Used in 1-2 Switch. Given that we do not emulate the functionality of the home button yet, we can stub this for now.
2020-09-29First implementation of controller rumblegerman2-8/+19
2020-09-24Use different timing for motiongerman3-73/+137
2020-09-18hid: Implement Get/SetNpadHandheldActivationModeMorph2-0/+18
- Used in Clubhouse Games: 51 Worldwide Classics
2020-09-05configure_input: Hook up the motion button and checkboxMorph1-1/+1
This allows toggling motion on or off, and allows access to the motion configuration. Also changes the [waiting] text for motion buttons to Shake! as this is how motion is connected to a player.
2020-09-05Add cemu hook changes related to PR #4609german1-2/+1
2020-09-05Remove RealMotionDevicegerman2-7/+8
2020-09-05controllers/npad: Simplify motion entry assignmentMorph1-29/+18
Simplifies the motion assignment in the Dual Joycon entry and assigns index 1 of the motion entry (Motion 2) for the right joycon.
2020-09-05Include HID and configuration changes related to motiongerman2-9/+162
2020-09-04hid: Implement MergeSingleJoyasDualJoyMorph2-0/+17
- Used in multiple games such as Super Mario Odyssey.
2020-09-04applets/controller: Implement fallback applet for the SDL frontendMorph2-89/+0
Implement the fallback applet for the SDL frontend, connecting only the minimum amount of players required.
2020-09-04Project Mjölnir: Part 2 - Controller AppletMorph2-11/+23
Co-authored-by: Its-Rei <kupfel@gmail.com>
2020-08-29yuzu: Add motion and touch configurationFearlessTobi2-1/+12
2020-08-26controllers/npad: Fix inconsistencies with controller connection statusesMorph1-1/+7
2020-08-26controllers/npad: Fix LibNX controller connection statusesMorph1-1/+9
This allows homebrew applications to be able to properly detect connected controllers.
2020-08-26controllers/npad: Fix LedPattern for P1-4Morph1-3/+3
2020-08-26Project Mjölnir: Part 1Morph2-118/+106
Co-authored-by: James Rowe <jroweboy@gmail.com> Co-authored-by: Its-Rei <kupfel@gmail.com>
2020-08-14core: Resolve several -Wextra-semi warningsLioncash1-2/+2
We can amend one of the cascade macros to require semicolons in order to compile. In other cases, we can just remove the superfluous semicolons.
2020-07-16hid: Only update keyboard & debug pad inputs if enabledDavid Marcec2-33/+37
Previously we would ignore this setting and would update the states regardless of the user setting
2020-06-27General: Recover Prometheus project from harddrive failure Fernando Sahmkow8-9/+9
This commit: Implements CPU Interrupts, Replaces Cycle Timing for Host Timing, Reworks the Kernel's Scheduler, Introduce Idle State and Suspended State, Recreates the bootmanager, Initializes Multicore system.
2020-06-21hid: Implement Get/ResetGyroscopeZeroDriftModeMorph2-1/+17
- Used by Captain Toad Treasure Tracker
2020-06-21Clang FormattingAmeer1-26/+16
2020-06-21GC Adapter ImplementationAmeer1-16/+26
2020-05-12hid: Clear keyboard states & fix logic issueDavid Marcec1-3/+4
Previously we never cleared the states of the entries and the key would stay held down, also looping over the key bytes for each key lead to setting every bit for the key state instead of the key we wanted
2020-04-20npad: Lower log level for VibrateController to DebugFearlessTobi1-1/+1
2020-04-18service: hid: npad: Fix implicit fallthrough errors.bunnei1-0/+2
2020-02-18analog_from_button get direction implementationCJBok1-5/+5
2020-01-15Moved analog direction logic to sdl_implCJBok1-9/+22
2020-01-14Corrected directional states sensitivityCJBok1-9/+9
2020-01-09hid: Fix analog sticks directional statesCJBok1-12/+12
2019-11-25kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for kernel objects. (#3154)bunnei2-3/+2
* kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for kernel objects. - See https://github.com/citra-emu/citra/pull/4710 for details.
2019-11-03kernel: events: Remove ResetType::Automatic.bunnei1-1/+1
- This does not actually seem to exist in the real kernel - games reset these automatically. # Conflicts: # src/core/hle/service/am/applets/applets.cpp # src/core/hle/service/filesystem/fsp_srv.cpp
2019-10-18hid/npad: Fix incorrect connection boolean value in ConnectAllDisconnectedControllers()Lioncash1-1/+1
We should be setting the connection state to true, otherwise we aren't actually making the controllers connected like the function name indicates.
2019-10-18hid/npad: Add missing break in default caseLioncash1-0/+1
While not an issue, it does prevent fallthrough from occurring if anything is ever added after this case (unlikely to occur, but this turns a trivial "should not cause issues" into a definite "won't cause issues).
2019-10-18hid/npad: Replace std::for_each with ranged for loopsLioncash1-13/+12
Performs the same behavior, but is built into the core language itself. No functional change.
2019-10-18hid/npad: Remove redundant non-const variant of IsControllerSupported()Lioncash2-34/+5
The const qualified variant can also be called in non-const contexts, so we can remove the non-const variant to eliminate a bit of code duplication.
2019-10-18hid/npad: Move function declarationsLioncash1-5/+6
Clearly separate these from the variable declarations to make them more visible.
2019-10-05service/hid: Silence -Wunused and -WswitchReinUsesLisp14-21/+14
2019-10-05service/hid: Remove unused system referenceReinUsesLisp2-2/+1
2019-09-24Signal styleset changes at a better timeDavid Marcec1-8/+2
We should signal when a net controller is added and our event should be manual, not automatic.
2019-09-22removed commentDavid Marcec1-1/+0
2019-09-22RebasedDavid Marcec2-10/+18
2019-09-22removed unneeded semicolonDavid Marcec1-1/+1
2019-09-22marked controller constructors as explicitDavid Marcec8-8/+8
2019-09-22RebaseDavid Marcec18-38/+53
2019-09-22Deglobalize System: HidDavid Marcec18-21/+25
2019-09-04dittoMorph19841-1/+1
Co-Authored-By: David <25727384+ogniK5377@users.noreply.github.com>
2019-09-04IsVibrationEnabled() as a const member funcMorph19841-1/+1
2019-09-04Update npad.hMorph19841-0/+1
2019-09-04Update npad.cppMorph19841-0/+6
2019-07-08addressed issuesDavid Marcec1-6/+7
2019-07-01hid:StartLrAssignmentMode, hid:StopLrAssignmentMode, hid:SwapNpadAssignmentDavid Marcec2-0/+35
StartLrAssignmentMode and StopLrAssignmentMode don't require any implementation as it's just used for showing the screen of changing the controller orientation if the user wishes to do so. Ever since #1634 this has not been needed as users can specify the controller orientation from the config and swap at any time. We store a private member just in case this gets used for anything extra in the future
2019-05-18core/kernel/object: Rename ResetType enum membersLioncash1-1/+1
Renames the members to more accurately indicate what they signify. "OneShot" and "Sticky" are kind of ambiguous identifiers for the reset types, and can be kind of misleading. Automatic and Manual communicate the kind of reset type in a clearer manner. Either the event is automatically reset, or it isn't and must be manually cleared. The "OneShot" and "Sticky" terminology is just a hold-over from Citra where the kernel had a third type of event reset type known as "Pulse". Given the Switch kernel only has two forms of event reset types, we don't need to keep the old terminology around anymore.
2019-02-16core_timing: Convert core timing into a classLioncash17-26/+39
Gets rid of the largest set of mutable global state within the core. This also paves a way for eliminating usages of GetInstance() on the System class as a follow-up. Note that no behavioral changes have been made, and this simply extracts the functionality into a class. This also has the benefit of making dependencies on the core timing functionality explicit within the relevant interfaces.
2019-02-12core_timing: Rename CoreTiming namespace to Core::TimingLioncash8-9/+9
Places all of the timing-related functionality under the existing Core namespace to keep things consistent, rather than having the timing utilities sitting in its own completely separate namespace.
2019-02-06remove all occurance of specifying endianness inside BitFieldWeiyi Wang3-68/+68
This commit it automatically generated by command in zsh: sed -i -- 's/BitField<\(.*\)_le>/BitField<\1>/g' **/*(D.) BitField is now aware to endianness and default to little endian. It expects a value representation type without storage specification for its template parameter.
2018-12-29web_browser: Add bounds checking to applet interfaceZach Hilman2-5/+3
2018-12-28hid: Make Hid service accessible and add GetPressStateZach Hilman2-0/+14
2018-12-26npad: Remove code to invert input in horizontal mode.bunnei1-46/+0
- This was incorrect, the game appears to handle this for us. - Fixes horizontal mode with Puyo Puyo Tetris and Super Mario Odyssey.
2018-12-02Fixed crash with SetNpadModeDavid Marcec1-2/+3
fixed crash due to handheld
2018-11-29kernel/event: Reference ReadableEvent from WritableEventZach Hilman2-13/+7
2018-11-29core: Port all current usages of Event to Readable/WritableEventZach Hilman2-8/+17
2018-11-28npad: Use NPadIdToIndex to prevent invalid array accessZach Hilman1-2/+2
2018-11-27npad: Fix copy/paste error with LED position assignmentsZach Hilman1-3/+3
2018-11-26Changed logging to be "Log before execution", Added more error logging, all services should now log on some levelDavid Marcec1-1/+2
2018-11-22debug_pad: Avoid loading input for nonexistent buttons (Home and Screenshot)Zach Hilman1-2/+3
Prevents memory exceptions when the debug pad is enabled.
2018-11-19hid: Use player-defined controller type as PREFERRED_CONTROLLERZach Hilman4-174/+61
2018-11-19hid/npad: Update NPad to use player controller bindings and typeZach Hilman2-55/+108
2018-11-19hid/touchscreen: Update Touchscreen to use advanced parametersZach Hilman1-6/+6
Including finger ID, diamater x/y, and angle. Additionally, checks if the touchscreen is enabled.
2018-11-19hid: Add controller bindings for Mouse controllerZach Hilman2-4/+30
2018-11-19hid: Add keyboard bindings for Keyboard controllerZach Hilman2-2/+24
2018-11-19hid: Add controller bindings for DebugPad controllerZach Hilman2-21/+43
Used by developers to test games, not present on retail systems. Some games are known to respond to DebugPad input though, for example Kirby Star Allies.
2018-11-19Added missing start/end touch attributes to touchscreenDavid Marcec2-1/+18
2018-11-19Added debugpad skeletonDavid Marcec2-2/+55
2018-11-19Added controller helper funcsDavid Marcec2-0/+35
2018-11-19Left joycon rotation button remappingDavid Marcec2-7/+21
2018-11-19Added automatic npad switch based on supported stylesetsDavid Marcec2-4/+124
2018-11-19Added multi-input support and controller assignment at any portDavid Marcec2-122/+181
2018-11-16Fixed priority switching edge case for handheld (#1675)David1-12/+46
* Fixed priority switching edge case for handheld We accidently used controller index instead of npad id * Moved NPadIdToIndex
2018-11-14hid/npad: Add missing break in switch statement within Controller_NPad::OnUpdate()Lioncash1-0/+1
2018-11-07Updated npad styles on holdtype switchesDavid Marcec1-0/+2
Fixes input for megaman
2018-11-02Fixed HID crash when launching more than 1 game & signaled syleset change eventDavid Marcec1-0/+3
This should fix crashes when launching multiple games in yuzu
2018-10-24npad: Remove unused controller variable from OnInit()Lioncash1-2/+3
This also gets rid of variable shadowing related to the lambda parameter a little bit below this code as well.
2018-10-20Added auto controller switching to supported controllers and single joycon button rotationDavid Marcec2-4/+189
This is a subset of the better-hid-2 changes, this fixes input in various games which don't support dual joycons. This pr will search for the next best controller which is supported by the current game
2018-10-18hid/controller: Remove unused header inclusionsLioncash9-9/+0
swap.h only needs to be present in the header for the type aliases and definitions, it's not actually needed in the cpp files though. input.h is just unused entirely in xpad.h
2018-10-18hid/controller/npad: Remove unused dump_idx member variableLioncash1-1/+0
Given it's unused, we may as well toss it.
2018-10-18hid/controller/npad: Remove unnecessary semicolon from the closing brace of LedPattern's constructorLioncash1-1/+1
2018-10-18hid/controller/npad: Remove #pragma once from the cpp fileLioncash1-2/+0
This is only useful in headers.
2018-10-18hid/controller/npad: Move npad_id_list into the cpp fileLioncash2-2/+10
This is just a lookup table, and since it's private, there's nothing really stateful about it, so we can just move it into the cpp file.
2018-10-18hid/controller/npad: Remove unnecessary const from void return typeLioncash2-2/+2
This literally does nothing.
2018-10-18hid/controller: Default the destructors of all controller types in the cpp fileLioncash16-0/+16
These classes are non-trivial and are definitely going to be changed in the future, so we default these to prevent issues with forward declarations, and to keep the compiler from inlining tear-down code.
2018-10-18controller_base: Default the base class constructor and destructor in the cpp fileLioncash2-2/+4
The destructor doesn't need to be a pure-virtual function.
2018-10-17Using dual joycons as the default controllerDavid Marcec2-74/+58
Reason for the change is to allow both docked and undocked mode to work
2018-10-12WipDavid Marcec1-2/+18
2018-10-11Dynamically decide handheld variant based on supported npad id priorityDavid Marcec2-19/+58
Kirby input still doesn't work, should fix a lot of other games
2018-10-10Added BeginPermitVibrationSession and EndPermitVibrationSessionDavid Marcec2-0/+8
Used by Mario Party
2018-10-10Added GetLedPattern and HandheldVariantDavid Marcec2-4/+54
HandheldVariant is for specific games which expect handheld controllers to be at position 8(kirby), however this doesn't fix all games as some games require handhelds to be at position 0(snipperclips)
2018-10-10Kirby expects handheld controllers to be at position 8David Marcec1-2/+8
2018-10-10Added the ability to "disconnect" individual npadsDavid Marcec2-15/+36
Fixes arms
2018-10-10Removed unneeded forward declarationsDavid Marcec2-13/+2
2018-10-10Addressed changes for better hidDavid Marcec18-130/+208
2018-10-10"Better Hid" rework part 1David Marcec18-0/+1289