From 70fd1efc1e71d0176aaf94e6778875e5ab4f95b9 Mon Sep 17 00:00:00 2001 From: unspeaker Date: Sun, 16 Mar 2025 21:12:12 +0200 Subject: [PATCH] compiles... and crashes. added snazzy cli header --- app/src/cli.rs | 11 ++++++++++- app/src/view.rs | 12 +++++++----- app/src/view/view_layout.rs | 2 -- app/src/view/view_memo.rs | 11 ++++++++++- app/src/view/view_track.rs | 8 +++++--- 5 files changed, 32 insertions(+), 12 deletions(-) diff --git a/app/src/cli.rs b/app/src/cli.rs index ad115d88..2dfc31d2 100644 --- a/app/src/cli.rs +++ b/app/src/cli.rs @@ -1,7 +1,16 @@ use crate::*; use clap::{self, Parser, Subcommand}; +const HEADER: &'static str = r#" + +░▒▓████████▓▒░▒▓███████▓▒░▒▓█▓▒░░▒▓█▓▒░░ +░░░░▒▓█▓▒░░░░░▒▓█▓▒░░░░░░░▒▓█▓▒░▒▓█▓▒░░░ +░░░░▒▓█▓▒░░░░░▒▓█████▓▒░░░▒▓██████▓▒░░░░ +░░░░▒▓█▓▒░░░░░▒▓█▓▒░░░░░░░▒▓█▓▒░▒▓█▓▒░░░ +░░░░▒▓█▓▒░░░░░▒▓█▓▒░░░░░░░▒▓█▓▒░░▒▓█▓▒░░ +░░░░▒▓█▓▒░░░░░▒▓███████▓▒░▒▓█▓▒░░▒▓█▓▒░░"#; + #[derive(Debug, Parser)] -#[command(version, about, long_about = None)] +#[command(version, about = Some(HEADER), long_about = Some(HEADER))] pub struct TekCli { /// Which app to initialize #[command(subcommand)] mode: TekMode, diff --git a/app/src/view.rs b/app/src/view.rs index db9e9182..fc287eae 100644 --- a/app/src/view.rs +++ b/app/src/view.rs @@ -56,11 +56,11 @@ pub(crate) struct ArrangerView<'a> { scene_last: usize, scene_count: usize, - scene_scroll: Fill>, + scene_scroll: Fill>, scene_selected: Option, scenes_height: u16, - track_scroll: Fill>, + track_scroll: Fill>, track_count: usize, track_selected: Option, tracks_height: u16, @@ -70,9 +70,11 @@ impl<'a> Content for ArrangerView<'a> { fn content (&self) -> impl Render { Bsp::s(self.inputs(), Bsp::s(self.tracks(), - Bsp::n(self.outputs(), Tui::bg(Reset, Bsp::s(self.track_scroll, - Bsp::e(self.scene_scroll, - Fixed::y(self.scenes_height,self.scenes()))))))) + Bsp::n(self.outputs(), Tui::bg(Reset, Bsp::s( + &self.track_scroll, + Bsp::e( + &self.scene_scroll, + Fixed::y(self.scenes_height, self.scenes()))))))) } } diff --git a/app/src/view/view_layout.rs b/app/src/view/view_layout.rs index 27d9b255..487e3888 100644 --- a/app/src/view/view_layout.rs +++ b/app/src/view/view_layout.rs @@ -177,7 +177,5 @@ pub(crate) fn per_track <'a, T: Content + 'a, U: TracksSizes<'a>> ( let _ = heading("", "", 0, "", true); let _ = heading("", "", 0, "", false); let _ = wrap(Reset, Reset, ""); - let _ = row(0, 0, 0, "", "", ""); - let _ = row_top(0, 0, 0, "", "", ""); } } diff --git a/app/src/view/view_memo.rs b/app/src/view/view_memo.rs index 59e75b5d..66942ba2 100644 --- a/app/src/view/view_memo.rs +++ b/app/src/view/view_memo.rs @@ -2,12 +2,19 @@ use crate::*; /// Clear a pre-allocated buffer, then write into it. #[macro_export] macro_rules! rewrite { - ($buf:ident, $($rest:tt)*) => { |$buf,_,_|{$buf.clear();write!($buf, $($rest)*)} } } + ($buf:ident, $($rest:tt)*) => { + |$buf,_,_|{ + $buf.clear(); + write!($buf, $($rest)*) + } + } +} #[derive(Debug, Default)] pub(crate) struct ViewMemo { pub(crate) value: T, pub(crate) view: Arc> } + impl ViewMemo { fn new (value: T, view: U) -> Self { Self { value, view: Arc::new(view.into()) } @@ -21,6 +28,7 @@ impl ViewMemo { None } } + #[derive(Debug)] pub(crate) struct ViewCache { pub(crate) sr: ViewMemo, String>, pub(crate) buf: ViewMemo, String>, @@ -33,6 +41,7 @@ impl ViewMemo { pub(crate) stop: Arc, pub(crate) edit: Arc, } + impl Default for ViewCache { fn default () -> Self { Self { diff --git a/app/src/view/view_track.rs b/app/src/view/view_track.rs index 0f3ad74b..ffe8aad1 100644 --- a/app/src/view/view_track.rs +++ b/app/src/view/view_track.rs @@ -74,9 +74,11 @@ impl<'a> ArrangerView<'a> { } fn track_counter (&'a self) -> Arc> { - let track_counter_data = (self.track_selected.unwrap_or(0), self.tracks().len()); - let track_counter = rewrite!(buf, "{}/{}", track_counter_data.0, track_counter_data.1); - self.app.fmtd.write().unwrap().trks.update(Some(track_counter_data), track_counter); + let track_counter_data = (self.track_selected.unwrap_or(0), self.track_count); + self.app.fmtd.write().unwrap().trks.update( + Some(track_counter_data), + rewrite!(buf, "{}/{}", track_counter_data.0, track_counter_data.1) + ); self.app.fmtd.read().unwrap().trks.view.clone() }