wip: enqueue synced (!!!)

This commit is contained in:
🪞👃🪞 2024-10-26 19:12:26 +03:00
parent 2d1c901b8c
commit 89dcc2afe2
5 changed files with 26 additions and 15 deletions

View file

@ -123,7 +123,7 @@ impl<E: Engine> Arranger<E> {
let mut app = Self {
focus_cursor: (0, 1),
phrases_split: 20,
arrangement_split: 20,
arrangement_split: 21,
editor: PhraseEditor::new(),
status: ArrangerStatusBar::ArrangementClip,
clock: if let Some(ref transport) = transport {
@ -237,13 +237,13 @@ impl<E: Engine> Arrangement<E> {
match self.selected {
ArrangementFocus::Scene(s) => {
for (t, track) in self.tracks.iter_mut().enumerate() {
track.player.phrase = self.scenes[s].clips[t].clone();
track.player.reset = true;
let start = self.clock.next_launch();
track.player.enqueue_next(start, self.scenes[s].clips[t].as_ref());
}
},
ArrangementFocus::Clip(t, s) => {
self.tracks[t].player.phrase = self.scenes[s].clips[t].clone();
self.tracks[t].player.reset = true;
let start = self.clock.next_launch();
self.tracks[t].player.enqueue_next(start, self.scenes[s].clips[t].as_ref());
},
_ => {}
}
@ -689,7 +689,7 @@ impl Scene {
.all(|(track_index, clip)|match clip {
Some(clip) => tracks
.get(track_index)
.map(|track|if let Some(phrase) = &track.player.phrase {
.map(|track|if let Some((_, Some(phrase))) = &track.player.phrase {
*phrase.read().unwrap() == *clip.read().unwrap()
} else {
false