I am working on a program that sets my hue lights to the color of pixels on my screen. While working on this I have added a println! to print the rgb values I send to the hue bridge, but after doing so, it eats up my RAM in less than a minute.
The offending part of a code:```rs
let mut loop_body = async || {
let frame = match capturer.get_next_frame() {
Err(e) => {
dbg_print!("{e}");
return;
}
Ok(frame) => frame,
};
let Frame::BGRx(frame) = frame else {
return;
};
let middle_pixel_index: usize = (4 * frame.width * (frame.height / 2)) as usize;
let [r, g, b]: &[u8; 3] = &frame.data[middle_pixel_index..middle_pixel_index + 3]
.try_into()
.unwrap();
let r: u16 = *r as u16 * 255;
let g: u16 = *g as u16 * 255;
let b: u16 = *b as u16 * 255;
println!("{r} {g} {b}"); // IF left uncommented, leaks memory
let colors = &[Color::new(r, g, b), Color::new(r, g, b)];
if let Err(e) = hue_entertainment.send_colors(colors).await {
dbg_print!("{e}");
}
};
loop {
select! {
_ = &mut shutdown => { break }
_ = ticker.tick() => loop_body().await
}
}
You can see the whole code base here: https://github.com/kiselina2/mood/tree/master/src there isnt much yet.
GitHub
Contribute to kiselina2/mood development by creating an account on GitHub.