Sam Lantinga
91121ee4bb
Weak link the hidapi framework on iOS and tvOS
2020-01-31 10:45:04 -08:00
Sam Lantinga
0641711e9f
Added missing file from previous commit
2020-01-29 20:09:59 -08:00
Sam Lantinga
355f0b54ec
Added support for the Steam Controller on mobile devices
2020-01-29 20:09:11 -08:00
Sam Lantinga
adb53d0b1f
Fixed disabling the Xbox 360 wireless HIDAPI driver
2020-01-26 10:32:39 -08:00
Sam Lantinga
c9f672fde4
Fixed compiler warnings
2020-01-23 22:24:24 -08:00
Sam Lantinga
443bce741b
Added support for the paddles on the Xbox One Elite Series 1 controller
2020-01-22 11:28:35 -08:00
Sam Lantinga
25c88ea903
The Xbox One 0x01 initialization packet is an ack packet
2020-01-20 13:53:40 -08:00
Sam Lantinga
9c3d1602ab
Refactored code so SDL_GetJoystickGameControllerType() is called less during controller detection
2020-01-19 11:43:36 -08:00
Sam Lantinga
43aa1fa9e7
Added support for detecting previously unknown Xbox 360 and Xbox One controllers using the HIDAPI driver with libusb and Android
2020-01-18 11:21:14 -08:00
Sam Lantinga
4e682461cc
Reattach the kernel driver after closing USB controllers
2020-01-17 10:43:14 -08:00
Sam Lantinga
a8780c6a28
Updated copyright date for 2020
2020-01-16 20:49:25 -08:00
Sam Lantinga
c6817a2c19
Added support for the paddles on the Xbox One Elite Series 2 controller
2020-01-16 15:32:41 -08:00
Sam Lantinga
4e1cc124d2
Improved Xbox One controller initialization
2020-01-16 15:32:39 -08:00
Sam Lantinga
669729a8a0
Improved Xbox One controller initialization sequence
...
This sequence works across Microsoft, PowerA, PDP, and HORI controllers.
The newer Microsoft XBox firmware requires synchronizing the rumble sequence number, when SDL sees it after the initial connect
The Razer Wildcat controller requires waiting for init responses before continuing the initialization sequence.
The PDP Battlefield 1 controller takes over a second to be ready for initialization, and if initialization is attempted before then, it will fail.
2020-01-15 22:18:31 -08:00
Sam Lantinga
7775f7cedf
Fixed deadlock in HIDAPI joystick system
2020-01-13 22:05:54 -08:00
Sam Lantinga
3a796d6a58
Free the joystick player index when the joystick is removed
2020-01-13 15:35:54 -08:00
Sam Lantinga
d2cda502cc
Send the full Xbox One controller sequence for Microsoft controllers
...
This switches Bluetooth controllers back into USB report mode for the latest Xbox One S and Xbox One Elite Series 2 firmware
2020-01-12 17:22:24 -08:00
Sam Lantinga
5d28c31548
Only initialize Xbox One controllers once they're ready for initialization (or if they are silent until init)
...
This fixes the Hyperkin Duke Xbox One controller showing the Xbox startup animation every time an SDL application launches
2020-01-09 14:53:34 -08:00
Sam Lantinga
47abe4e3b3
Fixed crash when unplugging a HIDAPI controller
2020-01-09 14:53:30 -08:00
Sam Lantinga
a56aaea139
Fixed handling the 8BitDo M30 in Nintendo Switch mode
2020-01-07 16:47:56 -08:00
Sam Lantinga
4c9628a002
Fixed GameCube controller axis and trigger ranges and X and B button being swapped
2019-12-30 17:56:56 -08:00
Sam Lantinga
a9482a1d60
Added support for the Nintendo GameCube adapter, tested on Steam Link hardware
2019-12-30 09:44:32 -08:00
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