audio_processor_traits/
settings.rs1#[derive(Clone, PartialEq, Debug, Copy)]
26pub struct AudioProcessorSettings {
27 pub sample_rate: f32,
29 pub input_channels: usize,
31 pub output_channels: usize,
33 pub block_size: usize,
35}
36
37impl Default for AudioProcessorSettings {
38 fn default() -> Self {
39 Self::new(44100.0, 2, 2, 512)
40 }
41}
42
43impl AudioProcessorSettings {
44 pub fn new(
46 sample_rate: f32,
47 input_channels: usize,
48 output_channels: usize,
49 block_size: usize,
50 ) -> Self {
51 AudioProcessorSettings {
52 sample_rate,
53 input_channels,
54 output_channels,
55 block_size,
56 }
57 }
58
59 pub fn sample_rate(&self) -> f32 {
61 self.sample_rate
62 }
63
64 pub fn input_channels(&self) -> usize {
66 self.input_channels
67 }
68
69 pub fn output_channels(&self) -> usize {
71 self.output_channels
72 }
73
74 pub fn block_size(&self) -> usize {
76 self.block_size
77 }
78
79 pub fn set_sample_rate(&mut self, sample_rate: f32) {
81 self.sample_rate = sample_rate;
82 }
83
84 pub fn set_input_channels(&mut self, input_channels: usize) {
86 self.input_channels = input_channels;
87 }
88
89 pub fn set_output_channels(&mut self, output_channels: usize) {
91 self.output_channels = output_channels;
92 }
93
94 pub fn set_block_size(&mut self, block_size: usize) {
96 self.block_size = block_size;
97 }
98}
99
100#[cfg(test)]
101mod test {
102 use super::*;
103
104 #[test]
105 fn test_create_settings() {
106 let settings = AudioProcessorSettings::default();
107 assert_eq!(settings.sample_rate(), 44100.0);
108 }
109
110 #[test]
111 fn test_new() {
112 let settings = AudioProcessorSettings::new(22050.0, 1, 2, 256);
113 assert_eq!(settings.sample_rate(), 22050.0);
114 assert_eq!(settings.input_channels(), 1);
115 assert_eq!(settings.output_channels(), 2);
116 assert_eq!(settings.block_size(), 256);
117 }
118
119 #[test]
120 fn test_set_sample_rate() {
121 let mut settings = AudioProcessorSettings::new(22050.0, 1, 2, 256);
122 settings.set_sample_rate(44100.0);
123 assert_eq!(settings.sample_rate(), 44100.0);
124 }
125
126 #[test]
127 fn test_set_input_channels() {
128 let mut settings = AudioProcessorSettings::new(22050.0, 1, 2, 256);
129 settings.set_input_channels(10);
130 assert_eq!(settings.input_channels(), 10);
131 }
132
133 #[test]
134 fn test_set_output_channels() {
135 let mut settings = AudioProcessorSettings::new(22050.0, 1, 2, 256);
136 settings.set_output_channels(10);
137 assert_eq!(settings.output_channels(), 10);
138 }
139
140 #[test]
141 fn test_set_block_size() {
142 let mut settings = AudioProcessorSettings::new(22050.0, 1, 2, 256);
143 settings.set_block_size(10);
144 assert_eq!(settings.block_size(), 10);
145 }
146}