ez_audi/samples_player/modifiers/
loop.rs

1use crate::samples::IntermediateSampleType;
2use crate::samples::Samples;
3
4use super::ModifierTrait;
5
6#[derive(Debug, Clone)]
7/// Loops the samples by the u32 value specified
8pub struct Loop(pub u32);
9
10impl ModifierTrait for Loop {
11    fn modify(&self, mut samples: Samples<IntermediateSampleType>) -> Samples<IntermediateSampleType> {
12        let inner_samples = samples.samples.clone();
13        
14        for _ in 0..self.0 {
15            // Append consumes so I will copy before
16            let mut cloned_inner_samples = inner_samples.clone();
17            samples.samples.append(&mut cloned_inner_samples);
18        }
19
20        samples
21    }
22}