luzpaz
37e567994d
Fix remaining typos ( #7921 )
...
* Fix remaining typos
Found via `codespell -q 3 -S *.hex,*.pdf,./src/libm,./src/hidapi,./src/stdlib/SDL_malloc.c,./src/video/x11/edid.h -L caf,currenty,datas,einstance,fo,hda,lod,mata,parm,parms,pevent,pevents,pixelx,requestor,ser,statics,te,texturers,thid,uscaled,windowz`
2023-07-03 12:46:47 -07:00
Sam Lantinga
69c7a49990
Fixed build warnings
2023-06-29 22:15:23 -07:00
Sam Lantinga
675fc8c38f
Added Linux mapping for the Logitech Chillstream
...
Fixes https://github.com/libsdl-org/SDL/issues/7829
2023-06-29 16:10:55 -07:00
Sam Lantinga
ba9e924e57
Added additional debug logging for Linux joysticks
2023-06-29 16:09:55 -07:00
Sam Lantinga
baa9c57581
Added support for the Nintendo Online Famicom controllers
2023-06-28 19:15:43 -07:00
Sam Lantinga
9ee1200e6f
Fixed Nintendo Switch Pro controllers that don't have readable user calibration
2023-06-27 07:48:42 -07:00
Narr the Reg
425062c123
hidapi: switch: Handle MCU input reports
2023-06-26 10:01:49 -07:00
Ozkan Sezer
02398a8f11
Allow building against old Linux kernels.
2023-06-26 18:01:50 +03:00
Sam Lantinga
fd062657dd
Fixed build
2023-06-26 07:43:44 -07:00
meyraud705
6cc21af900
Don't keep sensor file open while sensors are disabled
2023-06-26 07:32:40 -07:00
meyraud705
9cfac88054
Improve sensor detection for Linux gamepad
2023-06-26 07:32:40 -07:00
meyraud705
000277060c
Add support for sensor to joystick on Linux (evdev)
2023-06-26 07:32:40 -07:00
Sam Lantinga
87e916dd21
SDL_FindFreePlayerIndex() will always return the next available player index
...
Fixes https://github.com/libsdl-org/SDL/issues/7868
2023-06-24 15:38:38 -07:00
Sam Lantinga
267fdd7daa
Removed Bluetooth connection detection now that we get it from hidapi
2023-06-23 15:50:07 -07:00
Sam Lantinga
44bae1e8a9
Corrected the Victrix FS Pro as a PS4 controller instead of a PS3 controller
2023-06-23 14:27:21 -07:00
Sylvain
6f344f29b8
After using SDL_qsort, mark sort_entries() as SDLCALL
2023-06-23 12:52:05 +02:00
Sylvain
6cde3835f0
Remove some use of C runtime functions (strlen, qsort)
2023-06-23 10:51:15 +02:00
Sam Lantinga
a807b14957
Greatly improved Xbox One controller initialization sequence
2023-06-22 17:15:35 -07:00
Sam Lantinga
8aee6908bb
Make sure we send update complete events for delayed guide buttons
2023-06-21 18:42:25 -07:00
Sam Lantinga
4c9fb3e169
Added the events SDL_EVENT_JOYSTICK_UPDATE_COMPLETE and SDL_EVENT_GAMEPAD_UPDATE_COMPLETE
...
This allows the application to tell when a joystick polling cycle is complete and can process state changes as a single atomic update. It is disabled by default, at least for now.
2023-06-21 13:59:53 -07:00
Sam Lantinga
214d5daa3c
Removed 100 ms hitch when querying third party Nintendo Switch controllers that don't respond to request for info
...
Also take advantage of the fact that we know whether the device is connected over Bluetooth now.
2023-06-21 12:14:50 -07:00
Sam Lantinga
3694dabe7c
Use default sensor calibration if we can't read it from the Nintendo Switch controller
...
Fixes https://github.com/libsdl-org/SDL/issues/7830
2023-06-21 10:28:45 -07:00
Sam Lantinga
5f3213eb0e
Added support for gamepad sensor fusion with the Razer Kishi
2023-06-20 08:41:15 -07:00
Sam Lantinga
1a9c04e9f1
Don't try to update the gamepad fusion sensors manually, instead rely on the normal update flow
2023-06-19 19:41:20 -07:00
Sam Lantinga
20ea35138f
Use a separate sensor watching function for gamepad events to avoid reliance on system sensor events and prevent a potential deadlock
2023-06-19 16:17:34 -07:00
Sam Lantinga
f168f9c813
Added support for the GameSir G4 Pro
...
We can't read device info or IMU calibration from this controller, and it has no gyro or accelerometer, but is otherwise perfectly functional.
2023-06-17 12:42:55 -07:00
Sam Lantinga
9fe384b696
Fixed display orientation function names for SDL 3.0 convention
2023-06-17 09:28:27 -07:00
Sam Lantinga
d91e96e7f5
Use SDL_HINT_GAMECONTROLLER_SENSOR_FUSION as a list of controllers to enable sensor fusion
...
There are too many wraparound style controllers out there to enumerate them all, so instead make this a user option in applications that support it.
2023-06-17 08:59:52 -07:00
Sam Lantinga
610c31c7b7
Generalized the sensor coordinate transform for wraparound gamepads
2023-06-17 08:28:37 -07:00
Sam Lantinga
9eb5eab0ad
Use the correct orientation transformation based on whether the device is naturally landscape or portrait
2023-06-17 08:04:34 -07:00
Sam Lantinga
8de6ce7e92
Rotate the sensor axes to match gamepad orientation when using the device sensors for game controllers
2023-06-16 17:48:34 -07:00
Sam Lantinga
a9c86e518a
Added the Razer Edge controller to the list of wraparound controllers
2023-06-16 17:48:18 -07:00
Sam Lantinga
c207cd3f56
Added the Razer Junglecat to the wraparound controller list
2023-06-16 16:04:12 -07:00
Sam Lantinga
42e4639a5e
For gamepads that don't have their own sensors, try to use the system sensors.
...
This allows using the gyro and accelerometer in handheld devices in conjunction with built-in or wraparound controllers.
2023-06-16 14:44:59 -07:00
Simon McVittie
0d5aa70e62
linux: Pass evdev properties when guessing device type
...
In newer kernels, devices that can be positively identified as a
particular device type (for example accelerometers) get a property
bit set. Plumb this information through into the function, but don't
use it for anything just yet.
Signed-off-by: Simon McVittie <smcv@collabora.com >
2023-06-16 08:54:41 -07:00
Sam Lantinga
73927b0948
Removed unused function
2023-06-14 15:16:21 -07:00
Sam Lantinga
0c16f4faf0
Fixed third-party Nintendo Switch Pro controllers shutting down when we try to set the home LED.
...
This fixes the PDP Afterglow Wireless Deluxe Controller.
2023-06-14 10:15:06 -07:00
Sam Lantinga
23e007d3b7
Fixed third party Nintendo Switch Pro Controller resetting when being sent an unsupported command to set the Home LED
...
Tested with the PowerA Fusion Pro Wireless Controller in Bluetooth mode
2023-06-14 00:02:32 -07:00
Sam Lantinga
8c95bd814b
Allow switching licensed Nintendo Switch Pro controllers into gyro input mode
2023-06-13 22:40:51 -07:00
Sam Lantinga
cdfc0c5a33
Added support for the PowerA Fusion Pro Wireless Controller in Bluetooth mode
...
This controller shows up with a VID/PID of 0, but has full functionality over Bluetooth
2023-06-13 22:20:58 -07:00
Sam Lantinga
0f4b15e16b
Removed more Linux Xbox mappings in favor of the automatic mapping
...
This fixes the Xbox Series X share button on Linux 5.x kernels.
2023-06-13 16:53:10 -07:00
Sam Lantinga
883b0f4071
Cleanup for previous change, fixing typos, etc.
2023-06-13 16:49:33 -07:00
Sam Lantinga
9567989eb3
Use the automatic mapping instead of a hardcoded one for Xbox controllers on Linux
...
This is much more robust and able to dynamically create a mapping for Xbox One S, Xbox Series X, and Xbox Elite 2 controllers.
2023-06-13 16:41:52 -07:00
Sam Lantinga
db1d4d3d76
Added automatic mapping support for Xbox controllers on the 6.x Linux kernels
...
This automatically adds support for the share button and paddles when present.
2023-06-13 16:40:30 -07:00
Sam Lantinga
b0677f476f
Added automatic mapping for Xbox Elite paddles using the xpadneo driver
...
We can't actually tell yet whether a controller has paddles, so this code isn't effective, but I'll file an upstream issue and see if we can get that resolved.
2023-06-13 10:06:36 -07:00
Sam Lantinga
071d1e29dd
Fixed joystick vendor detection in Linux automatic gamepad mapping
2023-06-13 10:05:19 -07:00
Simon McVittie
cf1dc66e2c
linux: Improve gamepad mapping heuristic to accept Android conventions
...
This heuristic for gamepads without a more specific mapping already
tried two incompatible conventions for handling triggers: the Linux
Gamepad Specification uses hat switch 2 for the triggers (for whatever
reason), but the de facto standard set by the drivers for older Xbox
and Playstation controllers represents each trigger as the Z-axis of
the nearest analog stick.
Android documentation encourages Bluetooth gamepad manufacturers to use
a third incompatible convention where the left and right triggers are
represented as the brake and gas pedals of a driving simulator
controller. The Android convention also changes the representation of
the right stick: instead of using X and Y rotation as a second pair
of axes, Android uses Z position as a second horizontal axis, and
Z rotation as a second vertical axis.
Try to cope gracefully with all of these. This will hopefully resolve
the issue described in #5406 (when using unpatched kernels).
Signed-off-by: Simon McVittie <smcv@collabora.com >
2023-06-13 05:38:26 -07:00
Simon McVittie
c4d49fadd4
linux: Reduce magic numbers when mapping gamepad axes
...
The bitfield `mapped` has two different sets of meanings, depending
whether we're setting up the triggers or the d-pad. Represent them
as symbolic constants rather than opaque integers.
Signed-off-by: Simon McVittie <smcv@collabora.com >
2023-06-13 05:38:26 -07:00
Sam Lantinga
d95dbe78bb
Fixed n3ds build
2023-06-12 15:39:57 -07:00
Sam Lantinga
cdc40ee054
Reduce the chance of destroying the joystick mutex while it's in use
...
Fixes https://github.com/libsdl-org/SDL/issues/7811
2023-06-12 15:27:45 -07:00