monome-rs 1.1.3

Talk to monome devices
Documentation
extern crate env_logger;
extern crate monome;
use std::{thread, time};

use monome::{Monome, MonomeEvent};

fn main() {
    env_logger::init();

    let mut monome = Monome::new("/prefix".to_string()).unwrap();

    println!("{:?}", monome);

    let mut led = [0.; 4];

    for i in 0..4 {
        monome.ring_all(i, 0);
        monome.ring_set(i, led[i] as u32, 15);
    }

    loop {
        loop {
            let e = monome.poll();

            match e {
                Some(MonomeEvent::EncoderDelta { n, delta }) => {
                    let n = n as usize;
                    monome.ring_set(n, led[n] as u32, 0);
                    led[n] = led[n] + (delta as f32 / 4.);
                    if led[n] < 0. {
                        led[n] += 64.;
                    }
                    monome.ring_set(n, led[n] as u32, 15);
                }
                _ => {
                    break;
                }
            }
        }

        let refresh = time::Duration::from_millis(10);
        thread::sleep(refresh);
    }
}