feat: expose DS5 player-indicator and mic-mute LED outputs - #97
feat: expose DS5 player-indicator and mic-mute LED outputs#97joelfcscoelho wants to merge 2 commits into
Conversation
Add player_led and mic_led to GamepadOutputKind and GamepadOutput, and parse them from the DualSense output report in append_dualsense_outputs (player indicator gated by valid_flag1 bit 0x10 at offset+43; mic-mute LED gated by bit 0x01 at offset+8), mirroring the existing rgb_led handling. The DS5 profile advertises both via new supports_player_led / supports_mic_led capability flags. Signed-off-by: Joel Coelho <joelfernandocscoelho@gmail.com>
Signed-off-by: Joel Coelho <joelfernandocscoelho@gmail.com>
6635ad8 to
623b214
Compare
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #97 +/- ##
==========================================
+ Coverage 75.47% 75.62% +0.15%
==========================================
Files 34 34
Lines 8133 8177 +44
Branches 3044 3054 +10
==========================================
+ Hits 6138 6184 +46
+ Misses 1454 1420 -34
- Partials 541 573 +32
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 5 files with indirect coverage changes Continue to review full report in Codecov by Harness.
|
|
Thank you! Could you rebase your Sunshine PR and make it point to 623b214 ? Edit: Can you do it after I merge LizardByte/Sunshine#5531 please? |
Will do mate |
|
Thanks! I will give it a test shortly |
|
I tested this with Sunshine on Windows and unfortunately it doesn't seem to be working. |



Description
The DualSense output report carries the player indicator LEDs (the little row under
the touchpad) and the mic mute LED, but the DS5 profile wasn't surfacing either one.
It reported rumble, the RGB lightbar, adaptive triggers and trigger rumble, and just
dropped these two, so when a game set the player number or turned the mic light on
there was no way for a consumer to see it.
This adds output kinds for both:
player_ledandmic_ledinGamepadOutputKind, with matching fields onGamepadOutputsupports_player_led/supports_mic_ledon the profile capabilities, both set for DualSenseappend_dualsense_outputs: player LEDs come fromoffset + 43when theplayer-indicator valid flag is set (
valid_flag1 & 0x10), and the mic LED fromoffset + 8when the mic-mute flag is set (0x01). Same shape as the existinglightbar block, inside the same bounds check.
Existing output kinds are untouched. There's a companion Sunshine PR that consumes
these and forwards the LEDs to the streaming client.
Type of Change
Checklist
AI Usage