Sam Lantinga
4c3f9159e9
Allow building with older versions of GameInput.h
2024-08-07 17:57:33 -07:00
Sam Lantinga
889a788913
Fixed build warnings
2024-08-07 17:57:33 -07:00
Sam Lantinga
ae076bdc2a
Take the joystick lock when processing GameInput device callbacks
2024-08-07 17:57:33 -07:00
Sam Lantinga
28ef6bcc38
Use the correct timestamp from the GameInput controller reading
2024-08-07 17:57:33 -07:00
Sam Lantinga
5cab979f21
Added support for the Guide and Share buttons on GameInput controllers
2024-08-07 17:57:33 -07:00
Sam Lantinga
3ec19b2a89
Removed duplicate call to SDL_AssertJoysticksLocked()
2024-08-07 17:57:33 -07:00
Sam Lantinga
a7e425497b
Added a FIXME to lock the joystick list and update the GameInput joystick support
2024-08-07 12:19:09 -07:00
Sam Lantinga
627cb8acd0
SDL_EventFilter functions now return SDL_bool
2024-08-06 07:59:45 -07:00
Sam Lantinga
0da346f129
Added SDL_HINT_HIDAPI_LIBUSB, SDL_HINT_HIDAPI_LIBUSB_WHITELIST, and SDL_HINT_HIDAPI_UDEV
2024-08-05 08:54:10 -07:00
Sam Lantinga
0a924b185d
Fixed crash with joystick rumble after disconnection
...
This prevents continuing a rumble after the first one fails, and fixes a long standing crash issue if rumble is started immediately before the controller is disconnected.
Thanks to @AntTheAlchemist for the key bug report that showed what was happening here.
Fixes https://github.com/libsdl-org/SDL/issues/10422
2024-07-29 13:35:58 -07:00
Sam Lantinga
67b973b5fa
Fixed whitespace
2024-07-29 12:52:11 -07:00
Sam Lantinga
e35a559442
Revert "Add two more mapping for Nvidia controller (2019)"
...
This reverts commit 5d6333d6ea , which was accidentally committed during testing.
2024-07-28 11:07:59 -07:00
Arias800
5d6333d6ea
Add two more mapping for Nvidia controller (2019)
...
0500b30c550900001472000001000000 is the ID when the controller is connected via Bluetooth and 0300b30c550900001472000011010000 is for USB mode.
Tested by setting "SDL_GAMECONTROLLERCONFIG" in some games.
2024-07-28 08:06:01 -07:00
Sam Lantinga
91d2dbdc9d
Fixed memory leak if joysticks were initialized but gamepads were not
...
If a joystick is connected, SDL_IsGamepad() will be called on it, which adds it to the cache, which then needs to be cleaned up when joysticks quit.
2024-07-27 13:44:45 -07:00
Sam Lantinga
4f55271571
Removed temporary memory from the API
...
It was intended to make the API easier to use, but various automatic garbage collection all had flaws, and making the application periodically clean up temporary memory added cognitive load to using the API, and in many cases was it was difficult to restructure threaded code to handle this.
So, we're largely going back to the original system, where the API returns allocated results and you free them.
In addition, to solve the problems we originally wanted temporary memory for:
* Short strings with a finite count, like device names, get stored in a per-thread string pool.
* Events continue to use temporary memory internally, which is cleaned up on the next event processing cycle.
2024-07-26 20:59:14 -07:00
Sam Lantinga
a7c0192017
Renamed SDL_PostSemaphore() to SDL_SignalSemphore()
2024-07-24 13:37:40 -07:00
Ryan C. Gordon
06c0ed68b1
mac: Rename Objective-C classes that conflict with SDL2.
...
Fixes #6709 .
2024-07-24 01:35:04 -04:00
Sam Lantinga
ef21e31a9a
SDL_GUIDFromString() renamed SDL_StringToGUID()
2024-07-22 12:39:15 -07:00
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