aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/service/hid
AgeCommit message (Collapse)Author
2020-11-26service: Eliminate usages of the global system instanceLioncash
Completely removes all usages of the global system instance within the services code by passing in the using system instance to the services.
2020-11-15hid: Reimplement Begin/EndPermitVibrationSessionMorph
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-15controllers/npad: Load input devices on initMorph
2020-11-15general: Fix compiler warnings on linux and miscellaneous changesMorph
2020-11-15controllers/npad: Remove the old vibration filterMorph
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-15hid: Implement InitializeVibrationDevice and IsVibrationDeviceMountedMorph
2020-11-15input_common: Add VibrationDevice and VibrationDeviceFactoryMorph
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-15configure_input: Add per-player vibrationMorph
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-15settings: Remove global vibration strength modifierMorph
This will be replaced in favor of per-player vibration strength modifiers.
2020-11-15hid: Mark Begin/EndPermitVibrationSession as stubsMorph
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-15controllers/npad: Send an empty vibration on destruction/deactivationMorph
This stops all controllers from continuously vibrating when emulation is stopped.
2020-11-15hid: Stub IsVibrationDeviceMountedMorph
- Used in Super Mario Odyssey
2020-11-15controllers/npad: Add heuristics to reduce rumble state changesMorph
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-15configure_input: Hook up the vibration percentage spinboxMorph
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-15controllers/npad: Stop games from vibrating incorrect controllersMorph
Fixes vibration in 1-2 Switch and potentially other games where they would vibrate both players' joycons at the same time.
2020-11-15hid: Fix controller rumble based on new researchMorph
This fixes the issue where rumble is only sent to the first controller. Now, individual controllers can receive their own rumble commands.
2020-11-15hid: Pop a struct of parameters instead of popping individual parametersMorph
Some parameters need to be doubleword aligned due to the presence of the applet_resource_user_id. Previously, this value was invalid in many commands where it was not doubleword aligned when popped.
2020-11-15hid: Reorder all HID commandsMorph
Reorders all HID commands in command id order.
2020-11-15hid: Implement GetVibrationDeviceInfoMorph
The first u32 describes the vibration device type which is a Linear Resonant Actuator used in Nintendo Switch controller hardware. The second u32 describes the vibration device position, in this case distinguishing between left and right vibration actuators. Pro Controllers have 2 LRAs each that can vibrate independently of each other, which means they have 2 distinct vibration device handles to distinguish between the two actuators. Similarly for joycons, the left joycon can be distinguished from the right joycon through the vibration device handle since each joycon has 1 LRA.
2020-11-15hid: Stub InitializeVibrationDeviceMorph
2020-11-15controllers/npad: Rename NPadType to NpadStyleSetMorph
This more accurately represents the underlying type and avoids confusion with NpadType
2020-11-15controllers/npad: Add DeviceHandle structMorph
A DeviceHandle describes a vibration device or six-axis sensor based on the npad type, npad id, and device index/position
2020-11-15settings: Preparation for per-game input settingsMorph
2020-11-15controllers/npad: Connect a controller on init if none are connectedMorph
2020-10-27service: Update function tablesLioncash
Updates function tables according to info on SwitchBrew.
2020-10-20Revert "core: Fix clang build"bunnei
2020-10-17core: Fix clang buildLioncash
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 errorsLioncash
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-07Merge pull request #4736 from Morph1984/home-button-input-protection-stubbunnei
hid: Stub HomeButtonInputProtection service commands
2020-10-05Merge pull request #4742 from german77/InputFilterbunnei
HID: Only use inputs corresponding to controller type
2020-10-01Merge pull request #4734 from german77/motionfusionbunnei
HID: Add Stub for EnableSixAxisSensorFusion
2020-10-01Only use inputs corresponding to controller typegerman
2020-09-30Stubbed EnableSixAxisSensorFusiongerman
2020-09-30Merge pull request #4291 from german77/ImplementControllerRumbleDavid
input_common: First implementation of controller rumble
2020-09-30hid: Stub HomeButtonInputProtection service commandsMorph
- 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 rumblegerman
2020-09-23Use different timing for motiongerman
2020-09-20Merge pull request #4683 from Morph1984/NpadHandheldActivationMode-implbunnei
hid: Implement Get/SetNpadHandheldActivationMode
2020-09-19Merge pull request #4643 from FearlessTobi/decrease-pad-update-intervalbunnei
Test: Decrease pad_update_ns
2020-09-18hid: Implement Get/SetNpadHandheldActivationModeMorph
- Used in Clubhouse Games: 51 Worldwide Classics
2020-09-17Merge pull request #4594 from german77/MotionHIDbunnei
hid/configuration: Implement motion controls to HID
2020-09-10Merge pull request #4597 from Morph1984/mjolnir-p2bunnei
Project Mjölnir: Part 2 - Controller Applet
2020-09-10Test: Decrease pad_update_nsFearlessTobi
There have been reports of quite heavy input lag in the past. Compared to Citra for example, our pad_update_ns value is very high. So let's decrease it and see if it helps with this problem.
2020-09-05configure_input: Hook up the motion button and checkboxMorph
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-04Add cemu hook changes related to PR #4609german
2020-09-04Remove RealMotionDevicegerman
2020-09-04controllers/npad: Simplify motion entry assignmentMorph
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-04Include HID and configuration changes related to motiongerman
2020-09-04hid: Implement MergeSingleJoyasDualJoyMorph
- Used in multiple games such as Super Mario Odyssey.
2020-09-04applets/controller: Implement fallback applet for the SDL frontendMorph
Implement the fallback applet for the SDL frontend, connecting only the minimum amount of players required.