From 3797528b59cfbadc339ede466d1a7c361299dfa0 Mon Sep 17 00:00:00 2001 From: Alex van de Sandt Date: Thu, 7 May 2026 13:04:50 -0500 Subject: [PATCH] Add volume example --- examples/volume.rs | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 examples/volume.rs diff --git a/examples/volume.rs b/examples/volume.rs new file mode 100644 index 0000000..e353f45 --- /dev/null +++ b/examples/volume.rs @@ -0,0 +1,36 @@ +use arctictis::{ + Command, Scanner, + bc125at::{GetVolumeLevel, SetVolumeLevel, VolumeLevel}, +}; + +#[tokio::main] +async fn main() -> Result<(), Box> { + let volume = std::env::args() + .nth(1) + .expect("usage: `volume `") + .parse() + .expect("volume should be a number between 0-15"); + let volume = VolumeLevel::new(volume).expect("invalid volume"); + + let mut scanner = Scanner::open()?; + println!("{scanner:#?}"); + print_response(&mut scanner, GetVolumeLevel).await?; + print_response(&mut scanner, SetVolumeLevel(volume)).await?; + print_response(&mut scanner, GetVolumeLevel).await?; + + Ok(()) +} + +async fn print_response( + scanner: &mut Scanner, + cmd: Cmd, +) -> Result<(), Box> +where + Cmd: Command + 'static, + Cmd::Response: std::fmt::Debug, +{ + let name = String::from_utf8_lossy(Cmd::TEXT); + let r = scanner.command(cmd).await?; + println!("{name} => {r:?}"); + Ok(()) +} -- 2.51.2