src/joystick


Log

Author Commit Date CI Message
Sam Lantinga 4fe43f40 2014-08-11T17:24:54 Added an entry for the new Steam controller XInput emulation mode
Sam Lantinga cd8f63f2 2014-07-07T13:21:54 Hopefully fixed Cygwin build
Sam Lantinga a2d5dd02 2014-07-07T13:19:53 Removed useless assert
Sam Lantinga fc4e798d 2014-07-07T12:48:25 Fixed bug 2631 - Mac: minor code cleanup Alex Szpakowski Some minor changes to the Mac-specific backend code: - Fixed up some code style issues (mostly brace style inconsistencies). - Fixed a compiler warning in SDL_cocoaevents.m. - Removed some useless code now that the 10.7 SDK is required to build SDL. - Removed Gestalt(gestaltSystemVersion, ...) call and switched to NSAppKitVersionNumber for version checking code. Using Gestalt with gestaltSystemVersion will give 0x1090 in Mac OS 10.10+, and the whole Gestalt function was deprecated in Mac OS 10.8.
Sam Lantinga febc4797 2014-07-07T11:44:14 SDL_SYS_IsXInputGamepad_DeviceIndex() is only available if SDL_JOYSTICK_XINPUT is true.
Sam Lantinga 1ee96bb9 2014-07-07T10:26:28 Fixed mingw64 build and warnings
Sam Lantinga b79e7f32 2014-07-03T15:39:55 Split the XInput and DirectInput code so Windows RT can use the existing XInput support.
David Ludwig 65023e07 2014-06-25T22:38:40 WinRT: Fixed game controller axis mappings SDL/WinRT currently uses a separate XInput backend from SDL/Win32, as WinRT has no support for DirectInput. This change makes SDL/WinRT's XInput code snag some recently-changed bits from the Win32-specific, DirectInput + XInput backend, in order to get the SDL_GameController API working again on WinRT, insofar that axes map to the correct parts. TODO: - test all buttons, making sure WinRT maps buttons the same way that Win32 does - consider making the Win32 and WinRT codebases share more stuff, minus the sort of duplication happening via this change. Maybe simulate, or stub-out, DirectInput calls when on WinRT?
David Ludwig a838a56d 2014-06-25T22:03:05 WinRT build fix
Sam Lantinga 6a632eb2 2014-06-25T00:20:21 Fixed bug 2603 - iOS: update joystick accelerometer code to use CoreMotion instead of the deprecated UIAccelerometer Alex Szpakowski SDL's code for exposing the accelerometer as a joystick on iOS currently uses UIAccelerometer, which was superseded by the CoreMotion framework and deprecated since iOS 5. The UIAccelerometer code still works (for now), but it also throws deprecation warnings whenever SDL is built for iOS, since SDL's deployment target is no longer below iOS 5. I've created a patch which replaces the old UIAccelerometer code with a replacement based on the CoreMotion framework. It has identical functionality (to SDL users), however iOS apps are now required to link to the CoreMotion framework when using SDL.
Sam Lantinga 52ec151f 2014-06-24T13:31:25 Fixed bug 2553 - Add support to all XInput devices This adds support for all XInput devices, exposed through the SDL joystick API. The button and axis reporting for XInput devices has been changed to match DirectInput and other platforms. The game controller xinput mapping has been updated so this change is seamless. There is a new hint, SDL_HINT_XINPUT_USE_OLD_JOYSTICK_MAPPING, for any applications that have hardcoded the old xinput button and axis set. This hint will be removed in SDL 2.1.
Sam Lantinga 7b7828a4 2014-06-21T21:30:49 You shouldn't get axis and hat events when your application doesn't have focus (unless you use the SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS hint)
Sam Lantinga 54771080 2014-06-15T13:05:30 Add controller mapping for Bluetooth DualShock 4 controllers on Linux Frank Praznik Add a gamepad mapping entry for Bluetooth DualShock 4 controllers on Linux. The button mapping is the same as the USB controller, but the GUID is different.
Ryan C. Gordon 446d19c4 2014-06-14T23:31:23 Removed SDL_SYS_JoystickNeedsPolling(). It was simpler to just have the polling (actually: hotplug detection) functions return immediately if it's not an appropriate time to poll. Note that previously, if any joystick/controller was opened, we would poll every time anyhow, skipping this function.
Ryan C. Gordon 9e5504f8 2014-06-13T14:52:26 Mac: Run the CFRunLoop in joystick mode during SDL_SYS_JoystickNeedsPolling(). This fixes hotplugging failing to detect devices.
Alfred Reynolds 8c2c744a 2014-06-13T10:50:24 - fixed crash if you removed a device twice, the deviceRef is invalid if removed from the removed device callback (added in http://hg.libsdl.org/SDL/rev/d4e4d0fcda03 ).
Sam Lantinga da6d9a9f 2014-06-04T10:56:56 Added annotations to help code analysis tools CR: Bruce Dawson
Sam Lantinga e772f0df 2014-05-13T12:10:37 Added a binding for the NVIDIA Shield controller
Sam Lantinga 67350973 2014-05-13T11:32:36 Updated coding style to match the rest of SDL
Ryan C. Gordon 5d7562c7 2014-04-24T23:24:48 Mac OS X: Look for joystick hotplug in its own CFRunLoop. This allows the joystick hotplug to function without the main event loop (specifically: without SDL_INIT_VIDEO), and moves explicit polling for joysticks where it belongs at the low-level: in SDL_SYS_JoystickDetect(). This lets apps call SDL_JoystickUpdate() to get hotplug events and keep SDL_NumJoysticks() correct, as expected. As SDL_PumpEvents() (and SDL_PollEvents, etc) calls SDL_JoystickUpdate(), existing apps will function as before. Thanks to "raskie" on the forums for pointing this out!
David Ludwig 3dcb451f 2014-04-09T21:29:19 Added a README file regarding WinRT support To note, this file is currently formatted with CRLF line endings, rather than LF, to allow the file to be viewed with Notepad.
Sam Lantinga c3c24a33 2014-03-31T10:38:26 Fixed the joystick side of XInput haptic detection on Windows 8
Ryan C. Gordon 2a2fb611 2014-03-18T12:53:01 Fixed PS4 game controller config on Windows.
Ryan C. Gordon 978566a6 2014-03-18T12:52:51 Whitespace fix.
Ryan C. Gordon 7eaf8997 2014-03-17T19:11:18 Fixed SDL_HapticOpenFromJoystick() with DirectInput devices.
Sam Lantinga ed02f61d 2014-03-13T00:40:08 Fixed the copyright date on files contributed by David Ludwig
Sam Lantinga 641ba099 2014-03-12T07:26:07 Fixed compiling Windows RT code on Visual Studio 2013
Sam Lantinga 1367bf87 2014-03-09T11:36:47 Integrated David Ludwig's support for Windows RT
Sam Lantinga 05c23063 2014-03-09T11:06:11 Fixed line endings on WinRT source code
Ryan C. Gordon 754067db 2014-03-01T22:27:21 Added a FIXME.
Ryan C. Gordon 7fa4eece 2014-03-01T22:27:13 Fixed a typo in a comment.
Ryan C. Gordon 73936208 2014-03-01T20:59:43 Added some FIXMEs.
Sam Lantinga 63106e47 2014-03-01T12:21:15 Changed SDL_HINT_ACCEL_AS_JOY to SDL_HINT_ACCELEROMETER_AS_JOYSTICK to be more clear.
Sam Lantinga ab9345a8 2014-02-28T16:24:41 Null termnate the pUserMappings variable to prevent memory corruption.
Gabriel Jacobo 2ed47d83 2014-02-24T10:00:10 Fixes #2417, memory leak in SDL_gamecontroller.c (thanks Leonardo!)
Ryan C. Gordon 96f09df7 2014-02-23T01:24:46 Free the correct variable.
Ryan C. Gordon f9f2bc5a 2014-02-22T21:21:33 Fixed Mac DualShock 4 gamecontroller db entry again.
Ryan C. Gordon b67b970d 2014-02-22T21:15:34 Mac joystick: ignore duplicate HID elements. The DualShock 4 has all elements listed twice: once in the top-level list of elements, and once in an "Application Collection" element at the top-level. Each element has a proper cookie with a unique value, so now we descend into each element collections, but before we add an element to the device's list, we make sure we don't already have one with that cookie, probably from another collection or a buggy device.
Ryan C. Gordon 0deb54c0 2014-02-22T00:55:28 Reworked Mac OS X joystick code to use the 10.5+ HID Manager API. Besides being a little more simple to use than the earlier IOKit HID API, and less likely to be deprecated, it also has the added benefit of working with the Sony DualShock 4 controller in Bluetooth mode out of the box, whereas the previous API has a bug that makes it report bad data for the controller. Cleaned up several other things in this code, having gone over every line of it. The remaining deprecated calls are also gone.
Sam Lantinga 441f7d8d 2014-02-14T11:38:59 Fixed Mac PS4 controller entry, added Linux OUYA controller entry
Ryan C. Gordon f38c1f05 2014-02-10T12:47:26 Fixed DualShock 4 controller config on Mac OS X.
Sam Lantinga 8cabd44f 2014-02-09T03:09:04 Fixed the OUYA controller mapping on Windows
Sam Lantinga c8c3911e 2014-02-09T02:42:59 Added Windows entry for the bluetooth OUYA controller
Ryan C. Gordon c2f6ab0c 2014-02-06T21:28:11 Added DualShock 4 game controller config for Windows, Mac, and Linux.
Ryan C. Gordon e42d46b4 2014-02-06T07:37:20 Wired up haptic hotplugging for Windows DirectInput/XInput code.
Ryan C. Gordon 7f942688 2014-02-05T01:02:09 Cleanup some vi footer comments, rename new PRIVATE_* funcs to MacHaptic_*.
Edward Rudd b352698d 2014-02-04T18:17:16 Implement new backend methods for haptic and hot plugging on OS X
Sam Lantinga 58edac3e 2014-02-02T00:53:27 Fixed bug 2374 - Update copyright for 2014... Is it that time already??
dbrady 109fe0e0 2014-01-28T15:28:20 fixed hat code validation.
Philipp Wiesemann 62b17e7e 2014-01-29T00:27:54 Fixed comments in joystick implementation files claiming to be headers. It seems comments were originally copied from SDL_sysjoystick.h.
Gabriel Jacobo 33479316 2014-01-27T17:59:19 [Android] Fixes Bug 2370, don't send accelerometer changes when Android_JNI_GetAccelerometerValues return SDL_FALSE (thanks to Jairo Luiz)
Gabriel Jacobo 50befa62 2014-01-23T08:44:25 Bug 2358 - [Android] Joystick Button Mappings are strange (fix by David Brady)
Gabriel Jacobo b131e74b 2014-01-21T18:20:12 Fixes 2356, [Android] SDL_JoystickGetAttached does not function Also fix a potential NULL pointer access in android/SDL_SYS_JoystickGetGUID
David Ludwig ca867fc9 2013-12-25T14:42:38 WinRT: prevented a potential race condition in the XInput backend The race condition could've been triggered on device removal.
Philipp Wiesemann 54a1f61a 2013-12-25T17:02:15 Changed return -1 after SDL_SetError() to return SDL_SetError().
David Ludwig 3f1e3c30 2013-12-24T21:28:31 WinRT: moved ill-performing XInput device-detection calls to a separate thread
Philipp Wiesemann b97e077e 2013-12-24T20:00:58 Fixed unused local variable warning in joystick source for Android.
Philipp Wiesemann 28309c1d 2013-12-24T19:59:35 Fixed implicit declaration of SDL_Log() warning in joystick source for Android.
Sam Lantinga 03aece54 2013-12-23T15:10:03 Generate SDL_CONTROLLERDEVICEADDED events for controllers connected at startup
Gabriel Jacobo 2159de66 2013-12-12T14:55:33 [Android] Poll joysticks every three seconds
Gabriel Jacobo bfcd28c1 2013-12-10T16:24:11 [Android] Hotplugging support for joysticks
Ryan C. Gordon 090327e7 2013-12-09T16:03:18 Implemented the Dynamic API magic.
Sam Lantinga 4ab350d4 2013-12-06T09:13:31 Fixed detecting the wired XBox 360 controller on Linux Also added some more debug output to detect issues
Sam Lantinga c78476da 2013-12-06T08:24:00 Fixed compiler warning on Visual Studio
Gabriel Jacobo 5ac18134 2013-12-03T12:01:28 Adds SDL_GameControllerAddMappingsFromRW, updates controllermap SDL_GameControllerAddMappingsFromFile is now a convenience macro. controllermap can now skip bindings by pressing space or clicking/touching the screen.
Gabriel Jacobo 95ec90aa 2013-12-02T19:35:04 Adds controllermap utility to test suite.
Gabriel Jacobo 45ae148a 2013-12-02T19:34:08 Adds SDL_GameControllerAddMappingsFromFile
Gabriel Jacobo f848adff 2013-11-29T10:06:08 Improve Android pause/resume behavior.
David Ludwig 46740a5a 2013-11-28T22:09:21 WinRT: merged with latest SDL 2.x/HG code SDL 2.x recently accepted patches to enable OpenGL ES 2 support via Google's ANGLE library. The thought is to try to eventually merge SDL/WinRT's OpenGL code with SDL-official's.
Sam Lantinga dee48135 2013-11-27T10:29:43 Added alternative XBox 360 controller GUID on Linux Leszek Godlewski As described in the other thread (http://lists.libsdl.org/pipermail/sdl-libsdl.org/2013-November/091997.html), I've run into a case of SDL2 not recognizing a wireless Xbox 360 controller receiver properly on Debian Linux amd64 testing. Apparently, the generated GUID is slightly different. Device in question: Bus 001 Device 015: ID 045e:0291 Microsoft Corp. Xbox 360 Wireless Receiver for Windows
Ryan C. Gordon 7e1289af 2013-11-24T23:56:17 Make internal SDL sources include SDL_internal.h instead of SDL_config.h The new header will include SDL_config.h, but allows for other global stuff.
Philipp Wiesemann 2aa4974b 2013-11-23T18:29:36 Removed include of no more needed header.
Gabriel Jacobo 7a18a674 2013-11-23T09:47:25 [Android] Fixes #2264, handle joystick open/closed state properly
Gabriel Jacobo fdfea4ad 2013-11-19T10:00:05 [Android] Try to improve handling of DPAD|GAMEPAD + KEYBOARD devices It seems some devices report themselves as DPAD or GAMEPAD and KEYBOARD as well, and we need to route different keycodes to different parts of SDL.
Philipp Wiesemann 3cba7997 2013-11-18T23:43:15 Fixed unreachable return statement warning in gamecontroller source.
Philipp Wiesemann b5c68111 2013-11-18T23:38:59 Fixed implicit function declaration warning in joystick source for Android.
Ryan C. Gordon 00003e8c 2013-11-14T11:51:24 Renamed things named after BeOS to be named after Haiku instead.
Gabriel Jacobo 45a88b6a 2013-11-11T10:15:35 [Android] Fixes bug 2217, better joystick axes handling on Android.
Sam Lantinga b30e396b 2013-11-10T17:56:07 Fixed bug 1965 - Mac: dead code for supporting OS 10.4 Alex Szpakowski The new patch removes all the truly obsolete code I could find. I tested on OS 10.8 and OS 10.5.
Gabriel Jacobo d21640e9 2013-11-10T20:13:27 Fixes bugs #2213 and #2214, improves the Android joystick code button handling
Philipp Wiesemann 0ab7624c 2013-11-10T14:47:05 Changed function to return -1 through SDL_Error() instead of plain -1.
Philipp Wiesemann 82b3e7d2 2013-11-10T14:44:50 Changed function to be static. The function keycode_to_SDL() is only used in this file.
Philipp Wiesemann 6e3558cf 2013-11-10T14:42:41 Removed unused local variable to fix warning.
Sam Lantinga 33cf925c 2013-11-09T01:08:21 Fixed signed/unsigned warning
Sam Lantinga 7c7a9b7f 2013-11-08T14:05:19 Added a Linux game controller mapping for the Valve Streaming Gamepad
Sam Lantinga e3e24bde 2013-11-08T14:04:59 Make sure the joystick count is correct when the added and removed events are dispatched, in case someone is watching for them with an event filter.
Gabriel Jacobo e27248c2 2013-11-06T09:48:45 Fixes Bug 1944 - Linux events, joysticks having only hat are not read
Gabriel Jacobo 0b7c69fe 2013-11-05T20:07:39 Adds Joystick support for Android This bumps the build SDK level to 12 (up from 10). Runtime requirements remain the same (at API level < 12 joystick support is disabled). Also enables building SDL for armv7 and x86.
David Ludwig 69c5d21d 2013-10-27T21:26:46 WinRT: merged with SDL 2.0.1 codebase
Sam Lantinga b8b9bfbe 2013-10-21T01:16:16 Fixed some warnings building for 64-bit Windows
Sam Lantinga 85c2e236 2013-10-20T22:23:09 Fixed Y axis inversion on iOS; positive is up, negative is down.
Sam Lantinga 08fa8da7 2013-10-20T21:56:15 Fixed bug 2129 - fix for bug 2121 breaks linking for mingw and throws multiple warnings Andreas Ertelt The problem in question is caused by changeset 7771 (http://hg.libsdl.org/SDL/rev/5486e579872e / https://bugzilla.libsdl.org/show_bug.cgi?id=2121) The redefinition of __inline__ (introduced by the addition of begin_code.h:128's "|| __STRICT_ANSI__") results in mingw's gcc throwing multiple warning: always_inline function might not be inlinable [-Wattributes] as well as a whole bunch of redefinitions of mingw internals which break linking of projects including the SDL2 headers.
Ryan C. Gordon 5e74299a 2013-10-20T15:40:20 Fix adding of XInput devices (thanks, Mitchell!) Partially fixes Bugzilla #2126.
Sam Lantinga 7ad441a3 2013-10-17T23:40:13 Fixed bug 2069 - Device addition/removal queries all USB devices rather than only HID devices. Andreas Ertelt SDL_dxjoystick.c is setting the classguid for device (dis)connect events to USB Devices in general: dbh.dbcc_classguid = GUID_DEVINTERFACE_USB_DEVICE; Wouldn't it make more sense to have it just subscribe to Hid device events? This would mean less meaningless events reaching the application.
Sam Lantinga 12ca3ce3 2013-10-17T23:02:29 Fixed building using MinGW Our SDL_windows.h needed to be included before anything else so UNICODE is defined.
Sam Lantinga 15682c0c 2013-10-10T20:58:20 Report joystick added/removed events even if we don't have udev. T. Joseph Carter As discussed (possibly to death), the Linux joystick driver does not actually report events for added or removed joysticks when you haven't got udev support. We simply cannot know about removed joysticks without udev. But we can (and we should) report adding them. This brings the legacy case in line with pretty much the rest of SDL's joystick drivers.
Sam Lantinga cca09422 2013-10-06T20:39:23 Only allocate a joystick instance ID once we know it's a joystick. This fixes compatibility with code that assumes 0 based joystick instance IDs.
Sam Lantinga 8f46bcfd 2013-10-06T13:49:23 Check for NULL joystick in SDL_JoystickGetGUID()
Sam Lantinga 90a219a3 2013-10-05T21:15:55 Fixed bug where a Logitech wireless keyboard with built-in mouse touchpad didn't get recongized as both devices.
Gabriel Jacobo 57e09318 2013-10-01T08:47:06 Uses SDL_UDEV for Linux joystick hotplugging