use super::ParamType;
use crate::prelude::*;
#[repr(u32)]
#[derive(Copy, Clone, Debug, PartialOrd, PartialEq)]
pub enum BiquadResonantFilterAttr {
Wet = 0,
Type,
Freq,
Resonance,
}
#[repr(i32)]
#[derive(Copy, Clone, Debug, PartialOrd, PartialEq)]
pub enum BiquadResonantFilterType {
LowPass,
HighPass,
BandPass,
}
#[derive(Debug)]
pub struct BiquadResonantFilter {
inner: *mut soloud_sys::soloud::BiquadResonantFilter,
}
crate::macros::filter::impl_filter_ext!(BiquadResonantFilter);
crate::macros::filter::impl_filter_type!(BiquadResonantFilterType);
crate::macros::filter::impl_filter_type!(BiquadResonantFilterAttr);
impl BiquadResonantFilter {
pub fn set_params(
&mut self,
filter_type: BiquadResonantFilterType,
frequency: f32,
resonance: f32,
) -> Result<(), SoloudError> {
ffi_call!(soloud_sys::soloud::BiquadResonantFilter_setParams(
self.inner,
filter_type as i32,
frequency,
resonance,
))
}
}