From 47c13e19019edba6319730b7f938760128c87c6b Mon Sep 17 00:00:00 2001 From: unspeaker Date: Mon, 23 Dec 2024 21:52:21 +0100 Subject: [PATCH] reenable recoloring tracks --- crates/tek/src/tui/app_arranger.rs | 15 ++++++++++++--- crates/tek/src/tui/arranger_track.rs | 3 ++- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/crates/tek/src/tui/app_arranger.rs b/crates/tek/src/tui/app_arranger.rs index f8a8999a..5dfb11e7 100644 --- a/crates/tek/src/tui/app_arranger.rs +++ b/crates/tek/src/tui/app_arranger.rs @@ -179,7 +179,7 @@ handle!(|self: ArrangerTui, input|ArrangerCommand::execute_with_state(self, Editor(PhraseCommand), ShowPool(bool) } -input_to_command!(ArrangerCommand: |state:ArrangerTui,input|{ +input_to_command!(ArrangerCommand: |state: ArrangerTui, input|{ use ArrangerSelection as Selected; use ArrangerCommand::*; // WSAD navigation, Q launches, E edits, PgUp/Down pool, Arrows editor @@ -308,8 +308,17 @@ command!(|self:ArrangerSceneCommand,state:ArrangerTui|match self { }, _ => None }); -command!(|self:ArrangerTrackCommand,_state:ArrangerTui|None); -command!(|self:ArrangerClipCommand, _state:ArrangerTui|None); +command!(|self: ArrangerTrackCommand, state: ArrangerTui|match self { + Self::SetColor(index, color) => { + let old = state.tracks[index].color; + state.tracks[index].color = color; + Some(Self::SetColor(index, old)) + }, + _ => None +}); +command!(|self:ArrangerClipCommand, _state:ArrangerTui|match self { + _ => None +}); #[derive(Clone, Debug)] pub enum ArrangerClipCommand { Play, diff --git a/crates/tek/src/tui/arranger_track.rs b/crates/tek/src/tui/arranger_track.rs index d5f08186..8ce4f536 100644 --- a/crates/tek/src/tui/arranger_track.rs +++ b/crates/tek/src/tui/arranger_track.rs @@ -102,11 +102,11 @@ impl ArrangerTrack { pub enum ArrangerTrackCommand { Add, Delete(usize), - RandomColor, Stop, Swap(usize, usize), SetSize(usize), SetZoom(usize), + SetColor(usize, ItemPalette), } /// Hosts the JACK callback for a collection of tracks @@ -140,6 +140,7 @@ pub fn to_arranger_track_command (input: &TuiInput, t: usize, len: usize) -> Opt key_pat!(Char('s')) => Select(Selected::Clip(t, 0)), key_pat!(Char('a')) => Select(if t > 0 { Selected::Track(t - 1) } else { Selected::Mix }), key_pat!(Char('d')) => Select(Selected::Track((t + 1) % len)), + key_pat!(Char('c')) => Track(Tracks::SetColor(t, ItemPalette::random())), key_pat!(Char(',')) => Track(Tracks::Swap(t, t - 1)), key_pat!(Char('.')) => Track(Tracks::Swap(t, t + 1)), key_pat!(Char('<')) => Track(Tracks::Swap(t, t - 1)),