light up meters

This commit is contained in:
🪞👃🪞 2025-01-02 23:18:28 +01:00
parent 005bb5fde8
commit d962119e1b
4 changed files with 28 additions and 39 deletions

View file

@ -31,7 +31,13 @@ pub trait BorderStyle: Send + Sync + Copy {
Bordered(self, w)
}
fn enclose <W: Content<Tui>> (self, w: W) -> impl Content<Tui> {
Tui::bg(self.style().unwrap().bg.unwrap_or(Color::Reset), lay!(Fill::xy(Border(self)), w))
lay!(Fill::xy(Border(self)), w)
}
fn enclose_bg <W: Content<Tui>> (self, w: W) -> impl Content<Tui> {
Tui::bg(self.style().unwrap().bg.unwrap_or(Color::Reset), lay!(
Fill::xy(Border(self)),
w
))
}
const NW: &'static str = "";
const N: &'static str = "";

View file

@ -62,7 +62,7 @@ impl<'a> TransportView<'a> {
}
}
render!(Tui: (self: TransportView<'a>) => Outer(
Style::default().fg(TuiTheme::g(255)).bg(TuiTheme::g(0))
Style::default().fg(TuiTheme::g(255))
).enclose(row!(
OutputStats::new(self.compact, self.clock),
" ",

View file

@ -1,39 +1,6 @@
use crate::*;
use super::*;
/*
render!(Tui: (self: Groovebox) => self.size.of(
self.toolbar_view()
.south(self.selector_view())
.south(self.sample_view())
.north(self.status_view())
.north(self.pool_view())
.west(Fill::xy(self.sampler_view().east(self.editor)))));
*/
/*
render!(Tui: (self: Groovebox) => self.size.of(
self.editor
.east_of(self.sample_view())
.wrap(Fill::xy)
.west_of(self.pool_view())
.north_of(self.status_view())
.north_of(self.sample_view())
.south_of(self.selector_view())
.south_of(self.toolbar_view())
*/
/*
render!(Tui: (self: Groovebox) => self.size.of(
self.toolbar_view().north_of(
self.selector_view().north_of(
self.sample_view().south_of(
self.status_view().south_of(
self.pool_view().east_of(
Fill::xy(self.sampler_view().west_of(
self.editor)))))))));
*/
render!(Tui: (self: Groovebox) => self.size.of(
Bsp::s(self.toolbar_view(),
Bsp::s(self.selector_view(),
@ -46,7 +13,7 @@ impl Groovebox {
Fill::x(Fixed::y(2, lay!(
Align::w(Meter("L/", self.sampler.input_meter[0])),
Align::e(Meter("R/", self.sampler.input_meter[1])),
Align::x(Tui::bg(TuiTheme::g(32), TransportView::new(true, &self.player.clock))),
Align::x(TransportView::new(true, &self.player.clock)),
)))
}
fn status_view (&self) -> impl Content<Tui> + use<'_> {

View file

@ -2,11 +2,27 @@ use crate::*;
pub struct Meter<'a>(pub &'a str, pub f32);
render!(Tui: (self: Meter<'a>) => format!("{}{:>+9.3}", self.0, self.1));
render!(Tui: (self: Meter<'a>) => col!(
Field(TuiTheme::g(128).into(), self.0, format!("{:>+9.3}", self.1)),
Fixed::xy(if self.1 >= 0.0 { 13 }
else if self.1 >= -1.0 { 12 }
else if self.1 >= -2.0 { 11 }
else if self.1 >= -3.0 { 10 }
else if self.1 >= -4.0 { 9 }
else if self.1 >= -6.0 { 8 }
else if self.1 >= -9.0 { 7 }
else if self.1 >= -12.0 { 6 }
else if self.1 >= -15.0 { 5 }
else if self.1 >= -20.0 { 4 }
else if self.1 >= -25.0 { 3 }
else if self.1 >= -30.0 { 2 }
else if self.1 >= -40.0 { 1 }
else { 0 }, 1, Tui::bg(if self.1 >= 0.0 { Color::Red }
else if self.1 >= -3.0 { Color::Yellow }
else { Color::Green }, ()))));
pub struct Meters<'a>(pub &'a[f32]);
render!(Tui: (self: Meters<'a>) => col!(
format!("L/{:>+9.3}", self.0[0]),
format!("R/{:>+9.3}", self.0[1]),
));
format!("R/{:>+9.3}", self.0[1])));