diff --git a/config/keys_clock.edn b/config/keys_clock.edn index 5a0763be..3f707559 100644 --- a/config/keys_clock.edn +++ b/config/keys_clock.edn @@ -1,2 +1,2 @@ -(@space clock toggle) -(@shift-space clock toggle 0) +(@space clock toggle-playback 0) +(@shift-space clock toggle-playback 0) diff --git a/crates/app/src/lib.rs b/crates/app/src/lib.rs index cda6e94b..f1d59d7f 100644 --- a/crates/app/src/lib.rs +++ b/crates/app/src/lib.rs @@ -42,33 +42,29 @@ mod config; pub use self::config::*; mod model; pub use self::model::*; mod view; pub use self::view::*; -#[cfg(test)] #[test] fn test_model () { +#[cfg(test)] #[test] fn test_model () -> Usually<()> { let mut app = App::default(); let _ = app.clip(); let _ = app.toggle_loop(); -} - -#[cfg(test)] #[test] fn test_model_scene () { - let mut app = App::default(); + //let _ = app.tracks_add(8, None, &[], &[])?; + //let _ = app.track_add_focus()?; let _ = app.scene_longest(); let _ = app.scene(); let _ = app.scene_mut(); - let _ = app.scene_add(None, None); - app.scene_del(0); + let _ = app.scene_add(None, None)?; + let _ = app.scene_add_focus()?; + let scene = app.scene_del(0); let scene = Scene::default(); let _ = scene.pulses(); let _ = scene.is_playing(&[]); -} - -#[cfg(test)] #[test] fn test_view_clock () { - let _ = button_play_pause(true); - let mut app = App::default(); let _ = app.view_transport(); let _ = app.view_status(); let _ = app.update_clock(); + Ok(()) } #[cfg(test)] #[test] fn test_view_layout () { + let _ = button_play_pause(true); let _ = button_2("", "", true); let _ = button_2("", "", false); let _ = button_3("", "", "", true); diff --git a/crates/app/src/model/scene.rs b/crates/app/src/model/scene.rs index 5159eeb0..353133ac 100644 --- a/crates/app/src/model/scene.rs +++ b/crates/app/src/model/scene.rs @@ -46,13 +46,16 @@ pub trait HasScenes: HasSelection + HasEditor + Send + Sync { self.scenes().iter().map(|s|s.name.len()).fold(0, usize::max) } fn scene (&self) -> Option<&Scene> { - self.selected().scene().and_then(|s|self.scenes().get(s)) + self.selected().scene() + .and_then(|s|self.scenes().get(s)) } fn scene_mut (&mut self) -> Option<&mut Scene> { - self.selected().scene().and_then(|s|self.scenes_mut().get_mut(s)) + self.selected().scene() + .and_then(|s|self.scenes_mut().get_mut(s)) } - fn scene_del (&mut self, index: usize) { - self.selected().scene().and_then(|s|Some(self.scenes_mut().remove(index))); + fn scene_del (&mut self, index: usize) -> Option { + self.selected().scene() + .and_then(|s|Some(self.scenes_mut().remove(index))) } /// Set the color of a scene, returning the previous one. fn scene_set_color (&mut self, index: usize, color: ItemTheme) -> ItemTheme { diff --git a/crates/device/src/clock/clock_api.rs b/crates/device/src/clock/clock_api.rs index e9161ec4..e8544525 100644 --- a/crates/device/src/clock/clock_api.rs +++ b/crates/device/src/clock/clock_api.rs @@ -29,11 +29,11 @@ impl ClockCommand { state.pause_at(position)?; Ok(None) } - fn toggle_playback (state: &mut Clock, position: Option) -> Perhaps { + fn toggle_playback (state: &mut Clock, position: u32) -> Perhaps { if state.is_rolling() { - state.pause_at(position)?; + state.pause_at(Some(position))?; } else { - state.play_from(position)?; + state.play_from(Some(position))?; } Ok(None) } diff --git a/deps/tengri b/deps/tengri index 20ccff13..cb8fd269 160000 --- a/deps/tengri +++ b/deps/tengri @@ -1 +1 @@ -Subproject commit 20ccff13de1957c1268c6fec64048d8ae1767fd5 +Subproject commit cb8fd26922fd1cfad4ceadeb89e48544531a178e