Sam Lantinga
a3a5e17282
Fixed build warning '=': conversion from 'Uint32' to 'Uint16', possible loss of data
2023-09-18 13:56:51 -07:00
Sam Lantinga
a72dfa6a5f
Fixed sensor timestamp units for third-party PS5 controllers
2023-09-18 12:55:43 -07:00
Sam Lantinga
f6756047a4
Fixed error: array subscript 2 is above array bounds of ‘const Uint8[2]’
...
Smart compilers don't like dereferencing off the end of arrays
2023-09-18 12:19:18 -07:00
Sam Lantinga
7059a55ccc
Fixed sensor timestamp calculation for third-party PS5 controllers
2023-09-18 11:50:56 -07:00
Sam Lantinga
825d344756
Make sure that the same timestamp is used for all PS5 events from the same packet
2023-09-01 17:49:39 -07:00
Sam Lantinga
0f80d47bbd
Fixed thread-safety warning
2023-08-25 08:21:54 -07:00
Sam Lantinga
69aec8c915
Fixed the report format for the Razer Wolverine V2 Pro
2023-08-24 11:37:50 -07:00
Simon McVittie
efe15588d5
Relabel back paddles as left or right
...
The sequence order of the four paddles is not obvious, with SDL and Xbox
controllers swapping the order of P2 and P3 relative to each other.
If we group them into left and right, then it becomes more obvious.
Signed-off-by: Simon McVittie <smcv@collabora.com >
2023-08-09 11:03:30 -07:00
Sam Lantinga
75a020aa6b
Only query serial number and firmware versions from Sony PS5 controllers
...
I don't know of any specific issue with this, but third party PS4 controllers have had issues with reports that are specific to Sony hardware, so this is a speculative change to prevent issues with future controllers.
If it turns out that these reports are valid and useful for third party controllers, we can back this change out.
2023-08-07 14:06:10 -07:00
Sam Lantinga
26205b659d
Fixed PS4/PS5 touchpad for third party controllers
...
We should always report touchpad and battery status if they are available. We just want to make sure we don't enable enhanced reports unless the application wants that behavior.
2023-08-07 10:48:52 -07:00
Sam Lantinga
99b0e31788
The Steam Controller D-Pad is only pressed when the button is pressed down
2023-08-03 13:07:51 -07:00
Sam Lantinga
3c8f4dca1d
Make sure we don't touch the controller effects state when we're in auto mode for PS4/PS5 controllers.
2023-07-24 10:17:02 -07:00
Sam Lantinga
2ebbfe7c5b
Added an "auto" mode for PS4 and PS5 controller rumble hints
...
This allows the controllers to report that they have sensors and enhanced capabilities, but not actually switch into enhanced mode (breaking DirectInput) unless the application tries to use them.
2023-07-17 17:32:57 -07:00
Sam Lantinga
bd4f155bbb
Fixed LED pending check failing when the controller timestamp is very large
...
In this case we know the controller has been on for a while and the Bluetooth connection LED cycle is complete.
Also fixed the timestamp being zero the first time it is checked
2023-07-17 17:08:17 -07:00
Sam Lantinga
16dd5f0da4
Don't send k_EPS5FeatureReportIdCapabilities to Sony PS5 controllers
...
This report is for third party controllers only.
2023-07-17 16:45:31 -07:00
Sam Lantinga
2fef0be2f6
Don't tickle Bluetooth PS5 controllers in simple mode with an effects packet
...
That will put the PS5 controller into enhanced mode, which breaks DirectInput games
2023-07-17 16:42:58 -07:00
Sam Lantinga
b271e92c6e
Added the ability to specify a gamepad type in the mapping
...
Also renamed most cases of SDL_GAMEPAD_TYPE_UNKNOWN to SDL_GAMEPAD_TYPE_STANDARD, and SDL_GetGamepadType() will return SDL_GAMEPAD_TYPE_UNKNOWN only if the gamepad is invalid.
2023-07-17 12:59:56 -07:00
Sam Lantinga
57cfd1e106
Removed SDL_GAMEPAD_TYPE_VIRTUAL, SDL_GAMEPAD_TYPE_AMAZON_LUNA, SDL_GAMEPAD_TYPE_GOOGLE_STADIA, and SDL_GAMEPAD_TYPE_NVIDIA_SHIELD
...
Removing SDL_GAMEPAD_TYPE_VIRTUAL allows a virtual controller to emulate another gamepad type. The other controller types can be treated as generic controllers by applications without special glyph or functionality treatment.
2023-07-16 04:32:12 -07:00
Sam Lantinga
49b9fd1843
Don't send k_ePS4FeatureReportIdSerialNumber to Bluetooth PS4 controllers
...
This isn't supported over Bluetooth and might be causing issues with fake PS4 controllers.
Note that this change should NOT be ported to SDL2, as device->is_bluetooth is not set from hidapi there and is only detected by seeing which reports are valid.
Reference https://github.com/libsdl-org/SDL/issues/7960
2023-07-10 09:37:20 -07:00
Sam Lantinga
092a4b780c
Don't send k_ePS4FeatureReportIdCapabilities to Sony PS4 controllers
...
This report is for third party controllers only, and might be causing issues with fake PS4 controllers.
Reference https://github.com/libsdl-org/SDL/issues/7960
2023-07-10 09:37:20 -07:00
Sam Lantinga
efed24850a
Don't tickle Bluetooth PS4 controllers in simple mode with an effects packet
...
That will put the PS4 controller into enhanced mode, which breaks DirectInput games
2023-07-07 15:56:54 -07:00
luzpaz
37e567994d
Fix remaining typos ( #7921 )
...
* Fix remaining typos
Found via `codespell -q 3 -S *.hex,*.pdf,./src/libm,./src/hidapi,./src/stdlib/SDL_malloc.c,./src/video/x11/edid.h -L caf,currenty,datas,einstance,fo,hda,lod,mata,parm,parms,pevent,pevents,pixelx,requestor,ser,statics,te,texturers,thid,uscaled,windowz`
2023-07-03 12:46:47 -07:00
Sam Lantinga
69c7a49990
Fixed build warnings
2023-06-29 22:15:23 -07:00
Sam Lantinga
baa9c57581
Added support for the Nintendo Online Famicom controllers
2023-06-28 19:15:43 -07:00
Sam Lantinga
9ee1200e6f
Fixed Nintendo Switch Pro controllers that don't have readable user calibration
2023-06-27 07:48:42 -07:00
Narr the Reg
425062c123
hidapi: switch: Handle MCU input reports
2023-06-26 10:01:49 -07:00
Sam Lantinga
267fdd7daa
Removed Bluetooth connection detection now that we get it from hidapi
2023-06-23 15:50:07 -07:00
Sam Lantinga
44bae1e8a9
Corrected the Victrix FS Pro as a PS4 controller instead of a PS3 controller
2023-06-23 14:27:21 -07:00
Sam Lantinga
a807b14957
Greatly improved Xbox One controller initialization sequence
2023-06-22 17:15:35 -07:00
Sam Lantinga
214d5daa3c
Removed 100 ms hitch when querying third party Nintendo Switch controllers that don't respond to request for info
...
Also take advantage of the fact that we know whether the device is connected over Bluetooth now.
2023-06-21 12:14:50 -07:00
Sam Lantinga
3694dabe7c
Use default sensor calibration if we can't read it from the Nintendo Switch controller
...
Fixes https://github.com/libsdl-org/SDL/issues/7830
2023-06-21 10:28:45 -07:00
Sam Lantinga
f168f9c813
Added support for the GameSir G4 Pro
...
We can't read device info or IMU calibration from this controller, and it has no gyro or accelerometer, but is otherwise perfectly functional.
2023-06-17 12:42:55 -07:00
Sam Lantinga
73927b0948
Removed unused function
2023-06-14 15:16:21 -07:00
Sam Lantinga
0c16f4faf0
Fixed third-party Nintendo Switch Pro controllers shutting down when we try to set the home LED.
...
This fixes the PDP Afterglow Wireless Deluxe Controller.
2023-06-14 10:15:06 -07:00
Sam Lantinga
23e007d3b7
Fixed third party Nintendo Switch Pro Controller resetting when being sent an unsupported command to set the Home LED
...
Tested with the PowerA Fusion Pro Wireless Controller in Bluetooth mode
2023-06-14 00:02:32 -07:00
Sam Lantinga
8c95bd814b
Allow switching licensed Nintendo Switch Pro controllers into gyro input mode
2023-06-13 22:40:51 -07:00
Sam Lantinga
cdfc0c5a33
Added support for the PowerA Fusion Pro Wireless Controller in Bluetooth mode
...
This controller shows up with a VID/PID of 0, but has full functionality over Bluetooth
2023-06-13 22:20:58 -07:00
Sam Lantinga
5490873daa
Fixed querying device info on the MOBAPAD M073
...
The query packet needs to contain valid rumble data in order to be accepted by the controller.
Fixes https://github.com/libsdl-org/SDL/issues/7788
2023-06-09 18:41:21 -07:00
Sam Lantinga
2042e9c4e3
Only update the serial number if it hasn't already been set
...
This fixes the serial number for Nintendo Switch Pro, which is queried from the hardware in device initialization, and was later clobbered by the USB string which isn't correct.
2023-06-09 17:34:12 -07:00
Sam Lantinga
32d015a6a0
Fixed PS3 controller initialization over Bluetooth
...
Now that we have hidapi that knows whether the controller is connected via Bluetooth or USB, this is much easier to fix.
2023-06-08 10:46:56 -07:00
Sam Lantinga
dc06116c71
Steam sets the device version of the Steam Virtual Gamepad to 0, for the best compatibility with old games
2023-06-06 12:33:48 -07:00
Sam Lantinga
6815e75caf
Steam uses a different VID/PID for the Steam Virtual Gamepad on Windows
2023-06-03 11:39:03 -07:00
Sam Lantinga
5f00147e61
Revert "Fixed detection of the Steam Virtual Gamepad on macOS"
...
This reverts commit 5fcd70578b .
Steam has been updated to send a version of 1 to avoid conflicts with controllers that report a version of 0.
2023-06-03 11:35:27 -07:00
Sam Lantinga
5fcd70578b
Fixed detection of the Steam Virtual Gamepad on macOS
2023-06-02 18:37:45 -07:00
Sam Lantinga
9837653b9d
Allow the application to send commands to Nintendo Switch controllers
2023-06-02 15:52:56 -07:00
Sam Lantinga
2a08bf6118
Use the bus in the HIDAPI joystick guid now that it's available
2023-05-26 08:19:04 -07:00
Sam Lantinga
af45ae7296
Update the SDL HIDAPI API to match upstream hidapi 0.14.0
2023-05-26 08:19:04 -07:00
Sam Lantinga
b252ecec6d
Fixed crash if trying to dump a packet larger than USB_PACKET_LENGTH
2023-05-26 08:19:04 -07:00
Sam Lantinga
ddbdd73258
Updated source to match SDL function prototype style
2023-05-23 11:29:41 -07:00
Sam Lantinga
2e6c48dcb4
Added support for the GameSir-G7 Controller for Xbox
2023-05-11 17:44:56 -07:00