Skip to main content

simple/
simple.rs

1use std::env;
2
3use boppo_core::color;
4use boppo_websocket::{
5    ButtonEvents,
6    audio::{play, stop_all_sounds},
7    connect_and_setup_globals,
8};
9
10#[tokio::main]
11async fn main() {
12    if env::args().len() != 3 {
13        panic!("usage: simple <hostname> <password>");
14    }
15    let url = env::args().nth(1).unwrap();
16    let password = env::args().nth(2).unwrap();
17    connect_and_setup_globals(&url, &password)
18        .await
19        .expect("failed to connect");
20
21    let mut button_events = ButtonEvents::subscribe();
22    loop {
23        let event = button_events.next().await;
24        if event.is_pressed() {
25            event.button().set_color(color::BLUE);
26            stop_all_sounds().await.ok();
27            play("/effects/snare.qoa").await.ok();
28        } else {
29            event.button().set_color(color::OFF);
30        }
31    }
32}