Sam Lantinga
733f25252a
Fixed build
2019-11-22 14:09:24 -08:00
Sam Lantinga
b5aff9d7c3
Added SDL_GameControllerTypeForIndex() and SDL_GameControllerGetType() to return the type of controller attached.
2019-11-22 13:12:12 -08:00
Sylvain Becker
b7ab3b3984
Fixed bug 4838 - Use after free in SDL_JoystickUpdate (Thanks!)
2019-10-23 08:50:57 +02:00
Sam Lantinga
e6ac16ef2f
Added support for third party Nintendo Switch controllers that don't support the full protocol
2019-10-17 16:59:05 -07:00
Sam Lantinga
a06d8cd0d4
Merged latest changes from Steam into controller_type.h
2019-07-17 16:47:17 -07:00
Sam Lantinga
be6cda9f95
Rolling back GameCube HIDAPI support
...
It causes the HIDAPI devices to always be opened on enumeration, which causes crashes in the Windows drivers when multiple applications are reading and writing at the same time. We can revisit this after 2.0.10 release.
2019-06-19 15:54:21 -07:00
Zack Middleton
b23cce282e
Fix GameCube controller power level being reset to unknown
...
HIDAPI_DriverGameCube_OpenJoystick() set power level to wired and then
it was set to unknown in SDL_JoystickOpen().
2019-06-19 06:43:04 -07:00
Sam Lantinga
9261e473d6
Potential fix for a crash we're seeing on Android that should in theory never happen.
2019-06-07 09:00:24 -07:00
Sam Lantinga
9a8d5215c6
Handle potentially calling SDL_JoystickUpdate() and SDL_JoystickQuit() at the same time.
2019-03-27 08:17:05 -07:00
Ethan Lee
c528615626
hidapi: Add support for Wii U/Switch USB GameCube controller adapter.
...
Note that a single USB device is responsible for all 4 joysticks, so a large
rewrite of the DeviceDriver functions was necessary to allow a single device to
produce multiple joysticks.
2019-03-12 20:27:54 -04:00
Sam Lantinga
5e13087b0f
Updated copyright for 2019
2019-01-04 22:01:14 -08:00
Sam Lantinga
6ed76ae18f
Fixed the ROCCAT Tyon mouse showing up as a joystick on Windows
2018-12-05 14:46:03 -08:00
Sam Lantinga
b73703b9c6
Fixed bug 4391 - hid_enumerate() sometimes causes game to freeze for a few seconds
...
Daniel Gibson
Even though my game (dhewm3) doesn't use SDL_INIT_JOYSTICK, SDL_PumpEvent() calls SDL_JoystickUpdate() which ends up calling hid_enumerate() every three seconds, and sometimes on my Win7 box hid_enumerate() takes about 5 seconds, which causes the whole game to freeze for that time.
2018-11-19 21:17:00 -08:00
Ryan C. Gordon
62494a2e27
Merge SDL-ryan-batching-renderer branch to default.
2018-10-31 15:03:41 -04:00
Sam Lantinga
14329256cb
Generalized the XInput user index into a player index
2018-10-25 16:53:14 -07:00
Sam Lantinga
545febcf21
Fixed initializing XInput user index
2018-10-25 13:22:34 -07:00
Sam Lantinga
9987ca69f3
Added SDL_JoystickGetXInputUserIndex()
2018-10-25 12:54:42 -07:00
Ryan C. Gordon
b262b0ebc9
Small stack allocations fall back to malloc if they're unexpectedly large.
2018-10-22 20:50:32 -04:00
Sam Lantinga
6b3f11e2a3
Fixed code style
2018-08-20 21:18:56 -07:00
Ryan C. Gordon
67a48ad13a
haiku: Patched to compile with new joystick interfaces.
2018-08-10 15:04:08 -04:00
Ryan C. Gordon
67764070f0
bsd: Update joystick code for new interfaces.
...
(this is an untested push to see if buildbot likes it.)
2018-08-10 14:42:40 -04:00
Ryan C. Gordon
b692c35237
emscripten: Patched to compile with new joystick interfaces.
2018-08-10 14:32:30 -04:00
Sam Lantinga
888bf1af69
Worked around bug with Sony PS Now PS3 controller where DirectInput polling will continue to return success after the controller is unplugged.
...
The code is now reliant on SDL_PrivateJoystickAdded() and SDL_PrivateJoystickRemoved() being called correctly when devices are added or removed on Windows
2018-08-09 16:03:50 -07:00
Sam Lantinga
f35e97ba8a
Fixed Windows build
2018-08-09 16:03:29 -07:00
Sam Lantinga
d2042e1ed4
Added HIDAPI joystick drivers for more consistent support for Xbox, PS4 and Nintendo Switch Pro controller support across platforms.
...
Added SDL_GameControllerRumble() and SDL_JoystickRumble() for simple force feedback outside of the SDL haptics API
2018-08-09 16:00:17 -07:00
Ozkan Sezer
5454765a22
replace bool stuff in controller_type.h with SDL_bool.
...
remove bool<->SDL_bool dance in SDL_joystick.c:SDL_IsJoystickSteamController()
after the controller_type.h change.
2018-09-28 17:01:24 +03:00
Sam Lantinga
5febdfcece
Fixed whitespace
2018-09-24 11:49:25 -07:00
Sam Lantinga
59a2d12cc3
Fixed creating an Android game controller mapping for HIDAPI devices on initialization
2018-09-17 11:35:22 -07:00
Sam Lantinga
8e062f6925
Generalized the handling of instantaneous guide button presses so there's a minimum of 100 ms between guide button press and release.
...
This happens with at least the following controllers: All Apple MFI controllers, ASUS Gamepad, XiaoMi Bluetooth Controller
2018-03-19 14:42:51 -07:00
Sam Lantinga
9e651b6915
Try to dynamically create a default Android game controller mapping based on the buttons and axes on the controller.
...
Include the controller USB VID/PID in the GUID where possible, as we do on other platforms.
2018-03-06 14:51:50 -08:00
Sam Lantinga
e3cc5b2c6b
Updated copyright for 2018
2018-01-03 10:03:25 -08:00
Sam Lantinga
b647bd0692
The event filter and event watch functions are now thread-safe
2017-10-10 17:41:41 -07:00
Sam Lantinga
d90fce3c9e
Exposed the joystick locking functions for multi-threaded access to the joystick API
2017-10-10 11:10:15 -07:00
Sam Lantinga
5ab5c9b767
Avoid duplicate joystick axis events
2017-09-22 08:56:09 -07:00
Sam Lantinga
eaab6098eb
Only apply the jitter filter to prevent unexpected motion on axes that haven't been touched.
2017-09-21 10:29:17 -07:00
Sam Lantinga
de91b1248f
Fixed bug 3745 - specify SDLCALL as the calling convention for API callbacks
...
Patches contributed by Ozkan Sezer
2017-08-14 06:28:21 -07:00
Sam Lantinga
059d9e4627
Fixed bug 2950 - wrong axes values are set on joystick initialization
...
Edward Rudd
Device: Logitech Rumble Gamepad F510 in Xinput mode.
Upon opening the joystick the values of the axes are queried via PollAllValues are not actually set on the device all the time.
This can easily be seen in the testjoystick or testgamecontroller test programs,as the testjoystick shows all axes in the center until one 'tickles' the triggers., and the testgamecontroller will show the triggers as 'on' until on 'tickles' the triggers.
Upon further research the culprit is the SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS hint. In the default value events are ignored until there is an active window, Thus in cases where the joystick system is initialized and controllers opened before the initial window is created & focuses, the initial values will be incorrect.
Here is my current workaround in the game I'm working on porting..
SDL_SetHint(SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS, "1");
SDL_GameController* gamepad = SDL_GameControllerOpen(index);
SDL_SetHint(SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS, "0");
2017-08-12 17:41:59 -07:00
Sam Lantinga
c49fa37c5b
Added SDL hints to filter the set of game controllers reported by SDL
2017-08-09 11:59:29 -07:00
Sam Lantinga
1eb92f6342
Implemented Linux joystick blacklist
...
Based on https://raw.githubusercontent.com/denilsonsa/udev-joystick-blacklist/master/generate_rules.py
This fixes a few devices that are not actually joysticks showing up as such in SDL
2017-04-06 06:30:43 -07:00
Sam Lantinga
763e138903
Added an API to get the joystick instance ID before opening the device: SDL_JoystickGetDeviceInstanceID()
2017-03-09 16:09:16 -08:00
Sam Lantinga
be28d7c88c
Added support for the Saitek Pro Flight X-56 Rhino
2017-01-31 12:30:55 -08:00
Sam Lantinga
6717a3d38d
Added support for the HOTAS Warthog throttle
2017-01-31 12:23:29 -08:00
Sam Lantinga
a156b0d994
Added the HOTAS Warthog as a flight stick
2017-01-31 10:20:09 -08:00
Sam Lantinga
95ab9dc73c
Added Thrustmaster Wheel FFB entry to the list of wheels
2017-01-27 06:05:50 -08:00
Sam Lantinga
3c90a52aa7
Added an API to get the type of a connected joystick
2017-01-27 05:59:58 -08:00
Sam Lantinga
8fa0b0889d
Added support for the 8Bitdo Zero GamePad
2017-01-20 08:13:23 -08:00
Sam Lantinga
4938c5054e
Added SDL_JoystickGetAxisInitialState() to get a joystick axis' initial value.
...
This is useful for controller mapping programs to determine an axis' zero state
2017-01-04 10:28:07 -08:00
Sam Lantinga
99e10ef506
Assume D-pad or thumbstick style axes are centered at 0
2017-01-04 07:06:48 -08:00
Sam Lantinga
d2a01b6e53
Added the NEXT SNES Controller to the list of zero-centered joysticks
2017-01-04 06:19:56 -08:00
Sam Lantinga
c7780497dc
Increased joystick jitter tolerance for PS3 controllers
2017-01-04 05:56:47 -08:00