Sam Lantinga
6204ae5002
Restart the IMU if the controller stops sending gyro/accel data
2022-08-08 20:10:12 -07:00
Sam Lantinga
d58bec72a0
Fixed Joy-Con gyro axes in mini-gamepad mode
2022-08-08 17:19:33 -07:00
Sam Lantinga
878259722f
Added SDL_GameControllerType enumeration for Nintendo Switch Joy-Con controllers
2022-08-08 08:22:20 -07:00
Sam Lantinga
52bf5b1de9
Added the hint SDL_HINT_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED to control whether the player LED is set on Nintendo Switch controllers
2022-08-06 10:34:19 -07:00
Sam Lantinga
4a9ceb7be9
The HORIPAD S uses the Xbox 360 protocol on all platforms and shows up as multiple styles of controller, depending on what model you have.
2022-08-04 11:33:36 -07:00
Sam Lantinga
28c01955bc
Fixed button mapping for the HORIPAD S
...
This controller actually comes in at least two flavors: a GameCube controller and an arcade pad, neither of which should have the face buttons remapped.
2022-08-04 10:46:37 -07:00
Sam Lantinga
43b90484c9
Retry a little longer when writing to the Nintendo Joy-Con Charging Grip
2022-08-04 00:40:38 -07:00
Sam Lantinga
dfd2c574d7
Removed unused variable
2022-08-03 22:27:43 -07:00
Sam Lantinga
c84dea0943
Fixed detecting the controller type of controllers over USB
2022-08-03 22:12:21 -07:00
Sam Lantinga
ba297f12cd
Use the Nintendo controller type to determine whether to always use button labels
2022-08-03 21:46:01 -07:00
Sam Lantinga
946f4777f6
Don't set Bluetooth controllers to wired power level
2022-08-03 21:33:38 -07:00
Sam Lantinga
57c3b2c950
Don't rely on the device VID/PID to get the Nintendo controller type
...
The Nintendo Online Sega Genesis controller reports the SNES VID/PID over Bluetooth. This is a more robust way of handling future controllers as well, so let's go with this instead.
Also use full reports over Bluetooth, and don't report gyro for Nintendo Online classic controllers.
2022-08-03 21:31:12 -07:00
Sam Lantinga
b6aadb16b9
Added k_eSwitchDeviceInfoControllerType_N64 to ESwitchDeviceInfoControllerType
2022-08-03 20:38:33 -07:00
Sam Lantinga
bdfb32de3c
Added some additional Nintendo controller types to ESwitchDeviceInfoControllerType
2022-08-03 20:30:58 -07:00
Sam Lantinga
5d50fa52df
Fixed timeout opening the Nintendo Joy-Con Charging Grip
...
Sometimes opening the right Joy-Con takes a little longer for some reason
2022-08-03 19:39:36 -07:00
Sam Lantinga
29cdb2c9c9
Added support for the Nintendo Switch Joy-Con Charging Grip
2022-08-03 18:01:10 -07:00
Sam Lantinga
a8120104ad
The Nintendo Online classic controllers and Joy-Cons shouldn't show up as Switch Pro controllers
2022-08-03 13:53:49 -07:00
Sam Lantinga
bcdef4aaf9
Added separate hints for Nintendo Online classic controllers and Joy-Cons
...
This allows them to be enabled/disabled separately from Switch Pro HIDAPI support
2022-08-03 13:07:47 -07:00
Mathieu Eyraud
59a104b803
Do not pass NULL to memcpy
...
ReadJoyConControllerType calls WriteSubcommandSync with pbuf=NULL
2022-08-02 06:38:51 -07:00
Sam Lantinga
875b737c64
Added support for the Nintendo Online NES Controllers to the HIDAPI driver
2022-07-28 21:40:01 -07:00
Sam Lantinga
2fa2f9ff77
Greatly improved Nintendo Joy-Con support using the HIDAPI driver
...
* Added support for mini-gamepad mode for Joy-Con controllers, matching the mapping for hid-nintendo on Linux and iOS 16
* Added the ability to merge left and right Joy-Con controllers into a single Pro-style controller
* Added the hint SDL_HINT_JOYSTICK_HIDAPI_SWITCH_COMBINE_JOY_CONS to control this merging functionality
* Removed the hint SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS
2022-07-28 19:22:27 -07:00
Sam Lantinga
def60ce6fe
Fixed the name of the HIDAPI Joy-Con controller for consistency with other drivers
2022-07-27 19:20:42 -07:00
Sam Lantinga
a169259f62
Actually we don't need to unlock to send k_eSwitchProprietaryCommandIDs_ForceUSB since we don't wait for reply
2022-07-27 09:05:02 -07:00
Sam Lantinga
c51464d9d8
Put the Nintendo Switch Pro controller back into enhanced mode as needed
...
Fixes https://github.com/libsdl-org/SDL/issues/3450
2022-07-27 09:00:39 -07:00
Sam Lantinga
a423848ea0
Allow floating point values for SDL_HINT_JOYSTICK_HIDAPI_SWITCH_HOME_LED
...
This allows setting the brightness of the home LED on Nintendo Switch Pro controllers, in the range 0.0 - 1.0.
This can be updated at runtime by setting the hint dynamically.
Fixes https://github.com/libsdl-org/SDL/issues/3787
2022-07-25 11:26:18 -07:00
Sam Lantinga
68544be44b
Added support for the Nintendo Online controllers
2022-06-10 11:31:59 -07:00
Jibb Smart
d7c07d6b09
Read motion sensor scale from Switch controllers ( #5555 )
...
* Read IMU scale data from Switch controllers. Up until now, SDL has used hard-coded scaling which isn't correct with some supported controllers.
* Moved declarations to beginning of code blocks to better fit with SDL style requirements
2022-04-26 09:57:17 -07:00
meyraud705
0964c84d77
Always use SDL_PrivateJoystickBatteryLevel to update battery level
...
But do not use it for initialisation.
2022-04-25 15:46:17 -07:00
pionere
60deadba59
re-use return value of SDL_SetError/WIN_SetErrorFromHRESULT/SDL_OutOfMemory
2022-01-28 20:40:19 -05:00
Sam Lantinga
120c76c84b
Updated copyright for 2022
2022-01-03 09:40:21 -08:00
Sam Lantinga
66058bbbd5
Fixed exception accessing Bluetooth devices on Android 12
...
Since accessing Bluetooth prompts the user for permission on both Android and iOS, and we only need it for Steam Controller support, we'll leave it off by default. You can enable it by setting the hint SDL_HINT_JOYSTICK_HIDAPI_STEAM to "1" before calling SDL_Init()
Fixes https://github.com/libsdl-org/SDL/issues/4952
2021-11-15 16:52:56 -08:00
Ozkan Sezer
a2c27d39cf
SDL_hidapi_switch.c (ConstructSubcommand): lose use of '&' on rumbleData
...
SwitchCommonOutputPacket_t->rumbleData is an array.
2021-11-13 17:56:28 +03:00
Cameron Gutman
afccabb881
joystick: Add capability flags for rumble and trigger rumble
...
When API limitations force us to guess, we favor a false positive (reporting
support when it doesn't exist) compared to a false negative.
2021-11-11 15:10:08 -08:00
Cameron Gutman
1ccfbf963e
joystick: Convert HasLED() into a generic GetCapabilities() function
2021-11-11 15:10:08 -08:00
Sam Lantinga
5b646cd19e
Build hidapi code into SDL as a new public API
...
This prevents conflicts with hidapi linked with applications, as well as allowing applications to make use of HIDAPI on Android and other platforms that might not normally have an implementation available.
2021-11-07 23:00:59 -08:00
Sam Lantinga
fe2fe29049
Backed out accidentally committed PR https://github.com/libsdl-org/SDL/pull/4849
2021-11-07 11:48:16 -08:00
Sam Lantinga
86bc65a741
Fixed non-Apple builds
2021-11-07 11:35:12 -08:00
Sam Lantinga
345c161feb
Fixed some accidental uses of external C runtime functions
2021-09-22 09:06:45 -07:00
Sam Lantinga
503ea8e89f
Don't modify the Nintendo Switch home LED state by default
2021-08-25 14:42:16 -07:00
Sam Lantinga
9fdb06450d
Added support for the Joy-Con Charging Grip when SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS is enabled
2021-08-04 11:34:06 -07:00
Sam Lantinga
b3a0174b26
Scale the values correctly based on the sensor type (thanks @meyraud705)
2021-07-29 14:25:13 -07:00
Sam Lantinga
a186a503e7
Added SDL_GameControllerGetSensorDataRate() to get the sensor update rate for a controller.
2021-07-29 06:43:39 -07:00
Sam Lantinga
8d527def81
Revert "hidapi_switch: Implement HD rumble effect ( #4538 )"
...
This reverts commit 19082b115b8ba3fff93e1c317c380718086a509c, which broke rumble on the Nintendo Switch Pro controller
2021-07-26 10:18:18 -07:00
Narr the Reg
19082b115b
hidapi_switch: Implement HD rumble effect ( #4538 )
2021-07-26 10:00:53 -07:00
Sam Lantinga
3c9559f765
Don't try to rumble third-party Nintendo Switch Pro controllers
...
Sending rumble to the PowerA Spectra Nintendo Switch controller hangs input reports for a couple of seconds.
2021-07-24 19:43:56 -07:00
german77
e6e8fe6d4e
hidapi_switch: Implement analog rumble
2021-07-24 01:06:05 -07:00
Sam Lantinga
d135c0762f
Added SDL_GameControllerSendEffect() and SDL_JoystickSendEffect() to allow applications to send custom effects to the PS4 and PS5 controllers
...
See testgamecontroller.c for an example of a custom PS5 trigger effect
2021-07-08 13:22:41 -07:00
Sam Lantinga
3fcaf5b4b3
Fixed incorrect axis scaling for Nintendo Switch controllers
2021-05-25 10:33:30 -07:00
JibbSmart
c287087fcc
Only change joystick->nbuttons for Joy-Cons, since they're the only ones that have these "paddles"
2021-02-22 17:54:32 -08:00
JibbSmart
ee52624f95
Switch Joy-Con SL and SR buttons are now mapped to matching paddle positions so that all buttons can be accessed when using SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS
2021-02-22 17:54:32 -08:00