From deeaaa0b8b0de6653fb493b57799723fe9a01c51 Mon Sep 17 00:00:00 2001 From: unspeaker Date: Sat, 25 Jan 2025 22:14:03 +0100 Subject: [PATCH] refactor inputs/outputs views into monolithic exprst --- tek/src/view.rs | 102 +++++++++++++++++++------------------- tek/src/view_arranger.edn | 2 +- 2 files changed, 52 insertions(+), 52 deletions(-) diff --git a/tek/src/view.rs b/tek/src/view.rs index 46b17bd3..cb6ce88e 100644 --- a/tek/src/view.rs +++ b/tek/src/view.rs @@ -391,33 +391,35 @@ impl Tek { // INPUTS ///////////////////////////////////////////////////////////////////////////////////// fn view_inputs (&self) -> impl Content + use<'_> { - let fg = Tui::g(224); - let key = " I"; - let label = "midi ins"; - 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)))}); + let fg = Tui::g(224); + let key = " I"; + let label = "midi ins"; + let count = self.midi_ins.len(); Bsp::s( Bsp::s( - self.row_top(self.w(), 1, heading, columns), - self.row_top(self.w(), self.h_inputs() - 1, rows, toggles), + 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 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() ) @@ -425,34 +427,32 @@ impl Tek { // OUTPUTS //////////////////////////////////////////////////////////////////////////////////// fn view_outputs (&self) -> impl Content + use<'_> { - let fg = Tui::g(224); - let key = " O"; - let label = "midi outs"; - 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)))}); + let fg = Tui::g(224); + let key = " O"; + let label = "midi outs"; + let count = self.midi_outs.len(); 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), + 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 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()))), ) )) } diff --git a/tek/src/view_arranger.edn b/tek/src/view_arranger.edn index 6daf21a7..11913cf3 100644 --- a/tek/src/view_arranger.edn +++ b/tek/src/view_arranger.edn @@ -1,4 +1,4 @@ -(bsp/s +(bsp/n (fixed/y 1 :toolbar) (fill/xy (align/c (bsp/a (fill/xy (align/e :pool)) (bsp/a