1use crate::{ll, Delay, Dsp, DspRef, Error, Mode};
2
3pub enum Type {
4 Channel = ll::FMOD_CHANNELCONTROL_TYPE_FMOD_CHANNELCONTROL_CHANNEL
5 as isize,
6 Channelgroup = ll::FMOD_CHANNELCONTROL_TYPE_FMOD_CHANNELCONTROL_CHANNELGROUP
7 as isize
8}
9
10pub enum CallbackType {
11 End = ll::FMOD_CHANNELCONTROL_CALLBACK_TYPE_FMOD_CHANNELCONTROL_CALLBACK_END as isize,
12 Virtualvoice =
13 ll::FMOD_CHANNELCONTROL_CALLBACK_TYPE_FMOD_CHANNELCONTROL_CALLBACK_VIRTUALVOICE
14 as isize,
15 Syncpoint =
16 ll::FMOD_CHANNELCONTROL_CALLBACK_TYPE_FMOD_CHANNELCONTROL_CALLBACK_SYNCPOINT
17 as isize,
18 Occlusion =
19 ll::FMOD_CHANNELCONTROL_CALLBACK_TYPE_FMOD_CHANNELCONTROL_CALLBACK_OCCLUSION
20 as isize,
21 MAX = ll::FMOD_CHANNELCONTROL_CALLBACK_TYPE_FMOD_CHANNELCONTROL_CALLBACK_MAX as isize
22}
23
24pub enum DspIndex {
28 Head = ll::FMOD_CHANNELCONTROL_DSP_INDEX_FMOD_CHANNELCONTROL_DSP_HEAD as isize,
30 Fader = ll::FMOD_CHANNELCONTROL_DSP_INDEX_FMOD_CHANNELCONTROL_DSP_FADER as isize,
32 Tail = ll::FMOD_CHANNELCONTROL_DSP_INDEX_FMOD_CHANNELCONTROL_DSP_TAIL as isize
34}
35
36pub trait ChannelControl {
37 fn add_dsp (&mut self, index : i32, dsp : &mut Dsp) -> Result <(), Error>;
38 fn add_fade_point (&mut self, dspclock : u64, volume : f32)
39 -> Result <(), Error>;
40 fn get_3d_attributes (&self) -> Result <([f32; 3], [f32; 3]), Error>;
41 fn get_3d_cone_orientation (&self) -> Result <[f32; 3], Error>;
42 fn get_3d_cone_settings (&self) -> Result <(f32, f32, f32), Error>;
43 fn get_3d_custom_rolloff (&self) -> Result <Vec <[f32; 3]>, Error>;
44 fn get_3d_distance_filter (&self) -> Result <(bool, f32, f32), Error>;
45 fn get_3d_doppler_level (&self) -> Result <f32, Error>;
46 fn get_3d_min_max_distance (&self) -> Result <(f32, f32), Error>;
48 fn get_3d_occlusion (&self) -> Result <(f32, f32), Error>;
49 fn get_3d_spread (&self) -> Result <f32, Error>;
50 fn get_audibility (&self) -> Result <f32, Error>;
51 fn get_delay (&self) -> Result <Delay, Error>;
52 fn get_dsp (&self, index : i32) -> Result <DspRef, Error>;
53 fn get_dsp_clock (&self) -> Result <u64, Error>;
54 fn get_dsp_clock_parent (&self) -> Result <u64, Error>;
55 fn get_dsp_index (&self, dsp : &Dsp) -> Result <i32, Error>;
56 fn get_low_pass_gain (&self) -> Result <f32, Error>;
57 fn get_mode (&self) -> Result <Mode, Error>;
59 fn get_mute (&self) -> Result <bool, Error>;
60 fn get_num_dsps (&self) -> Result <u32, Error>;
61 fn get_paused (&self) -> Result <bool, Error>;
62 fn get_reverb_properties (&self, instance : i32) -> Result <f32, Error>;
64 fn get_volume (&self) -> Result <f32, Error>;
65 fn is_playing (&self) -> Result <bool, Error>;
67 fn remove_dsp (&mut self, dsp : &mut Dsp) -> Result <(), Error>;
68 fn set_3d_attributes (&mut self, pos : [f32; 3], vel : [f32; 3])
70 -> Result <(), Error>;
71 fn set_delay (&mut self,
82 dspclock_start : u64, dspclock_end : u64, stopchannels : bool
83 ) -> Result <(), Error>;
84 fn set_fade_point_ramp (&mut self, dspclock : u64, volume : f32)
86 -> Result <(), Error>;
87 fn set_mute (&mut self, mute : bool) -> Result <(), Error>;
93 fn set_paused (&mut self, paused : bool) -> Result <(), Error>;
95 fn set_reverb_properties (&mut self, instance : i32, wet : f32)
119 -> Result <(), Error>;
120
121 fn set_volume (&mut self, volume : f32) -> Result <(), Error>;
123 fn stop (&mut self) -> Result <(), Error>;
125
126 }