From d1200faeea5dd513f6b02958f84669f6dde925fe Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Sun, 5 Dec 2021 03:38:08 -0500 Subject: also allow setting the initial speed on the command line --- src/bin/ttyplay/main.rs | 7 +++++++ src/bin/ttyplay/timer.rs | 3 ++- 2 files changed, 9 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/bin/ttyplay/main.rs b/src/bin/ttyplay/main.rs index 699d329..d05ba5d 100644 --- a/src/bin/ttyplay/main.rs +++ b/src/bin/ttyplay/main.rs @@ -21,6 +21,9 @@ struct Opt { #[structopt(short, long)] paused: bool, + + #[structopt(short, long, default_value = "4")] + speed: u32, } async fn async_main(opt: Opt) -> anyhow::Result<()> { @@ -28,8 +31,11 @@ async fn async_main(opt: Opt) -> anyhow::Result<()> { file, clamp, paused, + speed, } = opt; + let speed = speed.clamp(0, 8); + let fh = async_std::fs::File::open(file).await?; let mut input = textmode::Input::new().await?; @@ -52,6 +58,7 @@ async fn async_main(opt: Opt) -> anyhow::Result<()> { frame_data.clone(), timer_r, paused, + speed, ); event::handle_events(event_r, timer_w.clone(), output, paused).await?; diff --git a/src/bin/ttyplay/timer.rs b/src/bin/ttyplay/timer.rs index db85001..f5cf2dc 100644 --- a/src/bin/ttyplay/timer.rs +++ b/src/bin/ttyplay/timer.rs @@ -7,6 +7,7 @@ pub fn spawn_task( >, timer_r: async_std::channel::Receiver, pause_at_start: bool, + speed: u32, ) -> async_std::task::JoinHandle<()> { async_std::task::spawn(async move { let mut idx = 0; @@ -17,7 +18,7 @@ pub fn spawn_task( None }; let mut force_update_time = false; - let mut playback_ratio = 16; + let mut playback_ratio = 2_u32.pow(speed); loop { enum Res { Wait(Option), -- cgit v1.2.3-54-g00ecf