[klout] .
This commit is contained in:
parent
73d86358d5
commit
863ace8c2c
|
|
@ -272,12 +272,53 @@ fn worker_thread_run(init: WorkerThreadInit) {
|
|||
}
|
||||
}
|
||||
|
||||
fn print_layout(layout: Layout) {
|
||||
let km = layout.to_key_matrix();
|
||||
for chunk in km.chunks(MATRIX_COUNT / 3) {
|
||||
for ch in chunk {
|
||||
print!("{ch}");
|
||||
}
|
||||
println!();
|
||||
}
|
||||
}
|
||||
|
||||
fn clear_screen() {
|
||||
print!("\x1B[2J\x1B[H");
|
||||
io::stdout().flush().unwrap();
|
||||
}
|
||||
|
||||
fn ui_thread_run(rx: Receiver<(f64, Layout)>) {
|
||||
for (eff, layout) in rx.iter() {
|
||||
clear_screen();
|
||||
print_layout(layout);
|
||||
println!("{eff}");
|
||||
}
|
||||
}
|
||||
|
||||
fn aggregator_thread_run(
|
||||
layout: Layout,
|
||||
rx: Receiver<(f64, Layout)>,
|
||||
tx: Sender<(f64, Layout)>,
|
||||
) {
|
||||
let mut best_layout = layout;
|
||||
let mut min_effort = f64::MAX;
|
||||
|
||||
for (eff, layout) in rx.iter() {
|
||||
if eff < min_effort {
|
||||
best_layout = layout;
|
||||
min_effort = eff;
|
||||
|
||||
tx.send((min_effort, best_layout)).unwrap();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn main() -> Result<()> {
|
||||
let (tx_agg, rx_agg) = std::sync::mpsc::channel();
|
||||
let (tx_ui, rx_ui) = std::sync::mpsc::channel();
|
||||
|
||||
let ui_thread = std::thread::spawn(|| {
|
||||
ui_thread_run(INITIAL_LAYOUT, rx_ui);
|
||||
ui_thread_run(rx_ui);
|
||||
});
|
||||
|
||||
let aggregator_thread = std::thread::spawn(|| {
|
||||
|
|
|
|||
Loading…
Reference in a new issue