Skip to content

Latest commit

 

History

History
41 lines (33 loc) · 1.94 KB

File metadata and controls

41 lines (33 loc) · 1.94 KB

TODO

This page tracks known compatibility work that is larger than a small report packing fix. Keep entries here until the repo has a validated implementation path and consumer tests or manual validation prove the behavior.

Controller Capture Tooling

Status: proposed.

Manual capture files are useful while debugging controller compatibility, but hand-curated JSON is not a durable source-control artifact. Future captures should be generated by the same tool that users run, with a documented schema and predictable redaction behavior.

Proposed solution:

  1. Add a capture/export mode to virtualhid_control that can enumerate connected HID/gamepad devices, let the user select one, and save a JSON capture file.
  2. Make the capture schema useful for any controller type, not only the profiles currently implemented by libvirtualhid.
  3. Record stable evidence by default: VID/PID, release number, manufacturer, product, transport, HID descriptor/report metadata, supported feature/output report IDs, public PnP compatible IDs, and consumer observations when the tool can collect them.
  4. Redact machine-unique values by default, including instance IDs, serial-like values, Bluetooth addresses, container IDs, local file paths, and driver INF names. Add an explicit unsafe/debug option only if raw local evidence is needed.
  5. Keep JSON support scoped to the tool target. If this is implemented in C++, prefer nlohmann/json, but do not expose that dependency through the public libvirtualhid API.
  6. Treat generated capture files as local debugging artifacts by default. Only commit a generated capture later if it is reproducible, sanitized, and used by tests or documentation in a way that justifies keeping it.

PlayStation and Nintendo Rumble

Status: native output-path validation and the remaining Steam and Chromium consumer gaps are tracked in GitHub issue #80.