From be625dc771273289d2d9681c02e8e767c3ffbc2f Mon Sep 17 00:00:00 2001 From: jamie Date: Sun, 16 Aug 2026 21:20:57 +0100 Subject: chore: init --- src/main.rs | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/main.rs (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..4648631 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,46 @@ +//! mmx150 — battery and connection monitoring for the beyerdynamic MMX 150 +//! wireless dongle. + +use std::process::ExitCode; + +fn main() -> ExitCode { + let args: Vec = std::env::args().skip(1).collect(); + match args.first().map(String::as_str) { + Some("status") => cmd_status(), + Some("daemon") => cmd_daemon(), + Some("probe") => cmd_probe(), + _ => { + eprintln!("usage: mmx150 "); + ExitCode::FAILURE + } + } +} + +fn cmd_status() -> ExitCode { + match mmx150::hid::find_mmx150() { + Ok(Some(dev)) => { + println!("dongle: {} ({}:{:04x})", dev.name, dev.vid, dev.pid); + println!("connection: unknown (protocol reverse-engineering in progress)"); + println!("battery: unknown"); + ExitCode::SUCCESS + } + Ok(None) => { + eprintln!("dongle not found"); + ExitCode::FAILURE + } + Err(e) => { + eprintln!("error: {e}"); + ExitCode::FAILURE + } + } +} + +fn cmd_daemon() -> ExitCode { + eprintln!("daemon not implemented yet"); + ExitCode::FAILURE +} + +fn cmd_probe() -> ExitCode { + eprintln!("use `mmx150-probe` binary instead"); + ExitCode::FAILURE +} -- cgit v1.3.1