pub trait Resampler: Sized {
fn new(
channels: usize,
in_rate: usize,
out_rate: usize,
quality: usize
) -> Result<Self, Error>;
fn set_rate(&mut self, in_rate: usize, out_rate: usize) -> Result<(), Error>;
fn get_rate(&self) -> (usize, usize);
fn get_ratio(&self) -> (usize, usize);
fn process_float(
&mut self,
index: usize,
input: &[f32],
output: &mut [f32]
) -> Result<(usize, usize), Error>;
fn skip_zeros(&mut self);
fn reset(&mut self);
fn get_input_latency(&self) -> usize;
fn get_output_latency(&self) -> usize;
fn set_quality(&mut self, quality: usize) -> Result<(), Error>;
fn get_quality(&self) -> usize;
}