src/joystick


Log

Author Commit Date CI Message
Sam Lantinga 2a6feb50 2021-11-08T07:10:38 Removed accidental debugging commit (thanks @DomGries!)
Sam Lantinga 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.
Cameron Gutman f6dc47ca 2021-11-07T16:00:47 WGI/DInput: Fix SDL_IsXInputDevice() checks when RawInput is enabled Enabling the RawInput backend causes SDL_XINPUT_Enabled() to return false. That causes WGI and DInput backends to take ownership of XInput-compatible controllers, because they think there's no XInput-specific backend enabled. In WGI's case, it will actually race with RawInput to open the device. By properly excluding XInput devices from WGI, we can ensure that the sets of devices managed by WGI and RawInput don't intersect. This makes the race harmless, since they'll never both go after the same device.
Sam Lantinga 301389ce 2021-11-07T13:52:59 Fixed iOS build
Cameron Gutman b3e909dc 2021-11-07T13:51:34 WGI: Fix SDL_IsXInputDevice() for Xbox One controllers The Xbox One driver stack doesn't propagate the VID/PID down to the HID devices that end up in the GetRawInputDeviceList() output. This means we end up matching against the wrong VID/PID and can't properly exclude Xbox One controllers from WGI. Fortunately, it is possible to walk back up the device tree to find the parent with the matching VID/PID.
Sam Lantinga b8c00bf9 2021-11-07T13:11:29 Allow opening joysticks that are read-only on Linux Fixes https://github.com/libsdl-org/SDL/issues/4713
Sam Lantinga 0323d983 2021-11-07T12:52:06 Add the platform to the game controller mapping so it can be read back in without changes Fixes https://github.com/libsdl-org/SDL/issues/4848
Sam Lantinga fe2fe290 2021-11-07T11:48:16 Backed out accidentally committed PR https://github.com/libsdl-org/SDL/pull/4849
Sam Lantinga 86bc65a7 2021-11-07T11:35:12 Fixed non-Apple builds
Sam Lantinga 637bcd0b 2021-11-07T11:19:07 Fixed build warnings
Sam Lantinga e1435826 2021-11-07T11:16:48 Cleanup sfSymbolName support and add them to the dynamic API functions
Patrick Hogan 149e5c65 2021-10-03T12:49:36 Support returning sfSymbolsName for gamepad controls on macOS / iOS / tvOS
Cameron Gutman 6312aaea 2021-11-06T21:52:22 WGI: Add workaround for delayed callbacks after WGI_JoystickQuit()
Cameron Gutman 2371b247 2021-10-31T18:27:51 windows: improve feature detection consistency between CMake and non-CMake builds
Sam Lantinga 26706319 2021-10-30T05:53:12 Ignore the ASRock LED controller, it's not a joystick
Tanuj Bagaria 1f0eb03a 2021-10-24T23:54:26 Fix PS5 mapping with HID-PLAYSTATION driver (#4675) * add missing PS5 Linux GUID for Bluetooth * Fix PS5 Mapping to work with HID-Playstation driver
Sam Lantinga a43d3f69 2021-10-20T15:19:22 Don't detect the ROG Chakram mouse as a joystick
Sam Lantinga f3fd1ffb 2021-10-20T15:18:03 Fixed crash if SDL API functions are called on a disconnected controller on iOS
Ozkan Sezer 8e9ea2e3 2021-10-18T14:10:37 SDL_os2joystick.c: missed replacing a use of libc function
shaquan-omari ea97ab61 2021-10-13T16:31:05 Add mapping for HORI Fighting Commander OCTA controller on Linux
Ozkan Sezer e92a639b 2021-10-04T23:00:28 replaced many uses of libc calls with SDL_ counterparts in os2 sources. TODO: core/os2 and geniconv sources _must_ be updated, as well..
Sam Lantinga c501d159 2021-10-03T14:10:21 Fixed range for Steam Controller sensor values
Sam Lantinga ea1a2b94 2021-10-02T09:12:57 Use the correct update rate for Steam Controller sensors
Sam Lantinga 8b745752 2021-10-01T21:32:21 Added support for the gyro and accelerometer on Steam Controllers Fixes https://github.com/libsdl-org/SDL/issues/4577
Sam Lantinga 9706feac 2021-10-01T15:11:25 Update length after shortening string (thanks mayraud705!) Closes https://github.com/libsdl-org/SDL/pull/4698
Cameron Cawley 08ae7904 2021-09-14T20:38:03 Replace calls to asprintf with SDL_asprintf
Sam Lantinga 345c161f 2021-09-22T09:06:45 Fixed some accidental uses of external C runtime functions
Sam Lantinga ff85d4fb 2021-09-08T17:51:47 Fixed Xbox Series X controller being detected by both IOKit and GCController on macOS
Sam Lantinga 9f855258 2021-09-08T17:50:17 Added mapping for Xbox One S controller with newer firmware on macOS
Sam Lantinga bf97c5a2 2021-09-08T14:47:40 Make sure SDL file descriptors don't leak into child processes
Sam Lantinga 7ed7644a 2021-09-07T17:37:47 Fixed compiling HIDAPI Steam Controller support with C89 compiler
Sam Lantinga 27a48b14 2021-09-07T15:50:21 Check the pathname first, as that's a faster check for XInput devices
Sam Lantinga 503ea8e8 2021-08-25T14:41:58 Don't modify the Nintendo Switch home LED state by default
Sam Lantinga 130b6beb 2021-08-24T17:01:34 Manually scan for Linux joysticks before udev scan runs This allows us to have joysticks sorted by insert time at startup, fixing https://github.com/libsdl-org/SDL/issues/4688
Sam Lantinga cbccf5bb 2021-08-24T17:01:06 Use SDL_GetHint() instead of SDL_getenv() for Linux joystick hints
Shawn Ellis 0ae2a9f8 2021-08-22T17:44:08 Fixed the Atari gamecontroller mappings and added Atari Xbox 360 This change corrects the mappings for the Atari gamecontroller and adds support for the Atari Xbox 360 compatible gamecontroller. The Atari game controller can switch between Atari and Xbox 360 mappings.
David Gow fbc36490 2021-08-14T22:29:05 Use the new SDL_clamp() macro where sensible There were a few places throughout the SDL code where values were clamped using SDL_min() and SDL_max(). Now that we have an SDL_clamp() macro, use this instead.
Sam Lantinga dcc5eef0 2021-08-14T00:31:46 Clarify that one of the PIDs of the Xbox Elite Series 2 controller is used in Bluetooth mode
Sam Lantinga e42e9a12 2021-08-13T20:48:56 Fixed build
Sam Lantinga 441fbcaa 2021-08-13T20:48:54 Added HIDAPI support for the Xbox Adaptive Controller
Sam Lantinga 907943a2 2021-08-12T17:51:08 Added support for the Xbox One S Controller with 5.x series firmware
Ozkan Sezer 7aec0b90 2021-08-13T01:56:56 SDL_hidapi_xboxone.c: fix bogus 'uninitialized' warning from clang. The last 'size == 50' check is always true anyway.
Sam Lantinga cec5a129 2021-08-12T15:49:33 Fixed libudev hotplug notifications in the HIDAPI driver
Sam Lantinga 6eb4ebb5 2021-08-12T15:49:33 Simplified the HIDAPI Xbox One controller initialization
Sam Lantinga 584b89ab 2021-08-12T08:17:10 Added support for the color LED on the Xbox Elite Series 2 controller
Sam Lantinga 64882b24 2021-08-12T08:17:08 Added support for the Xbox One Elite 2 Controller with 5.x series firmware
Andrei Alexeyev e9179314 2021-08-11T21:27:42 joystick/linux: fix memleaks; streamline joylist item removal
Sam Lantinga de6ba40d 2021-08-09T11:38:22 Added support for the Flydigi Vader 2 controller in 2.4G Android mode
Sam Lantinga 3f440daa 2021-08-09T10:40:36 Added support for the Flydigi Vader 2 controller in Bluetooth mode
Cameron Gutman 791d9d3f 2021-08-07T12:41:15 Fixed DInput mapping for NVIDIA Virtual Gamepad
Ryan C. Gordon dd683073 2021-08-06T15:13:14 hidapi: Patched to compile on QNX. Fixes #4591.
Sam Lantinga 9fdb0645 2021-08-04T11:33:28 Added support for the Joy-Con Charging Grip when SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS is enabled
Sam Lantinga 9b4884d5 2021-08-03T09:23:54 Warn if you're building a partially functional RAWINPUT driver without device notifications
Sam Lantinga 886eb02e 2021-08-03T03:16:35 Fixed detection of Steam Virtual Gamepad with the WGI driver
Sam Lantinga 7c63e1d3 2021-08-03T01:52:02 Added WGI mappings for the Amazon Luna and Google Stadia controllers
Sam Lantinga 99c8972b 2021-08-03T01:39:07 Added WGI mappings for PS4 and PS5 controllers
Sam Lantinga 2dfc92ca 2021-08-03T01:33:35 Added default mapping for WGI game controllers
Ryan C. Gordon 834a84fa 2021-08-03T05:02:32 winrt: Don't use LoadLibraryA on WinRT. This removes the CM_Register_Notification code on WinRT. Note that this API _is_ available to UWP apps as of Windows 10.0.17763 (version 1809, released October 2018), according to: https://docs.microsoft.com/en-us/uwp/win32-and-com/win32-apis#apis-from-api-ms-win-devices-config-l1-1-1dll So it might be worth readding with some sort of preprocessor check for minimum targeted version, or whatever is appropriate for WinRT development.
Sam Lantinga 993a5676 2021-08-03T00:14:15 Only use the default Xbox mapping on Linux On Windows, this is already covered by XInput and is the wrong mapping if we try to use it with DirectInput/RAWINPUT/WGI controllers
Sam Lantinga 7edc7d53 2021-08-02T22:44:38 Added a mapping for the Steam Virtual Gamepad when it's detected in DirectInput mode
Sam Lantinga 02223501 2021-08-02T16:40:58 Fixed crash if WGI didn't give us the name for a controller
Sam Lantinga 2d0075ef 2021-07-30T18:23:43 Updated comments for third party Nintendo Switch controllers
Sam Lantinga 16010f75 2021-07-30T18:23:43 Added support for the PowerA Nintendo Switch Fusion Arcade Stick
Sam Lantinga b33f4709 2021-07-30T18:23:42 Fixed detection of the PDP Afterglow Wireless Switch Controller over Bluetooth
Sam Lantinga 6af6950d 2021-07-30T18:23:42 Added support for the Victrix Gambit Tournament Controller
Sam Lantinga 243a8836 2021-07-30T18:23:41 The PowerA Nintendo Switch Fusion Pro Controller has a working USB mode, enabled via the switch on the underside of the controller.
Sam Lantinga 9d457aa4 2021-07-29T14:24:40 Don't uninitialize COM because of what appears to be a bug in Microsoft WGI reference counting. This fixes https://github.com/libsdl-org/SDL/issues/4488
Sam Lantinga b3a0174b 2021-07-29T14:23:15 Scale the values correctly based on the sensor type (thanks @meyraud705)
Sam Lantinga a186a503 2021-07-29T06:43:39 Added SDL_GameControllerGetSensorDataRate() to get the sensor update rate for a controller.
Sam Lantinga 2a53f831 2021-07-26T23:29:20 Fixed controllers showing up under both MFI and HIDAPI drivers The Game Controller Kit doesn't show the controllers at startup, so the HIDAPI driver sees them first and therefore gets preference when a controller is supported by both drivers. This fixes bug https://github.com/libsdl-org/SDL/issues/4209
Sam Lantinga 46869db0 2021-07-26T23:27:13 Fixed controller rumble on macOS Needed to add a strong reference to the haptics engine
Sam Lantinga a850fec7 2021-07-26T15:05:02 Added missing mapping for the Xbox Elite Controller on Linux This fixes https://github.com/ValveSoftware/steam-for-linux/issues/7826
Sam Lantinga ba8bc143 2021-07-26T12:09:33 Sort joystick entries in /dev/input This fixes https://github.com/libsdl-org/SDL/issues/4430
Sam Lantinga 8d527def 2021-07-26T10:18:18 Revert "hidapi_switch: Implement HD rumble effect (#4538)" This reverts commit 19082b115b8ba3fff93e1c317c380718086a509c, which broke rumble on the Nintendo Switch Pro controller
Narr the Reg 19082b11 2021-07-26T12:00:53 hidapi_switch: Implement HD rumble effect (#4538)
Sam Lantinga 10ec4c86 2021-07-24T22:11:22 Added support for the PowerA Nintendo Switch Spectra Controller
Sam Lantinga 3c9559f7 2021-07-24T19:43:56 Don't try to rumble third-party Nintendo Switch Pro controllers Sending rumble to the PowerA Spectra Nintendo Switch controller hangs input reports for a couple of seconds.
Sam Lantinga cc19b13b 2021-07-24T19:21:29 Fixed missing return statement
Sam Lantinga d4ac6b5e 2021-07-24T15:58:33 Detect buffer overflow when getting DirectInput device state This fixes bug https://github.com/libsdl-org/SDL/issues/4528
Ryan C. Gordon 5ae0dd4b 2021-07-24T17:44:35 joystick: Split out Linux opening code for reuse by querying code. This prevents an assertion whem LINUX_JoystickGetGamepadMapping tried to open the stick temporarily and messed with global state by doing so. Now the global state is only set in LINUX_JoystickOpen, but the common code is shared by both interfaces. Fixes #4198.
Sam Lantinga 09d1cea7 2021-07-24T11:15:09 Use the new controller type for the Luna and Stadia controllers
Sam Lantinga 808c3ae6 2021-07-24T10:36:56 Allow mapping Android controllers that just have a D-PAD and face buttons This fixes bug https://github.com/libsdl-org/SDL/issues/4327
Sam Lantinga 94b7a876 2021-07-24T09:10:18 Added SDL_GameControllerType enumerations for the Amazon Luna and Google Stadia controllers Fixes bug https://github.com/libsdl-org/SDL/issues/4019
german77 e6e8fe6d 2021-07-23T10:45:03 hidapi_switch: Implement analog rumble
Sam Lantinga 669714ca 2021-07-23T23:51:35 Added the ThrustMaster T.16000M as a flightstick
Sam Lantinga 384d86b5 2021-07-23T23:48:23 Fixed compile warnings with Visual Studio
Sam Lantinga adb75d64 2021-07-23T23:45:18 Fixed hotplug detection not working on UWP or when SDL isn't pumping Windows events This fixes bugs: https://github.com/libsdl-org/SDL/issues/4321 https://github.com/libsdl-org/SDL/issues/4147 Thanks to DJm00n for the suggestion!
Sam Lantinga 422b053b 2021-07-23T16:32:35 Added support for the full line of current PowerA Xbox Series X controllers
Sam Lantinga dc6f0443 2021-07-12T17:57:21 Added mapping for the Xbox Series X controller on tvOS
Sam Lantinga 947ad6e1 2021-07-12T17:57:21 Added support for the Xbox Series X controller on iOS and tvOS
Sam Lantinga 24059a19 2021-07-09T18:11:42 The RAWINPUT driver is no longer tied to HIDAPI in any way
Sam Lantinga 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
Sam Lantinga 4a20dd3e 2021-07-08T07:38:18 Removed unnecessary comment, the mic button is in byte 16 on all firmware versions
Sam Lantinga 430bbcb8 2021-07-07T09:49:33 Added HIDAPI support for the Amazon Luna Controller connected over USB in DirectInput mode
Sam Lantinga 863f5669 2021-07-07T08:55:16 Fixed reading thumbstick axes and mic button on the Amazon Luna Controller firmware version 305164320
Dimitriy Ryazantcev 17ed8d80 2021-07-07T16:05:35 Added HIDAPI backend for Amazon Luna Controller Model T28B69 connected via Bluetooth LE (VID:0171, PID:0419). To enter Bluetooth pairing mode hold B and Action (button with circle) buttons for 3 seconds. It works via usual HIDAPI if special filter driver is not installed: https://www.amazon.com/gp/help/customer/display.html?nodeId=GZCT4CTFHXLHEB9T With that driver installed it mimics Xbox One controller and works via XInput under Windows. Under DInput this controller is not usable at all.
Sam Lantinga 00d67620 2021-07-06T11:32:11 Added the SteelSeries manufacturer to the Nimbus+ entry on macOS
Sam Lantinga 24e836b0 2021-07-06T10:00:09 Added controller mapping for the Nimbus+ controller on macOS when MFi support is not available
Dimitriy Ryazantcev 39302c92 2021-06-02T14:28:33 Add Steam Virtual Gamepad and Xbox 360 Wired Controller defines instead of magic values See https://partner.steamgames.com/doc/features/steam_controller/steam_input_gamepad_emulation_bestpractices for details on what is Steam Virtual Gamepad.
Sam Lantinga 0c4ac33a 2021-06-28T14:31:27 Added support for the Razer Wolverine Tournament Edition controller