use super::ParamType;
use crate::prelude::*;
#[repr(u32)]
#[derive(Copy, Clone, Debug, PartialOrd, PartialEq)]
pub enum EchoFilterAttr {
Wet = 0,
Delay,
Decay,
Filter,
}
#[derive(Debug)]
pub struct EchoFilter {
inner: *mut soloud_sys::soloud::EchoFilter,
}
crate::macros::filter::impl_filter_ext!(EchoFilter);
crate::macros::filter::impl_filter_type!(EchoFilterAttr);
impl EchoFilter {
pub fn set_params(&mut self, delay: f32) -> Result<(), SoloudError> {
ffi_call!(soloud_sys::soloud::EchoFilter_setParams(self.inner, delay))
}
pub fn set_params_ex(
&mut self,
delay: f32,
decay: f32,
filter: f32,
) -> Result<(), SoloudError> {
ffi_call!(soloud_sys::soloud::EchoFilter_setParamsEx(
self.inner, delay, decay, filter
))
}
}