Sam Lantinga
b80784fced
SDL_GetGamepadBindings() follows the SDL_GetStringRule
2024-07-19 13:06:54 -07:00
Sam Lantinga
fd9fe1bb7b
Renamed event memory to temporary memory, since it's not just used for events
2024-07-19 12:22:03 -07:00
Sam Lantinga
61a7a0e579
SDL_GUIDToString() follows the SDL_GetStringRule
...
Also removed the distinction between SDL_GUID and SDL_JoystickGUID
2024-07-19 12:22:03 -07:00
Sam Lantinga
856d598d6e
SDL_GetSensors() follows the SDL_GetStringRule
2024-07-19 12:22:03 -07:00
Sam Lantinga
5ce0aacaa4
SDL_GetGamepads() follows the SDL_GetStringRule
2024-07-19 12:22:03 -07:00
Sam Lantinga
4961af4569
SDL_GetJoysticks() follows the SDL_GetStringRule
2024-07-19 12:22:03 -07:00
Sam Lantinga
bb96320cc4
Make sure we always copy the data returned using SDL_GetStringRule
...
This prevents race conditions where calling an API from one thread returns the data and it's freed by updates on another thread
2024-07-19 12:22:03 -07:00
Amir
5db08b86ca
Fix warning for Android NDK compiler: "function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes]"
...
https://stackoverflow.com/questions/42125/warning-error-function-declaration-isnt-a-prototype
In C int foo() and int foo(void) are different functions. int foo() accepts an arbitrary number of arguments, while int foo(void) accepts 0 arguments. In C++ they mean the same thing.
2024-07-17 14:09:11 -07:00
Ryan C. Gordon
4dda785c69
gamepad: Several gamepad mapping functions now follow the SDL_GetStringRule.
...
Reference Issue #10229 .
2024-07-16 16:44:36 -04:00
Sam Lantinga
54366181c3
Rename functions in SDL_system.h to match SDL 3.0 naming convention
...
Fixes https://github.com/libsdl-org/SDL/issues/10277
2024-07-15 16:27:48 -07:00
Sam Lantinga
5c875e1183
Renamed *FromID() to *ForID()
...
While it makes sense to get an object pointer from an object ID, you want to get object attributes for an ID, otherwise e.g. GetNameFromID() sounds like it's a name ID, not an object ID. This is also consistent with the function naming convention in SDL2.
2024-07-14 15:56:50 -07:00
Sam Lantinga
d154b37b41
Renamed *FromInstanceID() to *FromID()
2024-07-14 13:01:53 -07:00
Sam Lantinga
e90060d07f
Renamed functions to get information from device IDs
...
Fixes https://github.com/libsdl-org/SDL/issues/10237
2024-07-14 09:03:59 -07:00
ceski
68cf17d0d4
Add a Windows mapping for SplitFish Game Controller
2024-07-12 19:48:40 -07:00
Sam Lantinga
4ba2e9f4f4
Improved detection of Nintendo Switch Pro controller report mode
...
Fixes https://github.com/libsdl-org/SDL/issues/10182
2024-07-06 05:29:12 -07:00
Sam Lantinga
2d05dcc1f7
The same VID/PID is used for the FlyDigi Apex 4
2024-07-05 10:04:59 -07:00
Max Maisel
607b1f225c
Drain HIDAPI buffer in SDL_hidapi_steamdeck.c.
...
Add a loop around SDL_hid_read() in the Steam Deck HIDAPI driver as it
is done in other HIDAPI drivers. This loop reads data from the device and
processes it until the input buffer is empty which ensures that clients
always get the latest data.
This fixes an input latency issue if the application polls the events
slower than the hardware generates them.
2024-07-05 08:25:52 -07:00
Sam Lantinga
a04596c9a7
Added support for the ROG RAIKIRI
2024-07-03 13:54:00 -07:00
Sam Lantinga
0f8054cf87
Only use the default gamepad mapping if an automatic mapping isn't available
...
Fixes https://github.com/libsdl-org/SDL/issues/10162
2024-07-03 11:44:20 -07:00
Sam Lantinga
0ae4fd0ec9
Make sure we don't try to use the XInput DLL after it's unloaded
...
Steam ran into a crash SDL_XINPUT_JoystickDetect() with XINPUTGETCAPABILITIES being NULL. I'm not sure how that happened, and there may still be a race condition if this is a multi-threaded issue, but at least this is more correct.
2024-06-26 15:44:03 -07:00
Sam Lantinga
ef9bd8b609
Add the raw platform specific key code to SDL_Keysym
...
This allows applications to handle keys that SDL doesn't recognize, in a platform dependent way.
Fixes https://github.com/libsdl-org/SDL/issues/6390
2024-06-21 22:06:08 -07:00
Sam Lantinga
6e53a36414
Fixed Y + right shoulder button combination on third party Switch controllers
2024-06-20 14:39:04 -07:00
Sam Lantinga
421326b6da
Fixed controllers not being seen as gamepads after adding a mapping
2024-06-19 08:32:18 -07:00
Hubert Maier
90b7097a90
JANITORIAL: Fix ammount typos ( #10060 )
2024-06-19 07:27:19 -07:00
Hubert Maier
3acdb8a90b
JANITORIAL: Fix typos in comments in various files ( #10058 )
2024-06-19 07:13:46 -07:00
Sam Lantinga
361cae0874
Pass through the original name used by the Steam Virtual Gamepad
...
Proton uses this on Linux to determine what the XInput slot is for the gamepad. Other applications will get the real controller name and VID/PID by virtue of the code in SDL_steam_virtual_gamepad.c
2024-06-17 12:14:44 -07:00
Sam Lantinga
6821fb2fe4
Fixed the right trigger on the Nintendo SNES Controller in simple report mode
2024-06-13 11:35:29 -07:00
Sam Lantinga
a3cc900157
Fixed Nintendo Switch triggers when in simple report mode
2024-06-13 11:25:27 -07:00
Sam Lantinga
bf27269952
Re-enable full controller reports for Joy-Con controllers
...
When they are in simple report mode, the thumbstick gets turned into a digital hat, so let's use them in full report mode.
2024-06-12 23:36:16 -07:00
Sam Lantinga
6619de8f24
Try to guess the type of a Nintendo Switch controller if we can't read the device info
2024-06-12 23:22:44 -07:00
Sam Lantinga
5ee9a840b1
Ignore spurious reply packets when reading Nintendo Switch controller reports
2024-06-12 23:03:50 -07:00
Sam Lantinga
fcd2a3a6ad
Fixed mapping for Joy-Con controllers in simple report mode
2024-06-12 22:28:47 -07:00
Sam Lantinga
b2ccfc0b6f
Log whether a controller is Bluetooth or not
2024-06-12 17:22:52 -07:00
Sam Lantinga
3e70376bce
Enabled HIDAPI debug logging for diagnostic purposes
2024-06-12 15:03:41 -07:00
Anonymous Maarten
32907a9606
Rename SDL_Swap(16|32|64)(LE|BE) to SDL_Swap(LE|BE)(16|32|64)
2024-06-12 02:29:39 +02:00
Sam Lantinga
4fc68a48f2
Keep track of whether a controller was a gamepad
...
Fixes https://github.com/libsdl-org/SDL/issues/9996
2024-06-09 17:45:20 -07:00
Oleg
7529b4bed5
Added VRS DirectForce Pro wheelbase VID/PID to wheel devices list
2024-06-06 09:53:39 -07:00
Sam Lantinga
b6d7adfec1
Fixed PlayStation detection interrupting input for the Logitech K400 keyboard
...
Also added the Logitech Chillstream to the list of PS3 controllers and fixed the right shoulder axis.
2024-06-05 19:11:10 -07:00
Sam Lantinga
f879411627
Added support for gamepad rumble on Android
...
Tested with the DualSense controller over Bluetooth on Android 12
Fixes https://github.com/libsdl-org/SDL/issues/7847
2024-06-05 09:53:56 -07:00
Sam Lantinga
470cfc2755
Make sure we set the initial report interval value
2024-06-04 07:47:34 -07:00
meyraud705
4c9a91b62e
Update gamepad sensor rate
...
SDL_HINT_JOYSTICK_HIDAPI_PS4_REPORT_INTERVAL allows to change sensor rate. Make SDL_GetGamepadSensorDataRate() returns the updated value.
2024-06-04 07:38:48 -07:00
Anonymous Maarten
a919774fe4
Build with -Wfloat-conversion + fix all warnings
2024-06-03 21:33:29 +00:00
Ryan C. Gordon
e23257307e
Introduce formal policy for APIs that return strings.
...
This declares that any `const char *` returned from SDL is owned by SDL, and
promises to be valid _at least_ until the next time the event queue runs, or
SDL_Quit() is called, even if the thing that owns the string gets destroyed
or changed before then.
This is noted in the headers as "the SDL_GetStringRule", so this will both be
greppable to find a detailed explaination in docs/README-strings.md and
wikiheaders will automatically turn it into a link we can point at the
appropriate documentation.
Fixes #9902 .
(and several FIXMEs, both known and yet-undocumented.)
2024-06-03 14:20:49 -04:00
Sam Lantinga
b0e93e4e63
Prevent crashes if freed objects are passed to SDL API functions
...
Instead of using the magic tag in the object, we'll actually keep track of valid objects
Fixes https://github.com/libsdl-org/SDL/issues/9869
Fixes https://github.com/libsdl-org/SDL/issues/9235
2024-06-03 08:54:46 -07:00
Sam Lantinga
e3beaa1972
Added support for the Razer Kitsune in PS5 mode
2024-05-31 15:18:15 -07:00
Sam Lantinga
a3ab46b707
Fixed mapping the touchpad for the Qanba PS5 controllers like the Qanba Drone 2 Arcade Joystick
...
These controllers are autodetected by the HIDAPI driver, so SDL_GetGamepadTypeFromGUID() should be used to pull the gamepad type out of the GUID.
2024-05-23 16:48:04 -07:00
Sam Lantinga
98a9ca5e32
Added Linux bindings for the Qanba Drone 2 Arcade Joystick
2024-05-23 15:34:38 -07:00
Ryan C. Gordon
0ec716819e
thread: Reworked SDL_CreateThread to be consistent across platforms.
...
Also documented missing and weird bits, rename typedefs to fit SDL standards.
2024-05-22 11:39:43 -04:00
Sam Lantinga
f9260a8470
Added an entry for the 8Bitdo Ultimate Wired Controller
2024-05-20 16:44:45 -07:00
Sam Lantinga
c24f860c4d
Fixed warning C4244: '=': conversion from 'int' to 'Uint8', possible loss of data
2024-05-16 11:28:02 -07:00