Sam Lantinga
b7fddb4c0e
Minor tweaks
2022-09-26 14:39:51 -07:00
Sam Lantinga
39adcc0a6b
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.
2022-09-26 14:20:34 -07:00
Sam Lantinga
17d7d03adf
Added detection of the joystick type for third party PS4 and PS5 controllers
2022-09-26 08:12:35 -07:00
Sam Lantinga
8d2cb1555e
Added an entry for the ZEROPLUS P4 Wired Gamepad
2022-09-23 16:56:24 -07:00
Sam Lantinga
cb063db64f
Moved XInputPS4 controllers into the PS4 controller section
2022-09-23 16:52:37 -07:00
Sam Lantinga
5b3b7e6e7c
Separated PS4/PS5 effects support into individual capabilities
2022-09-23 16:46:36 -07:00
Sam Lantinga
33619aa2e9
Added support for the ZEROPLUS P4 Wired Gamepad to the HIDAPI driver
2022-09-23 16:38:15 -07:00
Sam Lantinga
e888c99fa6
Fixed the entry for the Nacon PS4 Compact Controller
2022-09-23 16:26:41 -07:00
Sam Lantinga
4ea64fee9f
Fixed manufacturer/product name deduplication for the Razer Raiju Tournament Edition controller
2022-09-23 15:29:00 -07:00
Sam Lantinga
56b91ea720
Fixed feature detection for the Razer Raiju Tournament Edition controller
2022-09-23 15:29:00 -07:00
Sam Lantinga
34f928abb7
Generate the correct name for ASTRO Gaming controllers
...
Manufacturer "ASTRO Gaming" and product "ASTRO C40" turns into "ASTRO C40"
2022-09-23 09:26:18 -07:00
Sam Lantinga
6ddef7c234
Generate the correct name for Qanba and Mad Catz controllers
2022-09-23 09:20:27 -07:00
Sam Lantinga
c2ae2ccc32
Added feature support for the Razer Raiju to the HIDAPI driver
2022-09-23 09:11:12 -07:00
Sam Lantinga
51fefd1c35
Added support for third party PS3 controllers to the HIDAPI driver
2022-09-23 02:39:35 -07:00
Sam Lantinga
5b4c10fc7b
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
2022-09-23 02:36:53 -07:00
Sam Lantinga
1d34a5249d
Fixed shadowed variable warning
2022-09-23 00:38:23 -07:00
Sam Lantinga
010d3e6442
Fixed function prototype mismatch
2022-09-23 00:36:46 -07:00
Sam Lantinga
b7940c29cc
Allow HIDAPI controllers to override the default joystick type
2022-09-23 00:15:40 -07:00
Sam Lantinga
899a1e7cba
Skip PS4/PS5 probe message if we already know it's a supported controller
2022-09-22 23:54:26 -07:00
Sam Lantinga
fa2063fb44
Improved detection of third party PS4 and PS5 controllers
2022-09-22 23:42:25 -07:00
Sam Lantinga
aa2e2f4843
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.
2022-09-22 18:27:38 -07:00
Sam Lantinga
2857e3c748
Added an entry for the Mad Catz FightStick TE 2+ PS3
2022-09-22 15:53:32 -07:00
Sam Lantinga
6812f1b5d7
Fixed the entry for the HORI Fighting Commander 4 in PS4 mode
2022-09-22 15:16:34 -07:00
Sam Lantinga
6cbdc66650
Fixed use of uninitialized 'size' variable (thanks @ozkan!)
2022-09-22 09:05:06 -07:00
Sam Lantinga
0c4594ac72
Improved PS4 and PS5 third-party controller feature detection
2022-09-22 06:45:46 -07:00
Ivan Epifanov
08a331847b
Vita: fix controls on PSTV with opened IME
2022-09-20 11:03:34 -07:00
Sam Lantinga
2e9f5b5989
Added support for the HORI Fighting Commander OCTA (Xbox Series X and PS versions)
2022-09-16 15:41:35 -07:00
Sam Lantinga
5892ed4373
Fixed Xcode warnings on macOS
2022-09-16 09:44:39 -07:00
Sam Lantinga
eb046958da
Fixed build warning
2022-09-16 08:19:45 -07:00
Sam Lantinga
4f1b408a72
Fixed button mapping for PS5 controllers
2022-09-12 18:19:02 -07:00
Amir
7f415ce587
android: fix some compiler warnings
2022-09-12 10:06:08 -07:00
Sam Lantinga
a3900a751e
Lock joysticks when removing a controller on the WGI thread
2022-09-08 13:59:25 -07:00
Sam Lantinga
12413ab31f
Lock joysticks while attaching a virtual one
2022-09-08 13:33:21 -07:00
Ozkan Sezer
787cd580ee
silence unused function warning for SDL_endswith() on non-linux.
2022-09-08 23:00:04 +03:00
Sam Lantinga
4071573241
Don't try to second guess DS4Windows, let it remap things as expected.
...
DS4Windows can create both emulated Xbox and emulated PS4 controllers, and we don't know which the user has it doing, so don't try to second guess it, just let it do it's thing. Users should follow the remapping software recommendations on when to enable/disable it for various situations.
Fixes https://github.com/libsdl-org/SDL/issues/6167
2022-09-08 11:50:56 -07:00
Sam Lantinga
a0f169603d
Fixed the CRC in the mappings for PS2, PSP, and Vita controllers
2022-09-08 09:53:51 -07:00
Sam Lantinga
0ad8d9d292
SDL_IsXInputDevice() shouldn't return true if XInput isn't enabled
2022-09-07 15:31:24 -07:00
Sam Lantinga
d93f9a778b
The new Wii Remote shares the same VID/PID as the Wii U Pro controller
2022-09-07 12:33:43 -07:00
Sam Lantinga
f398d8a424
Note that the Logitech Extreme 3D is a flight stick
2022-09-07 11:53:13 -07:00
Sam Lantinga
0a05b281f2
Make sure we hold the joystick lock when updating the device state while opening it
2022-09-07 11:51:51 -07:00
Sam Lantinga
d4e0d27c1c
Added Wii Remote controller mappings for Linux
2022-09-07 02:02:04 -07:00
Sam Lantinga
42cf6d6c56
Don't treat the Wii extension controls as a separate game controller on Linux
2022-09-07 01:41:11 -07:00
Sam Lantinga
87f8b6ff0f
Don't mess with the state of the Motion Plus extension on Linux
2022-09-07 01:21:01 -07:00
Sam Lantinga
c28da4892a
Fixed build
2022-09-07 00:52:40 -07:00
Sam Lantinga
638452ecf7
Assert that continuous reporting is enabled, so input timeout is a reliable way of detecting Bluetooth connection problems.
2022-09-07 00:44:13 -07:00
Sam Lantinga
8dfe0e4beb
Removed checks not needed for the Wii U Pro Controller
2022-09-07 00:41:29 -07:00
Sam Lantinga
4018f35ef2
Added left and right sensors for Nintendo Joy-Con and Wii controllers
2022-09-07 00:00:27 -07:00
Sam Lantinga
30f55a5d59
Added initial support for the Wii Motion Plus extension
...
This adds a gyro sensor to the Wii controller, and is enabled in standalone and nunchuk mode
2022-09-06 23:33:55 -07:00
Sam Lantinga
d1fea10c0f
Added support for the accelerometer in the Wii Remote
2022-09-05 16:08:15 -07:00
Sam Lantinga
a61b823da8
Added support for the Wii Remote with the Classic Controller Pro extension
...
Also changed event order to: buttons, triggers, axes, for consistency with other drivers
2022-09-05 14:32:45 -07:00
Ozkan Sezer
612a86ebad
HIDAPI_DriverPS3_UpdateEffects: kill bad use of & operator on effects[]
2022-09-05 20:47:00 +03:00
Sam Lantinga
b00e1b1b62
Added support for a ShanWan PS2 -> PS3 USB converter to the HIDAPI driver
2022-09-05 10:01:51 -07:00
Sam Lantinga
1b4e08b89e
Added an entry for the Hori Fighting Stick mini 4 kai
...
This is a PS3/PS4 arcade stick which becomes an Xbox 360 controller on PC
2022-09-02 17:04:53 -07:00
Sam Lantinga
47f2373dc1
Added locking for Android joystick events
2022-09-02 16:52:55 -07:00
Sam Lantinga
e8f6b7503a
Added mappings for the ASUS ROG Kunai 3 Gamepad
2022-09-02 15:06:13 -07:00
Sam Lantinga
5770e87cb2
Fixed regression handling touchpad input with PS5 controllers using the original shipping firmware
2022-09-02 13:57:59 -07:00
Sam Lantinga
253f6a913d
Variable renaming for consistency
2022-09-02 11:49:06 -07:00
Sam Lantinga
5002624e8a
Fixed crash when extension controllers are hotplugged
2022-09-02 11:41:19 -07:00
Sam Lantinga
7df571ffc6
HIDAPI_DumpPacket() takes a const memory pointer
2022-09-02 11:37:16 -07:00
Sam Lantinga
b6d23d21db
Fixed interactions with the Linux Wiimote driver
2022-09-02 11:21:51 -07:00
Ozkan Sezer
0c984360d1
SDL_hidapi_wii.c: fix a -Wshadow warning
2022-09-02 20:02:56 +03:00
Sam Lantinga
b6b3fb0023
This was intended to be Uint8
2022-09-02 09:59:32 -07:00
Ozkan Sezer
5be157b3a2
SDL_hidapi_wii.c: fix -Wpointer-sign warnings
2022-09-02 19:33:40 +03:00
Sam Lantinga
54356f41a9
Wii: fixed trigger axis reporting for the Wii U Pro Controller
2022-09-02 09:03:44 -07:00
Sam Lantinga
a35642fa3e
Wii: don't bother reading the extension type for the Wii U Pro controller, we already know what it is
2022-09-02 08:58:52 -07:00
Sam Lantinga
c3ecb9d099
Wii: re-request the status if we get a communication error
2022-09-02 08:58:52 -07:00
Ozkan Sezer
0c24b46e9f
SDL_hidapi_wii.c: fix build in c89 mode.
2022-09-02 18:55:00 +03:00
Sam Lantinga
9874fc4e6a
Reconnect as a different controller if the Wii extension hardware changes
2022-09-02 08:47:15 -07:00
Sam Lantinga
5f3cb54972
Updated Wii support with @tellowkrinkle's changes in 2f288e9d5b
2022-09-02 08:28:28 -07:00
Sam Lantinga
785d784a93
Set the output value for ParseExtensionResponse() in all return cases
2022-09-01 22:30:05 -07:00
Sam Lantinga
046aaa2d21
Use auto calibration for the Wii Nunchuk thumbstick axis values
2022-09-01 21:37:26 -07:00
Sam Lantinga
8381e008ea
Handle hotplugging of Wii controller extensions
2022-09-01 21:13:16 -07:00
Sam Lantinga
396411c090
Added mapping for the Wii Nunchuk extension
2022-09-01 20:27:34 -07:00
Sam Lantinga
e19b36d871
Initial support for the Wii Remote with Nunchuk extension
2022-09-01 19:29:20 -07:00
Sam Lantinga
c887cb02af
Added the hint SDL_HINT_JOYSTICK_HIDAPI_WII_PLAYER_LED to control whether the player LED should be lit on the Nintendo Wii controllers
...
Also fixed the Y axes on the Wii U Pro controller, and various formatting cleanup
2022-09-01 16:30:55 -07:00
Ozkan Sezer
0ffaf5b871
SDL_hidapi_wii.c: fix build in c89 mode and builds using watcom compiler
2022-09-02 02:04:20 +03:00
Sam Lantinga
c72e14e8f4
Added initial support for Wii controllers (thanks @tellowkrinkle!)
2022-09-01 15:29:41 -07:00
Sam Lantinga
7708bf0f8a
Try matching game controller mappings on CRC and version and fall back to no CRC and no version, in that order.
...
We do exact match when adding mappings, but loose matching everywhere else we look up a mapping for a GUID.
2022-09-01 08:18:58 -07:00
Sam Lantinga
7861f924ea
Removed debug print statements
2022-08-31 13:34:43 -07:00
Sam Lantinga
62f2379e4c
Try up to 20 times to read the controller type
...
It takes a while for Joy-Cons to initialize when plugged in via the Nintendo Joy-Con Charging Grip.
2022-08-31 13:24:23 -07:00
Sam Lantinga
e5f161bda4
Restored accidentally removed code to guess XInput device
2022-08-30 19:12:22 -07:00
Ozkan Sezer
973a677a2d
SDL_xinputjoystick.c: commented out GuessXInputDevice()
...
Not used since commit 277b033e78
.
2022-08-31 02:32:28 +03:00
Shawn Hoffman
42d09a8f42
wgi: refcount the delegate objects
2022-08-30 15:01:31 -07:00
Shawn Hoffman
ca915b1884
WGI_JoystickUpdate: bounds-check array sizes
2022-08-30 14:59:38 -07:00
Sam Lantinga
cdaafcec0d
The Kinvoca Joy-Cons are handled by the Joy-Con driver, not the Switch Pro driver.
2022-08-30 14:56:11 -07:00
Sam Lantinga
b2c3237b75
Added support for the Kinvoca Joy-Cons
...
These report their VID/PID as a Nintendo Switch Pro controller, but they are actually left/right Joy-Cons. We'll fix up the joystick GUID so applications can handle them appropriately.
2022-08-30 14:14:38 -07:00
Sam Lantinga
92d3fc4883
Fixed deadlock when shutting down the Windows joystick system
2022-08-30 12:59:02 -07:00
Sam Lantinga
0e4baf1c4e
Don't crash if SDL functions are passed a closed joystick or gamecontroller
2022-08-30 12:39:23 -07:00
Sam Lantinga
675d90c708
Revert "wgi: refcount the delegate objects"
...
This reverts commit ff233fe306
.
This doesn't compile cleanly with Visual Studio and I don't want to introduce any subtle issues because we're passing the wrong types of pointers to WGI functions.
2022-08-30 12:09:57 -07:00
Sam Lantinga
40bd4feedc
Revamped joystick locking
...
This makes the joystick locking more robust by holding the lock while updating joysticks.
The lock should be held when calling any SDL joystick function on a different thread than the one calling SDL_PumpEvents() and SDL_JoystickUpdate().
It is now possible to hold the lock while reinitializing the joystick subsystem, however any open joysticks will become invalid and potentially cause crashes if used afterwards.
Fixes https://github.com/libsdl-org/SDL/issues/6063
2022-08-30 11:42:13 -07:00
Shawn Hoffman
ff233fe306
wgi: refcount the delegate objects
...
assert if calls become unbalanced.
2022-08-30 10:48:10 -07:00
Sam Lantinga
2f08bf2313
Added the share button to the Linux mapping for the third party Nintendo Switch Pro controllers
2022-08-29 22:15:35 -07:00
Sam Lantinga
b2ac758f61
Added support for the Hori Fighting Stick Alpha to the HIDAPI driver
2022-08-29 17:33:00 -07:00
Ludovico de Nittis
e8cb4da71f
Add utility function to detect if SDL is inside a sandbox
...
Refactor the previous sandbox check in a standalone function that also
includes Snap support.
Signed-off-by: Ludovico de Nittis <ludovico.denittis@collabora.com>
2022-08-29 06:30:40 -07:00
Sam Lantinga
1153aaae0d
Fixed compiling with USB_GET_DEVICEINFO on DragonFly BSD
...
Although the ioctl() currently fails on this platform...
2022-08-29 00:15:56 -07:00
Sam Lantinga
57cbec1095
Added controller mappings for Xbox 360, PS4, and PS5 controllers on OpenBSD
...
Removed the axis flipping hack for Xbox controllers which would actually apply to any controller with a full 16-bit range.
Fixes https://github.com/libsdl-org/SDL/issues/6143
2022-08-28 23:18:40 -07:00
Sam Lantinga
0b8b321f9e
Allow the product version to be different when trying to find a controller mapping
...
This is in the hope that revving the product version doesn't change the mapping, which is the case for some devices. In cases where it does, we just need to provide a mapping for each version of the product.
2022-08-28 23:01:30 -07:00
Sam Lantinga
761b9d1e49
Use the HID usage for the button as the button number
2022-08-28 22:33:17 -07:00
Sam Lantinga
a9d3935a84
Improved code to get the name and guid for joysticks on OpenBSD and NetBSD
...
Also dynamically allocate joysticks to reduce static memory usage
2022-08-28 18:20:54 -07:00
Sam Lantinga
32700294e2
Don't crash if SDL_CreateJoystickGUID() is passed a NULL name
2022-08-28 18:20:54 -07:00