reenable playhead for playing clip

This commit is contained in:
🪞👃🪞 2024-11-02 22:08:44 +02:00
parent 0f3103a003
commit b2680914d7
3 changed files with 28 additions and 11 deletions

View file

@ -4,9 +4,27 @@ impl<E: Engine> Audio for Arranger<E> {
if let Some(ref transport) = self.transport {
transport.write().unwrap().process(client, scope);
}
for track in self.arrangement.tracks.iter_mut() {
let Arrangement { scenes, ref mut tracks, selected, .. } = &mut self.arrangement;
for track in tracks.iter_mut() {
track.player.process(client, scope);
}
if let ArrangementFocus::Clip(t, s) = selected {
if let Some(Some(Some(phrase))) = scenes.get(*s).map(|scene|scene.clips.get(*t)) {
if let Some(track) = tracks.get(*t) {
if let Some((ref started_at, Some(ref playing))) = track.player.phrase {
let phrase = phrase.read().unwrap();
if *playing.read().unwrap() == *phrase {
let pulse = self.clock.current.pulse.get();
let start = started_at.pulse.get();
let now = (pulse - start) % phrase.length as f64;
self.editor.now.set(now);
return Control::Continue
}
}
}
}
}
self.editor.now.set(0.);
Control::Continue
}
}