1d_rainbow/
1d-rainbow.rs

1use blinksy::{
2    layout::Layout1d,
3    layout1d,
4    patterns::rainbow::{Rainbow, RainbowParams},
5    ControlBuilder,
6};
7use blinksy_desktop::{
8    driver::{Desktop, DesktopError},
9    time::elapsed_in_ms,
10};
11use std::{thread::sleep, time::Duration};
12
13layout1d!(StripLayout, 30);
14
15fn main() {
16    Desktop::new_1d::<StripLayout>().start(|driver| {
17        let mut control = ControlBuilder::new_1d()
18            .with_layout::<StripLayout, { StripLayout::PIXEL_COUNT }>()
19            .with_pattern::<Rainbow>(RainbowParams {
20                ..Default::default()
21            })
22            .with_driver(driver)
23            .with_frame_buffer_size::<{ StripLayout::PIXEL_COUNT }>()
24            .build();
25
26        loop {
27            if let Err(DesktopError::WindowClosed) = control.tick(elapsed_in_ms()) {
28                break;
29            }
30
31            sleep(Duration::from_millis(16));
32        }
33    });
34}