refactor inputs/outputs views into monolithic exprst

This commit is contained in:
🪞👃🪞 2025-01-25 22:14:03 +01:00
parent 58433c0402
commit deeaaa0b8b
2 changed files with 52 additions and 52 deletions

View file

@ -395,29 +395,31 @@ impl Tek {
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}")))); Bsp::s(
let rows = self.io_ports(fg, Tui::g(32), ||self.inputs_sizes()); Bsp::s(
let columns = self.per_track_top(move|t, track|{ self.row_top(self.w(), 1,
Fill::x(Align::w(self.button3(key, label, format!("{count}")))),
self.per_track_top(move|t, track|{
let rec = track.player.recording; let rec = track.player.recording;
let mon = track.player.monitoring; let mon = track.player.monitoring;
let rec = if rec { White } else { track.color.darkest.rgb }; let rec = if rec { White } else { track.color.darkest.rgb };
let mon = if mon { 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 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 }; 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( Self::wrap(bg, fg, Tui::bold(true, Fill::x(Bsp::e(
Tui::fg_bg(rec, bg, "Rec "), Tui::fg_bg(rec, bg, "Rec "),
Tui::fg_bg(rec, bg, "Mon ")))))}); Tui::fg_bg(rec, bg, "Mon ")))))})),
let toggles = self.per_track_top(move|t, track|self.io_connections( self.row_top(self.w(), self.h_inputs() - 1,
track.color.dark.rgb, track.color.darker.rgb, ||self.inputs_sizes())); self.io_ports(fg, Tui::g(32), ||self.inputs_sizes()),
//let toggles = Map::new(||self.inputs_sizes(), move|(index, name, conn, y, y2), _| self.per_track_top(move|t, track|self.io_connections(
//map_south(y as u16, (y2-y) as u16, Self::wrap(bg, fg, Fill::x(Bsp::e( track.color.dark.rgb,
//Tui::fg_bg(rec, bg, format!("{y} {y2} {name}")), track.color.darker.rgb,
//Tui::fg_bg(mon, bg, "M▞▞▞▞")))))); ||self.inputs_sizes()
//Bsp::a(Fill::y(Align::n(headers)), Fill::y(Align::n(toggles)))}); ))),
Bsp::s(
Bsp::s(
self.row_top(self.w(), 1, heading, columns),
self.row_top(self.w(), self.h_inputs() - 1, rows, toggles),
), ),
self.view_clips_into() self.view_clips_into()
) )
@ -429,9 +431,15 @@ impl Tek {
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}")))); Align::n(Bsp::s(
let rows = self.io_ports(fg, Tui::g(32), ||self.outputs_sizes()); Bsp::s(
let columns = self.per_track_top(move|t, track|{ self.view_clips_next(),
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 mute = false;
let solo = false; let solo = false;
let mute = if mute { White } else { track.color.darkest.rgb }; let mute = if mute { White } else { track.color.darkest.rgb };
@ -440,19 +448,11 @@ impl Tek {
let bg2 = if t > 0 { self.tracks()[t - 1].color.base.rgb } else { Reset }; 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( Self::wrap(bg, fg, Tui::bold(true, Fill::x(Bsp::e(
Tui::fg_bg(mute, bg, "Play "), Tui::fg_bg(mute, bg, "Play "),
Tui::fg_bg(solo, bg, "Solo ")))))}); Tui::fg_bg(solo, bg, "Solo ")))))})),
let toggles = self.per_track_top(move|t, track|self.io_connections( self.row_top(self.w(), self.h_outputs() - 1,
track.color.dark.rgb, track.color.darker.rgb, ||self.outputs_sizes())); self.io_ports(fg, Tui::g(32), ||self.outputs_sizes()),
//Map::new(||self.outputs_sizes(), move|(index, name, conn, y, y2), _| self.per_track_top(move|t, track|self.io_connections(
//map_south(y as u16, (y2-y) as u16, Self::wrap(bg, fg, Fill::x(Bsp::e( track.color.dark.rgb, track.color.darker.rgb, ||self.outputs_sizes()))),
//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(
Bsp::s(self.view_clips_next(), self.view_clips_from()),
Bsp::s(
self.row_top(self.w(), 1, heading, columns),
self.row_top(self.w(), self.h_outputs() - 1, rows, toggles),
) )
)) ))
} }

View file

@ -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