Repository navigation
feat: in-app controller test screen - #127
Merged
Merged
Conversation
Menu → "Teste de controles…" lists every connected device (name, SDL type, family, VID:PID, gamepad or raw joystick, active) and shows each physical press with the semantic action it produced. Holding Confirm copies a plain-text report (no paths, GUIDs, serials or user names); holding Back or Esc leaves. The maintainer can run the #78 matrix without the .NET SDK. Refs #78 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Sep 27, 2026
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.
Summary
Lets the maintainer run the #78 hardware matrix on Windows without installing the .NET SDK (previously
dotnet run tools/ControlFS.InputProbe).ControllerTestModal,AppController.ControllerTest.cs):IControllerDiagnostics, implemented byInputHost): name, SDL gamepad type, detectedControllerFamily, VID:PID, gamepad or raw joystick (with saved profile, if any), virtual, active, and devices that disconnected during the session;physical control → InputAction(e.g.South (Botão A) → Confirm).InputHostbrackets each routed control withBeginTestInput/EndTestInput, so the action the realInputRouteremits is paired with the press; presses that produce nothing (other device active, raw joystick without profile) show "no action". Raw joysticks show the raw input (button 3,hat 1 ↑,axis 2 +), and with a profile the raw input and the translated control together. Nothing repeats and nothing executes on this screen.MainWindow(DataPackage+Flush), exposed to the controller asAppController.CopyText. UI additions are limited to one modal builder inModalViewand two lines inMainWindow.docs/controller-compatibility.mdanddocs/TESTING.mdnow have a step-by-step for the maintainer (which controllers, what to press, expected actions, paste the report as a comment on test: validate the controller matrix on real hardware #78); GUIDE pair and both changelogs updated.Tests
ControllerTestJourneyTestsdrives the screen through the menu with the realInputRouter: short presses only log (South → Confirm,East → Back,Start → OpenAppMenu), raw unprofiled input logs with no action, holding Confirm copies a report that contains the results and VID:PID but not the device path/serial or GUID, holding Back 1 s (not 0.5 s) closes.docs/TESTING.md): the actual matrix run, clipboard on real Windows, hot-plug and active-device display.Refs #78 (stays open: the hardware matrix needs the maintainer's controllers)
🤖 Generated with Claude Code