launch clips

This commit is contained in:
🪞👃🪞 2024-06-30 21:20:57 +03:00
parent 8a2693c297
commit a4061535b5
7 changed files with 117 additions and 28 deletions

View file

@ -43,12 +43,31 @@ pub const KEYMAP_TRACKS: &'static [KeyBinding<Launcher>] = keymap!(Launcher {
[Char(','), NONE, "clip_prev", "set clip to last phrase", clip_prev],
[Delete, CONTROL, "delete_track", "delete track", delete_track],
[Char('d'), CONTROL, "duplicate", "duplicate scene or track", duplicate],
[Enter, NONE, "clip_enter", "play or record clip or stop and advance", clip_enter],
[Enter, NONE, "activate", "activate item at cursor", activate],
});
fn duplicate (_: &mut Launcher) -> Usually<bool> {
Ok(true)
}
fn clip_enter (_: &mut Launcher) -> Usually<bool> {
fn activate (state: &mut Launcher) -> Usually<bool> {
if let (
Some((scene_id, scene)),
Some((track_id, track)),
) = (state.scene(), state.track()) {
// Launch clip
if let Some(Some(phrase_id)) = scene.clips.get(track_id) {
track.sequencer.state().sequence = *phrase_id;
}
} else if let Some((scene_id, scene)) = state.scene() {
// Launch scene
for (track_id, track) in state.tracks.iter().enumerate() {
if let Some(Some(phrase_id)) = scene.clips.get(track_id) {
track.sequencer.state().sequence = *phrase_id;
}
}
} else if let Some((track_id, track)) = state.track() {
// Rename track?
}
//let track = state.active_track().unwrap();
//let scene = state.active_scene();
//if state.cursor.1 >= 2 {