use crate::{ll, Delay, Dsp, DspRef, Error, Mode};
pub enum Type {
Channel = ll::FMOD_CHANNELCONTROL_TYPE_FMOD_CHANNELCONTROL_CHANNEL
as isize,
Channelgroup = ll::FMOD_CHANNELCONTROL_TYPE_FMOD_CHANNELCONTROL_CHANNELGROUP
as isize
}
pub enum CallbackType {
End = ll::FMOD_CHANNELCONTROL_CALLBACK_TYPE_FMOD_CHANNELCONTROL_CALLBACK_END as isize,
Virtualvoice =
ll::FMOD_CHANNELCONTROL_CALLBACK_TYPE_FMOD_CHANNELCONTROL_CALLBACK_VIRTUALVOICE
as isize,
Syncpoint =
ll::FMOD_CHANNELCONTROL_CALLBACK_TYPE_FMOD_CHANNELCONTROL_CALLBACK_SYNCPOINT
as isize,
Occlusion =
ll::FMOD_CHANNELCONTROL_CALLBACK_TYPE_FMOD_CHANNELCONTROL_CALLBACK_OCCLUSION
as isize,
MAX = ll::FMOD_CHANNELCONTROL_CALLBACK_TYPE_FMOD_CHANNELCONTROL_CALLBACK_MAX as isize
}
pub enum DspIndex {
Head = ll::FMOD_CHANNELCONTROL_DSP_INDEX_FMOD_CHANNELCONTROL_DSP_HEAD as isize,
Fader = ll::FMOD_CHANNELCONTROL_DSP_INDEX_FMOD_CHANNELCONTROL_DSP_FADER as isize,
Tail = ll::FMOD_CHANNELCONTROL_DSP_INDEX_FMOD_CHANNELCONTROL_DSP_TAIL as isize
}
pub trait ChannelControl {
fn add_dsp (&mut self, index : i32, dsp : &mut Dsp) -> Result <(), Error>;
fn add_fade_point (&mut self, dspclock : u64, volume : f32)
-> Result <(), Error>;
fn get_3d_attributes (&self) -> Result <([f32; 3], [f32; 3]), Error>;
fn get_3d_cone_orientation (&self) -> Result <[f32; 3], Error>;
fn get_3d_cone_settings (&self) -> Result <(f32, f32, f32), Error>;
fn get_3d_custom_rolloff (&self) -> Result <Vec <[f32; 3]>, Error>;
fn get_3d_distance_filter (&self) -> Result <(bool, f32, f32), Error>;
fn get_3d_doppler_level (&self) -> Result <f32, Error>;
fn get_3d_min_max_distance (&self) -> Result <(f32, f32), Error>;
fn get_3d_occlusion (&self) -> Result <(f32, f32), Error>;
fn get_3d_spread (&self) -> Result <f32, Error>;
fn get_audibility (&self) -> Result <f32, Error>;
fn get_delay (&self) -> Result <Delay, Error>;
fn get_dsp (&self, index : i32) -> Result <DspRef, Error>;
fn get_dsp_clock (&self) -> Result <u64, Error>;
fn get_dsp_clock_parent (&self) -> Result <u64, Error>;
fn get_dsp_index (&self, dsp : &Dsp) -> Result <i32, Error>;
fn get_low_pass_gain (&self) -> Result <f32, Error>;
fn get_mode (&self) -> Result <Mode, Error>;
fn get_mute (&self) -> Result <bool, Error>;
fn get_num_dsps (&self) -> Result <u32, Error>;
fn get_paused (&self) -> Result <bool, Error>;
fn get_reverb_properties (&self, instance : i32) -> Result <f32, Error>;
fn get_volume (&self) -> Result <f32, Error>;
fn is_playing (&self) -> Result <bool, Error>;
fn remove_dsp (&mut self, dsp : &mut Dsp) -> Result <(), Error>;
fn set_3d_attributes (&mut self, pos : [f32; 3], vel : [f32; 3])
-> Result <(), Error>;
fn set_delay (&mut self,
dspclock_start : u64, dspclock_end : u64, stopchannels : bool
) -> Result <(), Error>;
fn set_fade_point_ramp (&mut self, dspclock : u64, volume : f32)
-> Result <(), Error>;
fn set_mute (&mut self, mute : bool) -> Result <(), Error>;
fn set_paused (&mut self, paused : bool) -> Result <(), Error>;
fn set_reverb_properties (&mut self, instance : i32, wet : f32)
-> Result <(), Error>;
fn set_volume (&mut self, volume : f32) -> Result <(), Error>;
fn stop (&mut self) -> Result <(), Error>;
}