tek/tek/src/view/input.rs

46 lines
2.1 KiB
Rust

use crate::*;
impl Tek {
pub fn view_inputs (&self) -> impl Content<TuiOut> + use<'_> {
let fg = Tui::g(224);
Bsp::s(
Bsp::s(
self.row_top(self.w(), 1,
Fill::x(Align::w(Bsp::e(
self.button3(" i", "midi ins", format!("{}", self.midi_ins.len())),
self.button2(" I", "add midi in"),
))),
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(mon, 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()
)
}
fn view_clips_into (&self) -> impl Content<TuiOut> + use<'_> {
let w = (self.size.w() as u16).saturating_sub(2 * self.w_sidebar());
self.row_top(w, 2,
Bsp::s(Align::e("Input:"), Align::e("Into:")),
self.per_track_top(|_, _|Tui::bg(Reset, Align::c(Bsp::s(
OctaveVertical::default(),
" ------ "
)))))
}
}