ez_audi/samples_player/modifiers/
flatten.rs

1use crate::samples::IntermediateSampleType;
2use crate::samples::Samples;
3
4use super::ModifierTrait;
5use super::utils;
6
7#[derive(Debug, Clone)]
8/// Flatten the audio by applying util::into_n_channels(1) to the samples and than going back to the original
9pub struct Flatten;
10
11impl ModifierTrait for Flatten {
12    fn modify(&self, samples: Samples<IntermediateSampleType>) -> Samples<IntermediateSampleType> {
13        let original_metadata = samples.metadata.clone();
14        let one_channel_samples = utils::into_n_channels(samples, 1);
15
16        let original_channel_count_samples = utils::into_n_channels(one_channel_samples, original_metadata.channels.clone());
17
18        Samples::new(original_channel_count_samples.samples, original_metadata)
19    }
20}