mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-06 19:56:42 +01:00
clock: fix play/pause
This commit is contained in:
parent
9e8572ae0f
commit
5fa5a875b7
5 changed files with 21 additions and 22 deletions
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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<Scene> {
|
||||
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 {
|
||||
|
|
|
|||
|
|
@ -29,11 +29,11 @@ impl ClockCommand {
|
|||
state.pause_at(position)?;
|
||||
Ok(None)
|
||||
}
|
||||
fn toggle_playback (state: &mut Clock, position: Option<u32>) -> Perhaps<Self> {
|
||||
fn toggle_playback (state: &mut Clock, position: u32) -> Perhaps<Self> {
|
||||
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)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue