Uh oh!
There was an error while loading. Please reload this page.
feat(input): forward DS5 player/mic-LED from libvirtualhid to the client - #5537
Draft
joelfcscoelho wants to merge 1 commit into
Draft
feat(input): forward DS5 player/mic-LED from libvirtualhid to the client#5537joelfcscoelho wants to merge 1 commit into
joelfcscoelho wants to merge 1 commit into
Conversation
joelfcscoelho
marked this pull request as draft
August 20, 2026 12:31
Route the new libvirtualhid player_led / mic_led output kinds to the client via two control-stream messages (0x5504 player LED, 0x5505 mic LED), mirroring the existing rgb_led passthrough with per-value dedup. Bumps the libvirtualhid submodule to the commit that surfaces those output kinds. Signed-off-by: Joel Coelho <joelfernandocscoelho@gmail.com>
joelfcscoelhoforce-pushed
the
ds5-player-mic-led
branch
from
August 21, 2026 10:18
51a869e to
169135dCompareBundle ReportBundle size has no change ✅ |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@## master #5537 +/- ##
==========================================
- Coverage 32.50% 32.47% -0.03%
==========================================
Files 104 104 Lines 25003 25053 +50 Branches 11078 11096 +18 ==========================================
+ Hits 8126 8136 +10 - Misses 13894 13939 +45 + Partials 2983 2978 -5
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 7 files with indirect coverage changes Continue to review full report in Codecov by Harness.
|
Screenshot ComparisonPR #5537 screenshots vs Matrix: |
| Image | Baseline | PR |
|---|---|---|
sunshine_tray_initial.png | ![]() | ![]() |
sunshine_tray_menu.png | ![]() | ![]() |
sunshine_tray_pairing_request.png | ![]() | ![]() |
sunshine_tray_paused.png | ![]() | ![]() |
sunshine_tray_stopped.png | ![]() | ![]() |
sunshine_tray_streaming.png | ![]() | ![]() |
sunshine_tray_tooltip.png | ![]() | ![]() |
Matrix: Windows-AMD64
| Image | Baseline | PR |
|---|---|---|
sunshine_tray_initial.png | ![]() | ![]() |
sunshine_tray_menu.png | ![]() | ![]() |
sunshine_tray_pairing_request.png | ![]() | ![]() |
sunshine_tray_paused.png | ![]() | ![]() |
sunshine_tray_stopped.png | ![]() | ![]() |
sunshine_tray_streaming.png | ![]() | ![]() |
sunshine_tray_tooltip.png | ![]() | ![]() |
Matrix: Windows-ARM64
| Image | Baseline | PR |
|---|---|---|
sunshine_tray_initial.png | ![]() | ![]() |
sunshine_tray_menu.png | ![]() | ![]() |
sunshine_tray_pairing_request.png | ![]() | ![]() |
sunshine_tray_paused.png | ![]() | ![]() |
sunshine_tray_stopped.png | ![]() | ![]() |
sunshine_tray_streaming.png | ![]() | ![]() |
sunshine_tray_tooltip.png | ![]() | ![]() |
Matrix: macOS-arm64
| Image | Baseline | PR |
|---|---|---|
sunshine_tray_initial.png | ![]() | ![]() |
sunshine_tray_menu.png | ![]() | ![]() |
sunshine_tray_pairing_request.png | ![]() | ![]() |
sunshine_tray_paused.png | ![]() | ![]() |
sunshine_tray_stopped.png | ![]() | ![]() |
sunshine_tray_streaming.png | ![]() | ![]() |
sunshine_tray_tooltip.png | ![]() | ![]() |
Matrix: macOS-x86_64
| Image | Baseline | PR |
|---|---|---|
sunshine_tray_initial.png | ![]() | ![]() |
sunshine_tray_menu.png | ![]() | ![]() |
sunshine_tray_pairing_request.png | ![]() | ![]() |
sunshine_tray_paused.png | ![]() | ![]() |
sunshine_tray_stopped.png | ![]() | ![]() |
sunshine_tray_streaming.png | ![]() | ![]() |
sunshine_tray_tooltip.png | ![]() | ![]() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.









































































Description
Follow-up to LizardByte/libvirtualhid#97. Now that libvirtualhid reports
the DualSense player and mic LEDs, this forwards them on to the client so the physical
controller's LEDs follow what the game sets.
Adds two control messages,
0x5504for the player LED and0x5505for the mic LED,and wires the two new output kinds up to them.
common.h:set_player_led/set_mic_ledfeedback types and theirmake_*helpersstream.cpp: the two packet types and their encode paths, same as the existing RGBLED one (
0x5502)virtualhid_input.cpp: forward theplayer_led/mic_ledoutputs, reusing the sameper-value dedup as the RGB case
libvirtualhidsubmodule to pull in the aboveOne thing to note: this depends on the libvirtualhid PR, so CI won't pass until that's
merged (the submodule points at its branch). Leaving it a draft until then. Client-side
handling of the two messages is moonlight-common-c#137.
Type of Change
Checklist
AI Usage