compact sampler

This commit is contained in:
🪞👃🪞 2024-06-29 16:22:47 +03:00
parent 2432f27e8c
commit 15f71d0973
4 changed files with 135 additions and 131 deletions

View file

@ -118,13 +118,13 @@ pub fn render (state: &Chain, buf: &mut Buffer, area: Rect)
}
pub fn draw_as_row (
state: &Chain, buf: &mut Buffer, area: Rect, selected: Option<Style>
state: &Chain, buf: &mut Buffer, area: Rect, _: Option<Style>
) -> Usually<(Rect, Vec<Rect>)> {
let Rect { mut x, mut y, width, height } = area;
let Rect { mut x, y, width, height } = area;
x = x + 1;
let mut h = 0u16;
let mut frames = vec![];
for (i, device) in state.items.iter().enumerate() {
for device in state.items.iter() {
let mut x2 = 1u16;
let mut y2 = 1u16;
for port in device.midi_ins()?.iter() {
@ -160,56 +160,43 @@ pub fn draw_as_row (
pub fn draw_as_column (
state: &Chain, buf: &mut Buffer, area: Rect, selected: Option<Style>
) -> Usually<Rect> {
let Rect { mut x, mut y, width, height } = area;
let Rect { x, y, width, height } = area;
//let (area, areas) = Column::draw(buf, area, &state.items, 0)?;
let mut w = 0u16;
let mut y = area.y;
let mut frames = vec![];
for (i, device) in state.items.iter().enumerate() {
let midi_ins = device.midi_ins()?;
let midi_outs = device.midi_outs()?;
let audio_ins = device.audio_ins()?;
let audio_outs = device.audio_outs()?;
for device in state.items.iter() {
let style_midi = Style::default().black().bold().on_green();
let style_audio = Style::default().black().bold().on_red();
let midi_ins = device.midi_ins()?;
let midi_outs = device.midi_outs()?;
let audio_ins = device.audio_ins()?;
let audio_outs = device.audio_outs()?;
y = y + midi_ins.len() as u16;
let frame = device.render(buf, Rect {
x, y, width, height: height.saturating_sub(y)
})?;
frames.push(frame);
w = w.max(frame.width);
y = y - midi_ins.len() as u16;
for port in midi_ins.iter() {
buf.set_string(x + frame.width - 10, y,
&format!(" <i> MIDI {port} "),
Style::default().black().bold().on_green());
buf.set_string(x + frame.width - 10, y, &format!(" <i> MIDI {port} "), style_midi);
y = y + 1;
}
y = y - audio_ins.len() as u16;
for port in audio_ins.iter() {
buf.set_string(x + frame.width - 10, y,
&format!(" <i> MIDI {port} "),
Style::default().black().bold().on_red());
buf.set_string(x + frame.width - 10, y, &format!(" <i> MIDI {port} "), style_audio);
y = y + 1;
}
y = y + frame.height - 1;
y = y + midi_outs.len() as u16;
for port in midi_outs.iter() {
buf.set_string(x + 2, y,
&format!(" <o> MIDI {port} "),
Style::default().black().bold().on_green());
buf.set_string(x + 2, y, &format!(" <o> MIDI {port} "), style_midi);
y = y + 1;
}
y = y + audio_outs.len() as u16;
for port in audio_outs.iter() {
buf.set_string(x + 2, y,
&format!(" <o> Audio {port} "),
Style::default().black().bold().on_red());
buf.set_string(x + 2, y, &format!(" <o> Audio {port} "), style_audio);
y = y + 1;
}
}