Commit Graph

119 Commits

Author SHA1 Message Date
Morph f474cab023 hid: Fix controller rumble based on new research
This fixes the issue where rumble is only sent to the first controller.
Now, individual controllers can receive their own rumble commands.
2020-11-15 23:33:20 -05:00
Morph dc7a9a7be2 hid: Reorder all HID commands
Reorders all HID commands in command id order.
2020-11-15 23:33:20 -05:00
Morph 294f3dd914 controllers/npad: Rename NPadType to NpadStyleSet
This more accurately represents the underlying type and avoids confusion with NpadType
2020-11-15 23:33:20 -05:00
Morph f279871f0b controllers/npad: Add DeviceHandle struct
A DeviceHandle describes a vibration device or six-axis sensor based on the npad type, npad id, and device index/position
2020-11-15 23:33:20 -05:00
Morph 1c1a83a20d settings: Preparation for per-game input settings 2020-11-15 23:33:20 -05:00
Morph 0a85f0fd25 controllers/npad: Connect a controller on init if none are connected 2020-11-15 23:33:19 -05:00
bunnei deb3536936 Revert "core: Fix clang build" 2020-10-20 19:07:39 -07:00
Lioncash 18636013c9 core: Fix clang build
Recent changes to the build system that made more warnings be flagged as
errors caused building via clang to break.

Fixes #4795
2020-10-17 19:50:39 -04:00
Lioncash 16de0a6a96 core/CMakeLists: Make some warnings errors
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-13 13:16:49 -04:00
bunnei 44641fe2a9 Merge pull request #4736 from Morph1984/home-button-input-protection-stub
hid: Stub HomeButtonInputProtection service commands
2020-10-07 14:54:05 -07:00
german 3fa9068948 Only use inputs corresponding to controller type 2020-10-01 19:39:53 -05:00
David 99e921f52e Merge pull request #4291 from german77/ImplementControllerRumble
input_common: First implementation of controller rumble
2020-09-30 21:24:11 +10:00
Morph f3e928bb6a hid: Stub HomeButtonInputProtection service commands
- 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-30 06:38:24 -04:00
german 782aab6cf2 First implementation of controller rumble 2020-09-29 10:38:25 -04:00
german c3fb504201 Use different timing for motion 2020-09-23 19:09:33 -05:00
bunnei 24b421b14c Merge pull request #4683 from Morph1984/NpadHandheldActivationMode-impl
hid: Implement Get/SetNpadHandheldActivationMode
2020-09-20 12:39:20 -07:00
Morph 505ce79b9d hid: Implement Get/SetNpadHandheldActivationMode
- Used in Clubhouse Games: 51 Worldwide Classics
2020-09-18 10:10:30 -04:00
bunnei 9a2553c952 Merge pull request #4594 from german77/MotionHID
hid/configuration: Implement motion controls to HID
2020-09-17 12:39:01 -07:00
bunnei c2ad9f6fc9 Merge pull request #4597 from Morph1984/mjolnir-p2
Project Mjölnir: Part 2 - Controller Applet
2020-09-10 19:28:23 -04:00
Morph 55db7a4e0a configure_input: Hook up the motion button and checkbox
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-05 09:46:34 -04:00
german 82eb4be33b Add cemu hook changes related to PR #4609 2020-09-04 21:48:13 -05:00
german 17b48f8d42 Remove RealMotionDevice 2020-09-04 21:48:13 -05:00
Morph a04a7174c7 controllers/npad: Simplify motion entry assignment
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-04 21:48:13 -05:00
german 876e6fc255 Include HID and configuration changes related to motion 2020-09-04 21:48:03 -05:00
Morph ce1c6f2eea hid: Implement MergeSingleJoyasDualJoy
- Used in multiple games such as Super Mario Odyssey.
2020-09-04 15:38:33 -04:00
Morph 3742ae763c applets/controller: Implement fallback applet for the SDL frontend
Implement the fallback applet for the SDL frontend, connecting only the minimum amount of players required.
2020-09-04 12:23:25 -04:00
Morph 4c621b9b09 Project Mjölnir: Part 2 - Controller Applet
Co-authored-by: Its-Rei <kupfel@gmail.com>
2020-09-04 12:23:25 -04:00
FearlessTobi 2903f0f7ce yuzu: Add motion and touch configuration 2020-08-29 18:56:34 +02:00
Morph 9b0f5da0c6 controllers/npad: Fix inconsistencies with controller connection statuses 2020-08-26 02:32:32 -04:00
Morph 4d6a8f3e8f controllers/npad: Fix LibNX controller connection statuses
This allows homebrew applications to be able to properly detect connected controllers.
2020-08-26 02:32:32 -04:00
Morph 9fc2eb2ee0 controllers/npad: Fix LedPattern for P1-4 2020-08-26 02:32:32 -04:00
Morph 34a209d15c Project Mjölnir: Part 1
Co-authored-by: James Rowe <jroweboy@gmail.com>
Co-authored-by: Its-Rei <kupfel@gmail.com>
2020-08-26 02:32:32 -04:00
Lioncash 0c78ed16df core: Resolve several -Wextra-semi warnings
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-08-14 09:09:20 -04:00
David Marcec 255847b16d hid: Only update keyboard & debug pad inputs if enabled
Previously we would ignore this setting and would update the states regardless of the user setting
2020-07-16 22:28:49 +10:00
Fernando Sahmkow 7ee76003ad General: Recover Prometheus project from harddrive failure
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-27 11:35:06 -04:00
Morph eaa3067fa8 hid: Implement Get/ResetGyroscopeZeroDriftMode
- Used by Captain Toad Treasure Tracker
2020-06-21 16:25:41 -04:00
David Marcec e6886a756c hid: Clear keyboard states & fix logic issue
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-05-12 12:40:50 +10:00
FearlessTobi 45243e63d8 npad: Lower log level for VibrateController to Debug 2020-04-20 18:44:57 +02:00
bunnei f220140e8a service: hid: npad: Fix implicit fallthrough errors. 2020-04-18 14:41:08 -04:00
CJBok 7ec4bd7793 analog_from_button get direction implementation 2020-02-18 06:45:37 +01:00
CJBok be576083dd Moved analog direction logic to sdl_impl 2020-01-15 11:25:15 +01:00
CJBok 5af2a8b2f6 Corrected directional states sensitivity 2020-01-14 21:51:58 +01:00
CJBok 57998ae780 hid: Fix analog sticks directional states 2020-01-09 02:40:55 +01:00
bunnei 5cb0f276fe kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for kernel objects. (#3154)
* 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-24 20:15:51 -05:00
bunnei eeef564c02 kernel: events: Remove ResetType::Automatic.
- 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-11-03 04:22:45 -05:00
Lioncash 1733d2604c hid/npad: Fix incorrect connection boolean value in ConnectAllDisconnectedControllers()
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-17 18:19:47 -04:00
Lioncash 29fddba52e hid/npad: Add missing break in default case
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-17 18:17:42 -04:00
Lioncash 060b33cfbe hid/npad: Replace std::for_each with ranged for loops
Performs the same behavior, but is built into the core language itself.

No functional change.
2019-10-17 18:16:36 -04:00
Lioncash 22e917cd8e hid/npad: Remove redundant non-const variant of IsControllerSupported()
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-17 18:11:41 -04:00
Lioncash 98b277dfae hid/npad: Move function declarations
Clearly separate these from the variable declarations to make them more
visible.
2019-10-17 18:09:08 -04:00