#[derive(Clone, PartialEq, Debug, Copy)]
pub struct AudioProcessorSettings {
pub sample_rate: f32,
pub input_channels: usize,
pub output_channels: usize,
pub block_size: usize,
}
impl Default for AudioProcessorSettings {
fn default() -> Self {
Self::new(44100.0, 2, 2, 512)
}
}
impl AudioProcessorSettings {
pub fn new(
sample_rate: f32,
input_channels: usize,
output_channels: usize,
block_size: usize,
) -> Self {
AudioProcessorSettings {
sample_rate,
input_channels,
output_channels,
block_size,
}
}
pub fn sample_rate(&self) -> f32 {
self.sample_rate
}
pub fn input_channels(&self) -> usize {
self.input_channels
}
pub fn output_channels(&self) -> usize {
self.output_channels
}
pub fn block_size(&self) -> usize {
self.block_size
}
pub fn set_sample_rate(&mut self, sample_rate: f32) {
self.sample_rate = sample_rate;
}
pub fn set_input_channels(&mut self, input_channels: usize) {
self.input_channels = input_channels;
}
pub fn set_output_channels(&mut self, output_channels: usize) {
self.output_channels = output_channels;
}
pub fn set_block_size(&mut self, block_size: usize) {
self.block_size = block_size;
}
}
#[cfg(test)]
mod test {
use super::*;
#[test]
fn test_create_settings() {
let settings = AudioProcessorSettings::default();
assert_eq!(settings.sample_rate(), 44100.0);
}
#[test]
fn test_new() {
let settings = AudioProcessorSettings::new(22050.0, 1, 2, 256);
assert_eq!(settings.sample_rate(), 22050.0);
assert_eq!(settings.input_channels(), 1);
assert_eq!(settings.output_channels(), 2);
assert_eq!(settings.block_size(), 256);
}
#[test]
fn test_set_sample_rate() {
let mut settings = AudioProcessorSettings::new(22050.0, 1, 2, 256);
settings.set_sample_rate(44100.0);
assert_eq!(settings.sample_rate(), 44100.0);
}
#[test]
fn test_set_input_channels() {
let mut settings = AudioProcessorSettings::new(22050.0, 1, 2, 256);
settings.set_input_channels(10);
assert_eq!(settings.input_channels(), 10);
}
#[test]
fn test_set_output_channels() {
let mut settings = AudioProcessorSettings::new(22050.0, 1, 2, 256);
settings.set_output_channels(10);
assert_eq!(settings.output_channels(), 10);
}
#[test]
fn test_set_block_size() {
let mut settings = AudioProcessorSettings::new(22050.0, 1, 2, 256);
settings.set_block_size(10);
assert_eq!(settings.block_size(), 10);
}
}