1772b7facf972926b14fe303d0348c200cb20a313Prashant Malani/* 2464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry * Copyright (c) 2013-2015, The Linux Foundation. All rights reserved. 3772b7facf972926b14fe303d0348c200cb20a313Prashant Malani * 4772b7facf972926b14fe303d0348c200cb20a313Prashant Malani * This program is free software; you can redistribute it and/or modify 5772b7facf972926b14fe303d0348c200cb20a313Prashant Malani * it under the terms of the GNU General Public License version 2 and 6772b7facf972926b14fe303d0348c200cb20a313Prashant Malani * only version 2 as published by the Free Software Foundation. 7772b7facf972926b14fe303d0348c200cb20a313Prashant Malani * 8772b7facf972926b14fe303d0348c200cb20a313Prashant Malani * This program is distributed in the hope that it will be useful, 9772b7facf972926b14fe303d0348c200cb20a313Prashant Malani * but WITHOUT ANY WARRANTY; without even the implied warranty of 10772b7facf972926b14fe303d0348c200cb20a313Prashant Malani * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11772b7facf972926b14fe303d0348c200cb20a313Prashant Malani * GNU General Public License for more details. 12772b7facf972926b14fe303d0348c200cb20a313Prashant Malani */ 13772b7facf972926b14fe303d0348c200cb20a313Prashant Malani 14772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#ifndef _AUDIO_EFFECTS_H 15772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define _AUDIO_EFFECTS_H 16772b7facf972926b14fe303d0348c200cb20a313Prashant Malani 17772b7facf972926b14fe303d0348c200cb20a313Prashant Malani/** AUDIO EFFECTS **/ 18772b7facf972926b14fe303d0348c200cb20a313Prashant Malani 19772b7facf972926b14fe303d0348c200cb20a313Prashant Malani 20772b7facf972926b14fe303d0348c200cb20a313Prashant Malani/* CONFIG GET/SET */ 21772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define CONFIG_CACHE 0 22772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define CONFIG_SET 1 23772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define CONFIG_GET 2 24772b7facf972926b14fe303d0348c200cb20a313Prashant Malani 25772b7facf972926b14fe303d0348c200cb20a313Prashant Malani/* CONFIG HEADER */ 26772b7facf972926b14fe303d0348c200cb20a313Prashant Malani/* 27772b7facf972926b14fe303d0348c200cb20a313Prashant Malani 28772b7facf972926b14fe303d0348c200cb20a313Prashant Malani MODULE_ID, 29772b7facf972926b14fe303d0348c200cb20a313Prashant Malani DEVICE, 30772b7facf972926b14fe303d0348c200cb20a313Prashant Malani NUM_COMMANDS, 31772b7facf972926b14fe303d0348c200cb20a313Prashant Malani COMMAND_ID_1, 32772b7facf972926b14fe303d0348c200cb20a313Prashant Malani CONFIG_CACHE/SET/GET, 33772b7facf972926b14fe303d0348c200cb20a313Prashant Malani OFFSET_1, 34772b7facf972926b14fe303d0348c200cb20a313Prashant Malani LENGTH_1, 35772b7facf972926b14fe303d0348c200cb20a313Prashant Malani VALUES_1, 36772b7facf972926b14fe303d0348c200cb20a313Prashant Malani ..., 37772b7facf972926b14fe303d0348c200cb20a313Prashant Malani ..., 38772b7facf972926b14fe303d0348c200cb20a313Prashant Malani COMMAND_ID_2, 39772b7facf972926b14fe303d0348c200cb20a313Prashant Malani CONFIG_CACHE/SET/GET, 40772b7facf972926b14fe303d0348c200cb20a313Prashant Malani OFFSET_2, 41772b7facf972926b14fe303d0348c200cb20a313Prashant Malani LENGTH_2, 42772b7facf972926b14fe303d0348c200cb20a313Prashant Malani VALUES_2, 43772b7facf972926b14fe303d0348c200cb20a313Prashant Malani ..., 44772b7facf972926b14fe303d0348c200cb20a313Prashant Malani ..., 45772b7facf972926b14fe303d0348c200cb20a313Prashant Malani COMMAND_ID_3, 46772b7facf972926b14fe303d0348c200cb20a313Prashant Malani ... 47772b7facf972926b14fe303d0348c200cb20a313Prashant Malani*/ 48772b7facf972926b14fe303d0348c200cb20a313Prashant Malani 49772b7facf972926b14fe303d0348c200cb20a313Prashant Malani 50772b7facf972926b14fe303d0348c200cb20a313Prashant Malani/* CONFIG PARAM IDs */ 51772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define VIRTUALIZER_MODULE 0x00001000 52772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define VIRTUALIZER_ENABLE 0x00001001 53772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define VIRTUALIZER_STRENGTH 0x00001002 54772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define VIRTUALIZER_OUT_TYPE 0x00001003 55772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define VIRTUALIZER_GAIN_ADJUST 0x00001004 56772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define VIRTUALIZER_ENABLE_PARAM_LEN 1 57772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define VIRTUALIZER_STRENGTH_PARAM_LEN 1 58772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define VIRTUALIZER_OUT_TYPE_PARAM_LEN 1 59772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define VIRTUALIZER_GAIN_ADJUST_PARAM_LEN 1 60772b7facf972926b14fe303d0348c200cb20a313Prashant Malani 61772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_MODULE 0x00002000 62772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_ENABLE 0x00002001 63772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_MODE 0x00002002 64772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_PRESET 0x00002003 65772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_WET_MIX 0x00002004 66772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_GAIN_ADJUST 0x00002005 67772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_ROOM_LEVEL 0x00002006 68772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_ROOM_HF_LEVEL 0x00002007 69772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_DECAY_TIME 0x00002008 70772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_DECAY_HF_RATIO 0x00002009 71772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_REFLECTIONS_LEVEL 0x0000200a 72772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_REFLECTIONS_DELAY 0x0000200b 73772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_LEVEL 0x0000200c 74772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_DELAY 0x0000200d 75772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_DIFFUSION 0x0000200e 76772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_DENSITY 0x0000200f 77772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_ENABLE_PARAM_LEN 1 78772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_MODE_PARAM_LEN 1 79772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_PRESET_PARAM_LEN 1 80772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_WET_MIX_PARAM_LEN 1 81772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_GAIN_ADJUST_PARAM_LEN 1 82772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_ROOM_LEVEL_PARAM_LEN 1 83772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_ROOM_HF_LEVEL_PARAM_LEN 1 84772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_DECAY_TIME_PARAM_LEN 1 85772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_DECAY_HF_RATIO_PARAM_LEN 1 86772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_REFLECTIONS_LEVEL_PARAM_LEN 1 87772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_REFLECTIONS_DELAY_PARAM_LEN 1 88772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_LEVEL_PARAM_LEN 1 89772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_DELAY_PARAM_LEN 1 90772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_DIFFUSION_PARAM_LEN 1 91772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_DENSITY_PARAM_LEN 1 92772b7facf972926b14fe303d0348c200cb20a313Prashant Malani 93772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define BASS_BOOST_MODULE 0x00003000 94772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define BASS_BOOST_ENABLE 0x00003001 95772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define BASS_BOOST_MODE 0x00003002 96772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define BASS_BOOST_STRENGTH 0x00003003 97772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define BASS_BOOST_ENABLE_PARAM_LEN 1 98772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define BASS_BOOST_MODE_PARAM_LEN 1 99772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define BASS_BOOST_STRENGTH_PARAM_LEN 1 100772b7facf972926b14fe303d0348c200cb20a313Prashant Malani 101772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_MODULE 0x00004000 102772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_ENABLE 0x00004001 103772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_CONFIG 0x00004002 104772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_NUM_BANDS 0x00004003 105772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_BAND_LEVELS 0x00004004 106772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_BAND_LEVEL_RANGE 0x00004005 107772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_BAND_FREQS 0x00004006 108772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_SINGLE_BAND_FREQ_RANGE 0x00004007 109772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_SINGLE_BAND_FREQ 0x00004008 110772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_BAND_INDEX 0x00004009 111772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_PRESET_ID 0x0000400a 112772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_NUM_PRESETS 0x0000400b 113772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_PRESET_NAME 0x0000400c 114772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_ENABLE_PARAM_LEN 1 115772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_CONFIG_PARAM_LEN 3 116772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_CONFIG_PER_BAND_PARAM_LEN 5 117772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_NUM_BANDS_PARAM_LEN 1 118772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_BAND_LEVELS_PARAM_LEN 13 119772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_BAND_LEVEL_RANGE_PARAM_LEN 2 120772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_BAND_FREQS_PARAM_LEN 13 121772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_SINGLE_BAND_FREQ_RANGE_PARAM_LEN 2 122772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_SINGLE_BAND_FREQ_PARAM_LEN 1 123772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_BAND_INDEX_PARAM_LEN 1 124772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_PRESET_ID_PARAM_LEN 1 125772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_NUM_PRESETS_PARAM_LEN 1 126772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_PRESET_NAME_PARAM_LEN 32 127772b7facf972926b14fe303d0348c200cb20a313Prashant Malani 128772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_TYPE_NONE 0 129772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_BASS_BOOST 1 130772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_BASS_CUT 2 131772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_TREBLE_BOOST 3 132772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_TREBLE_CUT 4 133772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_BAND_BOOST 5 134772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_BAND_CUT 6 135772b7facf972926b14fe303d0348c200cb20a313Prashant Malani 136772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define SOFT_VOLUME_MODULE 0x00006000 137772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define SOFT_VOLUME_ENABLE 0x00006001 138772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define SOFT_VOLUME_GAIN_2CH 0x00006002 139772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define SOFT_VOLUME_GAIN_MASTER 0x00006003 140772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define SOFT_VOLUME_ENABLE_PARAM_LEN 1 141772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define SOFT_VOLUME_GAIN_2CH_PARAM_LEN 2 142772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define SOFT_VOLUME_GAIN_MASTER_PARAM_LEN 1 143772b7facf972926b14fe303d0348c200cb20a313Prashant Malani 144772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define SOFT_VOLUME2_MODULE 0x00007000 145772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define SOFT_VOLUME2_ENABLE 0x00007001 146772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define SOFT_VOLUME2_GAIN_2CH 0x00007002 147772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define SOFT_VOLUME2_GAIN_MASTER 0x00007003 148772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define SOFT_VOLUME2_ENABLE_PARAM_LEN SOFT_VOLUME_ENABLE_PARAM_LEN 149772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define SOFT_VOLUME2_GAIN_2CH_PARAM_LEN SOFT_VOLUME_GAIN_2CH_PARAM_LEN 150772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define SOFT_VOLUME2_GAIN_MASTER_PARAM_LEN \ 151772b7facf972926b14fe303d0348c200cb20a313Prashant Malani SOFT_VOLUME_GAIN_MASTER_PARAM_LEN 152772b7facf972926b14fe303d0348c200cb20a313Prashant Malani 153464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define PBE_CONF_MODULE_ID 0x00010C2A 154464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define PBE_CONF_PARAM_ID 0x00010C49 155464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry 156464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define PBE_MODULE 0x00008000 157464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define PBE_ENABLE 0x00008001 158464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define PBE_CONFIG 0x00008002 159464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define PBE_ENABLE_PARAM_LEN 1 160464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define PBE_CONFIG_PARAM_LEN 28 161464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry 162772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define COMMAND_PAYLOAD_LEN 3 163772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define COMMAND_PAYLOAD_SZ (COMMAND_PAYLOAD_LEN * sizeof(uint32_t)) 164772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define MAX_INBAND_PARAM_SZ 4096 165772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define Q27_UNITY (1 << 27) 166772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define Q8_UNITY (1 << 8) 167772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define CUSTOM_OPENSL_PRESET 18 168772b7facf972926b14fe303d0348c200cb20a313Prashant Malani 169772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define VIRTUALIZER_ENABLE_PARAM_SZ \ 170772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (VIRTUALIZER_ENABLE_PARAM_LEN*sizeof(uint32_t)) 171772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define VIRTUALIZER_STRENGTH_PARAM_SZ \ 172772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (VIRTUALIZER_STRENGTH_PARAM_LEN*sizeof(uint32_t)) 173772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define VIRTUALIZER_OUT_TYPE_PARAM_SZ \ 174772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (VIRTUALIZER_OUT_TYPE_PARAM_LEN*sizeof(uint32_t)) 175772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define VIRTUALIZER_GAIN_ADJUST_PARAM_SZ \ 176772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (VIRTUALIZER_GAIN_ADJUST_PARAM_LEN*sizeof(uint32_t)) 177772b7facf972926b14fe303d0348c200cb20a313Prashant Malanistruct virtualizer_params { 178772b7facf972926b14fe303d0348c200cb20a313Prashant Malani uint32_t device; 179772b7facf972926b14fe303d0348c200cb20a313Prashant Malani uint32_t enable_flag; 180772b7facf972926b14fe303d0348c200cb20a313Prashant Malani uint32_t strength; 181772b7facf972926b14fe303d0348c200cb20a313Prashant Malani uint32_t out_type; 182772b7facf972926b14fe303d0348c200cb20a313Prashant Malani int32_t gain_adjust; 183772b7facf972926b14fe303d0348c200cb20a313Prashant Malani}; 184772b7facf972926b14fe303d0348c200cb20a313Prashant Malani 185772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define NUM_OSL_REVERB_PRESETS_SUPPORTED 6 186772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_ENABLE_PARAM_SZ \ 187772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (REVERB_ENABLE_PARAM_LEN*sizeof(uint32_t)) 188772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_MODE_PARAM_SZ \ 189772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (REVERB_MODE_PARAM_LEN*sizeof(uint32_t)) 190772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_PRESET_PARAM_SZ \ 191772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (REVERB_PRESET_PARAM_LEN*sizeof(uint32_t)) 192772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_WET_MIX_PARAM_SZ \ 193772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (REVERB_WET_MIX_PARAM_LEN*sizeof(uint32_t)) 194772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_GAIN_ADJUST_PARAM_SZ \ 195772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (REVERB_GAIN_ADJUST_PARAM_LEN*sizeof(uint32_t)) 196772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_ROOM_LEVEL_PARAM_SZ \ 197772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (REVERB_ROOM_LEVEL_PARAM_LEN*sizeof(uint32_t)) 198772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_ROOM_HF_LEVEL_PARAM_SZ \ 199772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (REVERB_ROOM_HF_LEVEL_PARAM_LEN*sizeof(uint32_t)) 200772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_DECAY_TIME_PARAM_SZ \ 201772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (REVERB_DECAY_TIME_PARAM_LEN*sizeof(uint32_t)) 202772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_DECAY_HF_RATIO_PARAM_SZ \ 203772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (REVERB_DECAY_HF_RATIO_PARAM_LEN*sizeof(uint32_t)) 204772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_REFLECTIONS_LEVEL_PARAM_SZ \ 205772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (REVERB_REFLECTIONS_LEVEL_PARAM_LEN*sizeof(uint32_t)) 206772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_REFLECTIONS_DELAY_PARAM_SZ \ 207772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (REVERB_REFLECTIONS_DELAY_PARAM_LEN*sizeof(uint32_t)) 208772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_LEVEL_PARAM_SZ \ 209772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (REVERB_LEVEL_PARAM_LEN*sizeof(uint32_t)) 210772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_DELAY_PARAM_SZ \ 211772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (REVERB_DELAY_PARAM_LEN*sizeof(uint32_t)) 212772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_DIFFUSION_PARAM_SZ \ 213772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (REVERB_DIFFUSION_PARAM_LEN*sizeof(uint32_t)) 214772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define REVERB_DENSITY_PARAM_SZ \ 215772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (REVERB_DENSITY_PARAM_LEN*sizeof(uint32_t)) 216772b7facf972926b14fe303d0348c200cb20a313Prashant Malanistruct reverb_params { 217772b7facf972926b14fe303d0348c200cb20a313Prashant Malani uint32_t device; 218772b7facf972926b14fe303d0348c200cb20a313Prashant Malani uint32_t enable_flag; 219772b7facf972926b14fe303d0348c200cb20a313Prashant Malani uint32_t mode; 220772b7facf972926b14fe303d0348c200cb20a313Prashant Malani uint32_t preset; 221772b7facf972926b14fe303d0348c200cb20a313Prashant Malani uint32_t wet_mix; 222772b7facf972926b14fe303d0348c200cb20a313Prashant Malani int32_t gain_adjust; 223772b7facf972926b14fe303d0348c200cb20a313Prashant Malani int32_t room_level; 224772b7facf972926b14fe303d0348c200cb20a313Prashant Malani int32_t room_hf_level; 225772b7facf972926b14fe303d0348c200cb20a313Prashant Malani uint32_t decay_time; 226772b7facf972926b14fe303d0348c200cb20a313Prashant Malani uint32_t decay_hf_ratio; 227772b7facf972926b14fe303d0348c200cb20a313Prashant Malani int32_t reflections_level; 228772b7facf972926b14fe303d0348c200cb20a313Prashant Malani uint32_t reflections_delay; 229772b7facf972926b14fe303d0348c200cb20a313Prashant Malani int32_t level; 230772b7facf972926b14fe303d0348c200cb20a313Prashant Malani uint32_t delay; 231772b7facf972926b14fe303d0348c200cb20a313Prashant Malani uint32_t diffusion; 232772b7facf972926b14fe303d0348c200cb20a313Prashant Malani uint32_t density; 233772b7facf972926b14fe303d0348c200cb20a313Prashant Malani}; 234772b7facf972926b14fe303d0348c200cb20a313Prashant Malani 235772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define BASS_BOOST_ENABLE_PARAM_SZ \ 236772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (BASS_BOOST_ENABLE_PARAM_LEN*sizeof(uint32_t)) 237772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define BASS_BOOST_MODE_PARAM_SZ \ 238772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (BASS_BOOST_MODE_PARAM_LEN*sizeof(uint32_t)) 239772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define BASS_BOOST_STRENGTH_PARAM_SZ \ 240772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (BASS_BOOST_STRENGTH_PARAM_LEN*sizeof(uint32_t)) 241772b7facf972926b14fe303d0348c200cb20a313Prashant Malanistruct bass_boost_params { 242772b7facf972926b14fe303d0348c200cb20a313Prashant Malani uint32_t device; 243772b7facf972926b14fe303d0348c200cb20a313Prashant Malani uint32_t enable_flag; 244772b7facf972926b14fe303d0348c200cb20a313Prashant Malani uint32_t mode; 245772b7facf972926b14fe303d0348c200cb20a313Prashant Malani uint32_t strength; 246772b7facf972926b14fe303d0348c200cb20a313Prashant Malani}; 247772b7facf972926b14fe303d0348c200cb20a313Prashant Malani 248772b7facf972926b14fe303d0348c200cb20a313Prashant Malani 249772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define MAX_EQ_BANDS 12 250772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define MAX_OSL_EQ_BANDS 5 251772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_ENABLE_PARAM_SZ \ 252772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (EQ_ENABLE_PARAM_LEN*sizeof(uint32_t)) 253772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_CONFIG_PARAM_SZ \ 254772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (EQ_CONFIG_PARAM_LEN*sizeof(uint32_t)) 255772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_CONFIG_PER_BAND_PARAM_SZ \ 256772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (EQ_CONFIG_PER_BAND_PARAM_LEN*sizeof(uint32_t)) 257772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_CONFIG_PARAM_MAX_LEN (EQ_CONFIG_PARAM_LEN+\ 258772b7facf972926b14fe303d0348c200cb20a313Prashant Malani MAX_EQ_BANDS*EQ_CONFIG_PER_BAND_PARAM_LEN) 259772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_CONFIG_PARAM_MAX_SZ \ 260772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (EQ_CONFIG_PARAM_MAX_LEN*sizeof(uint32_t)) 261772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_NUM_BANDS_PARAM_SZ \ 262772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (EQ_NUM_BANDS_PARAM_LEN*sizeof(uint32_t)) 263772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_BAND_LEVELS_PARAM_SZ \ 264772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (EQ_BAND_LEVELS_PARAM_LEN*sizeof(uint32_t)) 265772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_BAND_LEVEL_RANGE_PARAM_SZ \ 266772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (EQ_BAND_LEVEL_RANGE_PARAM_LEN*sizeof(uint32_t)) 267772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_BAND_FREQS_PARAM_SZ \ 268772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (EQ_BAND_FREQS_PARAM_LEN*sizeof(uint32_t)) 269772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_SINGLE_BAND_FREQ_RANGE_PARAM_SZ \ 270772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (EQ_SINGLE_BAND_FREQ_RANGE_PARAM_LEN*sizeof(uint32_t)) 271772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_SINGLE_BAND_FREQ_PARAM_SZ \ 272772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (EQ_SINGLE_BAND_FREQ_PARAM_LEN*sizeof(uint32_t)) 273772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_BAND_INDEX_PARAM_SZ \ 274772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (EQ_BAND_INDEX_PARAM_LEN*sizeof(uint32_t)) 275772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_PRESET_ID_PARAM_SZ \ 276772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (EQ_PRESET_ID_PARAM_LEN*sizeof(uint32_t)) 277772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define EQ_NUM_PRESETS_PARAM_SZ \ 278772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (EQ_NUM_PRESETS_PARAM_LEN*sizeof(uint8_t)) 279772b7facf972926b14fe303d0348c200cb20a313Prashant Malanistruct eq_config_t { 280772b7facf972926b14fe303d0348c200cb20a313Prashant Malani int32_t eq_pregain; 281772b7facf972926b14fe303d0348c200cb20a313Prashant Malani int32_t preset_id; 282772b7facf972926b14fe303d0348c200cb20a313Prashant Malani uint32_t num_bands; 283772b7facf972926b14fe303d0348c200cb20a313Prashant Malani}; 284772b7facf972926b14fe303d0348c200cb20a313Prashant Malanistruct eq_per_band_config_t { 285772b7facf972926b14fe303d0348c200cb20a313Prashant Malani int32_t band_idx; 286772b7facf972926b14fe303d0348c200cb20a313Prashant Malani uint32_t filter_type; 287772b7facf972926b14fe303d0348c200cb20a313Prashant Malani uint32_t freq_millihertz; 288772b7facf972926b14fe303d0348c200cb20a313Prashant Malani int32_t gain_millibels; 289772b7facf972926b14fe303d0348c200cb20a313Prashant Malani uint32_t quality_factor; 290772b7facf972926b14fe303d0348c200cb20a313Prashant Malani}; 291772b7facf972926b14fe303d0348c200cb20a313Prashant Malanistruct eq_per_band_freq_range_t { 292772b7facf972926b14fe303d0348c200cb20a313Prashant Malani uint32_t band_index; 293772b7facf972926b14fe303d0348c200cb20a313Prashant Malani uint32_t min_freq_millihertz; 294772b7facf972926b14fe303d0348c200cb20a313Prashant Malani uint32_t max_freq_millihertz; 295772b7facf972926b14fe303d0348c200cb20a313Prashant Malani}; 296772b7facf972926b14fe303d0348c200cb20a313Prashant Malani 297772b7facf972926b14fe303d0348c200cb20a313Prashant Malanistruct eq_params { 298772b7facf972926b14fe303d0348c200cb20a313Prashant Malani uint32_t device; 299772b7facf972926b14fe303d0348c200cb20a313Prashant Malani uint32_t enable_flag; 300772b7facf972926b14fe303d0348c200cb20a313Prashant Malani struct eq_config_t config; 301772b7facf972926b14fe303d0348c200cb20a313Prashant Malani struct eq_per_band_config_t per_band_cfg[MAX_EQ_BANDS]; 302772b7facf972926b14fe303d0348c200cb20a313Prashant Malani struct eq_per_band_freq_range_t per_band_freq_range[MAX_EQ_BANDS]; 303772b7facf972926b14fe303d0348c200cb20a313Prashant Malani uint32_t band_index; 304772b7facf972926b14fe303d0348c200cb20a313Prashant Malani uint32_t freq_millihertz; 305772b7facf972926b14fe303d0348c200cb20a313Prashant Malani}; 306772b7facf972926b14fe303d0348c200cb20a313Prashant Malani 307464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define PBE_ENABLE_PARAM_SZ \ 308464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry (PBE_ENABLE_PARAM_LEN*sizeof(uint32_t)) 309464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry#define PBE_CONFIG_PARAM_SZ \ 310464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry (PBE_CONFIG_PARAM_LEN*sizeof(uint16_t)) 311464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherrystruct pbe_config_t { 312464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry int16_t real_bass_mix; 313464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry int16_t bass_color_control; 314464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry uint16_t main_chain_delay; 315464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry uint16_t xover_filter_order; 316464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry uint16_t bandpass_filter_order; 317464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry int16_t drc_delay; 318464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry uint16_t rms_tav; 319464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry int16_t exp_threshold; 320464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry uint16_t exp_slope; 321464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry int16_t comp_threshold; 322464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry uint16_t comp_slope; 323464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry uint16_t makeup_gain; 324464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry uint32_t comp_attack; 325464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry uint32_t comp_release; 326464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry uint32_t exp_attack; 327464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry uint32_t exp_release; 328464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry int16_t limiter_bass_threshold; 329464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry int16_t limiter_high_threshold; 330464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry int16_t limiter_bass_makeup_gain; 331464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry int16_t limiter_high_makeup_gain; 332464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry int16_t limiter_bass_gc; 333464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry int16_t limiter_high_gc; 334464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry int16_t limiter_delay; 335464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry uint16_t reserved; 336464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry /* place holder for filter coeffs to be followed */ 337464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry int32_t p1LowPassCoeffs[5*2]; 338464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry int32_t p1HighPassCoeffs[5*2]; 339464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry int32_t p1BandPassCoeffs[5*3]; 340464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry int32_t p1BassShelfCoeffs[5]; 341464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry int32_t p1TrebleShelfCoeffs[5]; 342464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry} __packed; 343464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry 344464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherrystruct pbe_params { 345464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry uint32_t device; 346464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry uint32_t enable_flag; 347464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry uint32_t cfg_len; 348464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry struct pbe_config_t config; 349464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry}; 350464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry 351772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define SOFT_VOLUME_ENABLE_PARAM_SZ \ 352772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (SOFT_VOLUME_ENABLE_PARAM_LEN*sizeof(uint32_t)) 353772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define SOFT_VOLUME_GAIN_MASTER_PARAM_SZ \ 354772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (SOFT_VOLUME_GAIN_MASTER_PARAM_LEN*sizeof(uint32_t)) 355772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#define SOFT_VOLUME_GAIN_2CH_PARAM_SZ \ 356772b7facf972926b14fe303d0348c200cb20a313Prashant Malani (SOFT_VOLUME_GAIN_2CH_PARAM_LEN*sizeof(uint16_t)) 357772b7facf972926b14fe303d0348c200cb20a313Prashant Malanistruct soft_volume_params { 358772b7facf972926b14fe303d0348c200cb20a313Prashant Malani uint32_t device; 359772b7facf972926b14fe303d0348c200cb20a313Prashant Malani uint32_t enable_flag; 360772b7facf972926b14fe303d0348c200cb20a313Prashant Malani uint32_t master_gain; 361772b7facf972926b14fe303d0348c200cb20a313Prashant Malani uint32_t left_gain; 362772b7facf972926b14fe303d0348c200cb20a313Prashant Malani uint32_t right_gain; 363772b7facf972926b14fe303d0348c200cb20a313Prashant Malani}; 364772b7facf972926b14fe303d0348c200cb20a313Prashant Malani 365464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherrystruct msm_nt_eff_all_config { 366464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry struct bass_boost_params bass_boost; 367464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry struct pbe_params pbe; 368464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry struct virtualizer_params virtualizer; 369464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry struct reverb_params reverb; 370464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry struct eq_params equalizer; 371464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry struct soft_volume_params saplus_vol; 372464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry struct soft_volume_params topo_switch_vol; 373464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry}; 374464aadab995fc0ef1616362ad795e9a3ba6c4f16Tom Cherry 375772b7facf972926b14fe303d0348c200cb20a313Prashant Malani#endif /*_MSM_AUDIO_EFFECTS_H*/ 376