Files
guac-rs/cli/src/main.rs
T
2026-05-19 00:47:37 -07:00

28 lines
879 B
Rust

use async_hid::{AsyncHidRead, HidBackend, HidResult};
use deku::DekuContainerRead;
use futures_lite::StreamExt;
use shared::hid::AudioTelemetryReport;
#[pollster::main]
async fn main() -> HidResult<()> {
let usbhid = HidBackend::default();
let dev = usbhid
.enumerate()
.await?
.find(|d| d.product_id == 0xcc1d && d.vendor_id == 0x1209)
.await
.expect("GUAC device not found or not accessible (try as root?)");
let mut reader = dev.open_readable().await?;
let mut buf = [0u8; core::mem::size_of::<AudioTelemetryReport>()];
while let Ok(r) = reader.read_input_report(&mut buf).await {
let buf = &buf[..r];
match AudioTelemetryReport::from_bytes((buf, 0)) {
Ok((_, r)) => println!("{:?}", r),
Err(e) => eprintln!("Unable to parse report: {:?}", e),
}
}
Ok(())
}