groovebox: add slots for output meters

This commit is contained in:
🪞👃🪞 2025-05-11 00:40:53 +03:00
parent 7690549bdc
commit 7bc37e7659
4 changed files with 20 additions and 10 deletions

View file

@ -59,6 +59,9 @@ impl App {
pub fn view_meters_input (&self) -> impl Content<TuiOut> + use<'_> {
self.sampler().map(|s|s.view_meters_input())
}
pub fn view_meters_output (&self) -> impl Content<TuiOut> + use<'_> {
self.sampler().map(|s|s.view_meters_output())
}
}
impl App {

View file

@ -52,8 +52,8 @@ impl Default for Sampler {
Self {
midi_in: None,
audio_ins: vec![],
input_meters: vec![0.0;2],
output_meters: vec![0.0;2],
input_meters: vec![f32::MIN;2],
output_meters: vec![f32::MIN;2],
audio_outs: vec![],
name: "tek_sampler".to_string(),
mapped: [const { None };128],

View file

@ -108,6 +108,12 @@ impl Sampler {
Fill::y(Meter(*value))
})))
}
pub fn view_meters_output (&self) -> impl Content<TuiOut> + use<'_> {
Tui::bg(Black, Fixed::x(2, Map::east(1, ||self.output_meters.iter(), |value, _index|{
Fill::y(Meter(*value))
})))
}
}
fn draw_list_item (sample: &Option<Arc<RwLock<Sample>>>) -> String {