src/joystick/iphoneos


Log

Author Commit Date CI Message
Sam Lantinga 3f1fd5ab 2023-05-23T10:59:03 Updated source to match SDL function prototype style
Sam Lantinga 78a92b4f 2023-05-22T13:54:15 Fixed duplicate Joy-Con controllers on macOS If both Apple and HIDAPI drivers see the controller, HIDAPI will be preferred. Fixes https://github.com/libsdl-org/SDL/issues/7479 (cherry picked from commit 61ef4efdfae7e384b0d24b1b171a9ee6203a3f0d)
Sam Lantinga 71dc7169 2023-03-09T17:18:40 Added header for SDL_Delay()
Sam Lantinga 3f00fa16 2023-03-09T16:10:04 Wait for the GCController framework to see IOKit devices It occasionally takes a few millseconds for the GCController framework to handle the device notification and set up the device Fixes the duplicate controller issue in https://github.com/libsdl-org/SDL/issues/6686 (cherry picked from commit 645823fc901c98b688512d3b3e70cc8922e8140c)
Sam Lantinga ea710308 2023-02-23T11:57:48 Added support for the Backbone One PlayStation Edition (cherry picked from commit 59bf1c2853d5b06295c939099f6cf5f1611f70b5)
Sam Lantinga 13969f85 2023-02-21T15:31:32 De-duplicate Google Stadia controllers on macOS (cherry picked from commit 87a83787a3a0a9922b02b35ba809d9da86930fc8)
Sam Lantinga 0479df53 2023-01-09T09:48:21 Updated copyright for 2023
Pierre Wendling d0bbfdbf 2022-12-01T16:07:03 Clang-Tidy fixes (#6725) (cherry picked from commit 3c501b963dd8f0605a6ce7978882df39ba76f9cd)
Sam Lantinga b8d85c69 2022-11-30T12:51:59 Update for SDL3 coding style (#6717) I updated .clang-format and ran clang-format 14 over the src and test directories to standardize the code base. In general I let clang-format have it's way, and added markup to prevent formatting of code that would break or be completely unreadable if formatted. The script I ran for the src directory is added as build-scripts/clang-format-src.sh This fixes: #6592 #6593 #6594 (cherry picked from commit 5750bcb174300011b91d1de20edb288fcca70f8c)
Sylvain Becker 192cdf3d 2022-11-24T16:07:03 SDL_mfijoystick.m: remove VLA, so that projects can be built with error on vla
Joshua Root 242ce20c 2022-11-24T07:37:36 SDL_mfijoystick.m: fix build with Xcode < 9 Fixes #6601. (cherry picked from commit 53ca1f77029289a58f1a9963a00b637b903f494d)
Sam Lantinga 689409fd 2022-10-06T17:34:24 Fixed the start button on the Nimbus+ controller on tvOS Also updated mappings for Nintendo Switch controllers on tvOS, to reflect the lack of guide/menu button availability
Sam Lantinga 7becbd7d 2022-09-27T12:58:16 Add joystick locking for controller notifications on iOS/tvOS Fixes https://github.com/libsdl-org/SDL/issues/6288
Sam Lantinga 2c518747 2022-09-27T09:56:02 Added microsecond timestamp to sensor values for PS4 and PS5 controllers using the HIDAPI driver
Sam Lantinga 5892ed43 2022-09-16T09:44:39 Fixed Xcode warnings on macOS
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 8f05b4f8 2022-08-08T08:26:21 Fixed iOS/tvOS build
Sam Lantinga 4990bd05 2022-07-27T16:17:32 Added debug code to show available inputs on iOS/tvOS controllers
Sam Lantinga f9beef76 2022-07-22T18:58:29 Added support for the Nintendo Switch Joy-Con Controllers on iOS and tvOS 16
Sam Lantinga aad7ef6e 2022-07-22T10:58:34 Added support for the Nintendo Switch Pro Controller on iOS and tvOS 16
Sam Lantinga cef1514b 2022-07-17T09:07:04 Fixed some Xcode warnings
Pierre Wendling 6c536afd 2022-06-27T15:43:17 Fix C89 declaration for macOS modules. Since Clang 14, `-Wdeclaration-after-statement` is enforced on every standard.
Sam Lantinga a3c1ca1f 2022-05-06T09:07:36 Added support for the Backbone One guide button The guide button is activated on a long press (> 400ms)
Daniel Brookman d1a3981b 2022-05-02T15:22:46 Fix crash when reading background events for MFi controllers on macOS Enabling GCController.shouldMonitorBackgroundEvents to read background events for MFi controllers before receiving the first GCControllerDidConnectNotification is apparently a no-go on macOS (12.3.1 for me), and would crash on attempt. Apple's documentation is... not great, and doesn't point this out. This waits for IOS_AddMFIJoystickDevice() to get called down the chain from GCControllerDidConnectNotification, and enables GCController.shouldMonitorBackgroundEvents if it hadn't been already. On iOS and tvOS, GCController.shouldMonitorBackgroundEvents is ignored, so there's no need to check their versions.
Carl Friess 2ccb0dfd 2022-04-13T15:39:29 Check for macOS 10.16 to support apps built with older macOS SDKs
Sam Lantinga e551384a 2022-04-26T14:54:14 Added functions to get the platform dependent name for a joystick or game controller
Sam Lantinga 8986efd6 2022-04-22T14:21:46 Added support for the Backbone One controller on iOS
Sam Lantinga 6a787619 2022-03-08T18:42:13 Allow reading background events for MFi controllers
Ozkan Sezer 7935cfac 2022-02-08T18:55:10 SDL_mfijoystick.m: use __typeof instead of typeof. Fixes https://github.com/libsdl-org/SDL/issues/5319
Sam Lantinga 120c76c8 2022-01-03T09:40:00 Updated copyright for 2022
Sam Lantinga a4c04ad2 2021-11-30T10:32:21 Fixed building with iOS SDK prior to 13.0 Fixes https://github.com/libsdl-org/SDL/pull/5045
Cameron Gutman b9951083 2021-11-24T13:04:50 SDL_mfijoystick.m: Fix -Wshadow warning
Ozkan Sezer ee2afa00 2021-11-22T05:11:10 SDL_mfijoystick.m: fix build using older toolchains Fixes https://github.com/libsdl-org/SDL/issues/4992 Fixes https://github.com/libsdl-org/SDL/issues/4958
Cameron Gutman afccabb8 2021-11-11T12:12:05 joystick: Add capability flags for rumble and trigger rumble When API limitations force us to guess, we favor a false positive (reporting support when it doesn't exist) compared to a false negative.
Cameron Gutman 1ccfbf96 2021-11-11T11:13:08 joystick: Convert HasLED() into a generic GetCapabilities() function
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
Sam Lantinga f3fd1ffb 2021-10-20T15:18:03 Fixed crash if SDL API functions are called on a disconnected controller on iOS
Sam Lantinga ff85d4fb 2021-09-08T17:51:47 Fixed Xbox Series X controller being detected by both IOKit and GCController on macOS
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 e42e9a12 2021-08-13T20:48:56 Fixed build
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 947ad6e1 2021-07-12T17:57:21 Added support for the Xbox Series X controller on iOS and tvOS
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 9231f1f1 2021-05-07T12:29:03 Added support for the PS5 controller on iOS and tvOS
Sam Lantinga 0bdf4f95 2021-03-22T19:19:01 Disable system gestures on MFi controllers while they're open, so we get access to the back button, etc.
Sam Lantinga 9130f7c3 2021-01-02T10:25:38 Updated copyright for 2021
Ozkan Sezer 637d425e 2020-12-15T00:11:10 whitespace.
Sam Lantinga cb361896 2020-12-09T07:16:22 Fixed bug 5235 - All internal sources should include SDL_assert.h Ryan C. Gordon We should really stick this in SDL_internal.h or something so it's always available.
Sam Lantinga 59f28b7f 2020-12-03T18:17:01 Fixed whitespace
Sam Lantinga 6a7f29cd 2020-11-25T11:31:17 Fixed compiling on tvOS
Sam Lantinga e4b7d9a2 2020-11-24T07:56:59 Removed usage of TARGET_OS_OSX for building with older SDKs
Sam Lantinga a5cde4cb 2020-11-24T07:29:55 Fixed trying to use @available() on older SDK
Sam Lantinga 97782e6c 2020-11-24T07:11:49 Don't try to call IOS_SupportedHIDDevice() if it's not defined
Sam Lantinga a063b9fb 2020-11-24T07:06:31 Fixed compiler warning
Sam Lantinga c63bbb06 2020-11-24T06:55:33 Including SDL_config_iphoneos.h enables MFI controller code
Sam Lantinga 1e943e2a 2020-11-23T22:59:22 Fixed building with an older SDK and macOS target
Sam Lantinga 62e39b5f 2020-11-23T20:57:14 Fixed building with an older SDK and macOS target
Sam Lantinga fd894467 2020-11-21T14:13:26 Fixed building on Mac OS X on the command line and with an older macOS SDK
Sam Lantinga 1df593fb 2020-11-21T13:15:33 Fixed bug 5355 - Add GameController Framework support to macOS C.W. Betts This patch adds support to the GameController framework on macOS Big Sur and later, adding support for MFi controllers as well as rumble support for PS4 and Xbox One. There is some code to make sure that the IOKit joystick handler doesn't include two controllers at once. While the GameController framework is present in earlier versions of macOS, there was no public, approved way of checking if a specific IOHIDDevice is a controller that GameController could handle. This was changed in Big Sur.
Sam Lantinga fcb21aa8 2020-11-17T10:30:20 Added API for sensors on game controllers Added support for the PS4 controller gyro and accelerometer on iOS and HIDAPI drivers Also fixed an issue with the accelerometer on iOS having inverted axes
Sam Lantinga 9f51fad3 2020-11-13T18:01:29 Added support for the touchpad on PS4 and PS5 controllers
Sam Lantinga 1e2caac5 2020-11-11T18:57:37 Added SDL_JoystickRumbleTriggers() and SDL_GameControllerRumbleTriggers()
Sam Lantinga fb4a406a 2020-11-09T18:45:22 Don't put 'm' in the GUID for Xbox and PS4 controllers on iOS
Sam Lantinga 009b62f1 2020-11-07T02:22:15 Be explicit about mapping the new game controller paddle buttons
Sam Lantinga 749062e7 2020-11-06T16:53:13 Implemented SDL_GameControllerSetLED() for iOS/tvOS
Sam Lantinga faeac6e8 2020-11-06T16:42:46 Added additional game controller button support on iOS/tvOS
Sam Lantinga e555d453 2020-11-05T11:07:54 Added SDL_JoystickHasLED Currently, this is only supported by the PS4 HIDAPI driver.
Sam Lantinga d9aea0c3 2020-10-15T10:13:42 Update the existing haptic player when we rumble on iOS
Sam Lantinga a558409b 2020-10-13T21:08:18 Only include CoreHaptics if we're building with rumble support
Sam Lantinga 75d5be97 2020-10-13T21:08:17 Fixed compiling with an older iOS SDK
Sam Lantinga 6b62494e 2020-10-13T21:08:15 Added support for controller battery status on iOS 14
Sam Lantinga 1b31e9f6 2020-10-13T21:08:13 Added support for game controller rumble on iOS 14
Sam Lantinga 2d7b33cb 2020-10-13T21:08:11 Added support for the controller home button on iOS 14
Sam Lantinga 345b4d7e 2020-05-29T13:37:21 Fixed bug 5161 - Autodetect controller mappings based on the Linux Gamepad Specification Jan Bujak I wrote a new driver for my gamepad on Linux. I'd like SDL to support it out-of-box, as currently it just treats it as a generic joystick instead of a gamepad. From what I can see the only way to do that is to either 1) pick one of the already supported controllers' PID, VID and button layouts and have my driver send that (effectively lying that it's something else), or 2) submit a preconfigured, hardcoded mapping to SDL. Both of those, in my opinion, are silly when we already have the Linux Gamepad Specification which standarizes this: https://www.kernel.org/doc/html/v4.15/input/gamepad.html Unfortunately SDL doesn't make use of it currently. So I've took it upon myself to add it; patch is in the attachments. Basically what the patch does is that if SDL finds no built-it controller mappings for a given joystick it then asks the joystick backend to autodetect it, and that uses the relevant evdev bits to figure out which button/axis is which. (See the specs for more details.) With this patch applied my own driver for my controller works out-of-box with SDL with no extra configuration and is correctly recognized as a gamepad; this is also going to be the case for any other driver which follows the Linux Gamepad Specification.
Sam Lantinga e9f567c7 2020-05-27T10:14:08 Fixed building on iOS with MFI controllers disabled
Ethan Lee 83cddd2e 2020-04-30T11:57:29 Add SDL_JoystickSetLED. Currently, this is only supported by the PS4 HIDAPI driver.
Sam Lantinga c44473ba 2020-03-12T19:47:30 Unified code to standardize joystick names
Sam Lantinga 6efebf17 2020-02-04T12:48:53 Moved rumble expiration to the main joystick handling level, and prevent sending the driver layer duplicate rumble requests.
Sam Lantinga c9c89783 2020-01-29T20:09:08 Miscellaneous pending fixes
Sam Lantinga a8780c6a 2020-01-16T20:49:25 Updated copyright date for 2020
Sam Lantinga cb800d1c 2020-01-13T22:05:56 Fixed compiler warning
Sam Lantinga 46e1377d 2019-12-20T20:12:03 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()
Sam Lantinga 135a9053 2019-12-06T13:48:13 Fixed the Apple TV remote menu button on tvOS 13.2 (thanks Romain Tisserand)
Sam Lantinga 7a51ad6a 2019-12-06T13:48:10 Fixed the game controller menu button on tvOS 13.2 (thanks Romain Tisserand)
Ryan C. Gordon 73536d93 2019-07-12T21:28:43 ios: Fixed MFi guide button not being detected (thanks, Caleb!). Fixes Bugzilla #4721.
Sam Lantinga 4eb3c0c3 2019-06-14T13:56:52 Added support for Xbox and PS4 wireless controllers on iOS and tvOS Also implemented SDL_JoystickGetDevicePlayerIndex() on iOS and tvOS, and added support for reading the new menu button state available in iOS and tvOS 13.
Sam Lantinga 20ec8664 2019-06-06T08:20:53 Added support for the Rotor Riot gamepad, and upcoming Xbox and PS4 controller support on iOS and tvOS Patch contributed by Nat Brown
Alex Szpakowski 65e07b38 2019-01-31T19:52:47 iOS/tvOS: fix support for SDL_GameControllerGetButton(controller, GUIDE) with MFi controllers (thanks Caleb!) Fixes bug #4463.
Sam Lantinga 5e13087b 2019-01-04T22:01:14 Updated copyright for 2019
Sam Lantinga 14329256 2018-10-25T16:53:14 Generalized the XInput user index into a player index
Sam Lantinga 888bf1af 2018-08-09T16:03:50 Worked around bug with Sony PS Now PS3 controller where DirectInput polling will continue to return success after the controller is unplugged. The code is now reliant on SDL_PrivateJoystickAdded() and SDL_PrivateJoystickRemoved() being called correctly when devices are added or removed on Windows
Sam Lantinga d2042e1e 2018-08-09T16:00:17 Added HIDAPI joystick drivers for more consistent support for Xbox, PS4 and Nintendo Switch Pro controller support across platforms. Added SDL_GameControllerRumble() and SDL_JoystickRumble() for simple force feedback outside of the SDL haptics API
Sam Lantinga 8e062f69 2018-03-19T14:42:51 Generalized the handling of instantaneous guide button presses so there's a minimum of 100 ms between guide button press and release. This happens with at least the following controllers: All Apple MFI controllers, ASUS Gamepad, XiaoMi Bluetooth Controller
Sam Lantinga 129431b4 2018-03-08T16:32:22 Delay delivery of the pause button release on MFI controllers so it doesn't happen in the same frame as the button press