29 lines
1 KiB
Rust
29 lines
1 KiB
Rust
#![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<Vec<[f32; 4]>>, 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);
|
|
});
|
|
}
|
|
}
|