|
0d763800
|
2023-03-09T15:10:00
|
|
Code style: changed "sizeof foo" to "sizeof(foo)" (thanks @sezero!)
(cherry picked from commit c6443d86c92e962683a1efe5f123a144988875b5)
|
|
c0fb0924
|
2023-02-28T08:36:31
|
|
Fixed locking up the Logitech F310 with the PlayStation controller detection
(cherry picked from commit da134a30396e12786c14fe8d1190ab05c67d9dba)
|
|
2c699577
|
2023-02-14T17:51:16
|
|
Fixed handling simple mode PS4 reports
Fixes https://github.com/libsdl-org/SDL/issues/7270
(cherry picked from commit 5925cd4ef377a2211fd057ef6fa9f41141999cb7)
|
|
17515f4a
|
2023-02-04T15:51:37
|
|
Backport simplify flags PR #7220
|
|
0479df53
|
2023-01-09T09:48:21
|
|
Updated copyright for 2023
|
|
d59caffe
|
2022-12-13T14:03:40
|
|
Added support for clang thread-safety analysis
The annotations have been added to SDL_mutex.h and have been made public so applications can enable this for their own code.
Clang assumes that locking and unlocking can't fail, but SDL has the concept of a NULL mutex, so the mutex functions have been changed not to report errors if a mutex hasn't been initialized. We do have mutexes that might be accessed when they are NULL, notably in the event system, so this is an important change.
This commit cleans up a bunch of rare race conditions in the joystick and game controller code so now everything should be completely protected by the joystick lock.
To test this, change the compiler to "clang -Wthread-safety -Werror=thread-safety -DSDL_THREAD_SAFETY_ANALYSIS"
|
|
802b5ef7
|
2022-12-12T10:54:29
|
|
Added support for the STRIKEPAD PS4 Grip Add-on to the HIDAPI driver
(cherry picked from commit 618340bf990512247ed29a1beb38606e371d60e8)
|
|
d0bbfdbf
|
2022-12-01T16:07:03
|
|
Clang-Tidy fixes (#6725)
(cherry picked from commit 3c501b963dd8f0605a6ce7978882df39ba76f9cd)
|
|
9e997cc7
|
2022-11-30T15:39:10
|
|
Fixed Victrix FS Pro V2 controller hang on reboot
|
|
b8d85c69
|
2022-11-30T12:51:59
|
|
Update for SDL3 coding style (#6717)
I updated .clang-format and ran clang-format 14 over the src and test directories to standardize the code base.
In general I let clang-format have it's way, and added markup to prevent formatting of code that would break or be completely unreadable if formatted.
The script I ran for the src directory is added as build-scripts/clang-format-src.sh
This fixes:
#6592
#6593
#6594
(cherry picked from commit 5750bcb174300011b91d1de20edb288fcca70f8c)
|
|
fb0ce375
|
2022-11-27T17:38:43
|
|
Cleanup add brace (#6545)
* Add braces after if conditions
* More add braces after if conditions
* Add braces after while() conditions
* Fix compilation because of macro being modified
* Add braces to for loop
* Add braces after if/goto
* Move comments up
* Remove extra () in the 'return ...;' statements
* More remove extra () in the 'return ...;' statements
* More remove extra () in the 'return ...;' statements after merge
* Fix inconsistent patterns are xxx == NULL vs !xxx
* More "{}" for "if() break;" and "if() continue;"
* More "{}" after if() short statement
* More "{}" after "if () return;" statement
* More fix inconsistent patterns are xxx == NULL vs !xxx
* Revert some modificaion on SDL_RLEaccel.c
* SDL_RLEaccel: no short statement
* Cleanup 'if' where the bracket is in a new line
* Cleanup 'while' where the bracket is in a new line
* Cleanup 'for' where the bracket is in a new line
* Cleanup 'else' where the bracket is in a new line
(cherry picked from commit 6a2200823c66e53bd3cda4a25f0206b834392652 to reduce conflicts merging between SDL2 and SDL3)
|
|
38af459d
|
2022-11-06T01:15:19
|
|
Fixed potential clobbering of packets of different types using SDL_HIDAPI_SendRumble()
|
|
c74ea994
|
2022-10-25T13:11:41
|
|
Added support for the Razer Raiju Tournament Edition controller in Bluetooth mode
|
|
f4d1f5ed
|
2022-10-23T16:35:36
|
|
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
|
|
93b71967
|
2022-10-14T10:32:03
|
|
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.
|
|
33050fea
|
2022-10-07T11:29:49
|
|
Only open HID devices that might have a HIDAPI driver available
This prevents an OS prompt for every connected device when running on Android
|
|
2c518747
|
2022-09-27T09:56:02
|
|
Added microsecond timestamp to sensor values for PS4 and PS5 controllers using the HIDAPI driver
|
|
1e1be0b9
|
2022-09-26T23:00:58
|
|
Updated logic to match between PS4/PS5/Switch controllers
|
|
db075ff3
|
2022-09-26T22:45:01
|
|
Removed unused variable
|
|
2ccdd066
|
2022-09-26T22:32:57
|
|
Handle DS4 dongle controller connection and disconnection
We also drop Bluetooth packets that fail the CRC check, as recommended by Sony
|
|
67db8a91
|
2022-09-26T20:41:51
|
|
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.
|
|
b7fddb4c
|
2022-09-26T14:39:51
|
|
Minor tweaks
|
|
39adcc0a
|
2022-09-26T14:20:34
|
|
Prefer USB input over Bluetooth for PS5/PS5/Switch controllers
Nintendo Switch controllers will automatically turn off Bluetooth when connected over USB, but this takes care of that a little more quickly.
PS4 and PS5 controllers will happily send reports over both Bluetooth and USB, so we'll prefer USB if connected and switch back to Bluetooth if USB is disconnected.
|
|
17d7d03a
|
2022-09-26T08:12:35
|
|
Added detection of the joystick type for third party PS4 and PS5 controllers
|
|
5b3b7e6e
|
2022-09-23T16:46:36
|
|
Separated PS4/PS5 effects support into individual capabilities
|
|
56b91ea7
|
2022-09-23T15:27:40
|
|
Fixed feature detection for the Razer Raiju Tournament Edition controller
|
|
c2ae2ccc
|
2022-09-23T09:10:51
|
|
Added feature support for the Razer Raiju to the HIDAPI driver
|
|
5b4c10fc
|
2022-09-23T02:36:53
|
|
Return true from IsSupportedDevice if it's a device that we _might_ support
This forces an update of the device list so we have the correct state when we check to see whether a device is being handled by HIDAPI
|
|
899a1e7c
|
2022-09-22T23:54:26
|
|
Skip PS4/PS5 probe message if we already know it's a supported controller
|
|
fa2063fb
|
2022-09-22T23:42:25
|
|
Improved detection of third party PS4 and PS5 controllers
|
|
aa2e2f48
|
2022-09-22T18:22:17
|
|
Make sure HID devices can be opened before making them available to the application
This prevents a number of issues where devices are enumerated but not actually able to be opened, like https://github.com/libsdl-org/SDL/issues/5781.
We currently leave the devices open, allowing us to more easily do controller feature detection, protocol negotiation, detect dropped Bluetooth connections, etc. with the expectation that the application is likely to open the controllers shortly.
|
|
6cbdc666
|
2022-09-22T09:05:06
|
|
Fixed use of uninitialized 'size' variable (thanks @ozkan!)
|
|
0c4594ac
|
2022-09-22T06:45:46
|
|
Improved PS4 and PS5 third-party controller feature detection
|
|
2e9f5b59
|
2022-09-16T15:41:35
|
|
Added support for the HORI Fighting Commander OCTA (Xbox Series X and PS versions)
|
|
cdaafcec
|
2022-08-30T14:56:11
|
|
The Kinvoca Joy-Cons are handled by the Joy-Con driver, not the Switch Pro driver.
|
|
b2ac758f
|
2022-08-29T17:33:00
|
|
Added support for the Hori Fighting Stick Alpha to the HIDAPI driver
|
|
52b6899a
|
2022-08-19T11:11:23
|
|
Added hints for more fine grained control over HIDAPI Xbox controller support
|
|
68544be4
|
2022-06-10T11:31:59
|
|
Added support for the Nintendo Online controllers
|
|
0964c84d
|
2022-02-02T11:21:32
|
|
Always use SDL_PrivateJoystickBatteryLevel to update battery level
But do not use it for initialisation.
|
|
09aed102
|
2022-01-16T09:23:58
|
|
Don't send output reports to the Victrix Pro FS v2
It'll hang on reboot if it gets output reports, and it doesn't have functionality that requires them, so skip it.
|
|
120c76c8
|
2022-01-03T09:40:00
|
|
Updated copyright for 2022
|
|
66058bbb
|
2021-11-15T16:52:56
|
|
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
|
|
6ad0fb84
|
2021-11-13T17:55:10
|
|
SDL_hidapi_ps4.c, SDL_hidapi_ps5.c: use SDL_zeroa()
|
|
afccabb8
|
2021-11-11T12:12:05
|
|
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.
|
|
1ccfbf96
|
2021-11-11T11:13:08
|
|
joystick: Convert HasLED() into a generic GetCapabilities() function
|
|
5b646cd1
|
2021-11-07T22:58:44
|
|
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.
|
|
a186a503
|
2021-07-29T06:43:39
|
|
Added SDL_GameControllerGetSensorDataRate() to get the sensor update rate for a controller.
|
|
384d86b5
|
2021-07-23T23:48:23
|
|
Fixed compile warnings with Visual Studio
|
|
d135c076
|
2021-07-08T13:22:41
|
|
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
|
|
e2f46ed8
|
2021-01-14T23:49:20
|
|
Always lock the HIDAPI device when closing, in case rumble is pending
|
|
9130f7c3
|
2021-01-02T10:25:38
|
|
Updated copyright for 2021
|
|
6341bb35
|
2020-12-22T21:51:59
|
|
Fixed controller disconnect detection for PS4 and PS5 controllers over Bluetooth
|
|
a30adae5
|
2020-12-22T20:58:32
|
|
Make it possible to turn on PS4 rumble effects at runtime using the hint
|
|
59f28b7f
|
2020-12-03T18:17:01
|
|
Fixed whitespace
|
|
e44bf8a0
|
2020-11-23T21:18:37
|
|
Fixed bug 5359 - Incorrect sensor data from DualShock4
multiply gyro values by sensitivity
When the hardware calibration fails, values read from sensors need to be multiplied by default sensitivity (16 for gyro, 1 for accelerometer).
|
|
5b3616c3
|
2020-11-23T18:24:05
|
|
Generalized the raw input controller driver and moved XInput/WGI detection into it for XInput devices
This fixes bad report parsing for various newer Xbox controllers, and this driver is now preferred over XInput, since it handles more than 4 controllers.
|
|
2e8e3854
|
2020-11-21T17:59:15
|
|
Fixed compile warning
|
|
fcb21aa8
|
2020-11-17T10:30:20
|
|
Added API for sensors on game controllers
Added support for the PS4 controller gyro and accelerometer on iOS and HIDAPI drivers
Also fixed an issue with the accelerometer on iOS having inverted axes
|
|
d140d887
|
2020-11-16T17:36:47
|
|
Added SDL_JoystickGetSerial() and SDL_GameControllerGetSerial()
|
|
71e32f5e
|
2020-11-16T15:00:15
|
|
Added SDL_crc32()
|
|
c6c116e8
|
2020-11-16T10:51:13
|
|
Implemented setting the LED color on the PS5 controller
|
|
f28c01a4
|
2020-11-16T09:11:15
|
|
Fixed rumble order on PS5
|
|
9f51fad3
|
2020-11-13T18:01:29
|
|
Added support for the touchpad on PS4 and PS5 controllers
|
|
1e2caac5
|
2020-11-11T18:57:37
|
|
Added SDL_JoystickRumbleTriggers() and SDL_GameControllerRumbleTriggers()
|
|
067630ae
|
2020-11-11T03:47:08
|
|
Fix hidapi for unhandled DS4 headset microphone data corrupting controller state
|
|
a22beef4
|
2020-11-05T17:03:28
|
|
Moved the PS5 controller driver to a separate file, as the advanced feature protocol is very different from that of the PS4
|
|
4d79f966
|
2020-11-05T15:02:54
|
|
Added initial support for the Sony PS5 Controller
|
|
e555d453
|
2020-11-05T11:07:54
|
|
Added SDL_JoystickHasLED
Currently, this is only supported by the PS4 HIDAPI driver.
|
|
83cddd2e
|
2020-04-30T11:57:29
|
|
Add SDL_JoystickSetLED.
Currently, this is only supported by the PS4 HIDAPI driver.
|
|
55515a8c
|
2020-04-08T08:42:15
|
|
SDL: ps4 controller trigger bits on other controllers just mean that there's some activity, not saturation - only force it on if the analog value is 0.
|
|
b6afbe63
|
2020-04-07T09:38:57
|
|
Added SDL_log.h to SDL_internal.h so logging is available everywhere
|
|
3154d924
|
2020-03-30T14:26:21
|
|
SDL: plumb previously unused digital trigger bits for PS4 controllers. Victrix fight stick only sets these bits and doesn't send the analog values
CR: SamL
|
|
47da53b9
|
2020-03-16T14:49:20
|
|
Fix compiler warnings
|
|
4dea340c
|
2020-03-16T12:23:38
|
|
Fixed bug 4477 - Support more than 4 XInput-capable devices on Windows
Jimb Esser
Add new RawInput controller API, and improved correlation with XInput/WGI
Reorder joystick init so drivers can ask the others if they handle a device reliably
Do not poll disconnected XInput devices (major perf issue)
Fix various cases where incorrect correlation could happen
Simple mechanism for propagating unhandled Guide button presses even before guaranteed correlation
Correlate by axis motion as well as button presses
Fix failing to zero other trigger
Fix SDL_HINT_JOYSTICK_HIDAPI not working if set before calling SDL_Init()
Add missing device to device names
Disable RawInput if we have a mismatch of XInput-capable but not RawInput-capable devices
Updated to SDL 2.0.13 code with the following notes:
New HID driver: xbox360w - no idea what that is, hopefully urelated
SDL_hidapijoystick.c had been refactored to couple data handling logic with device opening logic and device lists caused some problems, yields slightly uglier integration than previously when the 360 HID device driver was just handling the data.
SDL_hidapijoystick.c now often pulls the device off of the joystick_hwdata structure for some rumble logic, but it appears that code path is never reached, so probably not a problem.
Looks like joystick_hwdata was refactored to not include a mutex in other drivers, maintainers may want to do the same refactor here if that's useful for some reason.
Something changed in how devices get names, so getting generic names.
Had to fix a (new?) bug where removing an XInput controller caused existing controllers (that moved to a new XInput index) to get identified as 0x045e/0x02fd ("it's probably Bluetooth" in code), rendering the existing HIDAPI_IsDevicePresent and new RAWINPUT_IsDevicePresent unreliable.
|
|
467434b9
|
2020-03-07T13:17:28
|
|
Added support for indicating player index on DS4 controllers
|
|
1684606f
|
2020-02-04T15:26:56
|
|
Fixed long delay on main thread caused by blocking rumble writes in HIDAPI drivers
There is now a thread that handles all HIDAPI rumble requests and a lock that guarantees that we're not reading and writing the device at the same time.
|
|
6efebf17
|
2020-02-04T12:48:53
|
|
Moved rumble expiration to the main joystick handling level, and prevent sending the driver layer duplicate rumble requests.
|
|
9c3d1602
|
2020-01-19T11:43:36
|
|
Refactored code so SDL_GetJoystickGameControllerType() is called less during controller detection
|
|
43aa1fa9
|
2020-01-18T11:21:14
|
|
Added support for detecting previously unknown Xbox 360 and Xbox One controllers using the HIDAPI driver with libusb and Android
|
|
a8780c6a
|
2020-01-16T20:49:25
|
|
Updated copyright date for 2020
|
|
46e1377d
|
2019-12-20T20:12:03
|
|
Automatically assign player indexes to game controllers, and allow changing the player index for game controllers and joysticks.
Added the functions SDL_JoystickFromPlayerIndex(), SDL_JoystickSetPlayerIndex(), SDL_GameControllerFromPlayerIndex(), and SDL_GameControllerSetPlayerIndex()
|
|
1db56619
|
2019-12-19T18:03:28
|
|
Fixed rare infinite rumble in HIDAPI controller driver
|
|
e7f7e3f4
|
2019-12-19T15:01:30
|
|
Refactored HIDAPI controller code to support dongles and hubs that dynamically attach controllers
|
|
a7ae9175
|
2019-12-16T10:20:03
|
|
Fixed bug 4898 - No rumble because of integer overflow in SDL_JoystickRumble
meyraud705
On a Dualshock 4 controller using hidapi driver, calling SDL_JoystickRumble with a duration too long (SDL_HAPTIC_INFINITY for example) causes the rumble to stop immediately.
This happens because of integer overflow on line 301 of SDL_hidapi_ps4.c
(https://hg.libsdl.org/SDL/file/a3077169ad23/src/joystick/hidapi/SDL_hidapi_ps4.c#l301), which sets expiration time in the past.
|
|
733f2525
|
2019-11-22T14:09:24
|
|
Fixed build
|
|
b5aff9d7
|
2019-11-22T13:12:12
|
|
Added SDL_GameControllerTypeForIndex() and SDL_GameControllerGetType() to return the type of controller attached.
|
|
9da4bfc1
|
2019-10-22T10:57:07
|
|
Added support for the Power A Nintendo Switch Enhanced Wireless Controller
|
|
3b3dbb5a
|
2019-10-01T08:50:04
|
|
Removed unused volume check interval
|
|
cbde0ffa
|
2019-09-19T16:50:49
|
|
The PS4 is ignoring the volume values in the report, so we don't need to fill them in.
|
|
be6cda9f
|
2019-06-19T15:54:21
|
|
Rolling back GameCube HIDAPI support
It causes the HIDAPI devices to always be opened on enumeration, which causes crashes in the Windows drivers when multiple applications are reading and writing at the same time. We can revisit this after 2.0.10 release.
|
|
d97387cc
|
2019-06-08T14:32:19
|
|
Fixed bug 4600 - Dualshock 4 touchpad press is not detectable with SDL_JoystickGetButton
Dexter Friedman
When using a Dualshock 4 controller (model numbers CUH-ZCT1U and CUH-ZCT2U), pressing anywhere on the center touchpad does not send an SDL_JOYBUTTONDOWN event. I have verified this with testjoystick:
Repro steps:
1. Plug in a DS4 over USB
2. Compile testjoystick and run: testjoystick.exe 0
3. Press and hold the touchpad. Observe that no lime green box appears
Expected behavior:
A lime green box appears while the touchpad is pressed.
Notes:
I've attached a patch here that works on my PC and produces the expected behavior in testjoystick, for both DS4 model numbers I listed earlier.
If I understand correctly, by exposing this as a joystick button, the gamecontroller API mapping can be modified with a change to gamecontrollerdb.txt in the future.
|
|
82af4276
|
2019-06-08T13:36:59
|
|
hidapi: Use GameCube adapter controller port for player index
The Nintendo USB GameCube adapter has four controller ports. Return
the port number as 0 to 3 from SDL_JoystickGetPlayerIndex() and
SDL_JoystickGetDevicePlayerIndex().
|
|
c5286156
|
2019-03-12T20:27:54
|
|
hidapi: Add support for Wii U/Switch USB GameCube controller adapter.
Note that a single USB device is responsible for all 4 joysticks, so a large
rewrite of the DeviceDriver functions was necessary to allow a single device to
produce multiple joysticks.
|
|
5e13087b
|
2019-01-04T22:01:14
|
|
Updated copyright for 2019
|
|
fde82e59
|
2018-09-28T14:01:40
|
|
SDL_hidapi_ps4.c: add HAVE_ENDPOINTVOLUME_H check to win32 volume code.
this makes it build with my old toolchain with mingw-w64 1.0.10 headers
|
|
f964ce03
|
2018-09-28T01:00:47
|
|
Fixed mingw-w64 build
|
|
80021c21
|
2018-09-05T15:28:06
|
|
Speculatively disable rumble on the Razer Panthera Evo, which doesn't have rumble motors and probably hangs in the same way the Panthera does.
|
|
c152e380
|
2018-09-05T11:18:50
|
|
Added support for the Razer Panthera Fightstick
Fixed bindings for the Mad Catz FightStick TE S+
|
|
34237b80
|
2018-08-31T18:10:21
|
|
Better fix to make sure we're only returning controllers from the HIDAPI joystick API
|
|
5ef8eb49
|
2018-08-29T20:55:02
|
|
Don't show the Razer Raiju sound interface as a game controller
|