From 7d6bdcca997a621b2c5ce180e9ed63a6d7427f45 Mon Sep 17 00:00:00 2001 From: unspeaker Date: Fri, 12 Jul 2024 20:01:40 +0300 Subject: [PATCH] scene playing indicator --- src/model/transport.rs | 6 +----- src/view/arranger.rs | 9 ++++++--- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/model/transport.rs b/src/model/transport.rs index 5f18181b..b1c4610f 100644 --- a/src/model/transport.rs +++ b/src/model/transport.rs @@ -1,11 +1,7 @@ use crate::core::*; #[derive(PartialEq)] -pub enum TransportFocus { - BPM, - Quant, - Sync, -} +pub enum TransportFocus { BPM, Quant, Sync } impl TransportFocus { pub fn prev (&mut self) { diff --git a/src/view/arranger.rs b/src/view/arranger.rs index 6f8a46b7..8a07d158 100644 --- a/src/view/arranger.rs +++ b/src/view/arranger.rs @@ -62,7 +62,12 @@ impl<'a> ArrangerView<'a> { (0 == self.cursor.0) && (scene_index + 1 == self.cursor.1) ).bold()); let y = 1 + y + 2 * scene_index as u16; - "⯈".blit(buf, x+1, y, style)?; + let playing = scene.clips.iter().enumerate() + .all(|(track_index, phrase_index)|match phrase_index { + Some(i) => self.tracks[track_index].sequence == Some(*i), + None => true + }); + if playing { "" } else { " " }.blit(buf, x+1, y, style)?; scene.name.blit(buf, x + 2, y, style)?; } let width = 2 + self.scenes.iter() @@ -117,8 +122,6 @@ impl<'a> ArrangerView<'a> { } fn draw_horizontal (&self, buf: &mut Buffer, area: Rect) -> Usually { - let style1 = Some(Style::default().bold().not_dim()); - let style2 = Some(Style::default().not_dim()); let style3 = Some(Style::default().yellow().bold().not_dim()); let style4 = Some(Style::default().dim()); let style5 = Some(Style::default().white().bold().not_dim());