Looks better now

This commit is contained in:
2026-01-26 01:02:18 +01:00
parent 87fd59549d
commit 4ae8e28b2f
4 changed files with 66 additions and 45 deletions

View File

@@ -1,3 +1,4 @@
use arc_swap::ArcSwap;
use crossbeam_channel::Sender;
use crossterm::event::{Event, KeyCode, KeyEvent, KeyEventKind, KeyModifiers};
use std::sync::atomic::{AtomicBool, Ordering};
@@ -21,7 +22,7 @@ pub struct InputContext<'a> {
pub link: &'a LinkState,
pub snapshot: &'a SequencerSnapshot,
pub playing: &'a Arc<AtomicBool>,
pub audio_tx: &'a Sender<AudioCommand>,
pub audio_tx: &'a ArcSwap<Sender<AudioCommand>>,
}
impl<'a> InputContext<'a> {
@@ -362,7 +363,7 @@ fn handle_modal_input(ctx: &mut InputContext, key: KeyEvent) -> InputResult {
if let Some(path) = sample_path {
let index = doux::loader::scan_samples_dir(&path);
let count = index.len();
let _ = ctx.audio_tx.send(AudioCommand::LoadSamples(index));
let _ = ctx.audio_tx.load().send(AudioCommand::LoadSamples(index));
ctx.app.audio.config.sample_count += count;
ctx.app.audio.add_sample_path(path);
ctx.dispatch(AppCommand::SetStatus(format!("Added {count} samples")));
@@ -515,7 +516,7 @@ fn handle_panel_input(ctx: &mut InputContext, key: KeyEvent) -> InputResult {
let idx = entry.index;
let cmd =
format!("/sound/{folder}/n/{idx}/gain/0.5/dur/1");
let _ = ctx.audio_tx.send(AudioCommand::Evaluate(cmd));
let _ = ctx.audio_tx.load().send(AudioCommand::Evaluate(cmd));
}
_ => state.toggle_expand(),
}
@@ -846,15 +847,16 @@ fn handle_engine_page(ctx: &mut InputContext, key: KeyEvent) -> InputResult {
}
}
KeyCode::Char('h') => {
let _ = ctx.audio_tx.send(AudioCommand::Hush);
let _ = ctx.audio_tx.load().send(AudioCommand::Hush);
}
KeyCode::Char('p') => {
let _ = ctx.audio_tx.send(AudioCommand::Panic);
let _ = ctx.audio_tx.load().send(AudioCommand::Panic);
}
KeyCode::Char('r') => ctx.app.metrics.peak_voices = 0,
KeyCode::Char('t') => {
let _ = ctx
.audio_tx
.load()
.send(AudioCommand::Evaluate("/sound/sine/dur/0.5/decay/0.2".into()));
}
_ => {}
@@ -986,7 +988,7 @@ fn load_project_samples(ctx: &mut InputContext) {
let index = doux::loader::scan_samples_dir(path);
let count = index.len();
total_count += count;
let _ = ctx.audio_tx.send(AudioCommand::LoadSamples(index));
let _ = ctx.audio_tx.load().send(AudioCommand::LoadSamples(index));
}
}