This commit is contained in:
parent
80fb12db49
commit
51d25b4303
@ -103,7 +103,7 @@ fn ligth_controll(
|
||||
},
|
||||
Action::Stop => {
|
||||
render.blank();
|
||||
render.render();
|
||||
render.im_render();
|
||||
break 'mainloop;
|
||||
},
|
||||
}
|
||||
|
@ -52,6 +52,11 @@ pub struct Render {
|
||||
local_led_config: Vec<LocalLedConfiguration>,
|
||||
}
|
||||
|
||||
struct GetRender {
|
||||
data: Vec<RGB<f64>>,
|
||||
delta: u128,
|
||||
}
|
||||
|
||||
fn try_into_usize (input: Option<u32>) -> Option<usize> {
|
||||
if input.is_none() {return None;}
|
||||
|
||||
@ -230,9 +235,7 @@ impl Render {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn render(&mut self) {
|
||||
|
||||
if self.ws.is_none() { return; }
|
||||
fn get_render(&mut self) -> GetRender {
|
||||
|
||||
let mut data: Vec<RGB<f64>> = vec![RGB::default(); self.num_leds.try_into().unwrap()];
|
||||
|
||||
@ -290,6 +293,21 @@ impl Render {
|
||||
|
||||
to_clean.iter().for_each(|i| self.remove_animation(i.to_string()));
|
||||
|
||||
return GetRender {
|
||||
data,
|
||||
delta
|
||||
};
|
||||
}
|
||||
|
||||
pub fn render(&mut self) {
|
||||
|
||||
if self.ws.is_none() { return; }
|
||||
|
||||
let get_render = self.get_render();
|
||||
|
||||
let data = get_render.data;
|
||||
let delta = get_render.delta;
|
||||
|
||||
if self.last.is_empty() || !self.last.clone().iter().eq(data.clone().iter()) {
|
||||
|
||||
if self.last.len() == 0 {
|
||||
@ -313,6 +331,31 @@ impl Render {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
pub fn im_render(&mut self) {
|
||||
|
||||
if self.ws.is_none() { return; }
|
||||
|
||||
let data = self.get_render().data;
|
||||
|
||||
if self.last.is_empty() || !self.last.clone().iter().eq(data.clone().iter()) {
|
||||
|
||||
if self.last.len() == 0 {
|
||||
self.last = data.clone();
|
||||
}
|
||||
|
||||
let to_set_data: Vec<RGB<u8>> = rgbs_f64_to_u8(&data);
|
||||
|
||||
let err = self.ws.as_mut().unwrap().write(to_set_data.into_iter());
|
||||
|
||||
if err.is_err() || err.ok().is_none() {
|
||||
println!("Failed to write data");
|
||||
}
|
||||
|
||||
self.last = data;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
pub fn rgbs_f64_to_u8(data: &Vec<RGB<f64>>) -> Vec<RGB<u8>>{
|
||||
|
Loading…
Reference in New Issue
Block a user