• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * This file is auto-generated. Modifications will be lost.
3  *
4  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5  * for more information.
6  */
7 #ifndef _AUDIO_EFFECTS_H
8 #define _AUDIO_EFFECTS_H
9 #define CONFIG_CACHE 0
10 #define CONFIG_SET 1
11 #define CONFIG_GET 2
12 #define VIRTUALIZER_MODULE 0x00001000
13 #define VIRTUALIZER_ENABLE 0x00001001
14 #define VIRTUALIZER_STRENGTH 0x00001002
15 #define VIRTUALIZER_OUT_TYPE 0x00001003
16 #define VIRTUALIZER_GAIN_ADJUST 0x00001004
17 #define VIRTUALIZER_ENABLE_PARAM_LEN 1
18 #define VIRTUALIZER_STRENGTH_PARAM_LEN 1
19 #define VIRTUALIZER_OUT_TYPE_PARAM_LEN 1
20 #define VIRTUALIZER_GAIN_ADJUST_PARAM_LEN 1
21 #define REVERB_MODULE 0x00002000
22 #define REVERB_ENABLE 0x00002001
23 #define REVERB_MODE 0x00002002
24 #define REVERB_PRESET 0x00002003
25 #define REVERB_WET_MIX 0x00002004
26 #define REVERB_GAIN_ADJUST 0x00002005
27 #define REVERB_ROOM_LEVEL 0x00002006
28 #define REVERB_ROOM_HF_LEVEL 0x00002007
29 #define REVERB_DECAY_TIME 0x00002008
30 #define REVERB_DECAY_HF_RATIO 0x00002009
31 #define REVERB_REFLECTIONS_LEVEL 0x0000200a
32 #define REVERB_REFLECTIONS_DELAY 0x0000200b
33 #define REVERB_LEVEL 0x0000200c
34 #define REVERB_DELAY 0x0000200d
35 #define REVERB_DIFFUSION 0x0000200e
36 #define REVERB_DENSITY 0x0000200f
37 #define REVERB_ENABLE_PARAM_LEN 1
38 #define REVERB_MODE_PARAM_LEN 1
39 #define REVERB_PRESET_PARAM_LEN 1
40 #define REVERB_WET_MIX_PARAM_LEN 1
41 #define REVERB_GAIN_ADJUST_PARAM_LEN 1
42 #define REVERB_ROOM_LEVEL_PARAM_LEN 1
43 #define REVERB_ROOM_HF_LEVEL_PARAM_LEN 1
44 #define REVERB_DECAY_TIME_PARAM_LEN 1
45 #define REVERB_DECAY_HF_RATIO_PARAM_LEN 1
46 #define REVERB_REFLECTIONS_LEVEL_PARAM_LEN 1
47 #define REVERB_REFLECTIONS_DELAY_PARAM_LEN 1
48 #define REVERB_LEVEL_PARAM_LEN 1
49 #define REVERB_DELAY_PARAM_LEN 1
50 #define REVERB_DIFFUSION_PARAM_LEN 1
51 #define REVERB_DENSITY_PARAM_LEN 1
52 #define BASS_BOOST_MODULE 0x00003000
53 #define BASS_BOOST_ENABLE 0x00003001
54 #define BASS_BOOST_MODE 0x00003002
55 #define BASS_BOOST_STRENGTH 0x00003003
56 #define BASS_BOOST_ENABLE_PARAM_LEN 1
57 #define BASS_BOOST_MODE_PARAM_LEN 1
58 #define BASS_BOOST_STRENGTH_PARAM_LEN 1
59 #define EQ_MODULE 0x00004000
60 #define EQ_ENABLE 0x00004001
61 #define EQ_CONFIG 0x00004002
62 #define EQ_NUM_BANDS 0x00004003
63 #define EQ_BAND_LEVELS 0x00004004
64 #define EQ_BAND_LEVEL_RANGE 0x00004005
65 #define EQ_BAND_FREQS 0x00004006
66 #define EQ_SINGLE_BAND_FREQ_RANGE 0x00004007
67 #define EQ_SINGLE_BAND_FREQ 0x00004008
68 #define EQ_BAND_INDEX 0x00004009
69 #define EQ_PRESET_ID 0x0000400a
70 #define EQ_NUM_PRESETS 0x0000400b
71 #define EQ_PRESET_NAME 0x0000400c
72 #define EQ_ENABLE_PARAM_LEN 1
73 #define EQ_CONFIG_PARAM_LEN 3
74 #define EQ_CONFIG_PER_BAND_PARAM_LEN 5
75 #define EQ_NUM_BANDS_PARAM_LEN 1
76 #define EQ_BAND_LEVELS_PARAM_LEN 13
77 #define EQ_BAND_LEVEL_RANGE_PARAM_LEN 2
78 #define EQ_BAND_FREQS_PARAM_LEN 13
79 #define EQ_SINGLE_BAND_FREQ_RANGE_PARAM_LEN 2
80 #define EQ_SINGLE_BAND_FREQ_PARAM_LEN 1
81 #define EQ_BAND_INDEX_PARAM_LEN 1
82 #define EQ_PRESET_ID_PARAM_LEN 1
83 #define EQ_NUM_PRESETS_PARAM_LEN 1
84 #define EQ_PRESET_NAME_PARAM_LEN 32
85 #define EQ_TYPE_NONE 0
86 #define EQ_BASS_BOOST 1
87 #define EQ_BASS_CUT 2
88 #define EQ_TREBLE_BOOST 3
89 #define EQ_TREBLE_CUT 4
90 #define EQ_BAND_BOOST 5
91 #define EQ_BAND_CUT 6
92 #define SOFT_VOLUME_MODULE 0x00006000
93 #define SOFT_VOLUME_ENABLE 0x00006001
94 #define SOFT_VOLUME_GAIN_2CH 0x00006002
95 #define SOFT_VOLUME_GAIN_MASTER 0x00006003
96 #define SOFT_VOLUME_ENABLE_PARAM_LEN 1
97 #define SOFT_VOLUME_GAIN_2CH_PARAM_LEN 2
98 #define SOFT_VOLUME_GAIN_MASTER_PARAM_LEN 1
99 #define SOFT_VOLUME2_MODULE 0x00007000
100 #define SOFT_VOLUME2_ENABLE 0x00007001
101 #define SOFT_VOLUME2_GAIN_2CH 0x00007002
102 #define SOFT_VOLUME2_GAIN_MASTER 0x00007003
103 #define SOFT_VOLUME2_ENABLE_PARAM_LEN SOFT_VOLUME_ENABLE_PARAM_LEN
104 #define SOFT_VOLUME2_GAIN_2CH_PARAM_LEN SOFT_VOLUME_GAIN_2CH_PARAM_LEN
105 #define SOFT_VOLUME2_GAIN_MASTER_PARAM_LEN SOFT_VOLUME_GAIN_MASTER_PARAM_LEN
106 #define PBE_CONF_MODULE_ID 0x00010C2A
107 #define PBE_CONF_PARAM_ID 0x00010C49
108 #define PBE_MODULE 0x00008000
109 #define PBE_ENABLE 0x00008001
110 #define PBE_CONFIG 0x00008002
111 #define PBE_ENABLE_PARAM_LEN 1
112 #define PBE_CONFIG_PARAM_LEN 28
113 #define COMMAND_PAYLOAD_LEN 3
114 #define COMMAND_PAYLOAD_SZ (COMMAND_PAYLOAD_LEN * sizeof(uint32_t))
115 #define COMMAND_IID_PAYLOAD_LEN 4
116 #define COMMAND_IID_PAYLOAD_SZ (COMMAND_IID_PAYLOAD_LEN * sizeof(uint32_t))
117 #define MAX_INBAND_PARAM_SZ 4096
118 #define Q27_UNITY (1 << 27)
119 #define Q8_UNITY (1 << 8)
120 #define CUSTOM_OPENSL_PRESET 18
121 #define VIRTUALIZER_ENABLE_PARAM_SZ (VIRTUALIZER_ENABLE_PARAM_LEN * sizeof(uint32_t))
122 #define VIRTUALIZER_STRENGTH_PARAM_SZ (VIRTUALIZER_STRENGTH_PARAM_LEN * sizeof(uint32_t))
123 #define VIRTUALIZER_OUT_TYPE_PARAM_SZ (VIRTUALIZER_OUT_TYPE_PARAM_LEN * sizeof(uint32_t))
124 #define VIRTUALIZER_GAIN_ADJUST_PARAM_SZ (VIRTUALIZER_GAIN_ADJUST_PARAM_LEN * sizeof(uint32_t))
125 struct virtualizer_params {
126   uint32_t device;
127   uint32_t enable_flag;
128   uint32_t strength;
129   uint32_t out_type;
130   int32_t gain_adjust;
131 };
132 #define NUM_OSL_REVERB_PRESETS_SUPPORTED 6
133 #define REVERB_ENABLE_PARAM_SZ (REVERB_ENABLE_PARAM_LEN * sizeof(uint32_t))
134 #define REVERB_MODE_PARAM_SZ (REVERB_MODE_PARAM_LEN * sizeof(uint32_t))
135 #define REVERB_PRESET_PARAM_SZ (REVERB_PRESET_PARAM_LEN * sizeof(uint32_t))
136 #define REVERB_WET_MIX_PARAM_SZ (REVERB_WET_MIX_PARAM_LEN * sizeof(uint32_t))
137 #define REVERB_GAIN_ADJUST_PARAM_SZ (REVERB_GAIN_ADJUST_PARAM_LEN * sizeof(uint32_t))
138 #define REVERB_ROOM_LEVEL_PARAM_SZ (REVERB_ROOM_LEVEL_PARAM_LEN * sizeof(uint32_t))
139 #define REVERB_ROOM_HF_LEVEL_PARAM_SZ (REVERB_ROOM_HF_LEVEL_PARAM_LEN * sizeof(uint32_t))
140 #define REVERB_DECAY_TIME_PARAM_SZ (REVERB_DECAY_TIME_PARAM_LEN * sizeof(uint32_t))
141 #define REVERB_DECAY_HF_RATIO_PARAM_SZ (REVERB_DECAY_HF_RATIO_PARAM_LEN * sizeof(uint32_t))
142 #define REVERB_REFLECTIONS_LEVEL_PARAM_SZ (REVERB_REFLECTIONS_LEVEL_PARAM_LEN * sizeof(uint32_t))
143 #define REVERB_REFLECTIONS_DELAY_PARAM_SZ (REVERB_REFLECTIONS_DELAY_PARAM_LEN * sizeof(uint32_t))
144 #define REVERB_LEVEL_PARAM_SZ (REVERB_LEVEL_PARAM_LEN * sizeof(uint32_t))
145 #define REVERB_DELAY_PARAM_SZ (REVERB_DELAY_PARAM_LEN * sizeof(uint32_t))
146 #define REVERB_DIFFUSION_PARAM_SZ (REVERB_DIFFUSION_PARAM_LEN * sizeof(uint32_t))
147 #define REVERB_DENSITY_PARAM_SZ (REVERB_DENSITY_PARAM_LEN * sizeof(uint32_t))
148 struct reverb_params {
149   uint32_t device;
150   uint32_t enable_flag;
151   uint32_t mode;
152   uint32_t preset;
153   uint32_t wet_mix;
154   int32_t gain_adjust;
155   int32_t room_level;
156   int32_t room_hf_level;
157   uint32_t decay_time;
158   uint32_t decay_hf_ratio;
159   int32_t reflections_level;
160   uint32_t reflections_delay;
161   int32_t level;
162   uint32_t delay;
163   uint32_t diffusion;
164   uint32_t density;
165 };
166 #define BASS_BOOST_ENABLE_PARAM_SZ (BASS_BOOST_ENABLE_PARAM_LEN * sizeof(uint32_t))
167 #define BASS_BOOST_MODE_PARAM_SZ (BASS_BOOST_MODE_PARAM_LEN * sizeof(uint32_t))
168 #define BASS_BOOST_STRENGTH_PARAM_SZ (BASS_BOOST_STRENGTH_PARAM_LEN * sizeof(uint32_t))
169 struct bass_boost_params {
170   uint32_t device;
171   uint32_t enable_flag;
172   uint32_t mode;
173   uint32_t strength;
174 };
175 #define MAX_EQ_BANDS 12
176 #define MAX_OSL_EQ_BANDS 5
177 #define EQ_ENABLE_PARAM_SZ (EQ_ENABLE_PARAM_LEN * sizeof(uint32_t))
178 #define EQ_CONFIG_PARAM_SZ (EQ_CONFIG_PARAM_LEN * sizeof(uint32_t))
179 #define EQ_CONFIG_PER_BAND_PARAM_SZ (EQ_CONFIG_PER_BAND_PARAM_LEN * sizeof(uint32_t))
180 #define EQ_CONFIG_PARAM_MAX_LEN (EQ_CONFIG_PARAM_LEN + MAX_EQ_BANDS * EQ_CONFIG_PER_BAND_PARAM_LEN)
181 #define EQ_CONFIG_PARAM_MAX_SZ (EQ_CONFIG_PARAM_MAX_LEN * sizeof(uint32_t))
182 #define EQ_NUM_BANDS_PARAM_SZ (EQ_NUM_BANDS_PARAM_LEN * sizeof(uint32_t))
183 #define EQ_BAND_LEVELS_PARAM_SZ (EQ_BAND_LEVELS_PARAM_LEN * sizeof(uint32_t))
184 #define EQ_BAND_LEVEL_RANGE_PARAM_SZ (EQ_BAND_LEVEL_RANGE_PARAM_LEN * sizeof(uint32_t))
185 #define EQ_BAND_FREQS_PARAM_SZ (EQ_BAND_FREQS_PARAM_LEN * sizeof(uint32_t))
186 #define EQ_SINGLE_BAND_FREQ_RANGE_PARAM_SZ (EQ_SINGLE_BAND_FREQ_RANGE_PARAM_LEN * sizeof(uint32_t))
187 #define EQ_SINGLE_BAND_FREQ_PARAM_SZ (EQ_SINGLE_BAND_FREQ_PARAM_LEN * sizeof(uint32_t))
188 #define EQ_BAND_INDEX_PARAM_SZ (EQ_BAND_INDEX_PARAM_LEN * sizeof(uint32_t))
189 #define EQ_PRESET_ID_PARAM_SZ (EQ_PRESET_ID_PARAM_LEN * sizeof(uint32_t))
190 #define EQ_NUM_PRESETS_PARAM_SZ (EQ_NUM_PRESETS_PARAM_LEN * sizeof(uint8_t))
191 struct eq_config_t {
192   int32_t eq_pregain;
193   int32_t preset_id;
194   uint32_t num_bands;
195 };
196 struct eq_per_band_config_t {
197   int32_t band_idx;
198   uint32_t filter_type;
199   uint32_t freq_millihertz;
200   int32_t gain_millibels;
201   uint32_t quality_factor;
202 };
203 struct eq_per_band_freq_range_t {
204   uint32_t band_index;
205   uint32_t min_freq_millihertz;
206   uint32_t max_freq_millihertz;
207 };
208 struct eq_params {
209   uint32_t device;
210   uint32_t enable_flag;
211   struct eq_config_t config;
212   struct eq_per_band_config_t per_band_cfg[MAX_EQ_BANDS];
213   struct eq_per_band_freq_range_t per_band_freq_range[MAX_EQ_BANDS];
214   uint32_t band_index;
215   uint32_t freq_millihertz;
216 };
217 #define PBE_ENABLE_PARAM_SZ (PBE_ENABLE_PARAM_LEN * sizeof(uint32_t))
218 #define PBE_CONFIG_PARAM_SZ (PBE_CONFIG_PARAM_LEN * sizeof(uint16_t))
219 struct pbe_config_t {
220   int16_t real_bass_mix;
221   int16_t bass_color_control;
222   uint16_t main_chain_delay;
223   uint16_t xover_filter_order;
224   uint16_t bandpass_filter_order;
225   int16_t drc_delay;
226   uint16_t rms_tav;
227   int16_t exp_threshold;
228   uint16_t exp_slope;
229   int16_t comp_threshold;
230   uint16_t comp_slope;
231   uint16_t makeup_gain;
232   uint32_t comp_attack;
233   uint32_t comp_release;
234   uint32_t exp_attack;
235   uint32_t exp_release;
236   int16_t limiter_bass_threshold;
237   int16_t limiter_high_threshold;
238   int16_t limiter_bass_makeup_gain;
239   int16_t limiter_high_makeup_gain;
240   int16_t limiter_bass_gc;
241   int16_t limiter_high_gc;
242   int16_t limiter_delay;
243   uint16_t reserved;
244   int32_t p1LowPassCoeffs[5 * 2];
245   int32_t p1HighPassCoeffs[5 * 2];
246   int32_t p1BandPassCoeffs[5 * 3];
247   int32_t p1BassShelfCoeffs[5];
248   int32_t p1TrebleShelfCoeffs[5];
249 } __attribute__((packed));
250 struct pbe_params {
251   uint32_t device;
252   uint32_t enable_flag;
253   uint32_t cfg_len;
254   struct pbe_config_t config;
255 };
256 #define SOFT_VOLUME_ENABLE_PARAM_SZ (SOFT_VOLUME_ENABLE_PARAM_LEN * sizeof(uint32_t))
257 #define SOFT_VOLUME_GAIN_MASTER_PARAM_SZ (SOFT_VOLUME_GAIN_MASTER_PARAM_LEN * sizeof(uint32_t))
258 #define SOFT_VOLUME_GAIN_2CH_PARAM_SZ (SOFT_VOLUME_GAIN_2CH_PARAM_LEN * sizeof(uint16_t))
259 struct soft_volume_params {
260   uint32_t device;
261   uint32_t enable_flag;
262   uint32_t master_gain;
263   uint32_t left_gain;
264   uint32_t right_gain;
265 };
266 struct msm_nt_eff_all_config {
267   struct bass_boost_params bass_boost;
268   struct pbe_params pbe;
269   struct virtualizer_params virtualizer;
270   struct reverb_params reverb;
271   struct eq_params equalizer;
272   struct soft_volume_params saplus_vol;
273   struct soft_volume_params topo_switch_vol;
274 };
275 #endif
276