del removes clip from arrangement

This commit is contained in:
🪞👃🪞 2024-10-04 10:50:10 +03:00
parent 4e033da2b4
commit 4c3ad62279
2 changed files with 16 additions and 0 deletions

View file

@ -138,6 +138,17 @@ impl<E: Engine> Arranger<E> {
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();

View file

@ -90,6 +90,11 @@ impl Handle<Tui> for Arranger<Tui> {
};
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();