diff --git a/tek/src/keys.edn b/tek/src/keys.edn index f60fc308..52798794 100644 --- a/tek/src/keys.edn +++ b/tek/src/keys.edn @@ -1,7 +1,7 @@ (@u undo 1) (@shift-u redo 1) -(@space clock play 0) -(@shift-space clock play 0) +(@space clock toggle) +(@shift-space clock toggle 0) (@e editor show :pool-clip) (@ctrl-a scene add) (@ctrl-t track add) diff --git a/time/src/clock.rs b/time/src/clock.rs index 6f863bc2..4c37274c 100644 --- a/time/src/clock.rs +++ b/time/src/clock.rs @@ -25,8 +25,12 @@ pub enum ClockCommand { edn_provide!(# u32: |self: Clock| {}); edn_provide!(f64: |self: Clock| {}); edn_command!(ClockCommand: |state: Clock| { + ("play" [] Self::Play(None)) ("play" [t: u32] Self::Play(t)) + ("pause" [] Self::Pause(None)) ("pause" [t: u32] Self::Pause(t)) + ("toggle" [] if state.is_rolling() { Self::Pause(None) } else { Self::Play(None) }) + ("toggle" [t: u32] if state.is_rolling() { Self::Pause(t) } else { Self::Play(t) }) ("seek/usec" [t: f64] Self::SeekUsec(t.expect("no usec"))) ("seek/pulse" [t: f64] Self::SeekPulse(t.expect("no pulse"))) ("seek/sample" [t: f64] Self::SeekSample(t.expect("no sample")))