aboutsummaryrefslogtreecommitdiff
path: root/src/protocol.rs
diff options
context:
space:
mode:
authorjamie <git@skilet.ro>2026-08-16 21:20:57 +0100
committerjamie <git@skilet.ro>2026-08-29 22:06:00 +0100
commitbe625dc771273289d2d9681c02e8e767c3ffbc2f (patch)
treefefe0acaa9c5a8307d5a2ad91dcfa507cc54e969 /src/protocol.rs
chore: init
Diffstat (limited to '')
-rw-r--r--src/protocol.rs23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/protocol.rs b/src/protocol.rs
new file mode 100644
index 0000000..5402e16
--- /dev/null
+++ b/src/protocol.rs
@@ -0,0 +1,23 @@
+//! Status protocol for the MMX 150 wireless dongle (reverse-engineered).
+//!
+//! Placeholder: the dongle rejects `GET_FEATURE`/`GET_INPUT` control
+//! transfers, so the status query is a write-then-read exchange over the
+//! vendor output/feature reports. The exact command bytes and the response
+//! layout for battery level and headset link state are being determined in
+//! Phase 1 (see `src/bin/probe.rs`).
+
+/// Vendor output report IDs available on the dongle.
+pub mod reports {
+ /// 60-byte output/feature report.
+ pub const OUT_60_A: u8 = 0x2a;
+ /// 60-byte feature report.
+ pub const FEAT_60_B: u8 = 0x2b;
+ /// 60-byte output/feature report.
+ pub const OUT_60_C: u8 = 0x3a;
+ /// 60-byte feature report.
+ pub const FEAT_60_D: u8 = 0x3b;
+ /// 16-byte output report.
+ pub const OUT_16_A: u8 = 0x2d;
+ /// 16-byte output report.
+ pub const OUT_16_B: u8 = 0x3d;
+}