Sam Lantinga
b044a3bba8
Added SDL hints to filter the set of game controllers reported by SDL
2017-08-09 11:59:29 -07:00
Sam Lantinga
3b03af8b7e
Implemented Linux joystick blacklist
...
Based on https://raw.githubusercontent.com/denilsonsa/udev-joystick-blacklist/master/generate_rules.py
This fixes a few devices that are not actually joysticks showing up as such in SDL
2017-04-06 06:30:43 -07:00
Sam Lantinga
47e7307c38
Added an API to get the joystick instance ID before opening the device: SDL_JoystickGetDeviceInstanceID()
2017-03-09 16:09:16 -08:00
Sam Lantinga
9e5d3b52f5
Added support for the Saitek Pro Flight X-56 Rhino
2017-01-31 12:30:55 -08:00
Sam Lantinga
49e3e7f731
Added support for the HOTAS Warthog throttle
2017-01-31 12:23:29 -08:00
Sam Lantinga
eb839a6e92
Added the HOTAS Warthog as a flight stick
2017-01-31 10:20:09 -08:00
Sam Lantinga
1db29483c5
Added Thrustmaster Wheel FFB entry to the list of wheels
2017-01-27 06:05:50 -08:00
Sam Lantinga
83061d091e
Added an API to get the type of a connected joystick
2017-01-27 05:59:58 -08:00
Sam Lantinga
88fd1d721d
Added support for the 8Bitdo Zero GamePad
2017-01-20 08:13:23 -08:00
Sam Lantinga
724ff3b29e
Added SDL_JoystickGetAxisInitialState() to get a joystick axis' initial value.
...
This is useful for controller mapping programs to determine an axis' zero state
2017-01-04 10:28:07 -08:00
Sam Lantinga
c52ae60869
Assume D-pad or thumbstick style axes are centered at 0
2017-01-04 07:06:48 -08:00
Sam Lantinga
e1ea1486a3
Added the NEXT SNES Controller to the list of zero-centered joysticks
2017-01-04 06:19:56 -08:00
Sam Lantinga
c67ac27dc9
Increased joystick jitter tolerance for PS3 controllers
2017-01-04 05:56:47 -08:00
Sam Lantinga
40924be014
Fixed binding the D-pad on some Super NES style controllers
...
Fixed a case where partial trigger pull could be bound to another button
There is a fundamental problem not resolved by this commit:
Some controllers have axes (triggers, pedals, etc.) that don't start at zero, but we're guaranteed that if we get a value that it's correct. For these controllers, the current code works, where we take the first value we get and use that as the zero point and generate axis motion starting from that point on.
Other controllers have digital axes (D-pad) that assume a zero starting point, and the first value we get is the min or max axis value when the D-pad is moved. For these controllers, the current code thinks that the zero point is the axis value after the D-pad motion and this doesn't work.
My hypothesis is that the first class of devices is more common and that we should solve for that, and add an exception to SDL_JoystickAxesCenteredAtZero() as needed for the second class of devices.
2017-01-03 23:39:28 -08:00
Sam Lantinga
1b24bfad38
Updated copyright for 2017
2017-01-01 18:33:28 -08:00
Sam Lantinga
5ea622c38f
Fixed issue where the throttle and other axes on racing wheels don't start at zero and show up as immediate input when the wheel is turned for the first time. Wait until they are actually moved before generating input from them.
2016-12-22 17:33:45 -08:00
Sam Lantinga
e164983dbd
Fixed crash if there are multiple joysticks closed during the joystick update loop
2016-12-14 06:25:09 -08:00
Sam Lantinga
ae84e0ada2
Fixed bug 3512 - Memory leak of SDL_Joystick axes_zero array
...
Benjamin Harris
Found with valgrind and confirmed in the 2.0.5 source code.
One-line fix in SDL_JoystickClose?
2016-12-09 01:29:52 -08:00
Sam Lantinga
6ece64092f
Protect the game controller API the same way the joystick API is protected from multi-threaded access
2016-12-08 10:13:45 -08:00
Philipp Wiesemann
a5cd9d9fa1
Fixed warning about storing an unused value.
...
Found by buildbot.
2016-11-30 23:31:23 +01:00
Sam Lantinga
070b6b0d93
Made it safe to update joysticks from multiple threads, fixes crash in Steam
2016-11-29 05:04:42 -08:00
Sam Lantinga
3476202739
We are comparing 16-bit values
2016-11-24 11:53:23 -08:00
Sam Lantinga
0bf15da8c6
Fixed whitespace
2016-11-11 04:30:09 -08:00
Sam Lantinga
6fcf21b827
Standardized the format of the SDL joystick GUID and added functions to retrieve the USB VID/PID from a joystick and game controller.
2016-11-10 17:19:34 -08:00
Sam Lantinga
c680df8746
Fixed recentering triggers when the application doesn't have focus
2016-10-07 16:13:37 -07:00
Sam Lantinga
f98a06ec45
Added SDL_PrivateJoystickAdded() and SDL_PrivateJoystickRemoved()
...
Updated the removal code to iterate over all joystick add messages instead of just the first one.
2016-08-26 12:18:08 -07:00
Sam Lantinga
7ee8dda270
Updated copyright to 2016
2016-01-02 10:10:34 -08:00
Ryan C. Gordon
03cb578e6e
Added SDL_JoystickFromInstanceID() and SDL_GameControllerFromInstanceID().
...
--HG--
extra : amend_source : 110a5505509ddb9ecafed75abd89602986a99696
2015-11-14 12:35:45 -05:00
Sam Lantinga
bf785c766b
SDL - added new SDL_JoystickCurrentPowerLevel() API that returns the battery level of the selected joystick. Currently only implemented for XInput devices, other platforms are a TODO.
...
CR: Sam
2015-09-30 15:39:30 -07:00
Alex Szpakowski
0023cbb086
Added initial support for MFi game controllers on iOS.
2015-09-20 23:08:36 -03:00
Sam Lantinga
56b58afdbe
Updated the copyright year to 2015
2015-05-26 06:27:46 -07:00
Ryan C. Gordon
3ff618a9c7
Cleanups in the joystick code.
...
Removed some redundant state and other confusions.
Fixes Bugzilla #2738 .
--HG--
extra : rebase_source : 35dd561553379e00eb8d169ce12ecc99393b2f84
2015-03-24 13:52:01 -04:00
Sam Lantinga
dc434901da
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.
2014-06-24 13:31:25 -07:00
Sam Lantinga
229d08177a
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)
2014-06-21 21:30:49 -07:00
Ryan C. Gordon
fbdde501ba
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.
2014-06-14 23:31:23 -04:00
Sam Lantinga
d7940a513e
Fixed bug 2374 - Update copyright for 2014...
...
Is it that time already??
2014-02-02 00:53:27 -08:00
Ryan C. Gordon
82edee6971
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.
--HG--
extra : rebase_source : ddf4a4c0dc2c554b98c82700798f343cd91b16e3
2013-11-24 23:56:17 -05:00
Sam Lantinga
de2ea4b8e8
Fixed signed/unsigned warning
2013-11-09 01:08:21 -08:00
Sam Lantinga
20e65317fa
Fixed some warnings building for 64-bit Windows
2013-10-21 01:16:16 -07:00
Sam Lantinga
ff55c5a474
Check for NULL joystick in SDL_JoystickGetGUID()
2013-10-06 13:49:23 -07:00
Jørgen P. Tjernø
70519db239
Fix to buffer overrun in SDL_JoystickGetGUIDString().
2013-09-05 15:49:57 -07:00
Sam Lantinga
08dfaaa2e6
Christoph Mallon: Remove pointless if (x) before SDL_free(x)
2013-08-29 08:29:21 -07:00
Gabriel Jacobo
271e0d67c4
OCD fixes: Adds a space before */
2013-08-21 09:43:09 -03:00
Gabriel Jacobo
25c9f2cd30
Fixes a few non C89 compliant comments
2013-08-20 19:49:24 -03:00
Philipp Wiesemann
e3b9fb7542
Corrected internal documentation in source.
2013-07-22 22:54:00 +02:00
Sam Lantinga
6956070880
Added a hint to control the Windows timer resolution: SDL_HINT_TIMER_RESOLUTION
...
Added an API to watch hint changes: SDL_AddHintCallback(), SDL_DelHintCallback()
You can now dynamically set the joystick background event hint.
2013-07-13 03:13:41 -07:00
Sam Lantinga
156a8638f0
Make it possible to use SDL events separately from the video subsystem.
2013-07-06 12:28:57 -07:00
Sam Lantinga
563185f19c
Only check for keyboard focus if the video subsystem was initialized.
...
Check the hint at initialization time, as an optimization. This isn't something we expect the application to change at runtime, and if it is we should add an API for it.
2013-06-28 23:29:13 -07:00
Sam Lantinga
5aa3492ef8
Fixed SDL building with the minimal configuration
2013-06-13 22:10:10 -07:00
Sam Lantinga
612ec5d29d
Slightly more efficient to check the event type first
2013-06-07 09:39:10 -07:00