devalang_wasm/engine/audio/effects/processors/
reverse.rs

1use crate::engine::audio::effects::processors::super_trait::EffectProcessor;
2
3#[derive(Debug, Clone)]
4pub struct ReverseProcessor {
5    reversed: bool,
6}
7
8impl ReverseProcessor {
9    pub fn new(reversed: bool) -> Self {
10        Self { reversed }
11    }
12}
13
14impl Default for ReverseProcessor {
15    fn default() -> Self {
16        Self::new(false)
17    }
18}
19
20impl EffectProcessor for ReverseProcessor {
21    fn process(&mut self, samples: &mut [f32], _sample_rate: u32) {
22        if self.reversed {
23            samples.reverse();
24        }
25    }
26
27    fn reset(&mut self) {
28        // No state to reset
29    }
30
31    fn name(&self) -> &str {
32        "Reverse"
33    }
34}