chore: tidy up

This commit is contained in:
🪞👃🪞 2024-06-10 18:30:10 +03:00
parent 5afed6f055
commit dc09ea901f
10 changed files with 321 additions and 160 deletions

View file

@ -55,10 +55,11 @@ impl Mixer {
selected_column: 0,
selected_track: 1,
tracks: vec![
Track::new(&jack.as_client(), 1, "Kick")?,
Track::new(&jack.as_client(), 1, "Snare")?,
Track::new(&jack.as_client(), 2, "Hihats")?,
Track::new(&jack.as_client(), 2, "Sample")?,
Track::new(&jack.as_client(), 1, "Mono 1")?,
Track::new(&jack.as_client(), 1, "Mono 2")?,
Track::new(&jack.as_client(), 2, "Stereo 1")?,
Track::new(&jack.as_client(), 2, "Stereo 2")?,
Track::new(&jack.as_client(), 2, "Stereo 3")?,
Track::new(&jack.as_client(), 2, "Bus 1")?,
Track::new(&jack.as_client(), 2, "Bus 2")?,
Track::new(&jack.as_client(), 2, "Mix")?,
@ -114,68 +115,62 @@ impl Exitable for Mixer {
impl WidgetRef for Mixer {
fn render_ref (&self, area: Rect, buf: &mut Buffer) {
}
}
pub fn render (
state: &mut Mixer,
stdout: &mut Stdout,
mut offset: (u16, u16)
) -> Result<(), Box<dyn Error>> {
render_table(state, stdout, offset)?;
render_meters(state, stdout, offset)?;
Ok(())
}
fn render_table (
state: &mut Mixer,
stdout: &mut Stdout,
offset: (u16, u16)
) -> Result<(), Box<dyn Error>> {
let move_to = |col, row| crossterm::cursor::MoveTo(offset.0 + col, offset.1 + row);
stdout.queue(
move_to(0, 0)
)?.queue(
Print(" Name Gain FX1 Pan Level FX2 Route")
)?;
for (i, track) in state.tracks.iter().enumerate() {
let row = (i + 1) as u16;
for (j, (column, field)) in [
(0, format!(" {:7} ", track.name)),
(12, format!(" {:.1}dB ", track.gain)),
(22, format!(" [ ] ")),
(30, format!(" C ")),
(35, format!(" {:.1}dB ", track.level)),
(45, format!(" [ ] ")),
(51, format!(" {:7} ", track.route)),
].into_iter().enumerate() {
stdout.queue(move_to(column, row))?;
if state.selected_track == i && state.selected_column == j {
stdout.queue(PrintStyledContent(field.to_string().bold().reverse()))?;
} else {
stdout.queue(PrintStyledContent(field.to_string().bold()))?;
use ratatui::style::Stylize;
draw_box(buf, area);
let x = area.x + 1;
let y = area.y + 1;
let h = area.height - 2;
for (i, track) in self.tracks.iter().enumerate() {
//buf.set_string(
//x, y + index as u16,
//&track.name, Style::default().bold().not_dim()
//);
for (j, (column, field)) in [
(0, format!(" {:7} ", track.name)),
(12, format!(" {:.1}dB ", track.gain)),
(22, format!(" [ ] ")),
(30, format!(" C ")),
(35, format!(" {:.1}dB ", track.level)),
(45, format!(" [ ] ")),
(51, format!(" {:7} ", track.route)),
].into_iter().enumerate() {
buf.set_string(
x + column as u16,
y + i as u16,
field,
if self.selected_track == i && self.selected_column == j {
Style::default().white().bold().not_dim()
} else {
Style::default().not_dim()
}
);
//stdout.queue(move_to(column, row))?;
//if state.selected_track == i && state.selected_column == j {
//stdout.queue(PrintStyledContent(field.to_string().bold().reverse()))?;
//} else {
//stdout.queue(PrintStyledContent(field.to_string().bold()))?;
//}
//fn render_meters (
//state: &mut Mixer,
//stdout: &mut Stdout,
//offset: (u16, u16)
//) -> Result<(), Box<dyn Error>> {
//let move_to = |col, row| crossterm::cursor::MoveTo(offset.0 + col, offset.1 + row);
//for (i, track) in state.tracks.iter().enumerate() {
//let row = (i + 1) as u16;
//stdout
//.queue(move_to(10, row))?.queue(PrintStyledContent("▁".green()))?
//.queue(move_to(20, row))?.queue(PrintStyledContent("▁".green()))?
//.queue(move_to(28, row))?.queue(PrintStyledContent("▁".green()))?
//.queue(move_to(43, row))?.queue(PrintStyledContent("▁".green()))?;
//}
//Ok(())
//}
}
}
}
Ok(())
}
fn render_meters (
state: &mut Mixer,
stdout: &mut Stdout,
offset: (u16, u16)
) -> Result<(), Box<dyn Error>> {
let move_to = |col, row| crossterm::cursor::MoveTo(offset.0 + col, offset.1 + row);
for (i, track) in state.tracks.iter().enumerate() {
let row = (i + 1) as u16;
stdout
.queue(move_to(10, row))?.queue(PrintStyledContent("".green()))?
.queue(move_to(20, row))?.queue(PrintStyledContent("".green()))?
.queue(move_to(28, row))?.queue(PrintStyledContent("".green()))?
.queue(move_to(43, row))?.queue(PrintStyledContent("".green()))?;
}
Ok(())
}
impl HandleInput for Mixer {
fn handle (&mut self, event: &Event) -> Result<(), Box<dyn Error>> {