device: add RMSMeter

This commit is contained in:
🪞👃🪞 2025-05-10 21:44:27 +03:00
parent 4127c141cc
commit 2ef9628ab8
2 changed files with 18 additions and 1 deletions

View file

@ -0,0 +1,16 @@
use crate::*;
#[derive(Debug, Default, Clone)]
pub struct RMSMeter(f32);
impl RMSMeter {
pub fn set (&mut self, samples: &[u32]) {
let sum: usize = samples.iter().map(|s|*s as usize).reduce(|sum, sample|sum + sample)
.unwrap_or(0);
self.0 = (sum as f32 / samples.len() as f32).sqrt();
}
}
render!(TuiOut: |self: RMSMeter, to| {
let [x, y, w, h] = to.area();
});