Sam Lantinga
6204ae5002
Restart the IMU if the controller stops sending gyro/accel data
2022-08-08 20:10:12 -07:00
Sam Lantinga
d58bec72a0
Fixed Joy-Con gyro axes in mini-gamepad mode
2022-08-08 17:19:33 -07:00
Shawn Hoffman
5aa438e80a
WGI: fix interop with applications that have their own WGI code
...
QI for Added/Removed events need to handle IAgileObject
2022-08-08 15:53:57 -07:00
Sam Lantinga
ada55c690d
Fixed Joy-Con type detection for the Nintendo Joy-Con Charging Grip
2022-08-08 15:38:19 -07:00
Sam Lantinga
47ebf0087a
Fixed shadow variable warning
2022-08-08 08:36:17 -07:00
Francisco Javier Trujillo Mata
0a307628e6
Fix wrong mapping in some ps2 controller keys
2022-08-08 08:32:11 -07:00
Sam Lantinga
8f05b4f833
Fixed iOS/tvOS build
2022-08-08 08:26:21 -07:00
Sam Lantinga
878259722f
Added SDL_GameControllerType enumeration for Nintendo Switch Joy-Con controllers
2022-08-08 08:22:20 -07:00
Sam Lantinga
4f19421ed8
Fixed build
2022-08-07 20:17:40 -07:00
Sam Lantinga
29265d0738
Use SDL_GetStringBoolean() to parse the hint value
2022-08-07 18:49:30 -07:00
Sam Lantinga
198d62d813
joystick: remove unused Xbox Controller Keyboard VID/PID.
...
0x045e, 0x0b02 - is actually virtual keyboard that is generated by XboxGip drivers for Xbox One Controllers.
Closes https://github.com/libsdl-org/SDL/pull/5121
2022-08-06 23:53:18 -07:00
Sam Lantinga
52bf5b1de9
Added the hint SDL_HINT_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED to control whether the player LED is set on Nintendo Switch controllers
2022-08-06 10:34:19 -07:00
Sam Lantinga
f810dede16
Fixed comment so script processing works correctly
2022-08-06 09:50:13 -07:00
Francisco Javier Trujillo Mata
3da131c1c6
Check if port if closed and open it again
2022-08-05 17:44:59 -07:00
Sam Lantinga
d6a8b43cf7
Added support for the HORIPAD FPS for Nintendo Switch
2022-08-05 10:37:38 -07:00
Sam Lantinga
4a9ceb7be9
The HORIPAD S uses the Xbox 360 protocol on all platforms and shows up as multiple styles of controller, depending on what model you have.
2022-08-04 11:33:36 -07:00
Sam Lantinga
28c01955bc
Fixed button mapping for the HORIPAD S
...
This controller actually comes in at least two flavors: a GameCube controller and an arcade pad, neither of which should have the face buttons remapped.
2022-08-04 10:46:37 -07:00
Sam Lantinga
40b7143180
Fixed button mapping for the HORIPAD S controller
...
This controller looks like a GameCube controller, is actually a Nintendo Switch controller, and shows up as an XInput device on Windows with the buttons already in the correct location.
2022-08-04 10:26:10 -07:00
Sam Lantinga
43b90484c9
Retry a little longer when writing to the Nintendo Joy-Con Charging Grip
2022-08-04 00:40:38 -07:00
Sam Lantinga
dfd2c574d7
Removed unused variable
2022-08-03 22:27:43 -07:00
Sam Lantinga
a2b4f4406f
The Nintendo Wii Remote Pro Controller respects the SDL_GAMECONTROLLER_USE_BUTTON_LABELS hint
2022-08-03 22:27:42 -07:00
Sam Lantinga
c84dea0943
Fixed detecting the controller type of controllers over USB
2022-08-03 22:12:21 -07:00
Sam Lantinga
ba297f12cd
Use the Nintendo controller type to determine whether to always use button labels
2022-08-03 21:46:01 -07:00
Sam Lantinga
946f4777f6
Don't set Bluetooth controllers to wired power level
2022-08-03 21:33:38 -07:00
Sam Lantinga
57c3b2c950
Don't rely on the device VID/PID to get the Nintendo controller type
...
The Nintendo Online Sega Genesis controller reports the SNES VID/PID over Bluetooth. This is a more robust way of handling future controllers as well, so let's go with this instead.
Also use full reports over Bluetooth, and don't report gyro for Nintendo Online classic controllers.
2022-08-03 21:31:12 -07:00
Sam Lantinga
b6aadb16b9
Added k_eSwitchDeviceInfoControllerType_N64 to ESwitchDeviceInfoControllerType
2022-08-03 20:38:33 -07:00
Sam Lantinga
bdfb32de3c
Added some additional Nintendo controller types to ESwitchDeviceInfoControllerType
2022-08-03 20:30:58 -07:00
Sam Lantinga
ea7fbf7947
Update in-flight SDL_CONTROLLERDEVICEADDED messages when a device is removed
...
This fixes the application trying to open the wrong device index when a device is removed and another has just been added
2022-08-03 19:39:37 -07:00
Sam Lantinga
5d50fa52df
Fixed timeout opening the Nintendo Joy-Con Charging Grip
...
Sometimes opening the right Joy-Con takes a little longer for some reason
2022-08-03 19:39:36 -07:00
Sam Lantinga
29cdb2c9c9
Added support for the Nintendo Switch Joy-Con Charging Grip
2022-08-03 18:01:10 -07:00
Sam Lantinga
a8120104ad
The Nintendo Online classic controllers and Joy-Cons shouldn't show up as Switch Pro controllers
2022-08-03 13:53:49 -07:00
Sam Lantinga
6e1ee1d4a5
sort the controller names
2022-08-03 13:51:25 -07:00
Sam Lantinga
8ab9dc8b2b
Fixed crash if Joy-Cons are disabled while a combined Joy-Cons controller is open
2022-08-03 13:18:00 -07:00
Sam Lantinga
bcdef4aaf9
Added separate hints for Nintendo Online classic controllers and Joy-Cons
...
This allows them to be enabled/disabled separately from Switch Pro HIDAPI support
2022-08-03 13:07:47 -07:00
Mathieu Eyraud
59a104b803
Do not pass NULL to memcpy
...
ReadJoyConControllerType calls WriteSubcommandSync with pbuf=NULL
2022-08-02 06:38:51 -07:00
Mathieu Eyraud
42b2320756
Fix memory leak of children for combined JoyCon
2022-08-02 06:33:18 -07:00
Sam Lantinga
12aa4d5653
Added header needed for SDL_Delay()
2022-08-01 11:11:25 -07:00
Sam Lantinga
aeb275149a
Poll DirectInput devices to get their initial state
...
Fixes https://github.com/libsdl-org/SDL/issues/3816
2022-08-01 10:39:56 -07:00
Sam Lantinga
13e0c40ec2
Added mapping for the 8BitDo Pro 2 controller in DirectInput mode over Bluetooth on Linux
2022-07-29 17:28:36 -07:00
Sam Lantinga
62c831661c
Added mapping for the 8BitDo Pro 2 controller in DirectInput mode
2022-07-29 17:14:55 -07:00
Sam Lantinga
41c363f7d6
Note that the PDP Versus Fighting Pad is an arcade fighting pad
2022-07-29 16:29:25 -07:00
Sam Lantinga
f3c1194c0f
Removed obsolete comment
2022-07-28 21:50:41 -07:00
Sam Lantinga
aee179e46f
Removed debug output
2022-07-28 21:50:20 -07:00
Sam Lantinga
d8fd78736b
Added entry for the Nintendo Switch Joy-Con controller pair
2022-07-28 21:44:23 -07:00
Sam Lantinga
875b737c64
Added support for the Nintendo Online NES Controllers to the HIDAPI driver
2022-07-28 21:40:01 -07:00
Sam Lantinga
ab967475c6
Greatly improved Nintendo Joy-Con support using the HIDAPI driver
...
* Added support for mini-gamepad mode for Joy-Con controllers, matching the mapping for hid-nintendo on Linux and iOS 16
* Added the ability to merge left and right Joy-Con controllers into a single Pro-style controller
* Added the hint SDL_HINT_JOYSTICK_HIDAPI_SWITCH_COMBINE_JOY_CONS to control this merging functionality
* Removed the hint SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS
2022-07-28 19:38:38 -07:00
Sam Lantinga
dfed862a66
Fixed variable shadow warning
2022-07-28 19:35:46 -07:00
Sam Lantinga
2fa2f9ff77
Greatly improved Nintendo Joy-Con support using the HIDAPI driver
...
* Added support for mini-gamepad mode for Joy-Con controllers, matching the mapping for hid-nintendo on Linux and iOS 16
* Added the ability to merge left and right Joy-Con controllers into a single Pro-style controller
* Added the hint SDL_HINT_JOYSTICK_HIDAPI_SWITCH_COMBINE_JOY_CONS to control this merging functionality
* Removed the hint SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS
2022-07-28 19:22:27 -07:00
Sam Lantinga
def60ce6fe
Fixed the name of the HIDAPI Joy-Con controller for consistency with other drivers
2022-07-27 19:20:42 -07:00
Sam Lantinga
0f1be9401f
Updated mapping for Joy-Con controllers using hid-nintendo
...
This matches the mapping on iOS 16 and will match the HIDAPI
implementation.
2022-07-27 17:32:51 -07:00
Sam Lantinga
756978a236
Left and right single Joy-Con controllers are mapped as individual mini controllers
2022-07-27 16:17:32 -07:00
Sam Lantinga
4990bd0517
Added debug code to show available inputs on iOS/tvOS controllers
2022-07-27 16:17:32 -07:00
Sam Lantinga
a169259f62
Actually we don't need to unlock to send k_eSwitchProprietaryCommandIDs_ForceUSB since we don't wait for reply
2022-07-27 09:05:02 -07:00
Sam Lantinga
c51464d9d8
Put the Nintendo Switch Pro controller back into enhanced mode as needed
...
Fixes https://github.com/libsdl-org/SDL/issues/3450
2022-07-27 09:00:39 -07:00
Sam Lantinga
a423848ea0
Allow floating point values for SDL_HINT_JOYSTICK_HIDAPI_SWITCH_HOME_LED
...
This allows setting the brightness of the home LED on Nintendo Switch Pro controllers, in the range 0.0 - 1.0.
This can be updated at runtime by setting the hint dynamically.
Fixes https://github.com/libsdl-org/SDL/issues/3787
2022-07-25 11:26:18 -07:00
diddily
0ec5bb4e6d
Add missing controller events to SDL_GameControllerEventState()
...
Events to handle controller touchpads and sensors were added to the library but not added in `SDL_GameControllerEventState()`. This change adds the missing events.
2022-07-25 08:55:17 -07:00
Cameron Gutman
3ab1e303ec
joystick: Refactor and fix a few bugs in Shield HIDAPI driver
...
- CMD_CHARGE_STATE was checking the seqnum instead of the payload
- Off-by-one error in size validation for command payload
- Unused payload space was left uninitialized in output report
2022-07-24 15:36:30 -05:00
Sam Lantinga
f9beef760a
Added support for the Nintendo Switch Joy-Con Controllers on iOS and tvOS 16
2022-07-22 18:58:29 -07:00
Sam Lantinga
aad7ef6eaf
Added support for the Nintendo Switch Pro Controller on iOS and tvOS 16
2022-07-22 10:58:34 -07:00
Sam Lantinga
be3a945a8b
Added support for the 8BitDo Ultimate Wired Controller for Xbox
2022-07-20 11:05:55 -07:00
Sam Lantinga
cef1514b01
Fixed some Xcode warnings
2022-07-17 09:07:04 -07:00
Sam Lantinga
883409ea07
Added support for the misc1 button on the Nintendo Switch Pro Controller
...
when using hid_nintendo kernel driver
2022-07-13 11:26:42 -07:00
SuperSamus
9a4f200d44
gamecontrollerdb: Linux, add mappings for hid-nintendo driver and more
...
Taken from https://github.com/gabomdq/SDL_GameControllerDB/blob/master/gamecontrollerdb.txt
2022-07-13 11:23:15 -07:00
Sam Lantinga
06c7d22653
Added mappings for the HORI Fighting Stick mini 4 on Linux and macOS
2022-07-12 18:53:53 -07:00
Sam Lantinga
e24b971a34
Added support for the NVIDIA Shield controller guide button
2022-07-12 17:53:03 -07:00
Cameron Gutman
b321eae51a
joystick: Fix spurious battery empty events when opening a Shield controller
2022-07-11 19:43:25 -05:00
Cameron Gutman
a0d8848baa
joystick: Plumb SDL_JoystickSendEffect() for the Shield HIDAPI driver
...
The effect data format consists of one command byte followed by zero or more
payload bytes.
2022-07-11 19:38:26 -05:00
Ozkan Sezer
4fa2653394
SDL_GetJoystickGUIDInfo: byte-swap vendor, product and version values.
...
Reference issue: https://github.com/libsdl-org/SDL/issues/5907
2022-07-12 00:55:00 +03:00
Cameron Gutman
6e712d2440
joystick: Add HIDAPI driver for NVIDIA SHIELD 2017 controller
...
Basic input already works using the OS HID driver, but this enables
force feedback and battery state reporting.
2022-07-10 10:53:26 -07:00
Cameron Gutman
3242265ff1
joystick: Fix endianness issues in Xbox HIDAPI drivers
2022-07-10 10:49:38 -07:00
chalonverse
f317d619cc
Xbox GDKX support ( #5869 )
...
* Xbox GDK support (14 squashed commits)
* Added basic keyboard testing
* Update readme
* Code review fixes
* Fixed issue where controller add/removal wasn't working (since the device notification events don't work on Xbox, have to use the joystick thread to poll XInput)
2022-07-01 13:59:14 -07:00
Cameron Gutman
3e114872e8
joystick: Fix redetection of HIDAPI joysticks after reinitializing
...
The HIDAPI joystick driver doesn't properly reset the change counter
it uses to track if re-enumeration is needed when the joystick
subsystem is quit and then reinitialized.
The first SDL_Init(SDL_INIT_JOYSTICK) will result in the expected
HIDAPI joysticks appearing, but subsequent calls will result in no
joysticks being enumerated until another HIDAPI joystick is added
or removed from the system.
2022-06-30 20:43:14 -07:00
Jade Macho
6a2e6c82a0
Add SDL_HINT_DIRECTINPUT_ENABLED (on by default)
2022-06-28 15:59:05 -07:00
Sourcery AI
cddf095a16
'Refactored by Sourcery'
2022-06-27 17:55:47 -07:00
Pierre Wendling
6c536afdb7
Fix C89 declaration for macOS modules.
...
Since Clang 14, `-Wdeclaration-after-statement` is enforced on every
standard.
2022-06-27 15:19:40 -07:00
chalonverse
3b191580c3
Windows GDK Support ( #5830 )
...
* Added GDK
* Simplfied checks in SDL_config_wingdk.h
* Added testgdk sample
* Added GDK readme
* Fixed error in merge of SDL_windows.h
* Additional GDK fixes
* OpenWatcom should not export _SDL_GDKGetTaskQueue
* Formatting fixes
* Moved initialization code into SDL_GDKRunApp
2022-06-27 10:19:39 -07:00
Francisco Javier Trujillo Mata
7fd46ec581
Initial PS2_Joystick implementation
2022-06-27 00:32:43 -07:00
Francisco Javier Trujillo Mata
2b41f497db
Improve Joystick removing semaphores
2022-06-22 15:08:41 +02:00
Francisco Javier Trujillo Mata
c3a5e4aa7b
Adding GetGamepadMapping to Vita Joystick driver
2022-06-22 02:23:00 +03:00
Sam Lantinga
eb7e29a8b2
Fixed crash when the joystick product name isn't available
2022-06-17 17:43:14 -07:00
Sam Lantinga
b0e827fb65
Enable improved rumble emulation on DualSense(tm) Wireless Controllers with firmware version 2.24 and newer
2022-06-17 07:55:53 -07:00
Sam Lantinga
16f55fbdb4
Separate the controller protocol from the controller style
...
This allows us to handle controllers that use the Xbox protocol but look like Nintendo Switch or Playstation controllers, like the Qanba Dragon Arcade Stick in PC mode
2022-06-15 20:46:01 -07:00
Sam Lantinga
017e237005
Removed the Qanba Obsidian Arcade Joystick from the unknown controller list
2022-06-15 17:32:46 -07:00
Sam Lantinga
a9cf313eef
Added the Qanba Obsidian and Dragon Arcade Sticks to the arcade stick list
2022-06-15 17:28:29 -07:00
Sam Lantinga
bfe81a0c05
Added the name of the Qanba Obsidian Arcade Joystick in PC mode
2022-06-15 17:28:20 -07:00
Sam Lantinga
a6a2cdbd7c
Added the name of the Qanba Dragon Arcade Joystick in PC mode
2022-06-15 17:28:18 -07:00
Sam Lantinga
a5d338bd2d
Added support for the Qanba Dragon Arcade Joystick (PS3) on macOS
2022-06-15 14:11:00 -07:00
Sam Lantinga
7d7c48302b
Use python3 for sort_controllers.py
2022-06-15 14:10:22 -07:00
Sam Lantinga
72fea0ed6f
Added support for the Qanba Dragon Arcade Joystick
2022-06-15 13:58:28 -07:00
Ozkan Sezer
714502d373
minor windows warning fixes.
2022-06-13 22:15:56 +03:00
Sam Lantinga
68544be44b
Added support for the Nintendo Online controllers
2022-06-10 11:31:59 -07:00
Sam Lantinga
9202df0472
Implemented SDL_GameControllerGetFirmwareVersion() for HIDAPI PS5 controllers
2022-06-09 18:11:34 -07:00
Sam Lantinga
c7f4103807
Special case for k_eControllerType_XInputSwitchController in the raw input path
2022-06-09 13:47:29 -07:00
Sam Lantinga
e6cb082232
Fixed the default mapping on Windows for the HORI Fighting Commander
2022-06-09 13:20:38 -07:00
Sam Lantinga
d58d637ac6
Added support for the Qanba Obsidian Arcade Joystick on Linux
2022-06-08 11:07:36 -07:00
Christoph Reichenbach
3a20274ddf
Refactoring: move GUID operations out of Joystick
...
- SDL_JoystickGUID -> SDL_GUID (though we retain a type alias)
- Operations for GUID <-> String ops are now in
src/SDL_guid.c and include/SDL_guid.h
- The corresponding Joystick operations delegate to SDL_guid.c
- Added test/testguid.c
2022-06-04 17:22:13 -07:00
Sam Lantinga
423141bfca
Added a function to get the controller firmware version
2022-06-03 18:50:00 -07:00
Sam Lantinga
17410887d0
Separated controller type data into a C file
2022-06-03 15:03:08 -07:00
Sam Lantinga
7fa46ec40b
The Google Pixel fingerprint sensor also shows up on Linux when running on the phone
2022-05-31 11:11:19 -07:00
Sam Lantinga
d2c4d74dd0
Fixed build with MinGW-64 windows.devices.power.h
...
The MinGW-64 header defines the parameters as ABI::Windows::Foundation::IReference<INT32 > **, but the Windows header defines the parameters as __FIReference_1_int**
2022-05-27 15:49:35 -07:00
Sam Lantinga
bd22ca762e
Revert "Workaround for compiling with MinGW-w64"
...
This reverts commit efdf43aa9b
.
The broken mingw headers aren't in an official release yet, so reporting this upstream.
2022-05-27 15:40:50 -07:00
Sam Lantinga
efdf43aa9b
Workaround for compiling with MinGW-w64
...
Fixes bug https://github.com/libsdl-org/SDL/issues/5589
2022-05-27 15:34:45 -07:00
Sam Lantinga
b28d304b23
Only include controller_type.h in SDL_joystick.c
...
It has a huge array of controllers and we only want it instantiated once
2022-05-24 17:24:54 -07:00
Sam Lantinga
b1cf322971
Fixed HIDAPI PS4 controller being picked up when running under Steam
...
Input with PS4 configuration enabled
2022-05-19 16:50:59 -07:00
Sam Lantinga
47f1cb550d
Fixed picking up the correct mapping for virtual controllers on Android
...
Fixes https://github.com/libsdl-org/SDL/issues/5662
2022-05-18 23:48:15 -07:00
Sam Lantinga
f7b774a7e0
Fixed build error on Linux if HAVE_INOTIFY isn't defined
...
Fixes https://github.com/libsdl-org/SDL/issues/5682
2022-05-18 17:59:17 -07:00
Cameron Cawley
0cca71a846
Use SDLCALL for callbacks in public APIs
2022-05-18 15:01:27 -07:00
Sam Lantinga
1f2a241688
Add new virtual joysticks to the end of the list
...
This guarantees that the device index that's returned is stable, as long as no joystick hotplug events occur.
2022-05-16 09:02:35 -07:00
Sam Lantinga
3c3ccb1d48
Fixed crash if a virtual joystick was disconnected
2022-05-16 08:56:17 -07:00
Sam Lantinga
48b6cd8bc2
Fixed whitespace
2022-05-16 07:23:30 -07:00
Sam Lantinga
f0bc5c9cbf
Added effects support for virtual controllers
2022-05-16 07:21:28 -07:00
Sam Lantinga
b3a18706ee
Removed unused variables
2022-05-16 06:37:38 -07:00
Sam Lantinga
7e005bd843
Fixed mapping the paddle buttons with the virtual controller
2022-05-16 06:22:18 -07:00
Sam Lantinga
bfac54b59c
Added the ability to specify which buttons and axes are present for virtual controllers
2022-05-15 20:34:44 -07:00
Sam Lantinga
94eeb587c1
First pass at extending virtual controller functionality
...
Added the ability to specify a name and the product VID/PID for a virtual controller
Also added a test case to testgamecontroller, if you pass --virtual as a parameter
2022-05-15 20:01:12 -07:00
Sam Lantinga
7ad15c5b8f
Added game controller support for virtual joysticks
...
Fixes https://github.com/libsdl-org/SDL/issues/5662
2022-05-15 09:35:52 -07:00
Sam Lantinga
a3c1ca1fa1
Added support for the Backbone One guide button
...
The guide button is activated on a long press (> 400ms)
2022-05-06 09:07:36 -07:00
Ozkan Sezer
3f813cf1ef
SDL_rawinputjoystick.c: fixed -Werror=declaration-after-statement
2022-05-04 10:05:56 +03:00
atfrase
db9e14e504
disabled linux joystick debugging outputs and reverted unnecessary comment edit
2022-05-03 10:44:09 -07:00
atfrase
3b53555bcf
copied default Steam Controller mapping for wired and wireless-dongle USB pids
2022-05-03 10:44:09 -07:00
atfrase
13b1bf4f21
added default gamepad mapping for Steam Controller with new GUID (possibly caused by the firmware update to enable BLE?)
2022-05-03 10:44:09 -07:00
atfrase
f7a19f9ea8
relaxed the digital hat deadzone slightly, and fixed typo in DEBUG_GAMEPAD_MAPPING define
2022-05-03 10:44:09 -07:00
atfrase
3696e23d09
added hints SDL_HINT_LINUX_DIGITAL_HATS and SDL_HINT_LINUX_HAT_DEADZONES to control the new Linux hat handling; added define DEBUG_GAMEPAD_MAPPINGS to log messages when generating default gamepad mapings for Linux joysticks
2022-05-03 10:44:09 -07:00
atfrase
0b8e796e2c
added hueristic to differentiate digital vs analog 'hat' input axes and expose the latter as regular axes; added automatic deadzones to hat outputs, in case analog axes are still mapped to digital hats; updated automatic gamepad control mapping to more completely follow the spec
2022-05-03 10:44:09 -07:00
Daniel Brookman
d1a3981bf8
Fix crash when reading background events for MFi controllers on macOS
...
Enabling GCController.shouldMonitorBackgroundEvents to read background events
for MFi controllers before receiving the first GCControllerDidConnectNotification
is apparently a no-go on macOS (12.3.1 for me), and would crash on attempt.
Apple's documentation is... not great, and doesn't point this out.
This waits for IOS_AddMFIJoystickDevice() to get called down the chain from GCControllerDidConnectNotification, and enables GCController.shouldMonitorBackgroundEvents
if it hadn't been already.
On iOS and tvOS, GCController.shouldMonitorBackgroundEvents is ignored, so
there's no need to check their versions.
2022-05-02 15:31:28 -07:00
Jan200101
bb0b6dd42e
Fixed using WGI without XInput
2022-05-02 11:33:55 -07:00
Carl Friess
2ccb0dfd16
Check for macOS 10.16 to support apps built with older macOS SDKs
2022-04-29 00:24:23 -07:00
Sam Lantinga
e551384a99
Added functions to get the platform dependent name for a joystick or game controller
2022-04-26 14:54:14 -07:00
Jibb Smart
d7c07d6b09
Read motion sensor scale from Switch controllers ( #5555 )
...
* Read IMU scale data from Switch controllers. Up until now, SDL has used hard-coded scaling which isn't correct with some supported controllers.
* Moved declarations to beginning of code blocks to better fit with SDL style requirements
2022-04-26 09:57:17 -07:00
Dimitriy Ryazantcev
c39df2fb0c
joystick: get HID top-level collection preparsed data directly from RawInput API.
2022-04-26 09:48:35 -07:00
Mathieu Eyraud
0b2a55ea7d
Fix typo
2022-04-25 15:46:17 -07:00
meyraud705
3dcfe86082
Add joystick battery event
2022-04-25 15:46:17 -07:00
meyraud705
0964c84d77
Always use SDL_PrivateJoystickBatteryLevel to update battery level
...
But do not use it for initialisation.
2022-04-25 15:46:17 -07:00
Sam Lantinga
8986efd643
Added support for the Backbone One controller on iOS
2022-04-22 14:21:46 -07:00
Sam Lantinga
2ca0837888
SDL: sometimes the PS5 controller doesn't report having to power even when connected over USB. Possibly related to being completely charged? Either way we already know that it's USB or BT so let's use the driver's knowledge instead.
2022-04-22 14:21:41 -07:00
Sam Lantinga
04bf7c9434
Fixed build
2022-04-22 09:36:39 -07:00
Sam Lantinga
d9b5805ba5
Return a correlation error when trigger rumble is attempted without correlation
2022-04-22 09:13:40 -07:00
Cameron Gutman
145824f6ab
WGI: Only call RoUninitialize() if RoInitialize() succeeded
2022-04-21 08:47:22 -07:00
Cameron Gutman
00b2e10a7a
WGI: Keep a reference to the MTA to avoid crashing on COM teardown
...
Fixes #5552
Fixes #5270
2022-04-21 08:47:22 -07:00
Sam Lantinga
57927a2458
Don't call scandir() inside of scandir()
...
This works around a crash in address sanitizer
2022-04-18 12:57:28 -07:00
Jan Beich
7c140429a8
Enable evdev-based gamecontrollerdb on FreeBSD
2022-04-18 09:57:49 -07:00
Sam Lantinga
e7b01ee745
Added controller mapping for the Thrustmaster Dual Analog 3.2 on Linux
2022-04-18 09:55:52 -07:00
Mathieu Eyraud
99ae6395b1
Initialise scandir argument
...
'scandir' does not initialise 'entries' on error
2022-04-12 11:14:07 -04:00
Sam Lantinga
7ea1b69dd4
Sort controllers by the js* index on Linux
...
Also fixed the initial scan to directly scan devices instead of using
udev so they can be sorted, as intended.
Fixes https://github.com/libsdl-org/SDL/issues/4688
2022-04-05 21:02:52 -07:00
Sam Lantinga
eb660e862c
Cache the fact that a device didn't look like a joystick
...
Fixes https://github.com/libsdl-org/SDL/issues/5211
2022-04-05 19:47:42 -07:00
Ozkan Sezer
312c899f4f
attempt to fix uwp build
2022-04-02 03:32:10 +03:00
Sam Lantinga
8ebef12d31
Use RoInitialize/RoUninitialize for Windows.Gaming.Input
...
Thanks @walbourn!
Fixes https://github.com/libsdl-org/SDL/issues/5270
2022-04-01 14:59:45 -07:00
Cameron Gutman
2c04df8d65
joystick: Fix rumble issues on PS5 HIDAPI controllers
...
We were returning the report size from HIDAPI_DriverPS5_RumbleJoystick() rather
than 0 upon success, causing SDL_JoystickRumble() (and callers) to think that
rumbling failed.
This didn't cause major problems until 1868c5b
, when it started preventing
rumble state from being persisted in the joystick core, even though it was
successfully sent to the hardware.
This led to all sorts of strangeness, including broken rumble duration and
attempts to stop rumble being discarded.
2022-03-30 18:33:38 -05:00
Kimplul
2398c43be2
add some Thrustmaster wheels
2022-03-24 08:33:37 -07:00
Ryan C. Gordon
4fe7b2cbd1
static analysis: Fixed several complaints from codechecker.
...
There are still some pending Objective-C specific issues.
Reference issue #4600 .
2022-03-24 11:00:43 -04:00
Sam Lantinga
006aafabcf
Fixed freeing a constant string (thanks @gnrlwart)
2022-03-22 20:24:17 -07:00
Egor
2302b2d5e5
Add mapping for Logitech Precision Gamepad
2022-03-22 10:04:03 -07:00
Sam Lantinga
1868c5b521
Start rumbling once a raw input controller has been correlated
...
Fixes https://github.com/libsdl-org/SDL/issues/5351
2022-03-17 18:25:50 -07:00
Sam Lantinga
b22ce2b5a8
Workaround for bug in Microsoft WGI support
...
Fixes https://github.com/libsdl-org/SDL/issues/5270
2022-03-17 17:10:40 -07:00
Sam Lantinga
bcb0f1de23
Fixed build when events are disabled
...
Fixes https://github.com/libsdl-org/SDL/issues/5413
2022-03-17 08:52:31 -07:00
Cameron Gutman
677dc1015c
rawinput: Fix double detection of gamepads on some 3rd party X360 wireless receivers
...
The name that the Raw Input joystick driver pulls from the HID stack comes
from USB string descriptors contained on the device. For official wireless
receivers, this always contains "Xbox 360 Wireless Receiver for Windows"
which matches the friendly name that WGI provides.
3rd party Xbox 360 wireless receivers may have different strings in their
USB string descriptors (one uses "XBOX 360 For Windows" instead). This
fails to match WGI's name and causes Raw Input and WGI to both report the
same gamepad.
Since wireless Xbox 360 controllers seem to have a consistent VID/PID
regardless of the adapter enumerating them, we can also match on that to
catch these.
The duplicate case reported to me was:
Controller (XBOX 360 For Windows) - 030000005e040000a102000000007200
Xbox 360 Wireless Receiver for Windows - 030000005e0400000000000000007701
2022-03-09 21:19:53 -08:00
Sam Lantinga
6a787619e6
Allow reading background events for MFi controllers
2022-03-08 18:42:13 -08:00
Sam Lantinga
1b7669374e
Fixed the SDL controller type for USB_PRODUCT_XBOX_ONE_XINPUT_CONTROLLER
2022-03-08 09:58:24 -08:00
Sam Lantinga
af40cb6f00
Added support for the Razer Huntsman Analog keyboard in controller mode
2022-02-23 15:49:10 -08:00
Phillip Stephens
94d43186f2
GameCubeAdapter: Add suppport for all rumble modes
...
This adds support for all 3 of the gamecube controller's rumble modes
Rumble: 1
Stop: 0
StopHard: 2
This is useful for applications that need the full range of support
This also adds a hint to control rumble behavior, defaults 0 to maintain compatibility
2022-02-23 07:03:02 -08:00
Sam Lantinga
9299a3e796
Workaround for crash in CoUninitialize()
2022-02-21 16:24:45 -08:00
Sam Lantinga
18032979d8
Added the hint SDL_HINT_JOYSTICK_ROG_CHAKRAM to control whether ROG Chakram mice show up as joysticks
...
This hint defaults off, but when it is enabled the mice will have a game controller mapping set up for Profile 3 (set in the Armoury Crate software)
2022-02-15 13:07:51 -08:00
Sam Lantinga
f97a29f6e1
Use the real device VID/PID when seeing the Steam virtual controller
2022-02-11 22:10:33 -08:00
Ozkan Sezer
7935cfacc5
SDL_mfijoystick.m: use __typeof instead of typeof.
...
Fixes https://github.com/libsdl-org/SDL/issues/5319
2022-02-08 18:55:10 +03:00
Joshua Ashton
86b7a0642f
Add additional VID/PIDs for Anne Pro II
...
This thing changes its VID/PID on firmware revisions...
2022-02-04 08:45:19 -08:00
Sam Lantinga
dd69c28d6f
Added a mapping for the Xbox Series X controller, firmware version 5.11.3118.0, connected to Linux via Bluetooth
2022-02-03 18:01:34 -08:00
Temdog007
b59e75c259
Handle menu button press from controller
2022-02-02 21:21:44 -08:00
Ryan C. Gordon
43f0271b4e
Revert "fix compiler warnings in SDL_windows_gaming_input.c"
...
This reverts commit ca36cdb185f2f26241598068927821896f36b904.
The older Windows SDK's headers are wrong, and this change would crash if
you hotplug a device.
2022-01-28 20:40:19 -05:00
pionere
60deadba59
re-use return value of SDL_SetError/WIN_SetErrorFromHRESULT/SDL_OutOfMemory
2022-01-28 20:40:19 -05:00
pionere
d7110b4490
fix compiler warnings in SDL_windows_gaming_input.c
2022-01-28 20:40:19 -05:00
Vitaliy Zhmurikov
5b74459255
Update SDL_joystick.c
...
Add Logitech Momo Racing Wheel VID & PID to SDL_IsJoystickProductWheel function
2022-01-27 12:30:41 -08:00
Ivan Epifanov
d7e0c54dde
PSVita: send initial SDL_JOYDEVICEADDED events
2022-01-27 08:47:53 -08:00
Sam Lantinga
67cb548bef
Fixed build error with C90 compilers
2022-01-20 19:31:54 -08:00
Carl Glave
a23b3c767f
Add support for correlating trigger input
2022-01-20 17:43:35 -08:00
Sam Lantinga
b06866ef97
Entirely remove Xbox axis filtering, we don't want this at all.
2022-01-16 09:44:28 -08:00
Sam Lantinga
09aed1020b
Don't send output reports to the Victrix Pro FS v2
...
It'll hang on reboot if it gets output reports, and it doesn't have functionality that requires them, so skip it.
2022-01-16 09:23:58 -08:00
Sam Lantinga
85961b61a1
Disable Xbox axis deadzone handling by default
...
Fixes https://github.com/libsdl-org/SDL/issues/5227
2022-01-16 09:01:56 -08:00
Sam Lantinga
1a50334c46
Fixed Xbox One trigger axis zero point
2022-01-14 15:04:26 -08:00
Ozkan Sezer
b9d98331c5
os2joystick: fix uninitialized use of local var 'maxdevs'
2022-01-09 20:33:32 +03:00
Ozkan Sezer
17da60068d
os2joystick: fix -Wsequence-point issues.
2022-01-09 20:33:32 +03:00
Sam Lantinga
16f5b9e3c3
Filter jitter on Xbox One controllers when using raw input reports
2022-01-05 11:07:52 -08:00
Cameron Gutman
419ae29d90
joystick: Move WGI driver initialization after Windows driver
...
WGI calls SDL_DINPUT_JoystickPresent() so we need to be sure DInput remains
initialized for the lifetime of the WGI driver to avoid a crash or duplicated
joysticks between DInput and WGI.
2022-01-04 15:53:39 -08:00
Cameron Gutman
d73bd0d2f6
dinput: Don't crash in SDL_DINPUT_JoystickPresent if DInput init failed
...
The WGI driver will call this regardless of whether our init succeeded.
2022-01-04 15:53:39 -08:00
Sam Lantinga
120c76c84b
Updated copyright for 2022
2022-01-03 09:40:21 -08:00
Ozkan Sezer
82fc67ae4d
SDL_joystick.c: cast the arguments to nibble() to unsigned char.
2021-12-18 14:01:02 +03:00
Ozkan Sezer
47d3e96b43
SDL_joystick.c: (unsigned char) cast to SDL_tolower() parameters.
2021-12-18 14:01:02 +03:00
Ozkan Sezer
61107494a1
SDL_gamecontroller.c: (unsigned char) cast to SDL_isdigit() parameters.
2021-12-17 07:40:02 +03:00
Sergio Padrino
6f6382f8d0
Fix SDL_GameController API for PSP ( #3 )
...
- Add missing mapping
- Make sure the only window has the keyboard focus (so no `SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS` is needed)
2021-12-07 09:04:05 -08:00
Ozkan Sezer
f266d92286
psp/SDL_sysjoystick.c: fix -Wshadow warnings.
2021-12-07 14:04:32 +03:00
Sam Lantinga
a4c04ad230
Fixed building with iOS SDK prior to 13.0
...
Fixes https://github.com/libsdl-org/SDL/pull/5045
2021-11-30 10:32:39 -08:00
Sam Lantinga
b6bc3a6b0e
Added a mapping for the PS4 touchpad button on Windows
...
Fixes https://github.com/libsdl-org/SDL/issues/5035
2021-11-29 09:00:54 -08:00
Sam Lantinga
dd2f91118e
Fixed warnings with Windows SDK 10.0.19041
...
Fixes https://github.com/libsdl-org/SDL/issues/4998
Also breaks https://github.com/libsdl-org/SDL/issues/4998 for older SDKs, but we're going to ignore them, they're just incorrect.
2021-11-27 20:18:29 -08:00
Sam Lantinga
c2904c8ce7
Fixed compile warnings and errors
...
Fixes https://github.com/libsdl-org/SDL/issues/4998
2021-11-27 11:16:15 -08:00
Sam Lantinga
a6cbe0ab87
Controllers are always centered at zero using XInput and WGI
2021-11-27 10:58:12 -08:00
Sam Lantinga
09b7ca27d6
Get the current WGI controller list at startup
...
On Win32 this list is empty and we always get controller added events. On UWP, this list is populated and we don't get controlle added events for currently connected controllers.
2021-11-27 10:53:20 -08:00
Sam Lantinga
12895eca1a
Fixed WGI initialization on Win32
2021-11-27 10:52:58 -08:00
Sam Lantinga
110e4e1334
Use WGI instead of XInput for Windows 10 UWP apps
...
Fixes https://github.com/libsdl-org/SDL/issues/5017
2021-11-27 10:24:32 -08:00
Mathieu Eyraud
02021ae753
Return capabitlities from RawInput joystick
2021-11-27 07:26:10 -05:00
Sam Lantinga
a2e8565230
The Google Pixel fingerprint sensor isn't actually a joystick
...
Fixes https://github.com/libsdl-org/SDL/issues/4971
2021-11-26 11:04:15 -08:00
Sam Lantinga
67b5de5b41
Fixed build warnings
2021-11-26 10:18:08 -08:00
Sam Lantinga
2ca2ad76da
Fixed build warnings
2021-11-26 10:13:45 -08:00
Sam Lantinga
f90164a62f
Fixed mapping for the G-Shark GS-GP702
...
Fixes https://github.com/libsdl-org/SDL/issues/5006
2021-11-26 09:02:12 -08:00
Sam Lantinga
d861820465
SDL_JoystickGetAttached() doesn't need to be noisy for NULL joystick
...
Fixes https://github.com/libsdl-org/SDL/issues/5008
2021-11-26 07:57:48 -08:00
Cameron Gutman
b99510836e
SDL_mfijoystick.m: Fix -Wshadow warning
2021-11-24 13:04:50 -06:00
Ozkan Sezer
f8900583e5
removed windows winmm joystick driver
2021-11-23 17:04:40 +03:00
Sylvain
cb9f85e8d0
Don't use "round", so that it's doesn't show up while searching for the function
2021-11-22 08:38:46 -08:00
Sylvain
6fb50bd0a6
Don't use "exp" as a name so that it's doesn´t show up with searching for the function
2021-11-22 08:38:46 -08:00
Sylvain
d31251b014
use SDL's functions version inplace of libc version
2021-11-22 08:38:46 -08:00
Ozkan Sezer
ee2afa00ba
SDL_mfijoystick.m: fix build using older toolchains
...
Fixes https://github.com/libsdl-org/SDL/issues/4992
Fixes https://github.com/libsdl-org/SDL/issues/4958
2021-11-22 05:11:10 +03:00
Sam Lantinga
6828955ddf
Trim any extra platform strings from mappings when they're returned to the application
2021-11-19 09:58:11 -08:00
Cameron Gutman
881a674926
rawinput: Only access SDL_RAWINPUT_mutex if initialized
...
We can also ditch the lock in RAWINPUT_JoystickQuit() now that the joystick
subsystem quits drivers in reverse order. There's no chance of a racing call
to RAWINPUT_WindowProc() anymore.
2021-11-19 08:19:30 -06:00
Cameron Gutman
1237142be3
joystick: Quit drivers in reverse order to ensure dependencies are not broken
...
SDL_WINDOWS_JoystickDriver depends on callbacks in SDL_RAWINPUT_JoystickDriver
and SDL_HIDAPI_JoystickDriver being available. It also manages the common
WindowProc used for joystick detection in both WINDOWS and RAWINPUT drivers.
If we don't tear them down backwards, there's a window of time where we could
invoke RAWINPUT_WindowProc() after RAWINPUT_JoystickQuit() was called.
2021-11-19 08:19:30 -06:00
Sam Lantinga
40d808620d
SDL_classic_joysticks defaults off
2021-11-15 20:17:14 -08:00
Sam Lantinga
66058bbbd5
Fixed exception accessing Bluetooth devices on Android 12
...
Since accessing Bluetooth prompts the user for permission on both Android and iOS, and we only need it for Steam Controller support, we'll leave it off by default. You can enable it by setting the hint SDL_HINT_JOYSTICK_HIDAPI_STEAM to "1" before calling SDL_Init()
Fixes https://github.com/libsdl-org/SDL/issues/4952
2021-11-15 16:52:56 -08:00
Ozkan Sezer
3eb9bfac7a
win32 rawinput & wgi joystick: avoid -Werror=declaration-after-statement
2021-11-14 22:22:50 +03:00
Ozkan Sezer
a2c27d39cf
SDL_hidapi_switch.c (ConstructSubcommand): lose use of '&' on rumbleData
...
SwitchCommonOutputPacket_t->rumbleData is an array.
2021-11-13 17:56:28 +03:00
Ozkan Sezer
6ad0fb8462
SDL_hidapi_ps4.c, SDL_hidapi_ps5.c: use SDL_zeroa()
2021-11-13 17:55:10 +03:00
Ozkan Sezer
a948ff8494
SDL_hidapijoystick.c: worked around a bogus 'unreachable code' warning.
2021-11-13 11:50:02 +03:00
Sam Lantinga
c2dd50a9a0
Fixed whitespace
2021-11-12 08:28:02 -08:00
Cameron Gutman
50971577e4
dinput: Fix memory leak when SDL_DINPUT_JoystickPresent() returns true
2021-11-11 22:35:41 -06:00
Cameron Gutman
fe09a4930a
joystick: Add APIs to query rumble support
2021-11-11 15:10:08 -08:00
Cameron Gutman
afccabb881
joystick: Add capability flags for rumble and trigger rumble
...
When API limitations force us to guess, we favor a false positive (reporting
support when it doesn't exist) compared to a false negative.
2021-11-11 15:10:08 -08:00
Cameron Gutman
1ccfbf963e
joystick: Convert HasLED() into a generic GetCapabilities() function
2021-11-11 15:10:08 -08:00
Sam Lantinga
b9b0df40bf
Fixed Linux build
2021-11-11 12:52:40 -08:00
Sam Lantinga
c9ada1c142
Made HIDAPI device change notifications available via SDL_hid_device_change_count()
2021-11-11 12:46:10 -08:00
Sam Lantinga
ebed961cb2
Fixed build with older Linux kernel headers
2021-11-11 09:51:39 -08:00
Sam Lantinga
828a0a4a10
Fixed mapping for PS4 controller when using the classic Joystick
...
interface on Linux
2021-11-11 07:13:29 -08:00
Sam Lantinga
dc9de1e2bd
Get the correct USB VID/PID information for /dev/input/js* devices
2021-11-11 07:03:30 -08:00
Sam Lantinga
bd92a95f22
Cleanup for the /dev/js* support (thanks @meyraud705)
2021-11-11 06:30:36 -08:00
Sam Lantinga
1c78b08007
Added support for /dev/input/js* on Linux
...
Added the hint SDL_HINT_LINUX_JOYSTICK_CLASSIC to control whether /dev/input/js* or /dev/input/event* are used as joystick devices
Added the hint SDL_HINT_JOYSTICK_DEVICE to allow the user to specify devices t
hat will be opened in addition to the normal joystick detection
Fixes https://github.com/libsdl-org/SDL/issues/1314
Fixes https://github.com/libsdl-org/SDL/issues/1727
Fixes https://github.com/libsdl-org/SDL/issues/1981
Closes https://github.com/libsdl-org/SDL/pull/4727
2021-11-10 20:02:25 -08:00
Sam Lantinga
65a50b2430
Re-enable udev joystick enumeration by default
2021-11-10 16:15:22 -08:00
Sam Lantinga
7681929cb4
Don't send the initial joystick axis event if the application is in the background
2021-11-09 12:30:37 -08:00
Sam Lantinga
d31f90d9e1
Don't send game controller touchpad or sensor events unless the application has focus
...
Fixes https://github.com/libsdl-org/SDL/issues/4891
2021-11-09 12:09:01 -08:00
Sam Lantinga
2a6feb5011
Removed accidental debugging commit (thanks @DomGries!)
2021-11-08 07:10:38 -08:00
Sam Lantinga
5b646cd19e
Build hidapi code into SDL as a new public API
...
This prevents conflicts with hidapi linked with applications, as well as allowing applications to make use of HIDAPI on Android and other platforms that might not normally have an implementation available.
2021-11-07 23:00:59 -08:00
Cameron Gutman
f6dc47caef
WGI/DInput: Fix SDL_IsXInputDevice() checks when RawInput is enabled
...
Enabling the RawInput backend causes SDL_XINPUT_Enabled() to return false.
That causes WGI and DInput backends to take ownership of XInput-compatible
controllers, because they think there's no XInput-specific backend enabled.
In WGI's case, it will actually race with RawInput to open the device. By
properly excluding XInput devices from WGI, we can ensure that the sets of
devices managed by WGI and RawInput don't intersect. This makes the race
harmless, since they'll never both go after the same device.
2021-11-07 16:14:33 -06:00
Sam Lantinga
301389cecc
Fixed iOS build
2021-11-07 13:53:12 -08:00
Cameron Gutman
b3e909dc41
WGI: Fix SDL_IsXInputDevice() for Xbox One controllers
...
The Xbox One driver stack doesn't propagate the VID/PID down to the
HID devices that end up in the GetRawInputDeviceList() output. This
means we end up matching against the wrong VID/PID and can't properly
exclude Xbox One controllers from WGI.
Fortunately, it is possible to walk back up the device tree to find
the parent with the matching VID/PID.
2021-11-07 13:33:18 -08:00
Sam Lantinga
b8c00bf914
Allow opening joysticks that are read-only on Linux
...
Fixes https://github.com/libsdl-org/SDL/issues/4713
2021-11-07 13:11:29 -08:00
Sam Lantinga
0323d983c6
Add the platform to the game controller mapping so it can be read back in without changes
...
Fixes https://github.com/libsdl-org/SDL/issues/4848
2021-11-07 12:52:48 -08:00
Sam Lantinga
fe2fe29049
Backed out accidentally committed PR https://github.com/libsdl-org/SDL/pull/4849
2021-11-07 11:48:16 -08:00
Sam Lantinga
86bc65a741
Fixed non-Apple builds
2021-11-07 11:35:12 -08:00
Sam Lantinga
637bcd0b72
Fixed build warnings
2021-11-07 11:19:07 -08:00
Sam Lantinga
e14358265e
Cleanup sfSymbolName support and add them to the dynamic API functions
2021-11-07 11:16:48 -08:00
Patrick Hogan
149e5c656a
Support returning sfSymbolsName for gamepad controls on macOS / iOS / tvOS
2021-11-07 10:58:37 -08:00
Cameron Gutman
6312aaea0f
WGI: Add workaround for delayed callbacks after WGI_JoystickQuit()
2021-11-06 21:35:01 -07:00
Cameron Gutman
2371b247ff
windows: improve feature detection consistency between CMake and non-CMake builds
2021-11-03 08:41:36 -07:00
Sam Lantinga
26706319d7
Ignore the ASRock LED controller, it's not a joystick
2021-10-30 05:53:12 -07:00
Tanuj Bagaria
1f0eb03a76
Fix PS5 mapping with HID-PLAYSTATION driver ( #4675 )
...
* add missing PS5 Linux GUID for Bluetooth
* Fix PS5 Mapping to work with HID-Playstation driver
2021-10-24 17:54:26 -05:00
Sam Lantinga
f3fd1ffb99
Fixed crash if SDL API functions are called on a disconnected controller on iOS
2021-10-20 15:18:03 -07:00