From 02a4cf8a0a43d32340d00cf107a6499c617e2a1d Mon Sep 17 00:00:00 2001 From: unspeaker Date: Sat, 2 Nov 2024 16:47:52 +0200 Subject: [PATCH] show playing phrases in light color --- crates/tek_sequencer/src/arranger_tui.rs | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/crates/tek_sequencer/src/arranger_tui.rs b/crates/tek_sequencer/src/arranger_tui.rs index a7cbdba4..24ee652e 100644 --- a/crates/tek_sequencer/src/arranger_tui.rs +++ b/crates/tek_sequencer/src/arranger_tui.rs @@ -229,18 +229,27 @@ impl<'a> Content for VerticalArranger<'a, Tui> { ).fixed_xy(scene_title_w, height); // scene clips let scene_clip = |scene, track: usize, w: u16, h: u16|Layers::new(move |add|{ - let mut color = clip_bg; + let mut bg = clip_bg; match (tracks.get(track), (scene as &Scene).clips.get(track)) { - (Some(_), Some(Some(phrase))) => { + (Some(track), Some(Some(phrase))) => { let name = &(phrase as &Arc>).read().unwrap().name; let name = format!("{}", name); let max_w = name.len().min((w as usize).saturating_sub(2)); + let color = phrase.read().unwrap().color; add(&name.as_str()[0..max_w].push_x(1).fixed_x(w))?; - color = (phrase as &Arc>).read().unwrap().color.base.rgb; + bg = if let Some((_, Some(ref playing))) = track.player.phrase { + if *playing.read().unwrap() == *phrase.read().unwrap() { + color.light.rgb + } else { + color.dark.rgb + } + } else { + color.dark.rgb + }; }, _ => {} }; - add(&Background(color)) + add(&Background(bg)) }).fixed_xy(w, h); // tracks and scenes let content = col!(