WIP: Android: DualSense mode, rumble, haptics and lights on the controller #830
No reviewers
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
stale
wontfix
No milestone
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
gh-streetpea/chiaki-ng!830
Loading…
Reference in a new issue
No description provided.
Delete branch "aoleg94/android-dualsense-output"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Stacked on #828 (includes its commits until it is merged).
Summary
The app never enables DualSense mode, so the console sends no haptics, trigger effects or
lightbar colours, and rumble always plays on the phone. This adds:
is connected at stream start) / On / Off. Non-DualSense and touch-only users connect exactly as
before.
InputDevice.getVibratorManager()), falling backto the phone's vibrator as before when the controller can't rumble.
Very strong. PS5 haptic audio is converted to rumble the same way desktop's
QueueRumbleHapticsdoes, scaled by the console's vibration intensity setting.InputDevice.getLightsManager()(Android 12+).Implementation
trigger intensity, haptics strength) to
Session.OutputRoutersends rumble/haptics/lights to the active controller through a backend(
InputDeviceOutput,PhoneVibratorOutput) and replays state when the controller changes.Limitations
What reaches the pad through public APIs depends on the kernel's
hid-playstationdriver. Onthe test phone (kernel 5.10 backport) the lights aren't exposed to Android and rumble uses the
coarse "compatibility" vibration mode, so it feels like a phone motor. #831 adds a direct Bluetooth
path that avoids both.
Testing
DualSenseTest,HapticsRumbleTest,DualSenseIntensityStateTest,OutputRouterTest.mode enables only with a DualSense, rumble on the pad, strength setting has a clear effect,
touch-only rumble on the phone as before.
Notes
Developed with the assistance of Claude Code, and tested on real hardware as described above.
🤖 Generated with Claude Code
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.