From 98fa0c4c4f94ccb2d4285d27b264153199dbe089 Mon Sep 17 00:00:00 2001 From: unspeaker Date: Wed, 23 Oct 2024 20:19:51 +0300 Subject: [PATCH] rebind sequencer keys --- crates/tek_sequencer/src/arranger.rs | 6 ++++++ crates/tek_sequencer/src/arranger_cmd.rs | 4 ++++ crates/tek_sequencer/src/arranger_tui.rs | 14 ++++++------- crates/tek_sequencer/src/sequencer_cmd.rs | 24 +++++++++++++---------- 4 files changed, 31 insertions(+), 17 deletions(-) diff --git a/crates/tek_sequencer/src/arranger.rs b/crates/tek_sequencer/src/arranger.rs index 845750c7..21ff9d0d 100644 --- a/crates/tek_sequencer/src/arranger.rs +++ b/crates/tek_sequencer/src/arranger.rs @@ -266,6 +266,12 @@ impl Arrangement { } } } + pub fn zoom_in (&mut self) { + todo!("zoom in") + } + pub fn zoom_out (&mut self) { + todo!("zoom in") + } pub fn is_first_row (&self) -> bool { let selected = self.selected; selected.is_mix() || selected.is_track() diff --git a/crates/tek_sequencer/src/arranger_cmd.rs b/crates/tek_sequencer/src/arranger_cmd.rs index b677d22a..fd377dd2 100644 --- a/crates/tek_sequencer/src/arranger_cmd.rs +++ b/crates/tek_sequencer/src/arranger_cmd.rs @@ -81,6 +81,10 @@ impl Handle for Arrangement { key!(KeyCode::Enter) => { self.activate(); }, key!(KeyCode::Char('.')) => { self.increment(); }, key!(KeyCode::Char(',')) => { self.decrement(); }, + key!(KeyCode::Char('+')) => { self.zoom_in(); }, + key!(KeyCode::Char('=')) => { self.zoom_in(); }, + key!(KeyCode::Char('_')) => { self.zoom_out(); }, + key!(KeyCode::Char('-')) => { self.zoom_out(); }, key!(KeyCode::Char('<')) => { self.move_back(); }, key!(KeyCode::Char('>')) => { self.move_forward(); }, key!(KeyCode::Char('c')) => { self.randomize_color(); }, diff --git a/crates/tek_sequencer/src/arranger_tui.rs b/crates/tek_sequencer/src/arranger_tui.rs index 42e5116f..127d12de 100644 --- a/crates/tek_sequencer/src/arranger_tui.rs +++ b/crates/tek_sequencer/src/arranger_tui.rs @@ -42,7 +42,7 @@ impl Content for ArrangerStatusBar { Self::ArrangementMix => command(&[ ["", "c", "olor"], ["", ",.", "scale rows"], - ["", "<>", "resize view"], + ["", "+-", "resize view"], ]), Self::ArrangementClip => command(&[ ["", "g", "et"], @@ -71,19 +71,19 @@ impl Content for ArrangerStatusBar { ["re", "n", "ame"], ["leng", "t", "h"], ["", ",.", "move"], - ["", "<>", "resize view"], + ["", "+-", "resize view"], ]), Self::PhraseView => command(&[ ["", "enter", " edit"], ["", "arrows/pgup/pgdn", " scroll"], - ["", ",.", "zoom"], + ["", "+=", "zoom"], ]), Self::PhraseEdit => command(&[ ["", "esc", " exit"], ["", "a", "ppend"], ["", "s", "et"], - ["", ",.", "length"], - ["", "<>", "zoom"], + ["", "][", "length"], + ["", "+-", "zoom"], ]), _ => command(&[]) }; @@ -259,13 +259,13 @@ impl<'a> Content for VerticalArranger<'a, Tui> { to.render_in(clip_area, &CORNERS)?; //to.fill_bg(clip_area, Color::Rgb(40, 50, 30)); } else if let Some(track_area) = track_area { - to.render_in(track_area.clip_h(2u16), &CORNERS)?; + to.render_in(track_area.clip_h(2), &CORNERS)?; //to.fill_bg(track_area, Color::Rgb(40, 50, 30)); } else if let Some(scene_area) = scene_area { to.render_in(scene_area.clip_w(offset-1), &CORNERS)?; //to.fill_bg(scene_area, Color::Rgb(40, 50, 30)); } else { - to.render_in(area.clip_w(offset-1).clip_h(2u16), &CORNERS)?; + to.render_in(area.clip_w(offset-1).clip_h(2), &CORNERS)?; } } Ok(()) diff --git a/crates/tek_sequencer/src/sequencer_cmd.rs b/crates/tek_sequencer/src/sequencer_cmd.rs index 18e9dd31..74b2b215 100644 --- a/crates/tek_sequencer/src/sequencer_cmd.rs +++ b/crates/tek_sequencer/src/sequencer_cmd.rs @@ -107,19 +107,23 @@ impl Handle for PhraseEditor { true => { self.time_axis.point_inc(self.time_axis.scale); }, false => { self.time_axis.start_inc(self.time_axis.scale); }, }, - key!(KeyCode::Char('>')) => { - self.time_axis.scale = prev_note_length(self.time_axis.scale) - }, - key!(KeyCode::Char('<')) => { + key!(KeyCode::Char('-')) => { self.time_axis.scale = next_note_length(self.time_axis.scale) }, - key!(KeyCode::Char(',')) => match self.entered { - true => { self.note_len = prev_note_length(self.note_len) }, - false => { self.time_axis.scale = next_note_length(self.time_axis.scale) }, + key!(KeyCode::Char('_')) => { + self.time_axis.scale = next_note_length(self.time_axis.scale) }, - key!(KeyCode::Char('.')) => match self.entered { - true => { self.note_len = next_note_length(self.note_len) }, - false => { self.time_axis.scale = prev_note_length(self.time_axis.scale) }, + key!(KeyCode::Char('=')) => { + self.time_axis.scale = prev_note_length(self.time_axis.scale) + }, + key!(KeyCode::Char('+')) => { + self.time_axis.scale = prev_note_length(self.time_axis.scale) + }, + key!(KeyCode::Char('[')) => if self.entered { + self.note_len = prev_note_length(self.note_len) + }, + key!(KeyCode::Char(']')) => if self.entered { + self.note_len = next_note_length(self.note_len) }, key!(KeyCode::Char('a')) => if self.entered { self.put();