ez_audi/samples_player/modifiers/
volume.rs

1use crate::samples::IntermediateSampleType;
2use crate::samples::Samples;
3
4use super::ModifierTrait;
5
6#[derive(Debug, Clone)]
7/// Multiples the amplitude by the IntermediateSampleType (f64) value
8pub struct Volume(pub IntermediateSampleType);
9
10impl ModifierTrait for Volume {
11    fn modify(&self, samples: Samples<IntermediateSampleType>) -> Samples<IntermediateSampleType> {
12        let new_samples = samples.samples.into_iter()
13            .map(|s| s * self.0)
14            .collect();
15
16        Samples::new(new_samples, samples.metadata)
17    }
18}