Ethan Lee
964e979d06
hidapi: Allow disabling libusb support at runtime
2022-05-30 13:45:24 -07:00
Sam Lantinga
bef9f2b2c4
Don't trigger device notifications when Steam Deck backlight changes
2022-05-26 20:45:48 -07:00
Sam Lantinga
22d6e09a8d
Don't try to call hid_ble_scan() if HIDAPI is disabled
...
Fixes https://github.com/libsdl-org/SDL/issues/5699
2022-05-25 11:05:39 -07:00
Ozkan Sezer
9220f92bae
hidapi/libusb/hid.c (read_thread): mark as SDLCALL
2022-05-25 01:01:02 +03:00
Cameron Cawley
ffab9f46b5
Avoid clashing with system headers when redefining standard library functions
2022-05-18 16:44:17 -04:00
Ozkan Sezer
7a5743031d
hidapi, libusb: import mainstream commit 536bad201e
2022-04-23 20:01:40 +03:00
Eddy Jansson
a40405d724
hidapi: Wrap CopyHIDDeviceInfo in define checks.
...
The purpose of this is to silence a 'defined but not used'
warning.
2022-04-20 09:33:40 -07:00
Sam Lantinga
7b3449b89f
Minor cleanup
2022-04-04 20:46:56 -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
Jonatha Gabriel
b944dc8f2e
Also fix Android crash when SDL_HIDAPI_DISABLED set to 1
...
The Java code needs the native functions to be implemented, even if
they're not surfaced via the C API, therefore, a stub version of
functions were made only to the purpose of "fill the gaps" when
SDL_HIDAPI_DISABLED set to 1.
2022-03-22 12:12:16 -07:00
Sam Lantinga
b559a4accc
Fixed Android crash when SDL_HIDAPI_DISABLED set to 1
...
The Java code needs the native functions to be implemented, even if they're not surfaced via the C API.
Fixes https://github.com/libsdl-org/SDL/issues/5326
2022-03-19 10:39:22 -07:00
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