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