mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-06 03:36:41 +01:00
implement phrase_next/phrase_prev
This commit is contained in:
parent
05e0299f5f
commit
6accb265d9
1 changed files with 22 additions and 44 deletions
|
|
@ -309,52 +309,30 @@ impl<E: Engine> Arrangement<E> {
|
|||
}
|
||||
}
|
||||
pub fn phrase_next (&mut self) {
|
||||
todo!("phrase_next");
|
||||
//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)))
|
||||
//.and_then(|(track_index, track)|{
|
||||
//let phrases = track.phrases.len();
|
||||
//scene_index
|
||||
//.and_then(|index|self.scenes.get_mut(index))
|
||||
//.and_then(|scene|{
|
||||
//if let Some(phrase_index) = scene.clips[track_index] {
|
||||
//if phrase_index >= phrases - 1 {
|
||||
//scene.clips[track_index] = None;
|
||||
//} else {
|
||||
//scene.clips[track_index] = Some(phrase_index + 1);
|
||||
//}
|
||||
//} else if phrases > 0 {
|
||||
//scene.clips[track_index] = Some(0);
|
||||
//}
|
||||
//Some(())
|
||||
//})
|
||||
//});
|
||||
if let ArrangementFocus::Clip(track, scene) = self.selected {
|
||||
if let Some(ref mut phrase) = self.scenes[scene].clips[track] {
|
||||
let phrases = self.phrases.read().unwrap();
|
||||
let index = phrases.index_of(&*phrase.read().unwrap());
|
||||
if let Some(index) = index {
|
||||
if index < phrases.phrases.len().saturating_sub(1) {
|
||||
*phrase = phrases.phrases[index + 1].clone();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
pub fn phrase_prev (&mut self) {
|
||||
todo!("phrase_prev");
|
||||
//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)))
|
||||
//.and_then(|(track_index, track)|{
|
||||
//let phrases = track.phrases.len();
|
||||
//scene_index
|
||||
//.and_then(|index|self.scenes.get_mut(index))
|
||||
//.and_then(|scene|{
|
||||
//if let Some(phrase_index) = scene.clips[track_index] {
|
||||
//scene.clips[track_index] = if phrase_index == 0 {
|
||||
//None
|
||||
//} else {
|
||||
//Some(phrase_index - 1)
|
||||
//};
|
||||
//} else if phrases > 0 {
|
||||
//scene.clips[track_index] = Some(phrases - 1);
|
||||
//}
|
||||
//Some(())
|
||||
//})
|
||||
//});
|
||||
if let ArrangementFocus::Clip(track, scene) = self.selected {
|
||||
if let Some(ref mut phrase) = self.scenes[scene].clips[track] {
|
||||
let phrases = self.phrases.read().unwrap();
|
||||
let index = phrases.index_of(&*phrase.read().unwrap());
|
||||
if let Some(index) = index {
|
||||
if index > 0 {
|
||||
*phrase = phrases.phrases[index - 1].clone();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
impl<E: Engine> ArrangementTrack<E> {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue