Steven Noonan
3d35c08585
fix a few 'unused but set variable' and 'unused function' warnings
2022-10-24 10:36:56 -07:00
Sam Lantinga
f4d1f5ed54
SDL-HIDPS4: fix PS4 Slim controller over BT - it sends the same input report as the it does over USB, but with a larger packet size
...
CR: saml
2022-10-23 16:35:36 -07:00
Sam Lantinga
5b8f830e34
Virtual joysticks don't need initial axis jitter protection
...
Fixes https://github.com/libsdl-org/SDL/issues/6426
2022-10-22 09:25:09 -07:00
Sam Lantinga
0bc852ce53
Revert "Disable the RAWINPUT joystick driver by default"
...
Disabling RAWINPUT on Windows 10 causes these issues:
* All Xbox controllers are named "XInput Controller".
* Trigger rumble no longer works.
* "XInput Controllers" are now also listed as separate haptic devices
2022-10-17 17:43:06 -07:00
Sam Lantinga
333935ff3f
Make sure we completely unlock joysticks when opening HIDAPI devices
...
Also lock the joysticks when adding and removing Android joysticks
2022-10-17 11:10:53 -07:00
Sam Lantinga
47ba997f06
Disable the RAWINPUT joystick driver by default
...
It's only needed to support more than 4 Xbox controllers, and adds significant complexity to the joystick processing, and we regularly get bugs from people who aren't using an SDL window who need to turn on SDL_HINT_JOYSTICK_THREAD.
2022-10-17 07:39:52 -07:00
Sam Lantinga
5025f24033
Don't use RAWINPUT joystick driver on Windows XP
...
Fixes https://github.com/libsdl-org/SDL/issues/6400
2022-10-17 07:35:00 -07:00
Sam Lantinga
70dfd6dd1a
Added mapping for Xbox Series X controller
...
Fixes https://github.com/libsdl-org/SDL/issues/6296
2022-10-16 09:06:02 -07:00
Sam Lantinga
e8fdb861ef
Removed redundant masking when loading the IMU calibration
2022-10-15 10:02:39 -07:00
happyharryh
a6573f94ab
Fix bugs in IMU calibration loading for Nintendo Controllers
2022-10-15 10:01:22 -07:00
Sam Lantinga
5129a07707
Steam Controller support defaults off, as documented in SDL_hints.h
2022-10-14 14:35:52 -07:00
Sam Lantinga
6af17369ca
Added mapping for Qanba Drone on Linux without HIDAPI
2022-10-14 10:36:24 -07:00
Sam Lantinga
93b7196763
Only update the battery level if we're on Bluetooth
...
Fixes battery level dropping to empty with the Qanba Drone Arcade Stick.
It looks like we might also be able to skip the check for all third party controllers, but I think this is the right thing to do for Sony controllers as well.
2022-10-14 10:32:03 -07:00
Sam Lantinga
120a957d07
Added support for the Qanba Drone Arcade Stick
2022-10-14 09:57:02 -07:00
Sam Lantinga
fc73386f45
Fixed the mapping from raw joystick values to the expected [SDL_JOYSTICK_AXIS_MIN, SDL_JOYSTICK_AXIS_MAX] range. (thanks Tas!)
...
The original code mapped incorrectly from [min, max] to [-32768, 32512], the upper bound being SDL_JOYSTICK_AXIS_MAX - 255 instead of SDL_JOYSTICK_AXIS_MAX.
2022-10-12 21:44:50 -07:00
happyharryh
6f224e4d9f
Made timestamp_us of sensor events increase monotonically for Nintendo controllers
2022-10-10 22:33:19 -07:00
Pierre Wendling
43a2b0b1e5
N3DS: Use macro to correct axis.
...
Using `(value * SDL max) / 3DS max` allows for marginally better
accuracy compared to `value * (SDL max / 3DS max)`.
2022-10-10 08:50:59 -07:00
Pierre Wendling
cb1972b3ba
N3DS: ZL and ZR should be considered as triggers.
...
Previously they were considered as clicking stick.
2022-10-10 08:50:59 -07:00
Pierre Wendling
86a8714fea
N3DS: Refactor joystick module to avoid globals.
2022-10-10 08:50:59 -07:00
Pierre Wendling
392f3882d0
N3DS: Use SDL_Sensor instead of Joystick sensors.
2022-10-10 08:50:59 -07:00
Pierre Wendling
266014faa7
N3DS: Use SDL_Touch instead of the Joystick touch.
2022-10-10 08:50:59 -07:00
Pierre Wendling
03bbbcd85e
N3DS: Use CreateJoystickGUIDForName.
2022-10-10 08:50:59 -07:00
Pierre Wendling
655275378d
N3DS port (squashed)
...
A dedicated renderer using Citro3D would likely allow for better
much better graphical performances.
2022-10-10 08:50:59 -07:00
Sam Lantinga
efdb390caa
Disable the HIDAPI Wii driver by default as it doesn't work with the dolphinbar
2022-10-09 09:11:33 -07:00
Sam Lantinga
33050fea39
Only open HID devices that might have a HIDAPI driver available
...
This prevents an OS prompt for every connected device when running on Android
2022-10-07 11:29:49 -07:00
Sam Lantinga
fc720321b3
Fix rare deadlock when opening a HID controller on Android
...
Fixes https://github.com/libsdl-org/SDL/issues/6347
2022-10-06 18:23:07 -07:00
Sam Lantinga
689409fd97
Fixed the start button on the Nimbus+ controller on tvOS
...
Also updated mappings for Nintendo Switch controllers on tvOS, to reflect the lack of guide/menu button availability
2022-10-06 17:34:24 -07:00
Sam Lantinga
ddc3de602e
Added mapping for PS5 controller over Bluetooth on Android 12
...
Tested on Pixel 3a
2022-10-05 16:24:05 -07:00
Sam Lantinga
81afb3e303
Need to swap endianness when extracting the CRC from game controller mappings
2022-10-05 16:18:42 -07:00
Sam Lantinga
3607f8316f
Find out if a controller is wireless using WGI (thanks @DJm00n!)
...
Confirmed using an Xbox Series X controller over USB and Bluetooth
Fixes https://github.com/libsdl-org/SDL/issues/6322
2022-10-03 11:02:23 -07:00
Sam Lantinga
bd6afc2317
Fixed sensor axes in vertical mode
2022-10-02 10:15:39 -07:00
Sam Lantinga
b4c25f5714
Remapped the side button and trigger as paddles for the mini-gamepad mode of the Joy-Cons
...
This is the only case where the mapping differs between right and left Joy-Cons in mini-gamepad mode. The left Joy-Con will have the left paddles and the right Joy-Con will have the right paddles. This facilitates co-op gameplay with individual actions while still using the normal mini-gamepad mode.
The paddles are used for this because conceptually they are more awkward to hit than the normal controls and they are in roughly the correct hand position.
2022-10-02 09:51:05 -07:00
Sam Lantinga
f58a6506a1
Added paddle mapping for combined Joy-Cons
2022-10-02 09:50:27 -07:00
Sam Lantinga
37dfa2629b
Added paddle mapping for combined Joy-Cons
2022-10-02 09:36:50 -07:00
Happy Harry
6c8bf3af4c
Add vertical mode for Nintendo Joy-Con ( #6303 )
...
* Added support for vertical mode for Joy-Con controllers
* Added the hint SDL_HINT_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS for switching to this mode
* Added support for SL/SR buttons in combined/vertical mode and L/ZL/R/ZR buttons in mini-gamepad mode
2022-10-02 09:19:34 -07:00
Sam Lantinga
0672dc8d8f
Fixed combined Joy-Cons after aa2e2f4843
(thanks @happyharryh!)
2022-10-02 08:50:11 -07:00
Sam Lantinga
7becbd7d42
Add joystick locking for controller notifications on iOS/tvOS
...
Fixes https://github.com/libsdl-org/SDL/issues/6288
2022-09-27 12:58:16 -07:00
Sam Lantinga
18eb319adc
Added sensor timestamp for Nintendo Switch controllers
2022-09-27 12:34:03 -07:00
Sam Lantinga
5e3a40309e
Added sensor timestamp for Steam Controllers
2022-09-27 11:36:01 -07:00
Sam Lantinga
2c518747b9
Added microsecond timestamp to sensor values for PS4 and PS5 controllers using the HIDAPI driver
2022-09-27 09:56:49 -07:00
Sam Lantinga
1e1be0b954
Updated logic to match between PS4/PS5/Switch controllers
2022-09-26 23:00:58 -07:00
Sam Lantinga
8c40a6b0c7
Drop PS5 Bluetooth reports that fail CRC check
2022-09-26 22:47:21 -07:00
Sam Lantinga
db075ff3ba
Removed unused variable
2022-09-26 22:45:01 -07:00
Sam Lantinga
2ccdd0667a
Handle DS4 dongle controller connection and disconnection
...
We also drop Bluetooth packets that fail the CRC check, as recommended by Sony
2022-09-26 22:34:33 -07:00
Sam Lantinga
18046b9aa3
Fixed crash with a NULL serial number
2022-09-26 20:53:50 -07:00
Sam Lantinga
67fa6a935f
Don't wait a long time for zombie Bluetooth controllers
...
If a Nintendo Switch Pro controller is turned off, it will leave the controller connected in Windows, but not responding to reports. Don't wait a really long time trying to get information from a controller in this state.
2022-09-26 20:49:26 -07:00
Sam Lantinga
67db8a9103
Wait for input before reconnecting a Bluetooth device
...
On Windows, the Bluetooth device can remain in a connected state if the controller just shut down. It won't return any errors, but it also won't generate any input reports in this state, so wait until we know for sure that the Bluetooth controller is sending data before letting the application know it's available.
2022-09-26 20:43:46 -07:00
Sam Lantinga
2cc9176137
Removed debug logging
2022-09-26 18:52:26 -07:00
Sam Lantinga
2c98c8af01
Use better default values for Switch controller calibration
2022-09-26 18:39:47 -07:00
Sam Lantinga
a205c5e26c
Use separate extents for simple and advanced reports
2022-09-26 18:39:47 -07:00