From 4c3ad62279becdcc8ced00b297693033e7803998 Mon Sep 17 00:00:00 2001 From: unspeaker Date: Fri, 4 Oct 2024 10:50:10 +0300 Subject: [PATCH] del removes clip from arrangement --- crates/tek_sequencer/src/sequencer.rs | 11 +++++++++++ crates/tek_sequencer/src/sequencer_tui.rs | 5 +++++ 2 files changed, 16 insertions(+) diff --git a/crates/tek_sequencer/src/sequencer.rs b/crates/tek_sequencer/src/sequencer.rs index 0d1b198c..b0ebf36b 100644 --- a/crates/tek_sequencer/src/sequencer.rs +++ b/crates/tek_sequencer/src/sequencer.rs @@ -138,6 +138,17 @@ impl Arranger { let track_id = self.selected.track()?; self.tracks.get(track_id)?.phrases.get((*self.scene()?.clips.get(track_id)?)?) } + pub fn phrase_del (&mut self) { + let track_index = self.selected.track(); + let scene_index = self.selected.scene(); + track_index + .and_then(|index|self.tracks.get_mut(index).map(|track|(index, track))) + .map(|(track_index, _)|{ + scene_index + .and_then(|index|self.scenes.get_mut(index)) + .map(|scene|scene.clips[track_index] = None); + }); + } pub fn phrase_next (&mut self) { let track_index = self.selected.track(); let scene_index = self.selected.scene(); diff --git a/crates/tek_sequencer/src/sequencer_tui.rs b/crates/tek_sequencer/src/sequencer_tui.rs index dc515fcd..ee8f6e0e 100644 --- a/crates/tek_sequencer/src/sequencer_tui.rs +++ b/crates/tek_sequencer/src/sequencer_tui.rs @@ -90,6 +90,11 @@ impl Handle for Arranger { }; self.show_phrase(); }, + // increment: remove clip + key!(KeyCode::Delete) => { + self.phrase_del(); + self.show_phrase(); + }, // increment: use next clip here key!(KeyCode::Char('.')) => { self.phrase_next();