1use num_derive::FromPrimitive;
2use crate::{ll};
3
4#[derive(Clone, Debug, Eq, PartialEq)]
5pub struct Desc {
6 pub type_ : Type,
7 pub name : String,
8 pub label : String,
9 pub description : String
10}
11
12#[derive(Copy, Clone, Debug, Eq, PartialEq, FromPrimitive)]
13pub enum Type {
14 Bool = ll::FMOD_DSP_PARAMETER_TYPE_FMOD_DSP_PARAMETER_TYPE_BOOL as isize,
15 Data = ll::FMOD_DSP_PARAMETER_TYPE_FMOD_DSP_PARAMETER_TYPE_DATA as isize,
16 Float = ll::FMOD_DSP_PARAMETER_TYPE_FMOD_DSP_PARAMETER_TYPE_FLOAT as isize,
17 Int = ll::FMOD_DSP_PARAMETER_TYPE_FMOD_DSP_PARAMETER_TYPE_INT as isize,
18 MAX = ll::FMOD_DSP_PARAMETER_TYPE_FMOD_DSP_PARAMETER_TYPE_MAX as isize
19}
20
21#[derive(Copy, Clone, Debug, Eq, PartialEq, FromPrimitive)]
24pub enum Echo {
25 Delay = ll::FMOD_DSP_ECHO_FMOD_DSP_ECHO_DELAY as isize,
26 Feedback = ll::FMOD_DSP_ECHO_FMOD_DSP_ECHO_FEEDBACK as isize,
27 DryLevel = ll::FMOD_DSP_ECHO_FMOD_DSP_ECHO_DRYLEVEL as isize,
28 WetLevel = ll::FMOD_DSP_ECHO_FMOD_DSP_ECHO_WETLEVEL as isize
29}
30
31#[derive(Copy, Clone, Debug, Eq, PartialEq, FromPrimitive)]
32pub enum Lowpass {
33 Cutoff = ll::FMOD_DSP_LOWPASS_FMOD_DSP_LOWPASS_CUTOFF as isize,
35 Resonance = ll::FMOD_DSP_LOWPASS_FMOD_DSP_LOWPASS_RESONANCE as isize
37}
38
39#[derive(Copy, Clone, Debug, Eq, PartialEq, FromPrimitive)]
40pub enum MultibandEq {
41 AFilter = ll::FMOD_DSP_MULTIBAND_EQ_FMOD_DSP_MULTIBAND_EQ_A_FILTER as isize,
43 AFrequency = ll::FMOD_DSP_MULTIBAND_EQ_FMOD_DSP_MULTIBAND_EQ_A_FREQUENCY
45 as isize,
46 AQ = ll::FMOD_DSP_MULTIBAND_EQ_FMOD_DSP_MULTIBAND_EQ_A_Q as isize,
48 AGain = ll::FMOD_DSP_MULTIBAND_EQ_FMOD_DSP_MULTIBAND_EQ_A_GAIN as isize,
50 BFilter = ll::FMOD_DSP_MULTIBAND_EQ_FMOD_DSP_MULTIBAND_EQ_B_FILTER as isize,
52 BFrequency = ll::FMOD_DSP_MULTIBAND_EQ_FMOD_DSP_MULTIBAND_EQ_B_FREQUENCY
54 as isize,
55 BQ = ll::FMOD_DSP_MULTIBAND_EQ_FMOD_DSP_MULTIBAND_EQ_B_Q as isize,
57 BGain = ll::FMOD_DSP_MULTIBAND_EQ_FMOD_DSP_MULTIBAND_EQ_B_GAIN as isize,
59 CFilter = ll::FMOD_DSP_MULTIBAND_EQ_FMOD_DSP_MULTIBAND_EQ_C_FILTER as isize,
61 CFrequency = ll::FMOD_DSP_MULTIBAND_EQ_FMOD_DSP_MULTIBAND_EQ_C_FREQUENCY
63 as isize,
64 CQ = ll::FMOD_DSP_MULTIBAND_EQ_FMOD_DSP_MULTIBAND_EQ_C_Q as isize,
66 CGain = ll::FMOD_DSP_MULTIBAND_EQ_FMOD_DSP_MULTIBAND_EQ_C_GAIN as isize,
68 DFilter = ll::FMOD_DSP_MULTIBAND_EQ_FMOD_DSP_MULTIBAND_EQ_D_FILTER as isize,
70 DFrequency = ll::FMOD_DSP_MULTIBAND_EQ_FMOD_DSP_MULTIBAND_EQ_D_FREQUENCY
72 as isize,
73 DQ = ll::FMOD_DSP_MULTIBAND_EQ_FMOD_DSP_MULTIBAND_EQ_D_Q as isize,
75 DGain = ll::FMOD_DSP_MULTIBAND_EQ_FMOD_DSP_MULTIBAND_EQ_D_GAIN as isize,
77 EFilter = ll::FMOD_DSP_MULTIBAND_EQ_FMOD_DSP_MULTIBAND_EQ_E_FILTER as isize,
79 EFrequency = ll::FMOD_DSP_MULTIBAND_EQ_FMOD_DSP_MULTIBAND_EQ_E_FREQUENCY
81 as isize,
82 EQ = ll::FMOD_DSP_MULTIBAND_EQ_FMOD_DSP_MULTIBAND_EQ_E_Q as isize,
84 EGain = ll::FMOD_DSP_MULTIBAND_EQ_FMOD_DSP_MULTIBAND_EQ_E_GAIN as isize,
86}
87
88#[derive(Copy, Clone, Debug, Eq, PartialEq, FromPrimitive)]
89pub enum MultibandEqFilterType {
90 Disabled =
91 ll::FMOD_DSP_MULTIBAND_EQ_FILTER_TYPE_FMOD_DSP_MULTIBAND_EQ_FILTER_DISABLED
92 as isize,
93 Lowpass12db =
94 ll::FMOD_DSP_MULTIBAND_EQ_FILTER_TYPE_FMOD_DSP_MULTIBAND_EQ_FILTER_LOWPASS_12DB
95 as isize,
96 Lowpass24db =
97 ll::FMOD_DSP_MULTIBAND_EQ_FILTER_TYPE_FMOD_DSP_MULTIBAND_EQ_FILTER_LOWPASS_24DB
98 as isize,
99 Lowpass48db =
100 ll::FMOD_DSP_MULTIBAND_EQ_FILTER_TYPE_FMOD_DSP_MULTIBAND_EQ_FILTER_LOWPASS_48DB
101 as isize,
102 Highpass12db =
103 ll::FMOD_DSP_MULTIBAND_EQ_FILTER_TYPE_FMOD_DSP_MULTIBAND_EQ_FILTER_HIGHPASS_12DB
104 as isize,
105 Highpass24db =
106 ll::FMOD_DSP_MULTIBAND_EQ_FILTER_TYPE_FMOD_DSP_MULTIBAND_EQ_FILTER_HIGHPASS_24DB
107 as isize,
108 Highpass48db =
109 ll::FMOD_DSP_MULTIBAND_EQ_FILTER_TYPE_FMOD_DSP_MULTIBAND_EQ_FILTER_HIGHPASS_48DB
110 as isize,
111 Lowshelf =
112 ll::FMOD_DSP_MULTIBAND_EQ_FILTER_TYPE_FMOD_DSP_MULTIBAND_EQ_FILTER_LOWSHELF
113 as isize,
114 Highshelf =
115 ll::FMOD_DSP_MULTIBAND_EQ_FILTER_TYPE_FMOD_DSP_MULTIBAND_EQ_FILTER_HIGHSHELF
116 as isize,
117 Peaking =
118 ll::FMOD_DSP_MULTIBAND_EQ_FILTER_TYPE_FMOD_DSP_MULTIBAND_EQ_FILTER_PEAKING
119 as isize,
120 Bandpass =
121 ll::FMOD_DSP_MULTIBAND_EQ_FILTER_TYPE_FMOD_DSP_MULTIBAND_EQ_FILTER_BANDPASS
122 as isize,
123 Notch =
124 ll::FMOD_DSP_MULTIBAND_EQ_FILTER_TYPE_FMOD_DSP_MULTIBAND_EQ_FILTER_NOTCH
125 as isize,
126 Allpass =
127 ll::FMOD_DSP_MULTIBAND_EQ_FILTER_TYPE_FMOD_DSP_MULTIBAND_EQ_FILTER_ALLPASS
128 as isize
129}
130
131#[derive(Copy, Clone, Debug, Eq, PartialEq, FromPrimitive)]
133pub enum Sfxreverb {
134 DecayTime = ll::FMOD_DSP_SFXREVERB_FMOD_DSP_SFXREVERB_DECAYTIME as isize,
135 Density = ll::FMOD_DSP_SFXREVERB_FMOD_DSP_SFXREVERB_DENSITY as isize,
136 Diffusion = ll::FMOD_DSP_SFXREVERB_FMOD_DSP_SFXREVERB_DIFFUSION as isize,
137 DryLevel = ll::FMOD_DSP_SFXREVERB_FMOD_DSP_SFXREVERB_DRYLEVEL as isize,
138 EarlyDelay = ll::FMOD_DSP_SFXREVERB_FMOD_DSP_SFXREVERB_EARLYDELAY as isize,
139 EarlyLateMix = ll::FMOD_DSP_SFXREVERB_FMOD_DSP_SFXREVERB_EARLYLATEMIX as isize,
140 HfDecayRatio = ll::FMOD_DSP_SFXREVERB_FMOD_DSP_SFXREVERB_HFDECAYRATIO as isize,
141 HfReference = ll::FMOD_DSP_SFXREVERB_FMOD_DSP_SFXREVERB_HFREFERENCE as isize,
142 HighCut = ll::FMOD_DSP_SFXREVERB_FMOD_DSP_SFXREVERB_HIGHCUT as isize,
143 LateDelay = ll::FMOD_DSP_SFXREVERB_FMOD_DSP_SFXREVERB_LATEDELAY as isize,
144 LowShelfFrequency = ll::FMOD_DSP_SFXREVERB_FMOD_DSP_SFXREVERB_LOWSHELFFREQUENCY
145 as isize,
146 LowShelfGain = ll::FMOD_DSP_SFXREVERB_FMOD_DSP_SFXREVERB_LOWSHELFGAIN as isize,
147 WetLevel = ll::FMOD_DSP_SFXREVERB_FMOD_DSP_SFXREVERB_WETLEVEL as isize
148}
149