Skip to content

feat: USB 入力レポートの純関数デコーダーを追加 - #13

Merged
torabit merged 1 commit into
mainfrom
torabit/feat/report-decode
Sep 27, 2026
Merged

torabit merged 1 commit into
mainfrom
torabit/feat/report-decode

Conversation

@torabit

@torabit torabit commented Sep 27, 2026

Copy link
Copy Markdown
Owner

概要

USB 入力レポートを PadState に変換する純関数を追加しました。DualSense と DualShock 4 を扱います。

変更内容

  • Buttons を bitflags で定義し、ボタン、dpad、左スティック、時刻、連番を復号します。
  • DualShock 4 の SHARE は CREATE に対応づけました。
  • DualSense の byte 12 は読みません。実機ダンプで確認できた先頭 32 バイトから必要な値だけを読みます。
  • lib.rs から decoder を公開しました。report_decode.rs が使う外部依存は bitflags だけです。

検証

  • cargo fmt --check
  • cargo clippy --all-targets -- -D warnings
  • cargo test(9 件成功。DualSense の実機ダンプ 3 件、DualShock 4 の固定値、ボタン同時押し、dpad、異常入力を確認)
  • cargo coupling --check --min-grade=B --max-circular=0 ./src(Grade B、循環 0)

DualShock 4 のオフセットは実機で未検証です。DualSense の byte 32 以降もダンプがないため未検証です。

Closes #3

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@torabit torabit mentioned this pull request Sep 27, 2026
@torabit
torabit merged commit 1cf68ad into main Sep 27, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

report_decode

2 participants