src/joystick


Log

Author Commit Date CI Message
Sam Lantinga 7708bf0f 2022-09-01T08:18:58 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.
Sam Lantinga 7861f924 2022-08-31T13:34:43 Removed debug print statements
Sam Lantinga 62f2379e 2022-08-31T13:24:23 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.
Sam Lantinga e5f161bd 2022-08-30T19:12:22 Restored accidentally removed code to guess XInput device
Ozkan Sezer 973a677a 2022-08-31T02:32:28 SDL_xinputjoystick.c: commented out GuessXInputDevice() Not used since commit 277b033e78235d6ffad7525a1fb9acfef3a43433.
Shawn Hoffman 42d09a8f 2022-08-30T13:54:32 wgi: refcount the delegate objects
Shawn Hoffman ca915b18 2022-08-30T13:54:58 WGI_JoystickUpdate: bounds-check array sizes
Sam Lantinga cdaafcec 2022-08-30T14:56:11 The Kinvoca Joy-Cons are handled by the Joy-Con driver, not the Switch Pro driver.
Sam Lantinga b2c3237b 2022-08-30T14:14:38 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.
Sam Lantinga 92d3fc48 2022-08-30T12:58:38 Fixed deadlock when shutting down the Windows joystick system
Sam Lantinga 0e4baf1c 2022-08-30T12:39:23 Don't crash if SDL functions are passed a closed joystick or gamecontroller
Sam Lantinga 675d90c7 2022-08-30T12:09:07 Revert "wgi: refcount the delegate objects" This reverts commit ff233fe3060e51706937a7b366438403bce774a4. 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.
Sam Lantinga 40bd4fee 2022-08-30T11:42:13 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
Shawn Hoffman ff233fe3 2022-08-28T22:20:58 wgi: refcount the delegate objects assert if calls become unbalanced.
Sam Lantinga 2f08bf23 2022-08-29T22:15:35 Added the share button to the Linux mapping for the third party Nintendo Switch Pro controllers
Sam Lantinga b2ac758f 2022-08-29T17:33:00 Added support for the Hori Fighting Stick Alpha to the HIDAPI driver
Ludovico de Nittis e8cb4da7 2022-08-26T12:28:33 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>
Sam Lantinga 1153aaae 2022-08-29T00:15:56 Fixed compiling with USB_GET_DEVICEINFO on DragonFly BSD Although the ioctl() currently fails on this platform...
Sam Lantinga 57cbec10 2022-08-28T23:18:40 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
Sam Lantinga 0b8b321f 2022-08-28T23:01:30 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.
Sam Lantinga 761b9d1e 2022-08-28T22:33:17 Use the HID usage for the button as the button number
Sam Lantinga bac8df4a 2022-08-28T17:55:49 Fixed memory leak when out of memory
Sam Lantinga ffbad361 2022-08-28T16:21:05 Use the correct type for the device_instance
Sam Lantinga 4a800ae1 2022-08-28T16:11:12 Created a consolidated define enabling BSD gameport joystick support
Sam Lantinga 42f90c62 2022-08-28T16:01:03 Removed unused path variable
Sam Lantinga a9d3935a 2022-08-28T18:17:50 Improved code to get the name and guid for joysticks on OpenBSD and NetBSD Also dynamically allocate joysticks to reduce static memory usage
Sam Lantinga 32700294 2022-08-28T17:56:11 Don't crash if SDL_CreateJoystickGUID() is passed a NULL name
Cameron Gutman b7c1fbf9 2022-08-28T17:38:02 WGI: Fix a couple of reference leaks
Sam Lantinga 0db18130 2022-08-28T07:27:01 Applied OpenBSD patch http://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/ports/devel/sdl2/patches/patch-src_joystick_bsd_SDL_bsdjoystick_c?rev=1.5&content-type=text/plain&hideattic=1
Sam Lantinga 3cbfd75d 2022-08-27T18:55:55 Re-added the CRC to the joystick guid This is now used as a crc field in the mapping rather than directly in mapping guids, for better mapping compatibility between versions of SDL. Added SDL_GetJoystickGUIDInfo() to get device information encoded in a joystick GUID, so that mapping programs can clear the CRC from the GUID when generating mappings. sort_controllers.py has been updated to extract the CRC from mappings created by older mapping programs and convert it into the new crc field. It will also take the CRC into account when checking for duplicate mappings. Also regenerated the GUIDs for the PS2/PSP/Vita controller mappings, fixing https://github.com/libsdl-org/SDL/issues/6151
Sam Lantinga b188a916 2022-08-27T09:46:28 Fixed uhid device name for non-OpenBSD platforms
Brad Smith 3f93ec47 2022-08-26T20:52:56 Add support for OpenBSD's ujoy(4)
Sam Lantinga 9a01eac5 2022-08-26T13:45:05 Temporarily disable joystick GUID CRCs
Sam Lantinga f6c2c22d 2022-08-25T22:25:25 Don't try to use the charging port for the PowerA wireless controller as an input device
Sam Lantinga f1aa8434 2022-08-25T21:51:20 Don't report rumble capability for Nintendo Online controllers
Sam Lantinga babaa7d2 2022-08-24T16:10:47 Fixed PS3 accelerometer values on little endian systems
Julio C. Rocha 05983fb8 2022-08-24T15:03:12 Add Mayflash PC043 adapter
Sam Lantinga e7332cd8 2022-08-24T15:28:56 Fixed zero CRC matching in the controller mapping database
Sam Lantinga 97034471 2022-08-24T09:39:01 Fixed the Nintendo Switch Pro mappings on iOS/tvOS
Sam Lantinga 1fc7f681 2022-08-24T06:38:36 Document that it's not possible to use the HIDAPI driver for PS3 controllers on Windows
Sam Lantinga 645b0f6a 2022-08-24T01:30:29 Enable HIDAPI PS3 support by default on macOS
Sam Lantinga 3d62ebdb 2022-08-24T00:34:30 Fixed HIDAPI PS3 support on macOS
Sam Lantinga aaee6e24 2022-08-23T22:56:32 Added missing file
Sam Lantinga b6f96b69 2022-08-23T22:45:37 Initial HIDAPI driver support for the PS3 controller
Sam Lantinga b6a3d762 2022-08-23T07:24:21 Look up mappings by GUID in two passes: first with CRC, second without
Sam Lantinga 277b033e 2022-08-22T19:28:21 Refactor joystick GUID creation
Sam Lantinga c1e08739 2022-08-22T16:46:55 Added the CRC of the joystick name to the GUID This will make it possible to have mappings for different controllers that have the same VID/PID. This happens frequently with some generic controller boards that have been reused in many products. Fixes https://github.com/libsdl-org/SDL/issues/6004
Sam Lantinga b2819e43 2022-08-22T13:10:57 Send SDL_CONTROLLERDEVICEREMOVED for all joysticks because we don't know after the fact whether it was a game controller. Fixes https://github.com/libsdl-org/SDL/issues/2092
Sam Lantinga 5a3adbfd 2022-08-19T11:11:25 Added the hint SDL_HINT_JOYSTICK_HIDAPI_XBOX_360_PLAYER_LED to control whether the player LED is set on Xbox 360 controllers
Sam Lantinga 52b6899a 2022-08-19T11:11:23 Added hints for more fine grained control over HIDAPI Xbox controller support
Sam Lantinga 9670d2bb 2022-08-15T17:27:33 Make sure we hold the joystick lock when disconnecting a HIDAPI joystick This prevents crashes when calling SDL joystick API functions from a different thread while disconnection is happening. See https://github.com/libsdl-org/SDL/issues/6063 for a more thorough review of joystick locking.
Mathieu Eyraud c6c688ab 2022-08-14T14:55:32 Add SDL_JOYBATTERYUPDATED event to SDL_JoystickEventState()
Your Name cfbeb438 2022-08-12T21:05:37 fix a bug if XINPUTGETBATTERYINFORMATION is nullptr
Sam Lantinga bf925b9e 2022-08-11T14:41:48 Fixed build
Sam Lantinga 24f97dd7 2022-08-11T14:39:49 Added an SDL error to SDL_GameControllerMapping* functions
Sam Lantinga 879af7b5 2022-08-10T14:01:23 Fixed mapping for paired Joy-Con controllers on iOS
Sam Lantinga e49321ce 2022-08-10T08:20:54 Fixed double-free in combined HIDAPI controller code
Sam Lantinga 9ff498e7 2022-08-10T06:00:30 Make HIDAPI_JoystickOpen() more robust against internal logic errors Fixes https://github.com/libsdl-org/SDL/issues/6030
Sam Lantinga 8e782876 2022-08-09T21:30:11 Fixed spamming the controller with reset IMU commands when they are failing
Sam Lantinga eab27b90 2022-08-09T17:58:42 Make sure Switch controller initialization is synchronous and start the input timeout then
Sam Lantinga 1db7d33d 2022-08-09T17:04:26 Recover from Bluetooth devices temporarily out of range
Sam Lantinga 6d012b2a 2022-08-09T16:54:11 Better fix for rescanning devices after read failure
Sam Lantinga 483a010f 2022-08-09T15:39:39 Fixed accidentally deadlocking the rumble thread with combined Joy-Cons Also added more accurate check for sensor data. At least one axis will always have acceleration because of gravity.
Sam Lantinga 5d63a3d4 2022-08-09T14:06:49 Re-enumerate devices if a read fails This allows combined Joy-Con devices to immediately separate if one of them is disconnected
Sam Lantinga da50f1bd 2022-08-09T14:05:43 Bluetooth devices can recover from over a second of dropped reports
Sam Lantinga 824f2d46 2022-08-09T13:41:58 Added a second hint SDL_HINT_JOYSTICK_HIDAPI_JOYCON_HOME_LED to control the Home button LED on Nintendo Joy-Con controllers separately from Nintendo Switch Pro controllers
Sam Lantinga 8aa6922f 2022-08-09T13:25:52 Fixed detecting Bluetooth disconnection on Nintendo Switch controllers
Sam Lantinga 201484ff 2022-08-09T09:03:28 Don't duplicate the serial number twice if a child doesn't set one
Sam Lantinga d90c0d41 2022-08-09T09:00:29 Include the child serial numbers in the serial number for a HIDAPI combined device
Sam Lantinga 55882e43 2022-08-09T00:19:02 Fixed invalid read when SDL_GameControllerSetPlayerIndex() is passed a negative player_index
Sam Lantinga df537a7c 2022-08-09T00:18:19 SDL_GameControllerSetPlayerIndex(gamecontroller, -1) means turn off the player LED if possible
Sam Lantinga 5545be85 2022-08-08T23:44:50 The player LED index wraps for PS5 controllers, like it does for other controller types
Sam Lantinga 593d20d9 2022-08-08T20:11:43 Removed debug logging
Sam Lantinga 6204ae50 2022-08-08T20:09:49 Restart the IMU if the controller stops sending gyro/accel data
Sam Lantinga d58bec72 2022-08-08T17:19:12 Fixed Joy-Con gyro axes in mini-gamepad mode
Shawn Hoffman 5aa438e8 2022-08-08T14:52:19 WGI: fix interop with applications that have their own WGI code QI for Added/Removed events need to handle IAgileObject
Sam Lantinga ada55c69 2022-08-08T15:38:19 Fixed Joy-Con type detection for the Nintendo Joy-Con Charging Grip
Sam Lantinga 47ebf008 2022-08-08T08:35:56 Fixed shadow variable warning
Francisco Javier Trujillo Mata 0a307628 2022-08-08T13:14:48 Fix wrong mapping in some ps2 controller keys
Sam Lantinga 8f05b4f8 2022-08-08T08:26:21 Fixed iOS/tvOS build
Sam Lantinga 87825972 2022-08-08T08:22:20 Added SDL_GameControllerType enumeration for Nintendo Switch Joy-Con controllers
Sam Lantinga 4f19421e 2022-08-07T20:17:40 Fixed build
Sam Lantinga 29265d07 2022-08-07T18:49:30 Use SDL_GetStringBoolean() to parse the hint value
Sam Lantinga 198d62d8 2022-08-06T23:53:18 joystick: remove unused Xbox Controller Keyboard VID/PID. 0x045e, 0x0b02 - is actually virtual keyboard that is generated by XboxGip drivers for Xbox One Controllers. Closes https://github.com/libsdl-org/SDL/pull/5121
Sam Lantinga 52bf5b1d 2022-08-06T10:34:19 Added the hint SDL_HINT_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED to control whether the player LED is set on Nintendo Switch controllers
Sam Lantinga f810dede 2022-08-06T09:50:13 Fixed comment so script processing works correctly
Francisco Javier Trujillo Mata 3da131c1 2022-08-05T21:07:54 Check if port if closed and open it again
Sam Lantinga d6a8b43c 2022-08-05T10:37:38 Added support for the HORIPAD FPS for Nintendo Switch
Sam Lantinga 4a9ceb7b 2022-08-04T11:33:36 The HORIPAD S uses the Xbox 360 protocol on all platforms and shows up as multiple styles of controller, depending on what model you have.
Sam Lantinga 28c01955 2022-08-04T10:46:37 Fixed button mapping for the HORIPAD S This controller actually comes in at least two flavors: a GameCube controller and an arcade pad, neither of which should have the face buttons remapped.
Sam Lantinga 40b71431 2022-08-04T10:24:03 Fixed button mapping for the HORIPAD S controller This controller looks like a GameCube controller, is actually a Nintendo Switch controller, and shows up as an XInput device on Windows with the buttons already in the correct location.
Sam Lantinga 43b90484 2022-08-04T00:40:38 Retry a little longer when writing to the Nintendo Joy-Con Charging Grip
Sam Lantinga dfd2c574 2022-08-03T22:27:43 Removed unused variable
Sam Lantinga a2b4f440 2022-08-03T22:27:42 The Nintendo Wii Remote Pro Controller respects the SDL_GAMECONTROLLER_USE_BUTTON_LABELS hint
Sam Lantinga c84dea09 2022-08-03T22:12:21 Fixed detecting the controller type of controllers over USB
Sam Lantinga ba297f12 2022-08-03T21:46:01 Use the Nintendo controller type to determine whether to always use button labels
Sam Lantinga 946f4777 2022-08-03T21:33:38 Don't set Bluetooth controllers to wired power level
Sam Lantinga 57c3b2c9 2022-08-03T21:31:12 Don't rely on the device VID/PID to get the Nintendo controller type The Nintendo Online Sega Genesis controller reports the SNES VID/PID over Bluetooth. This is a more robust way of handling future controllers as well, so let's go with this instead. Also use full reports over Bluetooth, and don't report gyro for Nintendo Online classic controllers.
Sam Lantinga b6aadb16 2022-08-03T20:38:33 Added k_eSwitchDeviceInfoControllerType_N64 to ESwitchDeviceInfoControllerType
Sam Lantinga bdfb32de 2022-08-03T20:30:58 Added some additional Nintendo controller types to ESwitchDeviceInfoControllerType