arranger: fix t keybind on main (thx @magicpotatobean)

This commit is contained in:
🪞👃🪞 2025-05-09 21:43:07 +03:00
parent 75f8fd8746
commit e684415c2f
3 changed files with 17 additions and 1 deletions

View file

@ -1,6 +1,6 @@
(@c color)
(@q launch)
(@t select :track 0)
(@t select :select-track-header)
(@tab edit :clip)
(@shift-I input add)
(@shift-O output add)

View file

@ -131,6 +131,9 @@ handle!(TuiIn: |self: App, input|Ok(if let Some(command) = self.config.keys.comm
fn select_scene_prev (&self) -> Selection {
self.selected.scene_prev()
}
fn select_track_header (&self) -> Selection {
self.selected.track_header(self.tracks.len())
}
fn select_track_next (&self) -> Selection {
self.selected.track_next(self.tracks.len())
}
@ -373,16 +376,19 @@ impl<'state> Context<'state, ClockCommand> for App {
Context::get(&self.clock, iter)
}
}
impl<'state> Context<'state, MidiEditCommand> for App {
fn get <'source> (&'state self, iter: &mut TokenIter<'source>) -> Option<MidiEditCommand> {
self.editor().map(|e|Context::get(e, iter)).flatten()
}
}
impl<'state> Context<'state, PoolCommand> for App {
fn get <'source> (&'state self, iter: &mut TokenIter<'source>) -> Option<PoolCommand> {
self.pool().map(|p|Context::get(p, iter)).flatten()
}
}
impl<'state> Context<'state, SamplerCommand> for App {
fn get <'source> (&'state self, iter: &mut TokenIter<'source>) -> Option<SamplerCommand> {
self.sampler().map(|p|Context::get(p, iter)).flatten()

View file

@ -53,6 +53,16 @@ impl Selection {
_ => None
}
}
pub fn track_header (&self, track_count: usize) -> Self {
use Selection::*;
match self {
Mix => Track(0),
Scene(_) => Mix,
Track(t) => Track((t + 1) % track_count),
TrackClip { track, .. } => Track(*track),
_ => todo!(),
}
}
pub fn track_next (&self, len: usize) -> Self {
use Selection::*;
match self {