Zack Middleton
f0cee3edec
Fix shutting down HIDAPI device with multiple joysticks
...
Using Wii U GameCube USB adapter with multiple controllers attached and
restarting SDL input in a game results in extra joysticks with NULL name.
HIDAPI_CleanupDeviceDriver() shut down joysticks by iterating through
device->num_joysticks but each HIDAPI_JoystickDisconnected() decreases
device->num_joysticks and shifts joysticks array down. Resulting in only
half of controllers being shutdown. It worked with only 1 controller
attached though.
Disconnect HIDAPI device joystick 0 until there are none left.
2019-12-22 13:15:11 -08:00
Sam Lantinga
46e1377d49
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()
2019-12-20 20:12:03 -08:00
Sam Lantinga
6b76787209
Make sure the Xbox 360 driver doesn't try to talk to the wireless controllers
2019-12-19 21:45:44 -08:00
Sam Lantinga
1db56619de
Fixed rare infinite rumble in HIDAPI controller driver
2019-12-19 18:03:28 -08:00
Sam Lantinga
25bd5070f5
Fixed GameCube rumble
2019-12-19 18:00:08 -08:00
Sam Lantinga
2481ab9340
Fixed compiler warning
2019-12-19 15:58:16 -08:00
Sam Lantinga
fead0b24e1
Added missing files from previous commits
2019-12-19 15:02:12 -08:00
Sam Lantinga
e22e77dadc
Added an untested driver for the Nintendo GameCube adapter, based on code contributed by Ethan Lee
2019-12-19 15:01:35 -08:00
Sam Lantinga
15d30298cf
Added support for wireless Xbox 360 controllers using the HIDAPI driver
2019-12-19 15:01:32 -08:00
Sam Lantinga
e7f7e3f40f
Refactored HIDAPI controller code to support dongles and hubs that dynamically attach controllers
2019-12-19 15:01:30 -08:00
Sam Lantinga
52b6ab2196
Added support for the SteelSeries Stratus Duo
2019-12-16 17:11:23 -08:00
Sam Lantinga
a7ae9175c3
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.
2019-12-16 10:20:03 -08:00
Sam Lantinga
c2b6d6f9ed
Enable the LED on PowerA Xbox One controllers
2019-12-13 16:12:37 -08:00
Sam Lantinga
0352814a8a
Added general remapping of controller manufacturer
2019-12-13 16:07:25 -08:00
Sam Lantinga
1ac7eabaca
Fixed comment typo
2019-12-12 14:25:02 -08:00
Sam Lantinga
0f52916027
Added custom names for some controllers
2019-12-11 17:47:01 -08:00
Sam Lantinga
e029fdbb38
Shorten "Performance Designed Products" to "PDP"
2019-12-11 17:46:59 -08:00
Sam Lantinga
8b50dcb21b
Use the controller product string instead of hard-coding controller names
2019-12-11 17:46:54 -08:00
Sam Lantinga
3469481ef6
Don't include the manufacturer if it's already included in the product string
2019-12-10 10:00:49 -08:00
Sam Lantinga
82d2c357c3
Fixed rumble after Xbox controller initialization
...
When we initialize the controller it has an internal rumble sequence number, and if our rumble sequence number doesn't match that, rumble won't happen. To fix that we cycle through the range of sequence numbers, and at some point we'll match up with the controller's sequence number and it'll roll forward until it matches our next rumble sequence number.
2019-12-09 16:52:11 -08:00
Sam Lantinga
3d34750ced
The PowerA Mini controller blocks while writing feature reports, so don't try to use the HIDAPI driver for it on Linux
2019-12-09 13:54:05 -08:00
Sam Lantinga
3626506369
Added some missing Xbox controller names
2019-12-09 13:54:03 -08:00
Sam Lantinga
2fd3f756d2
Fixed trying to use the HIDAPI driver for the original Xbox One S Bluetooth controller
2019-11-28 11:44:17 -08:00
Sam Lantinga
4a77613881
Added the full Xbox One Elite Series 2 controller initialization sequence, to start input reports after switching out of Bluetooth mode.
2019-11-27 18:26:57 -08:00
Sam Lantinga
0b863f8a5c
Sorted controller entries by type and VID/PID to more easily find entries in the list
2019-11-27 15:27:19 -08:00
Sam Lantinga
43cb7b3c51
Added support for the Hori Fighting Commander
2019-11-27 12:38:51 -08:00
Sam Lantinga
a76e547477
Added support for the PowerA XB1 Fusion Fight Pad
2019-11-27 12:38:48 -08:00
Sam Lantinga
a5e6b87ce6
Added support for a variant of the PowerA FUSION Pro Controller
2019-11-26 08:35:41 -08:00
Sam Lantinga
f3d95396d6
Added some missing controller names
2019-11-25 15:02:54 -08:00
Sam Lantinga
8243a3e801
Added support for the Hyperkin X91
2019-11-25 15:02:50 -08:00
Sam Lantinga
8e153922e4
This packet didn't end up being needed to initialize input for the Xbox One Elite Series 2 controller
2019-11-22 17:46:30 -08:00
Sam Lantinga
733f25252a
Fixed build
2019-11-22 14:09:24 -08:00
Sam Lantinga
b5aff9d7c3
Added SDL_GameControllerTypeForIndex() and SDL_GameControllerGetType() to return the type of controller attached.
2019-11-22 13:12:12 -08:00
Sam Lantinga
c0650aca21
Added support for the PDP Battlefield One controller
2019-11-21 14:04:48 -08:00
Sam Lantinga
68d8fc5c7b
Added support for the Xbox One Elite Series 2 controller in wired mode
2019-11-18 15:46:13 -08:00
Sam Lantinga
1e24a1514d
Added names for some missing Xbox controllers
2019-11-18 11:51:39 -08:00
Sam Lantinga
144956442d
Added identifiers for the Xbox One Elite Series 2 controller
2019-11-18 11:44:51 -08:00
Sam Lantinga
a9ac9e3865
Don't try to use this driver with the Xbox One S in Bluetooth mode on Linux
2019-11-16 19:58:29 -08:00
Sam Lantinga
9ca5373024
Added support for the Xbox One S controller in Bluetooth mode on Linux
2019-11-16 19:55:53 -08:00
Sam Lantinga
cf33f1f0ef
Added a utility function to simplify the hint handling logic
2019-11-13 21:53:01 -08:00
Sam Lantinga
9a76bebfbc
SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS defaults to true, to match Steam's default behavior
2019-11-13 14:24:48 -08:00
Sam Lantinga
9da4bfc141
Added support for the Power A Nintendo Switch Enhanced Wireless Controller
2019-10-22 10:57:07 -07:00
Sam Lantinga
b3470f04b1
Added the hint SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS to control whether Nintendo Switch controllers use their button labels or button positions for game controller button reporting.
2019-10-17 17:32:47 -07:00
Sam Lantinga
e6ac16ef2f
Added support for third party Nintendo Switch controllers that don't support the full protocol
2019-10-17 16:59:05 -07:00
Sam Lantinga
3b3dbb5adb
Removed unused volume check interval
2019-10-01 08:50:04 -07:00
Sam Lantinga
cbde0ffa3d
The PS4 is ignoring the volume values in the report, so we don't need to fill them in.
2019-09-19 16:50:49 -07:00
Sam Lantinga
c10a87429d
Make sure HIDAPI is initialized whenever we call HIDAPI_IsDevicePresent()
2019-07-31 10:20:37 -07:00
Andrew Eikum
c172f36bf4
joystick: Ensure HIDAPI is initialized before calling it
2019-07-31 11:14:48 -05:00
Sam Lantinga
dc714389f0
Don't call hid_enumerate() if the HIDAPI drivers are all disabled
2019-07-25 15:21:44 -07:00
Sam Lantinga
be6cda9f95
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.
2019-06-19 15:54:21 -07:00