#![allow(non_camel_case_types)] use std::{sync::mpsc::Sender, thread, time::{Duration, Instant}}; use crate::{fileparser, input::Input, parser}; impl Input { pub fn file(tx: Sender>, path: String) { thread::spawn(move || { let Ok(rawbytes) = fileparser::parse(&path) else { println!("File not found"); std::process::exit(1) }; for frame in rawbytes.chunks(720) { let st = Instant::now(); let r = parser::parseleds( frame.to_vec(), parser::ParserOptions::default() .mirror(true) .double(true) .offset(15), ); let _ = tx.send(r); if Duration::from_secs_f32(1.0 / 60.0) > st.elapsed() { thread::sleep(Duration::from_secs_f32(1.0 / 60.0) - st.elapsed()); }; } std::process::exit(0); }); } }