ez_audi/samples_player/modifiers/
shittify.rs1use crate::cpal_abstraction::SamplesTrait;
2use crate::samples::IntermediateSampleType;
3use crate::samples::Samples;
4
5use super::ModifierTrait;
6use super::utils;
7
8#[derive(Debug, Clone)]
9pub struct Shittify;
12
13impl ModifierTrait for Shittify {
14 fn modify(&self, samples: Samples<IntermediateSampleType>) -> Samples<IntermediateSampleType> {
15 let original_metadata = samples.metadata.clone();
16
17 let one_channel_samples = utils::into_n_channels(samples, 1);
18 let low_sample_rate_samples = utils::into_sample_rate(one_channel_samples, 12000);
19 let u8_samples = low_sample_rate_samples.into_t_samples::<u8>();
20
21 let normal_sample_rate_samples = utils::into_sample_rate(u8_samples, original_metadata.sample_rate);
22 let normal_type_samples = normal_sample_rate_samples.into_generic_representation_samples();
23 let normal_channel_nb_samples = utils::into_n_channels(normal_type_samples, original_metadata.channels);
24
25 Samples::new(normal_channel_nb_samples.samples, original_metadata)
26 }
27}