Repository navigation
Fix full-width dial reports and held-rotation event ordering - #10
Open
Lightmarey wants to merge 1 commit into
Open
Lightmarey wants to merge 1 commit into
Lightmarey wants to merge 1 commit into
Conversation
Decode 01/0A reports as signed 16-bit little-endian deltas. Emit button edges before held rotation and after release rotation, retaining Rotate(i)/Press(i). Ignore unrelated reports and exit on disconnected input so a session supervisor can reconnect. Add a notification opt-out and standalone report regression tests.
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 free
to 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.
On ASUS2020 firmware that emits report 0x0A, rotations are signed 16-bit little-endian values. The daemon currently checks only one byte for 1/255, and sends rotation before button-down. That loses larger deltas and prevents consumers from treating the first held rotation as fine adjustment.
Decode reports 0x01/0x0A, forward their full signed delta through the existing
Rotate(i)signal, emit onlyPress(i)edges, and order press-down before rotation and release after rotation. Unrelated reports are ignored. EOF/read failures exit with failure so a session supervisor can reconnect.--no-notifyallows a native frontend to suppress the startup notification; the default notification behavior is preserved.The existing bus name, path, interface and signal signatures are unchanged. This patch is independent of the GNOME frontend and does not add Qt dependencies to the daemon.
Validation:
BUILD_GADGET=OFF,BUILD_TESTS=ON; all six CTest entries pass, including the existing Qt rotation suite.Known validation boundary: hardware replay was captured from report 0x0A firmware. Report 0x01 and larger deltas have synthetic coverage; other laptop models still need hardware confirmation. The KDE graphical gadget was not launched during this test.