rebind sequencer keys

This commit is contained in:
🪞👃🪞 2024-10-23 20:19:51 +03:00
parent 27b1c27891
commit 98fa0c4c4f
4 changed files with 31 additions and 17 deletions

View file

@ -266,6 +266,12 @@ impl<E: Engine> Arrangement<E> {
} }
} }
} }
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 { pub fn is_first_row (&self) -> bool {
let selected = self.selected; let selected = self.selected;
selected.is_mix() || selected.is_track() selected.is_mix() || selected.is_track()

View file

@ -81,6 +81,10 @@ impl Handle<Tui> for Arrangement<Tui> {
key!(KeyCode::Enter) => { self.activate(); }, key!(KeyCode::Enter) => { self.activate(); },
key!(KeyCode::Char('.')) => { self.increment(); }, key!(KeyCode::Char('.')) => { self.increment(); },
key!(KeyCode::Char(',')) => { self.decrement(); }, 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_back(); },
key!(KeyCode::Char('>')) => { self.move_forward(); }, key!(KeyCode::Char('>')) => { self.move_forward(); },
key!(KeyCode::Char('c')) => { self.randomize_color(); }, key!(KeyCode::Char('c')) => { self.randomize_color(); },

View file

@ -42,7 +42,7 @@ impl Content for ArrangerStatusBar {
Self::ArrangementMix => command(&[ Self::ArrangementMix => command(&[
["", "c", "olor"], ["", "c", "olor"],
["", ",.", "scale rows"], ["", ",.", "scale rows"],
["", "<>", "resize view"], ["", "+-", "resize view"],
]), ]),
Self::ArrangementClip => command(&[ Self::ArrangementClip => command(&[
["", "g", "et"], ["", "g", "et"],
@ -71,19 +71,19 @@ impl Content for ArrangerStatusBar {
["re", "n", "ame"], ["re", "n", "ame"],
["leng", "t", "h"], ["leng", "t", "h"],
["", ",.", "move"], ["", ",.", "move"],
["", "<>", "resize view"], ["", "+-", "resize view"],
]), ]),
Self::PhraseView => command(&[ Self::PhraseView => command(&[
["", "enter", " edit"], ["", "enter", " edit"],
["", "arrows/pgup/pgdn", " scroll"], ["", "arrows/pgup/pgdn", " scroll"],
["", ",.", "zoom"], ["", "+=", "zoom"],
]), ]),
Self::PhraseEdit => command(&[ Self::PhraseEdit => command(&[
["", "esc", " exit"], ["", "esc", " exit"],
["", "a", "ppend"], ["", "a", "ppend"],
["", "s", "et"], ["", "s", "et"],
["", ",.", "length"], ["", "][", "length"],
["", "<>", "zoom"], ["", "+-", "zoom"],
]), ]),
_ => command(&[]) _ => command(&[])
}; };
@ -259,13 +259,13 @@ impl<'a> Content for VerticalArranger<'a, Tui> {
to.render_in(clip_area, &CORNERS)?; to.render_in(clip_area, &CORNERS)?;
//to.fill_bg(clip_area, Color::Rgb(40, 50, 30)); //to.fill_bg(clip_area, Color::Rgb(40, 50, 30));
} else if let Some(track_area) = track_area { } 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)); //to.fill_bg(track_area, Color::Rgb(40, 50, 30));
} else if let Some(scene_area) = scene_area { } else if let Some(scene_area) = scene_area {
to.render_in(scene_area.clip_w(offset-1), &CORNERS)?; to.render_in(scene_area.clip_w(offset-1), &CORNERS)?;
//to.fill_bg(scene_area, Color::Rgb(40, 50, 30)); //to.fill_bg(scene_area, Color::Rgb(40, 50, 30));
} else { } 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(()) Ok(())

View file

@ -107,19 +107,23 @@ impl Handle<Tui> for PhraseEditor<Tui> {
true => { self.time_axis.point_inc(self.time_axis.scale); }, true => { self.time_axis.point_inc(self.time_axis.scale); },
false => { self.time_axis.start_inc(self.time_axis.scale); }, false => { self.time_axis.start_inc(self.time_axis.scale); },
}, },
key!(KeyCode::Char('>')) => { key!(KeyCode::Char('-')) => {
self.time_axis.scale = prev_note_length(self.time_axis.scale)
},
key!(KeyCode::Char('<')) => {
self.time_axis.scale = next_note_length(self.time_axis.scale) self.time_axis.scale = next_note_length(self.time_axis.scale)
}, },
key!(KeyCode::Char(',')) => match self.entered { key!(KeyCode::Char('_')) => {
true => { self.note_len = prev_note_length(self.note_len) }, self.time_axis.scale = next_note_length(self.time_axis.scale)
false => { self.time_axis.scale = next_note_length(self.time_axis.scale) },
}, },
key!(KeyCode::Char('.')) => match self.entered { key!(KeyCode::Char('=')) => {
true => { self.note_len = next_note_length(self.note_len) }, self.time_axis.scale = prev_note_length(self.time_axis.scale)
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('[')) => 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 { key!(KeyCode::Char('a')) => if self.entered {
self.put(); self.put();