mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-06 11:46:41 +01:00
refactor inputs/outputs views into monolithic exprst
This commit is contained in:
parent
58433c0402
commit
deeaaa0b8b
2 changed files with 52 additions and 52 deletions
102
tek/src/view.rs
102
tek/src/view.rs
|
|
@ -391,33 +391,35 @@ impl Tek {
|
||||||
|
|
||||||
// INPUTS /////////////////////////////////////////////////////////////////////////////////////
|
// INPUTS /////////////////////////////////////////////////////////////////////////////////////
|
||||||
fn view_inputs (&self) -> impl Content<TuiOut> + use<'_> {
|
fn view_inputs (&self) -> impl Content<TuiOut> + use<'_> {
|
||||||
let fg = Tui::g(224);
|
let fg = Tui::g(224);
|
||||||
let key = " I";
|
let key = " I";
|
||||||
let label = "midi ins";
|
let label = "midi ins";
|
||||||
let count = self.midi_ins.len();
|
let count = self.midi_ins.len();
|
||||||
let heading = Fill::x(Align::w(self.button3(key, label, format!("{count}"))));
|
|
||||||
let rows = self.io_ports(fg, Tui::g(32), ||self.inputs_sizes());
|
|
||||||
let columns = self.per_track_top(move|t, track|{
|
|
||||||
let rec = track.player.recording;
|
|
||||||
let mon = track.player.monitoring;
|
|
||||||
let rec = if rec { White } else { track.color.darkest.rgb };
|
|
||||||
let mon = if mon { White } else { track.color.darkest.rgb };
|
|
||||||
let bg = if self.selected().track() == Some(t+1) { track.color.light.rgb } else { track.color.base.rgb };
|
|
||||||
let bg2 = if t > 0 { self.tracks()[t - 1].color.base.rgb } else { Reset };
|
|
||||||
Self::wrap(bg, fg, Tui::bold(true, Fill::x(Bsp::e(
|
|
||||||
Tui::fg_bg(rec, bg, "Rec "),
|
|
||||||
Tui::fg_bg(rec, bg, "Mon ")))))});
|
|
||||||
let toggles = self.per_track_top(move|t, track|self.io_connections(
|
|
||||||
track.color.dark.rgb, track.color.darker.rgb, ||self.inputs_sizes()));
|
|
||||||
//let toggles = Map::new(||self.inputs_sizes(), move|(index, name, conn, y, y2), _|
|
|
||||||
//map_south(y as u16, (y2-y) as u16, Self::wrap(bg, fg, Fill::x(Bsp::e(
|
|
||||||
//Tui::fg_bg(rec, bg, format!("{y} {y2} {name}")),
|
|
||||||
//Tui::fg_bg(mon, bg, "M▞▞▞▞"))))));
|
|
||||||
//Bsp::a(Fill::y(Align::n(headers)), Fill::y(Align::n(toggles)))});
|
|
||||||
Bsp::s(
|
Bsp::s(
|
||||||
Bsp::s(
|
Bsp::s(
|
||||||
self.row_top(self.w(), 1, heading, columns),
|
self.row_top(self.w(), 1,
|
||||||
self.row_top(self.w(), self.h_inputs() - 1, rows, toggles),
|
Fill::x(Align::w(self.button3(key, label, format!("{count}")))),
|
||||||
|
self.per_track_top(move|t, track|{
|
||||||
|
let rec = track.player.recording;
|
||||||
|
let mon = track.player.monitoring;
|
||||||
|
let rec = if rec { White } else { track.color.darkest.rgb };
|
||||||
|
let mon = if mon { White } else { track.color.darkest.rgb };
|
||||||
|
let bg = if self.selected().track() == Some(t+1) {
|
||||||
|
track.color.light.rgb
|
||||||
|
} else {
|
||||||
|
track.color.base.rgb
|
||||||
|
};
|
||||||
|
let bg2 = if t > 0 { self.tracks()[t - 1].color.base.rgb } else { Reset };
|
||||||
|
Self::wrap(bg, fg, Tui::bold(true, Fill::x(Bsp::e(
|
||||||
|
Tui::fg_bg(rec, bg, "Rec "),
|
||||||
|
Tui::fg_bg(rec, bg, "Mon ")))))})),
|
||||||
|
self.row_top(self.w(), self.h_inputs() - 1,
|
||||||
|
self.io_ports(fg, Tui::g(32), ||self.inputs_sizes()),
|
||||||
|
self.per_track_top(move|t, track|self.io_connections(
|
||||||
|
track.color.dark.rgb,
|
||||||
|
track.color.darker.rgb,
|
||||||
|
||self.inputs_sizes()
|
||||||
|
))),
|
||||||
),
|
),
|
||||||
self.view_clips_into()
|
self.view_clips_into()
|
||||||
)
|
)
|
||||||
|
|
@ -425,34 +427,32 @@ impl Tek {
|
||||||
|
|
||||||
// OUTPUTS ////////////////////////////////////////////////////////////////////////////////////
|
// OUTPUTS ////////////////////////////////////////////////////////////////////////////////////
|
||||||
fn view_outputs (&self) -> impl Content<TuiOut> + use<'_> {
|
fn view_outputs (&self) -> impl Content<TuiOut> + use<'_> {
|
||||||
let fg = Tui::g(224);
|
let fg = Tui::g(224);
|
||||||
let key = " O";
|
let key = " O";
|
||||||
let label = "midi outs";
|
let label = "midi outs";
|
||||||
let count = self.midi_outs.len();
|
let count = self.midi_outs.len();
|
||||||
let heading = Fill::x(Align::w(self.button3(key, label, format!("{count}"))));
|
|
||||||
let rows = self.io_ports(fg, Tui::g(32), ||self.outputs_sizes());
|
|
||||||
let columns = self.per_track_top(move|t, track|{
|
|
||||||
let mute = false;
|
|
||||||
let solo = false;
|
|
||||||
let mute = if mute { White } else { track.color.darkest.rgb };
|
|
||||||
let solo = if solo { White } else { track.color.darkest.rgb };
|
|
||||||
let bg = if self.selected().track() == Some(t+1) { track.color.light.rgb } else { track.color.base.rgb };
|
|
||||||
let bg2 = if t > 0 { self.tracks()[t - 1].color.base.rgb } else { Reset };
|
|
||||||
Self::wrap(bg, fg, Tui::bold(true, Fill::x(Bsp::e(
|
|
||||||
Tui::fg_bg(mute, bg, "Play "),
|
|
||||||
Tui::fg_bg(solo, bg, "Solo ")))))});
|
|
||||||
let toggles = self.per_track_top(move|t, track|self.io_connections(
|
|
||||||
track.color.dark.rgb, track.color.darker.rgb, ||self.outputs_sizes()));
|
|
||||||
//Map::new(||self.outputs_sizes(), move|(index, name, conn, y, y2), _|
|
|
||||||
//map_south(y as u16, (y2-y) as u16, Self::wrap(bg, fg, Fill::x(Bsp::e(
|
|
||||||
//Tui::fg_bg(mute, bg, "P▞▞▞▞"),
|
|
||||||
//Tui::fg_bg(solo, bg, "S▞▞▞▞"))))));
|
|
||||||
//Bsp::a(Fill::y(Align::n(headers)), Fill::y(Align::n(toggles)))});
|
|
||||||
Align::n(Bsp::s(
|
Align::n(Bsp::s(
|
||||||
Bsp::s(self.view_clips_next(), self.view_clips_from()),
|
|
||||||
Bsp::s(
|
Bsp::s(
|
||||||
self.row_top(self.w(), 1, heading, columns),
|
self.view_clips_next(),
|
||||||
self.row_top(self.w(), self.h_outputs() - 1, rows, toggles),
|
self.view_clips_from(),
|
||||||
|
),
|
||||||
|
Bsp::s(
|
||||||
|
self.row_top(self.w(), 1,
|
||||||
|
Fill::x(Align::w(self.button3(key, label, format!("{count}")))),
|
||||||
|
self.per_track_top(move|t, track|{
|
||||||
|
let mute = false;
|
||||||
|
let solo = false;
|
||||||
|
let mute = if mute { White } else { track.color.darkest.rgb };
|
||||||
|
let solo = if solo { White } else { track.color.darkest.rgb };
|
||||||
|
let bg = if self.selected().track() == Some(t+1) { track.color.light.rgb } else { track.color.base.rgb };
|
||||||
|
let bg2 = if t > 0 { self.tracks()[t - 1].color.base.rgb } else { Reset };
|
||||||
|
Self::wrap(bg, fg, Tui::bold(true, Fill::x(Bsp::e(
|
||||||
|
Tui::fg_bg(mute, bg, "Play "),
|
||||||
|
Tui::fg_bg(solo, bg, "Solo ")))))})),
|
||||||
|
self.row_top(self.w(), self.h_outputs() - 1,
|
||||||
|
self.io_ports(fg, Tui::g(32), ||self.outputs_sizes()),
|
||||||
|
self.per_track_top(move|t, track|self.io_connections(
|
||||||
|
track.color.dark.rgb, track.color.darker.rgb, ||self.outputs_sizes()))),
|
||||||
)
|
)
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
(bsp/s
|
(bsp/n
|
||||||
(fixed/y 1 :toolbar)
|
(fixed/y 1 :toolbar)
|
||||||
(fill/xy (align/c (bsp/a (fill/xy (align/e :pool))
|
(fill/xy (align/c (bsp/a (fill/xy (align/e :pool))
|
||||||
(bsp/a
|
(bsp/a
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue