Sam Lantinga
09b652b70a
Make sure the string properties are actually strings (thanks Nat!)
2022-03-09 13:54:23 -08:00
Sam Lantinga
14db417e12
Reenable getting the serial number on macOS
...
We filter now on game controllers, so we shouldn't hit the crash bug on random devices that this was working around.
2022-03-08 21:32:27 -08:00
Sam Lantinga
c3ca3445bd
Prefer HIDAPI on macOS, as that has extended functionality
2022-03-08 18:56:49 -08:00
pionere
ebdd536676
use SDL_InvalidParamError or SDL_assert instead of custom SDL_SetError
2022-01-28 20:40:19 -05:00
Ozkan Sezer
e9511f7136
hidapi, libusb: don't use iconv on OS/2, it lacks wchar_t functionality.
...
Taken from a patch by Silvan Scherrer at bitwiseworks' OS/2 fork.
2022-01-14 14:39:04 +03:00
Ozkan Sezer
7527c8d3d7
hidapi, libusb: provide a wcsdup implementation if it is not available.
...
similar to mac and android versions..
2022-01-11 11:33:02 +03:00
Ozkan Sezer
f14c7bb443
added missing hidapi stuff for os/2 with libusb
2022-01-09 20:33:32 +03:00
Sam Lantinga
120c76c84b
Updated copyright for 2022
2022-01-03 09:40:21 -08:00
Sam Lantinga
67c4b99639
Fixed enabling udev hotplug detection on Linux
2021-12-15 10:39:42 -08:00
Ozkan Sezer
09465a9083
hidapi, windows: replace a strncpy() with plain memcpy()
...
mainstream has a similar change, already.
2021-11-30 21:10:10 +03:00
Ozkan Sezer
8f17af5e21
hidapi: mark libusb function pointers with LIBUSB_CALL.
2021-11-27 11:02:04 -08:00
Sam Lantinga
30f04d63e6
HIDAPI is only reliable on Android 4.3 and newer
...
Fixes https://github.com/libsdl-org/SDL/issues/4955
2021-11-26 07:15:46 -08:00
Sylvain
d5813776db
Release UDEV ressources
2021-11-25 07:24:18 -05:00
Sylvain
d31251b014
use SDL's functions version inplace of libc version
2021-11-22 08:38:46 -08:00
Cameron Gutman
343fa61215
hid: fix inconsistent indentation
2021-11-20 13:17:59 -06:00
Cameron Gutman
db60b27188
hid: Only enumerate IOHIDDevices that are likely to be joysticks
...
Touching HID devices with keyboard usages will trigger a keyboard capture
permission prompt on macOS 11+. See #4887
Like the IOKit joystick backend, we accept HID devices that have joystick,
gamepad, or multi-axis controller usages. We also allow the Valve VID for
the Steam Controller, just like the Windows HIDAPI implementation does.
2021-11-20 13:13:17 -06:00
Ozkan Sezer
b67965979a
SDL_hidapi.c: fix SDL_udev.h include path
...
fixes https://github.com/libsdl-org/SDL/issues/4981
2021-11-19 11:55:50 +03:00
Ozkan Sezer
d2cf191936
hidapi, linux: merged a minor warning + code style fix from mainstream.
2021-11-17 10:00:10 +03: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
Mathieu Eyraud
5fc7a90a8b
Fix refcounting in SDL_hid_exit
2021-11-12 01:25:15 -08:00
Sam Lantinga
162772aa63
Fixed build warnings on Android
2021-11-11 20:50:54 -08:00
Sam Lantinga
9c3bcf8e8a
Added SDL_hid_ble_scan() for pairing Steam Controllers on iOS and tvOS
2021-11-11 17:31:14 -08:00
Sam Lantinga
911d91c55c
Retry hid_send_feature_report() if the ioctl() fails with EPIPE (e.g. the device stalled)
2021-11-11 14:36:05 -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
6c4b4ee7a6
Don't assert on API parameters
...
This causes lots of spam in test automation and it's not clear it's useful to developers. If we need this level of validation, we should add a log category for it.
2021-11-10 09:41:43 -08:00
Sam Lantinga
0f2bf62935
Fixed building hidapi when libusb is available
2021-11-09 06:20:46 -08:00
Sam Lantinga
b8327a4a48
Added SDL_HIDAPI_DISABLED so it can be disabled like other SDL subsystems
2021-11-08 07:19:45 -08:00
Sam Lantinga
f61b10dcf1
Do more robust validation of devices passed to the SDL HIDAPI functions
2021-11-08 06:34:32 -08:00
Ozkan Sezer
dd8c354843
SDL_hidapi.c: avoid possible NULL pointer dereferences.
2021-11-08 17:00:56 +03: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
Sam Lantinga
db18764e41
Use correct relative include path
2021-10-01 16:27:59 -07:00
Sam Lantinga
bf97c5a22f
Make sure SDL file descriptors don't leak into child processes
2021-09-08 14:47:40 -07:00
Sam Lantinga
7d66fa209a
Fixed double-copy of the report in BlueZ >= 5.56
2021-09-07 17:38:26 -07:00
Sam Lantinga
8b1f8b6ec5
Use the high speed alternate setting on new Microsoft Xbox controllers
2021-08-27 11:14:09 -07:00
Sam Lantinga
a91ab883e9
Fixed building on Windows with cmake, ninja, and clang
2021-08-06 12:28:24 -07:00
Sam Lantinga
f93e9047eb
Implemented the timeout in hid_read_timeout() on Android
...
This fixes detecting PS5 controllers connected over USB
2021-07-08 18:44:50 -07:00
Sam Lantinga
814285d6e3
Workaround for crash on Apple Mac M1 hardware
2021-06-23 09:19:02 -07:00
Sam Lantinga
0e62926ec5
Fixed crash if vendor or product strings are empty
2021-06-10 16:28:32 -07:00
Sam Lantinga
cb5e86353b
Fixed crash after reinitializing libusb HID support
2021-06-08 13:15:24 -07:00
Sam Lantinga
6de33c0945
Clarify why we're skipping Game Controller framework supported devices in hid.c
2021-06-03 09:05:33 -07:00
Patrick Hogan
28da6c5ddb
Have HIDAPI skip MFI supported HID devices on macOS to avoid duplicate devices.
2021-06-03 09:03:11 -07:00
Steven Noonan
17d8479d98
hidapi/libusb: maintain in-memory cache of vendor/product strings
...
The get_usb_string call is rather expensive on some USB devices, so we
cache the vendor/product strings for future lookups (e.g. when
hid_enumerate is invoked again later).
This way, we only need to ask libusb for strings for devices we haven't
seen since before we started.
Signed-off-by: Steven Noonan <steven@valvesoftware.com>
Signed-off-by: Sam Lantinga <slouken@libsdl.org>
2021-04-22 16:40:23 -07:00
Sam Lantinga
3377861ab1
Added support for the Amazon Game Controller to the HIDAPI driver
2021-03-26 11:57:19 -07:00
Sam Lantinga
1133ea0349
Fixed crash on macOS when AirPods are connected
2021-03-22 19:18:57 -07:00
Sam Lantinga
1f7ec3fa4e
Added support for the PowerA Xbox One Series X Wired Controller
2021-02-11 17:27:22 -08:00
Ozkan Sezer
bb9e049d1d
minor updates to libc function checks
2021-02-10 10:22:19 -05:00
Sam Lantinga
1dc9180fb6
Fixed compiler warnings
2021-02-10 10:22:17 -05:00
Sam Lantinga
d59a926837
Fixed build warning
2021-02-10 10:22:17 -05:00
Sam Lantinga
eb83da0234
Fixed PS4 controllers over Bluetooth on Windows 7
2021-02-10 10:22:17 -05:00