mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-06 19:56:42 +01:00
light up meters
This commit is contained in:
parent
005bb5fde8
commit
d962119e1b
4 changed files with 28 additions and 39 deletions
|
|
@ -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 = "";
|
||||
|
|
|
|||
|
|
@ -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),
|
||||
" ",
|
||||
|
|
|
|||
|
|
@ -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<'_> {
|
||||
|
|
|
|||
22
src/meter.rs
22
src/meter.rs
|
|
@ -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])));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue