From 61992ab2a2cb614da8960ecd2e4e02aec2434f1c Mon Sep 17 00:00:00 2001 From: unspeaker Date: Mon, 21 Oct 2024 22:59:33 +0300 Subject: [PATCH] reset transport position on stop --- crates/tek_sequencer/src/transport_snd.rs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/crates/tek_sequencer/src/transport_snd.rs b/crates/tek_sequencer/src/transport_snd.rs index 554b1715..cf84a422 100644 --- a/crates/tek_sequencer/src/transport_snd.rs +++ b/crates/tek_sequencer/src/transport_snd.rs @@ -7,12 +7,12 @@ impl Audio for TransportToolbar { } impl TransportToolbar { pub fn update (&mut self, scope: &ProcessScope) -> (bool, usize, usize, usize, usize, f64) { - let times = scope.cycle_times().unwrap(); + let times = scope.cycle_times().unwrap(); let CycleTimes { current_frames, current_usecs, next_usecs, period_usecs } = times; let chunk_size = scope.n_frames() as usize; - let transport = self.transport.as_ref().unwrap().query().unwrap(); - self.frame = transport.pos.frame() as usize; - let mut reset = false; + let transport = self.transport.as_ref().unwrap().query().unwrap(); + self.frame = transport.pos.frame() as usize; + let mut reset = false; if self.playing != Some(transport.state) { match transport.state { TransportState::Rolling => { @@ -26,8 +26,11 @@ impl TransportToolbar { } } self.playing = Some(transport.state); + if self.playing == Some(TransportState::Stopped) { + self.started = None; + } match self.started { - Some((frames, usecs)) => { + Some((_, usecs)) => { self.usecs = current_usecs as usize - usecs; }, None => {