|
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.
|
|
4fbefbe2
|
2020-11-27T11:33:53
|
|
Sort the raw input axes by usage, so X comes before Y, etc.
|
|
5b3616c3
|
2020-11-23T18:24:05
|
|
Generalized the raw input controller driver and moved XInput/WGI detection into it for XInput devices
This fixes bad report parsing for various newer Xbox controllers, and this driver is now preferred over XInput, since it handles more than 4 controllers.
|
|
6cb7f9e3
|
2020-11-19T19:09:40
|
|
Respect SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS for Nintendo Switch Pro controllers using the HIDAPI driver
|
|
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
|
|
d140d887
|
2020-11-16T17:36:47
|
|
Added SDL_JoystickGetSerial() and SDL_GameControllerGetSerial()
|
|
9f51fad3
|
2020-11-13T18:01:29
|
|
Added support for the touchpad on PS4 and PS5 controllers
|
|
1e2caac5
|
2020-11-11T18:57:37
|
|
Added SDL_JoystickRumbleTriggers() and SDL_GameControllerRumbleTriggers()
|
|
e12457d8
|
2020-11-10T12:26:30
|
|
Added support for the Xbox Series X controller to the HIDAPI driver
|
|
009b62f1
|
2020-11-07T02:22:15
|
|
Be explicit about mapping the new game controller paddle buttons
|
|
3a3aaac2
|
2020-11-06T11:30:52
|
|
Added 4 auxiliary buttons to the game controller API
Xbox Elite controllers use AUX1-AUX4 to represent the paddle buttons when using the HIDAPI driver
PS4 and PS5 controllers use AUX1 to represent the touchpad button
Nintendo Switch Pro controllers use AUX1 to represent the capture button
|
|
e555d453
|
2020-11-05T11:07:54
|
|
Added SDL_JoystickHasLED
Currently, this is only supported by the PS4 HIDAPI driver.
|
|
99ed0d7a
|
2020-10-16T12:40:12
|
|
Map the guide button by default on Android 11
|
|
9d40a0f3
|
2020-08-29T16:50:26
|
|
Fix joystick device add events containing invalid device indexes
This can happen if the application has not yet processed SDL_JOYDEVICEADD when
the same joystick is removed. It may also happen if two joysticks are added
and the second joystick is removed before the first joystick's SDL_JOYDEVICEADD
has been processed by the application.
|
|
cab1a715
|
2020-07-15T10:15:52
|
|
Fixed bug 5233 - PS3 Gamepad Motion Control not correctly ignored on Linux
Igor Morgado
PS3 Controller motion sensor string is being reported as
`Gasia Co.,Ltd PS(R) Gamepad Motion Sensors`
But `src/joystick/SDL_gamecontroller.c` line1690 only ignores if matches the string `Controller Motion Sensors`.
```
#if defined(__LINUX__)
if (name && SDL_strstr(name, "Controller Motion Sensors")) {
/* Don't treat the PS3 and PS4 motion controls as a separate game controller */
return SDL_TRUE;
}
#endif
```
Therefore, SDL is mapping 2 Game controllers instead one.
Maybe reduce the substring to match `Motion Sensors` instead.
A simple log from my application is shown below:
INFO: Game controller device 0 - PS3 Controller:PS3 Controller found.
INFO: Controller 0: Player 0: 054c:0268:8111 - PS3 Controller - PS3 Controller - Gasia Co.,Ltd PS(R) Gamepad
INFO: Game controller device 1 - PS3 Controller:PS3 Controller found.
INFO: Controller 1: Player 1: 054c:0268:8111 - PS3 Controller - PS3 Controller - Gasia Co.,Ltd PS(R) Gamepad Motion Sensors
|
|
39c958bb
|
2020-05-29T14:48:39
|
|
Initialize the raw_map before getting controller mappings from the driver
|
|
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.
|
|
83cddd2e
|
2020-04-30T11:57:29
|
|
Add SDL_JoystickSetLED.
Currently, this is only supported by the PS4 HIDAPI driver.
|
|
67760f0e
|
2020-04-20T18:58:18
|
|
joystick: Don't report duplicate recentering events for game controllers.
|
|
c5f2a1ce
|
2020-04-20T16:01:36
|
|
joystick: On disconnect, recenter all game controller inputs.
The joystick layer can't necessarily give us perfect centering, but we know
that the game controller level has logical absolute idle positions that have
nothing to do with the physical device.
So send game controller events to make it look like the device is completely
untouched before sending the final removal event.
|
|
aba27928
|
2020-04-18T21:41:37
|
|
Added a Windows Gaming Input joystick driver
This driver supports the Razer Atrox Arcade Stick
Some of the quirks of this driver, inherent in Windows Gaming Input:
* There will never appear to be controllers connected at startup. You must support hot-plugging in order to see these controllers.
* You can't read the state of the guide button
* You can't get controller events in the background
|
|
8c165add
|
2020-04-07T23:17:27
|
|
joystick: Remove force_centering flag; we handle this on disconnect now.
|
|
4dea340c
|
2020-03-16T12:23:38
|
|
Fixed bug 4477 - Support more than 4 XInput-capable devices on Windows
Jimb Esser
Add new RawInput controller API, and improved correlation with XInput/WGI
Reorder joystick init so drivers can ask the others if they handle a device reliably
Do not poll disconnected XInput devices (major perf issue)
Fix various cases where incorrect correlation could happen
Simple mechanism for propagating unhandled Guide button presses even before guaranteed correlation
Correlate by axis motion as well as button presses
Fix failing to zero other trigger
Fix SDL_HINT_JOYSTICK_HIDAPI not working if set before calling SDL_Init()
Add missing device to device names
Disable RawInput if we have a mismatch of XInput-capable but not RawInput-capable devices
Updated to SDL 2.0.13 code with the following notes:
New HID driver: xbox360w - no idea what that is, hopefully urelated
SDL_hidapijoystick.c had been refactored to couple data handling logic with device opening logic and device lists caused some problems, yields slightly uglier integration than previously when the 360 HID device driver was just handling the data.
SDL_hidapijoystick.c now often pulls the device off of the joystick_hwdata structure for some rumble logic, but it appears that code path is never reached, so probably not a problem.
Looks like joystick_hwdata was refactored to not include a mutex in other drivers, maintainers may want to do the same refactor here if that's useful for some reason.
Something changed in how devices get names, so getting generic names.
Had to fix a (new?) bug where removing an XInput controller caused existing controllers (that moved to a new XInput index) to get identified as 0x045e/0x02fd ("it's probably Bluetooth" in code), rendering the existing HIDAPI_IsDevicePresent and new RAWINPUT_IsDevicePresent unreliable.
|
|
db3b3a1d
|
2020-03-12T19:47:28
|
|
Added support for SDL hints in the game controller mapping database
|
|
ad225047
|
2020-02-17T14:15:47
|
|
Added Android SDK conditionals to game controller mappings
The Nintendo Switch Pro controller has a different mapping on Android 10 and newer
|
|
dc1d3c29
|
2020-02-04T18:36:23
|
|
Catch both PS3 and PS4 motion controls and don't treat them as a game controller
|
|
a8780c6a
|
2020-01-16T20:49:25
|
|
Updated copyright date for 2020
|
|
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()
|
|
733f2525
|
2019-11-22T14:09:24
|
|
Fixed build
|
|
b5aff9d7
|
2019-11-22T13:12:12
|
|
Added SDL_GameControllerTypeForIndex() and SDL_GameControllerGetType() to return the type of controller attached.
|
|
60d3965e
|
2019-10-30T15:36:17
|
|
Readability: remove redundant return, continue, enum declaration
|
|
0f871c03
|
2019-10-23T09:53:23
|
|
Fixed bug 4843 - Passing NULL to memset in SDL_PrivateLoadButtonMapping
(Thanks!)
|
|
7a47c292
|
2019-07-31T01:22:02
|
|
Fix bug 4746 - introduce SDL_zeroa macro.
|
|
0f148eb6
|
2019-03-16T18:12:26
|
|
Fix polling left trigger reporting right trigger's values.
|
|
82b2c849
|
2019-01-21T23:41:43
|
|
Fixed bug 4024 - GameController error "Unexpected controller element"
If mapping string is terminated with a comma, there is no more values to parse.
|
|
7b354dda
|
2019-01-20T13:53:16
|
|
Fixed compiler warning
|
|
ede0fc4f
|
2019-01-16T14:03:35
|
|
Fixed bug 4024 - remove trailing comma of Controller mappings
because it reports an error "Unexpected controller element"
|
|
5e13087b
|
2019-01-04T22:01:14
|
|
Updated copyright for 2019
|
|
98829d37
|
2018-12-11T19:50:58
|
|
Handle both "Sony Interactive Intertainment" and "Sony Computer Entertainment" when ignoring motion sensors
|
|
70ce0f2e
|
2018-12-07T12:02:08
|
|
Added the hint SDL_HINT_GAMECONTROLLERCONFIG_FILE to specify a file to load at initialization containing SDL game controller mappings
|
|
db320e46
|
2018-12-04T14:21:29
|
|
Fixed the PS4 motion controls showing up as a separate game controller on Linux
|
|
62494a2e
|
2018-10-31T15:03:41
|
|
Merge SDL-ryan-batching-renderer branch to default.
|
|
14329256
|
2018-10-25T16:53:14
|
|
Generalized the XInput user index into a player index
|
|
b262b0eb
|
2018-10-22T20:50:32
|
|
Small stack allocations fall back to malloc if they're unexpectedly large.
|
|
41ee51b9
|
2018-10-04T15:23:42
|
|
Fixed updating bindings for controllers using the wildcard mappings
|
|
5febdfce
|
2018-09-24T11:49:25
|
|
Fixed whitespace
|
|
59a2d12c
|
2018-09-17T11:35:22
|
|
Fixed creating an Android game controller mapping for HIDAPI devices on initialization
|
|
6a7b0c27
|
2018-09-14T12:41:29
|
|
Fixed crash launching under Steam on Mac OS X
|
|
96259f1f
|
2018-09-05T12:16:01
|
|
Don't overwrite the default binding when changing the binding for a controller that was using the default.
|
|
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
|
|
361043a5
|
2018-05-23T17:15:33
|
|
Actually left trigger is motion axis 17 and right trigger is motion axis 18, which will map in that order to SDL axes.
|
|
c07656db
|
2018-05-23T16:00:19
|
|
Fixed default mapping for Android controller triggers (they were reversed)
|
|
999af809
|
2018-05-18T13:09:30
|
|
Merged latest changes from Steam Link app
|
|
b41b9d34
|
2018-03-19T14:52:53
|
|
Fixed return value
|
|
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
|
|
a8ac5885
|
2018-03-07T13:30:40
|
|
Added SDL_GameControllerMappingForDeviceIndex() to get the mapping for a controller before it's opened
|
|
9e651b69
|
2018-03-06T14:51:50
|
|
Try to dynamically create a default Android game controller mapping based on the buttons and axes on the controller.
Include the controller USB VID/PID in the GUID where possible, as we do on other platforms.
|
|
003c0dce
|
2018-03-02T10:56:21
|
|
Use the real controller name for game controllers on iOS and Apple TV
|
|
e3cc5b2c
|
2018-01-03T10:03:25
|
|
Updated copyright for 2018
|
|
fee2469c
|
2017-12-19T10:48:29
|
|
Fixed bug 4005 - Android, SDL_IsGameController() crashes is index is out of range
Sylvain
On Android, if you give an invalid index to SDL_IsGameController(), it will crash in SDL_SYS_IsDPAD_DeviceIndex().
|
|
e5cfa241
|
2017-12-16T10:40:47
|
|
Fixed default Android D-PAD mapping so the back button is treated as B
|
|
a7d2d12c
|
2017-11-01T10:07:04
|
|
Fixed building on non-Android platforms
|
|
a90be440
|
2017-11-01T10:06:58
|
|
Added controller mapping for Android TV remotes
Also fixed the back button on the remote exiting the application
|
|
d90fce3c
|
2017-10-10T11:10:15
|
|
Exposed the joystick locking functions for multi-threaded access to the joystick API
|
|
2657dfae
|
2017-10-09T11:45:15
|
|
Fixed crash in SDL_IsGameController() on Windows if called when a controller is being removed
|
|
d8286479
|
2017-09-22T08:30:52
|
|
Added stubs for simple Steam Controller support
|
|
de91b124
|
2017-08-14T06:28:21
|
|
Fixed bug 3745 - specify SDLCALL as the calling convention for API callbacks
Patches contributed by Ozkan Sezer
|
|
ca5c3048
|
2017-08-13T21:06:52
|
|
Fixed bug 3744 - missing SDLCALL in several functions
Ozkan Sezer
The attached patch adds missing SDLCALL to several functions, so that
they properly match the headers as intended.
|
|
ea9bc659
|
2017-08-13T20:39:00
|
|
Added check for XBOX in addition to Xbox and X-Box
|
|
b425050b
|
2017-08-12T00:04:46
|
|
Fixed compiler warnings on Visual Studio 2013
|
|
03250690
|
2017-08-09T12:38:20
|
|
Added a private hint for Steam to bypass the controller filtering for the Steam virtual gamepad
|
|
f15dbc8f
|
2017-08-09T12:11:59
|
|
Fixed Linux build
|
|
c49fa37c
|
2017-08-09T11:59:29
|
|
Added SDL hints to filter the set of game controllers reported by SDL
|
|
ca0bf151
|
2017-03-03T16:38:17
|
|
Fix some more compiler warnings on armcc.
|
|
1e482095
|
2017-01-14T21:36:06
|
|
Fixed comments.
|
|
45b774e3
|
2017-01-01T18:33:28
|
|
Updated copyright for 2017
|
|
af263798
|
2016-12-28T20:10:48
|
|
Fixed crash if allocating memory for game controller failed.
|
|
cb8685c0
|
2016-12-27T02:04:38
|
|
Fixed comment style
|
|
6d7da088
|
2016-12-27T01:39:07
|
|
Split controller axes into positive and negative sides so each can be bound independently.
Using this a D-Pad can be mapped to a thumbstick and vice versa.
Also added support for inverted axes, improving trigger binding support
|
|
b4e069e7
|
2016-12-26T02:12:21
|
|
Fixed bug 3517 - Compiler warnings with gcc -Wstrict-prototypes
felix
Compiling even a simple SDL2 'hello world' program with gcc -Wstrict-prototypes (GCC 6.2.1) results in warnings like:
/usr/include/SDL2/SDL_gamecontroller.h:143:1: attention : function declaration isn't a prototype [-Wstrict-prototypes]
extern DECLSPEC int SDLCALL SDL_GameControllerNumMappings();
^~~~~~
It seems there is a missing 'void' between the parentheses.
|
|
ca019dad
|
2016-12-22T17:33:45
|
|
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.
|
|
a5250171
|
2016-12-08T10:13:45
|
|
Protect the game controller API the same way the joystick API is protected from multi-threaded access
|
|
d834c08a
|
2016-11-29T22:02:37
|
|
Add the controller mappings to the linked list in order
|
|
dd5d85a4
|
2016-11-29T06:36:57
|
|
Added an API to iterate over game controller mappings
|
|
eb9cc030
|
2016-11-19T23:27:37
|
|
Fixed two memory leaks if added game controller mapping has lower priority.
Found by buildbot.
|
|
57d01d7d
|
2016-11-13T22:57:41
|
|
Patch from Sylvain to fix clang warnings
|
|
23c01c18
|
2016-11-11T13:29:23
|
|
Fixed bug 3079 - Allow non destructive SDL_GameControllerAddMappingsFromFile
x414e54
It is a bit of a pain to update the library or rely on whatever version the user has on their computer for default mappings.
So providing an easily updatable text file via SDL_GameControllerAddMappingsFromFile is still currently the most viable way. However using this replaces all mappings provided by the SDL_HINT_GAMECONTROLLERCONFIG environment variable which may have come from the user's custom Steam mapping.
There should be an easy way for games to supply extra game controller mappings to fill in the differences between SDL versions without it clobbering the SDL_HINT_GAMECONTROLLERCONFIG environment variable.
Internally the mappings could use a priority system and if the priority is lower then it will not overwrite the mappings.
For now it just assumes SDL_HINT_GAMECONTROLLERCONFIG is the highest priority, the default hardcoded are the lowest and anything set via the API is medium.
|
|
160e7194
|
2016-11-11T04:35:06
|
|
Fixed whitespace and added code to support older game controller GUIDs
|
|
ac74e16c
|
2016-11-10T17:19:34
|
|
Standardized the format of the SDL joystick GUID and added functions to retrieve the USB VID/PID from a joystick and game controller.
|
|
89abbbfe
|
2016-10-07T18:24:34
|
|
Fixed bug 3438 - SDL_GameControllerEventWatcher: Log on event with value >= k_nMaxReverseEntries
|
|
8bc5c57d
|
2016-10-07T16:13:37
|
|
Fixed recentering triggers when the application doesn't have focus
|
|
72164985
|
2016-10-07T16:04:15
|
|
Fixed bug 2823 - Release events for triggers receive wrong centered value
Ryochan7
I have been using SDL 2 for a little project that I have been developing for a while. My project is called antimicro and it takes gamepad input and then translates gamepad events into keyboard and mouse events. SDL is used to read the input from an XInput gamepad and it works great for the most part. However, there is one glaring problem that I have encountered.
When a device is unplugged and SDL sends the centered value release events for all axes, buttons, and hats, SDL does not use the proper centered value for the triggers. It pushes an SDL_JOYAXISMOTION event onto the queue with a value of 0 for all axes. That value is converted to around 16,000 for a Game Controller. That value is incorrect for triggers and, in my program, that causes any bindings that are assigned to the triggers to get activated. With most profiles, that will typically mean that a mouse right click and left click will be activated before the device is finally seen as removed and then those bindings are released by antimicro.
|
|
c2e25651
|
2016-10-01T13:02:20
|
|
Fixed bug 3424 - SDL_GameController: Increase k_nMaxReverseEntries
ny00
On Android, the keycodes KEYCODE_BUTTON_1..16 (actual values 188-203) are translated to SDL_Joystick buttons no. 20-35. These are currently ignored in SDL_gamecontroller.c.
The attached patch fixes this, by increasing k_nMaxReverseEntries from 20 to another arbitrary bound of 48.
Side-note: Maybe some log should be emitted in case of going over any such bound?
|
|
ad1bfea5
|
2016-08-26T12:18:08
|
|
Added SDL_PrivateJoystickAdded() and SDL_PrivateJoystickRemoved()
Updated the removal code to iterate over all joystick add messages instead of just the first one.
|
|
c69bce67
|
2016-08-26T11:16:44
|
|
commit 1170112da3776fdb06425f62d57b63144c33dc51
Author: James Zipperer <james.zipperer@synapse.com>
Date: Sun Aug 21 01:19:19 2016 -0700
bugfix for controller / joystick add / remove being in the event queue at the same time
|
|
2a754ca7
|
2016-03-07T08:22:55
|
|
Allow mappings to be added before GameControllerInit
|
|
42065e78
|
2016-01-02T10:10:34
|
|
Updated copyright to 2016
|
|
d1e6a2eb
|
2015-12-09T12:11:40
|
|
Added broad support for wireless XBox 360 controllers on Linux
|
|
e6ad29ae
|
2015-11-14T12:35:45
|
|
Added SDL_JoystickFromInstanceID() and SDL_GameControllerFromInstanceID().
|
|
0e45984f
|
2015-06-21T17:33:46
|
|
Fixed crash if initialization of EGL failed but was tried again later.
The internal function SDL_EGL_LoadLibrary() did not delete and remove a mostly
uninitialized data structure if loading the library first failed. A later try to
use EGL then skipped initialization and assumed it was previously successful
because the data structure now already existed. This led to at least one crash
in the internal function SDL_EGL_ChooseConfig() because a NULL pointer was
dereferenced to make a call to eglBindAPI().
|