Cameron Gutman
e63dc9a93b
Suppress bogus UnspecifiedRegisterReceiverFlag warning
2023-12-29 23:55:30 -06:00
Cameron Gutman
c356862ac1
Avoid unnecessary reinitialization of PS4/PS5 gamepads during stream exit
...
onInputDeviceChanged() is triggered by starting/stopping pointer capture, so we should
unregister our callbacks before that happens to avoid triggering several gamepad context
reinitializations right as the stream is exiting
2023-10-29 16:45:07 -05:00
Cameron Gutman
ebfe843299
Don't process incoming input device requests from the host after we've stopped
2023-10-26 00:05:24 -05:00
Cameron Gutman
827d2362b7
Don't create LightsSessions for devices without an RGB LED
2023-10-25 23:53:35 -05:00
Cameron Gutman
ff5d9f72aa
Fix ANRs trying to get battery state during controller arrival
2023-10-25 23:13:11 -05:00
Cameron Gutman
d430d83ba8
Add clickpad button emulation combo (Select+L1)
2023-10-16 23:56:56 -05:00
Cameron Gutman
dc1045b69e
Don't lie to our own clickpad heuristics when overriding the controller type
2023-10-16 23:38:12 -05:00
Cameron Gutman
9915007f30
Check for a null UsbManager object
...
Apparently this can happen on some (broken?) devices
2023-10-12 00:22:28 -05:00
Cameron Gutman
0168a55596
Propagate the controller number to the standalone DS4 touchpad device
2023-10-07 23:26:26 -05:00
Cameron Gutman
229eff49fb
Consume unhandled gamepad mouse events to prevent duplicate mouse actions
2023-10-07 23:04:36 -05:00
Cameron Gutman
0e3b472f78
Fix DS4 clickpad button on devices that expose the touchpad as a mouse
2023-10-07 22:58:07 -05:00
Cameron Gutman
5f29b30d34
Fix DS4 clickpad button on Nvidia Shield (again)
2023-10-07 22:53:19 -05:00
Cameron Gutman
5dd80edde4
Wait 1 second after input device reconfiguration to enable motion sensors
2023-10-07 21:07:02 -05:00
Cameron Gutman
30822c1ba5
Only check for motion sensors on Sony or Nintendo gamepads on Android 12
...
This works around a bug in Android 12 that leads to random crashes when input devices change.
2023-10-07 19:07:15 -05:00
Cameron Gutman
d250f4dc60
Move battery updates to a background HandlerThread
...
They can cause long Binder transactions that lead to ANRs.
2023-10-07 00:49:03 -05:00
Cameron Gutman
bc27492206
Split ControllerHandler teardown into stop() and destroy() functions
2023-10-07 00:35:36 -05:00
Cameron Gutman
081cca48fb
Implement cursor visibility and quit key shortcuts
...
Fixes #1255
2023-09-23 02:20:26 -04:00
Cameron Gutman
d32c4f86a7
Fix unguarded use of Lollipop API
2023-09-16 22:53:13 -05:00
Cameron Gutman
cafc4450b2
Override controller type when motion sensor emulation is enabled
...
Without this, the host will still select an Xbox controller even if it can't support motion sensors.
2023-09-16 22:48:38 -05:00
Cameron Gutman
4d3e883e49
Correct sensors for device orientation
2023-09-16 22:26:11 -05:00
Cameron Gutman
8f9a687872
Add device sensor fallback option
...
Correction for device orientation is not implemented yet
2023-09-16 20:25:54 -05:00
Cameron Gutman
08d509d831
Use the device vibrator for devices with built-in gamepads
2023-09-16 19:14:22 -05:00
Cameron Gutman
b06dec8449
Fix detection of G Cloud gamepad as an internal controller
2023-09-16 19:09:40 -05:00
Cameron Gutman
e92fdeef47
Fix RGB LED capability flag on Android 12 and 13
2023-08-03 23:02:11 -05:00
Cameron Gutman
2636d79b86
Fix handling of ACTION_CANCEL for multi-pointer gestures
2023-08-03 02:29:55 -05:00
Cameron Gutman
c9c1ef91fd
Fix mishandling ACTION_MOVE events for native pen/touch events
2023-07-27 23:15:26 -05:00
Cameron Gutman
0e29e13d03
Use private API to detect clickpads on Android O and earlier
2023-07-22 14:34:27 -05:00
Cameron Gutman
16086a6d3f
Send the touchpad button on the gamepad even when using the touchpad for mouse control
2023-07-12 01:16:33 -05:00
Cameron Gutman
18b6aae381
Disable gamepad sensors while in PiP mode
2023-07-12 01:07:14 -05:00
Cameron Gutman
642c353164
Fix handling of onInputDeviceChanged when using sensors and lights
...
DS4 triggers this path when we release our pointer capture on activity pause
2023-07-12 00:32:28 -05:00
Cameron Gutman
e6876926a4
Add options to control gamepad touchpad and motion and reorganize input settings
2023-07-09 14:46:46 -05:00
Cameron Gutman
83916fa43e
Map the Menu key for keyboards
2023-07-08 23:21:19 -05:00
Cameron Gutman
4dc6143440
Override the stock DS4 touchpad button mapping for Shield devices
...
Nvidia's stock mapping treats the clickpad as a second select button.
2023-07-05 23:00:54 -05:00
Cameron Gutman
f1503aa56c
Implement battery reporting for Shield controllers
2023-07-05 18:57:01 -05:00
Cameron Gutman
d6bbfa1af1
Fix unmapped paddle and share button presses
2023-07-02 20:32:57 -05:00
Cameron Gutman
4e1b778f31
Import some SDL code and use it for controller classification
...
Imported as of 4aee17b039981f2bb79892f3d3e3e17bd6b66530
2023-07-02 20:20:55 -05:00
Cameron Gutman
d4079940b4
Implement controller LED and battery state extensions
2023-07-02 19:03:31 -05:00
Cameron Gutman
27701eda49
Handle paddle buttons on Xbox Elite controllers
2023-06-28 17:28:25 -05:00
Cameron Gutman
71c831b02d
Handle 2-direction d-pad key events
2023-06-28 17:22:05 -05:00
Cameron Gutman
d1579e9b0d
Support PS4/PS5 touchpad click on older kernels
2023-06-24 23:45:31 -05:00
Cameron Gutman
d6f6307050
Fix units of gyro motion and deduplicate sensor events
2023-06-24 23:12:28 -05:00
Cameron Gutman
a2e628f3f8
Add controller arrival metadata support
2023-06-24 20:23:43 -05:00
Cameron Gutman
419e4e656e
Use an explicit intent for requesting USB permission
2023-06-24 19:37:12 -05:00
Cameron Gutman
eed4327d26
Add controller touchpad support
2023-06-24 19:09:10 -05:00
Cameron Gutman
5c6eaf2602
Add controller gyro and accelerometer support
2023-06-24 19:06:58 -05:00
Cameron Gutman
71169ed740
Add trigger rumble support
2023-06-24 17:59:10 -05:00
Cameron Gutman
dca8d93aa8
Add Share button mapping for Xbox Series X controller
2023-06-24 16:16:02 -05:00
Cameron Gutman
6cb152f602
Increase gamepad limit to 16 for Sunshine hosts
2023-06-24 16:15:00 -05:00
Cameron Gutman
ddefda3afa
Plumb new Sunshine protocol extensions
2023-06-24 15:19:50 -05:00
Cameron Gutman
19b6e94824
Add horizontal scrolling in mouse emulation mode
2023-03-04 12:31:31 -06:00