1b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel/* 2b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel * Copyright (c) 2013-2015, The Linux Foundation. All rights reserved. 3b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel * 4b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel * This program is free software; you can redistribute it and/or modify 5b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel * it under the terms of the GNU General Public License version 2 and 6b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel * only version 2 as published by the Free Software Foundation. 7b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel * 8b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel * This program is distributed in the hope that it will be useful, 9b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel * but WITHOUT ANY WARRANTY; without even the implied warranty of 10b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel * GNU General Public License for more details. 12b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel */ 13b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel 14b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#ifndef _AUDIO_EFFECTS_H 15b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define _AUDIO_EFFECTS_H 16b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel 17b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel/** AUDIO EFFECTS **/ 18b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel 19b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel 20b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel/* CONFIG GET/SET */ 21b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define CONFIG_CACHE 0 22b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define CONFIG_SET 1 23b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define CONFIG_GET 2 24b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel 25b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel/* CONFIG HEADER */ 26b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel/* 27b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel 28b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel MODULE_ID, 29b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel DEVICE, 30b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel NUM_COMMANDS, 31b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel COMMAND_ID_1, 32b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel CONFIG_CACHE/SET/GET, 33b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel OFFSET_1, 34b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel LENGTH_1, 35b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel VALUES_1, 36b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel ..., 37b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel ..., 38b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel COMMAND_ID_2, 39b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel CONFIG_CACHE/SET/GET, 40b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel OFFSET_2, 41b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel LENGTH_2, 42b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel VALUES_2, 43b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel ..., 44b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel ..., 45b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel COMMAND_ID_3, 46b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel ... 47b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel*/ 48b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel 49b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel 50b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel/* CONFIG PARAM IDs */ 51b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define VIRTUALIZER_MODULE 0x00001000 52b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define VIRTUALIZER_ENABLE 0x00001001 53b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define VIRTUALIZER_STRENGTH 0x00001002 54b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define VIRTUALIZER_OUT_TYPE 0x00001003 55b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define VIRTUALIZER_GAIN_ADJUST 0x00001004 56b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define VIRTUALIZER_ENABLE_PARAM_LEN 1 57b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define VIRTUALIZER_STRENGTH_PARAM_LEN 1 58b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define VIRTUALIZER_OUT_TYPE_PARAM_LEN 1 59b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define VIRTUALIZER_GAIN_ADJUST_PARAM_LEN 1 60b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel 61b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_MODULE 0x00002000 62b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_ENABLE 0x00002001 63b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_MODE 0x00002002 64b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_PRESET 0x00002003 65b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_WET_MIX 0x00002004 66b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_GAIN_ADJUST 0x00002005 67b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_ROOM_LEVEL 0x00002006 68b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_ROOM_HF_LEVEL 0x00002007 69b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_DECAY_TIME 0x00002008 70b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_DECAY_HF_RATIO 0x00002009 71b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_REFLECTIONS_LEVEL 0x0000200a 72b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_REFLECTIONS_DELAY 0x0000200b 73b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_LEVEL 0x0000200c 74b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_DELAY 0x0000200d 75b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_DIFFUSION 0x0000200e 76b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_DENSITY 0x0000200f 77b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_ENABLE_PARAM_LEN 1 78b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_MODE_PARAM_LEN 1 79b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_PRESET_PARAM_LEN 1 80b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_WET_MIX_PARAM_LEN 1 81b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_GAIN_ADJUST_PARAM_LEN 1 82b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_ROOM_LEVEL_PARAM_LEN 1 83b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_ROOM_HF_LEVEL_PARAM_LEN 1 84b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_DECAY_TIME_PARAM_LEN 1 85b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_DECAY_HF_RATIO_PARAM_LEN 1 86b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_REFLECTIONS_LEVEL_PARAM_LEN 1 87b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_REFLECTIONS_DELAY_PARAM_LEN 1 88b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_LEVEL_PARAM_LEN 1 89b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_DELAY_PARAM_LEN 1 90b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_DIFFUSION_PARAM_LEN 1 91b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_DENSITY_PARAM_LEN 1 92b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel 93b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define BASS_BOOST_MODULE 0x00003000 94b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define BASS_BOOST_ENABLE 0x00003001 95b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define BASS_BOOST_MODE 0x00003002 96b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define BASS_BOOST_STRENGTH 0x00003003 97b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define BASS_BOOST_ENABLE_PARAM_LEN 1 98b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define BASS_BOOST_MODE_PARAM_LEN 1 99b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define BASS_BOOST_STRENGTH_PARAM_LEN 1 100b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel 101b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_MODULE 0x00004000 102b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_ENABLE 0x00004001 103b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_CONFIG 0x00004002 104b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_NUM_BANDS 0x00004003 105b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_BAND_LEVELS 0x00004004 106b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_BAND_LEVEL_RANGE 0x00004005 107b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_BAND_FREQS 0x00004006 108b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_SINGLE_BAND_FREQ_RANGE 0x00004007 109b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_SINGLE_BAND_FREQ 0x00004008 110b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_BAND_INDEX 0x00004009 111b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_PRESET_ID 0x0000400a 112b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_NUM_PRESETS 0x0000400b 113b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_PRESET_NAME 0x0000400c 114b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_ENABLE_PARAM_LEN 1 115b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_CONFIG_PARAM_LEN 3 116b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_CONFIG_PER_BAND_PARAM_LEN 5 117b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_NUM_BANDS_PARAM_LEN 1 118b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_BAND_LEVELS_PARAM_LEN 13 119b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_BAND_LEVEL_RANGE_PARAM_LEN 2 120b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_BAND_FREQS_PARAM_LEN 13 121b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_SINGLE_BAND_FREQ_RANGE_PARAM_LEN 2 122b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_SINGLE_BAND_FREQ_PARAM_LEN 1 123b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_BAND_INDEX_PARAM_LEN 1 124b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_PRESET_ID_PARAM_LEN 1 125b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_NUM_PRESETS_PARAM_LEN 1 126b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_PRESET_NAME_PARAM_LEN 32 127b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel 128b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_TYPE_NONE 0 129b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_BASS_BOOST 1 130b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_BASS_CUT 2 131b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_TREBLE_BOOST 3 132b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_TREBLE_CUT 4 133b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_BAND_BOOST 5 134b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_BAND_CUT 6 135b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel 136b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define SOFT_VOLUME_MODULE 0x00006000 137b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define SOFT_VOLUME_ENABLE 0x00006001 138b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define SOFT_VOLUME_GAIN_2CH 0x00006002 139b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define SOFT_VOLUME_GAIN_MASTER 0x00006003 140b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define SOFT_VOLUME_ENABLE_PARAM_LEN 1 141b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define SOFT_VOLUME_GAIN_2CH_PARAM_LEN 2 142b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define SOFT_VOLUME_GAIN_MASTER_PARAM_LEN 1 143b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel 144b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define SOFT_VOLUME2_MODULE 0x00007000 145b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define SOFT_VOLUME2_ENABLE 0x00007001 146b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define SOFT_VOLUME2_GAIN_2CH 0x00007002 147b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define SOFT_VOLUME2_GAIN_MASTER 0x00007003 148b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define SOFT_VOLUME2_ENABLE_PARAM_LEN SOFT_VOLUME_ENABLE_PARAM_LEN 149b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define SOFT_VOLUME2_GAIN_2CH_PARAM_LEN SOFT_VOLUME_GAIN_2CH_PARAM_LEN 150b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define SOFT_VOLUME2_GAIN_MASTER_PARAM_LEN \ 151b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel SOFT_VOLUME_GAIN_MASTER_PARAM_LEN 152b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel 153b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define PBE_CONF_MODULE_ID 0x00010C2A 154b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define PBE_CONF_PARAM_ID 0x00010C49 155b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel 156b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define PBE_MODULE 0x00008000 157b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define PBE_ENABLE 0x00008001 158b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define PBE_CONFIG 0x00008002 159b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define PBE_ENABLE_PARAM_LEN 1 160b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define PBE_CONFIG_PARAM_LEN 28 161b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel 162b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define COMMAND_PAYLOAD_LEN 3 163b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define COMMAND_PAYLOAD_SZ (COMMAND_PAYLOAD_LEN * sizeof(uint32_t)) 164b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define MAX_INBAND_PARAM_SZ 4096 165b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define Q27_UNITY (1 << 27) 166b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define Q8_UNITY (1 << 8) 167b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define CUSTOM_OPENSL_PRESET 18 168b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel 169b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define VIRTUALIZER_ENABLE_PARAM_SZ \ 170b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (VIRTUALIZER_ENABLE_PARAM_LEN*sizeof(uint32_t)) 171b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define VIRTUALIZER_STRENGTH_PARAM_SZ \ 172b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (VIRTUALIZER_STRENGTH_PARAM_LEN*sizeof(uint32_t)) 173b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define VIRTUALIZER_OUT_TYPE_PARAM_SZ \ 174b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (VIRTUALIZER_OUT_TYPE_PARAM_LEN*sizeof(uint32_t)) 175b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define VIRTUALIZER_GAIN_ADJUST_PARAM_SZ \ 176b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (VIRTUALIZER_GAIN_ADJUST_PARAM_LEN*sizeof(uint32_t)) 177b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudelstruct virtualizer_params { 178b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t device; 179b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t enable_flag; 180b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t strength; 181b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t out_type; 182b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel int32_t gain_adjust; 183b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel}; 184b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel 185b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define NUM_OSL_REVERB_PRESETS_SUPPORTED 6 186b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_ENABLE_PARAM_SZ \ 187b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (REVERB_ENABLE_PARAM_LEN*sizeof(uint32_t)) 188b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_MODE_PARAM_SZ \ 189b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (REVERB_MODE_PARAM_LEN*sizeof(uint32_t)) 190b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_PRESET_PARAM_SZ \ 191b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (REVERB_PRESET_PARAM_LEN*sizeof(uint32_t)) 192b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_WET_MIX_PARAM_SZ \ 193b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (REVERB_WET_MIX_PARAM_LEN*sizeof(uint32_t)) 194b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_GAIN_ADJUST_PARAM_SZ \ 195b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (REVERB_GAIN_ADJUST_PARAM_LEN*sizeof(uint32_t)) 196b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_ROOM_LEVEL_PARAM_SZ \ 197b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (REVERB_ROOM_LEVEL_PARAM_LEN*sizeof(uint32_t)) 198b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_ROOM_HF_LEVEL_PARAM_SZ \ 199b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (REVERB_ROOM_HF_LEVEL_PARAM_LEN*sizeof(uint32_t)) 200b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_DECAY_TIME_PARAM_SZ \ 201b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (REVERB_DECAY_TIME_PARAM_LEN*sizeof(uint32_t)) 202b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_DECAY_HF_RATIO_PARAM_SZ \ 203b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (REVERB_DECAY_HF_RATIO_PARAM_LEN*sizeof(uint32_t)) 204b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_REFLECTIONS_LEVEL_PARAM_SZ \ 205b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (REVERB_REFLECTIONS_LEVEL_PARAM_LEN*sizeof(uint32_t)) 206b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_REFLECTIONS_DELAY_PARAM_SZ \ 207b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (REVERB_REFLECTIONS_DELAY_PARAM_LEN*sizeof(uint32_t)) 208b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_LEVEL_PARAM_SZ \ 209b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (REVERB_LEVEL_PARAM_LEN*sizeof(uint32_t)) 210b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_DELAY_PARAM_SZ \ 211b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (REVERB_DELAY_PARAM_LEN*sizeof(uint32_t)) 212b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_DIFFUSION_PARAM_SZ \ 213b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (REVERB_DIFFUSION_PARAM_LEN*sizeof(uint32_t)) 214b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define REVERB_DENSITY_PARAM_SZ \ 215b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (REVERB_DENSITY_PARAM_LEN*sizeof(uint32_t)) 216b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudelstruct reverb_params { 217b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t device; 218b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t enable_flag; 219b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t mode; 220b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t preset; 221b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t wet_mix; 222b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel int32_t gain_adjust; 223b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel int32_t room_level; 224b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel int32_t room_hf_level; 225b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t decay_time; 226b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t decay_hf_ratio; 227b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel int32_t reflections_level; 228b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t reflections_delay; 229b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel int32_t level; 230b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t delay; 231b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t diffusion; 232b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t density; 233b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel}; 234b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel 235b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define BASS_BOOST_ENABLE_PARAM_SZ \ 236b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (BASS_BOOST_ENABLE_PARAM_LEN*sizeof(uint32_t)) 237b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define BASS_BOOST_MODE_PARAM_SZ \ 238b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (BASS_BOOST_MODE_PARAM_LEN*sizeof(uint32_t)) 239b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define BASS_BOOST_STRENGTH_PARAM_SZ \ 240b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (BASS_BOOST_STRENGTH_PARAM_LEN*sizeof(uint32_t)) 241b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudelstruct bass_boost_params { 242b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t device; 243b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t enable_flag; 244b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t mode; 245b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t strength; 246b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel}; 247b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel 248b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel 249b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define MAX_EQ_BANDS 12 250b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define MAX_OSL_EQ_BANDS 5 251b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_ENABLE_PARAM_SZ \ 252b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (EQ_ENABLE_PARAM_LEN*sizeof(uint32_t)) 253b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_CONFIG_PARAM_SZ \ 254b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (EQ_CONFIG_PARAM_LEN*sizeof(uint32_t)) 255b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_CONFIG_PER_BAND_PARAM_SZ \ 256b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (EQ_CONFIG_PER_BAND_PARAM_LEN*sizeof(uint32_t)) 257b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_CONFIG_PARAM_MAX_LEN (EQ_CONFIG_PARAM_LEN+\ 258b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel MAX_EQ_BANDS*EQ_CONFIG_PER_BAND_PARAM_LEN) 259b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_CONFIG_PARAM_MAX_SZ \ 260b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (EQ_CONFIG_PARAM_MAX_LEN*sizeof(uint32_t)) 261b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_NUM_BANDS_PARAM_SZ \ 262b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (EQ_NUM_BANDS_PARAM_LEN*sizeof(uint32_t)) 263b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_BAND_LEVELS_PARAM_SZ \ 264b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (EQ_BAND_LEVELS_PARAM_LEN*sizeof(uint32_t)) 265b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_BAND_LEVEL_RANGE_PARAM_SZ \ 266b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (EQ_BAND_LEVEL_RANGE_PARAM_LEN*sizeof(uint32_t)) 267b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_BAND_FREQS_PARAM_SZ \ 268b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (EQ_BAND_FREQS_PARAM_LEN*sizeof(uint32_t)) 269b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_SINGLE_BAND_FREQ_RANGE_PARAM_SZ \ 270b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (EQ_SINGLE_BAND_FREQ_RANGE_PARAM_LEN*sizeof(uint32_t)) 271b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_SINGLE_BAND_FREQ_PARAM_SZ \ 272b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (EQ_SINGLE_BAND_FREQ_PARAM_LEN*sizeof(uint32_t)) 273b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_BAND_INDEX_PARAM_SZ \ 274b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (EQ_BAND_INDEX_PARAM_LEN*sizeof(uint32_t)) 275b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_PRESET_ID_PARAM_SZ \ 276b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (EQ_PRESET_ID_PARAM_LEN*sizeof(uint32_t)) 277b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define EQ_NUM_PRESETS_PARAM_SZ \ 278b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (EQ_NUM_PRESETS_PARAM_LEN*sizeof(uint8_t)) 279b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudelstruct eq_config_t { 280b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel int32_t eq_pregain; 281b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel int32_t preset_id; 282b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t num_bands; 283b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel}; 284b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudelstruct eq_per_band_config_t { 285b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel int32_t band_idx; 286b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t filter_type; 287b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t freq_millihertz; 288b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel int32_t gain_millibels; 289b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t quality_factor; 290b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel}; 291b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudelstruct eq_per_band_freq_range_t { 292b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t band_index; 293b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t min_freq_millihertz; 294b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t max_freq_millihertz; 295b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel}; 296b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel 297b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudelstruct eq_params { 298b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t device; 299b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t enable_flag; 300b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel struct eq_config_t config; 301b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel struct eq_per_band_config_t per_band_cfg[MAX_EQ_BANDS]; 302b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel struct eq_per_band_freq_range_t per_band_freq_range[MAX_EQ_BANDS]; 303b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t band_index; 304b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t freq_millihertz; 305b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel}; 306b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel 307b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define PBE_ENABLE_PARAM_SZ \ 308b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (PBE_ENABLE_PARAM_LEN*sizeof(uint32_t)) 309b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define PBE_CONFIG_PARAM_SZ \ 310b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (PBE_CONFIG_PARAM_LEN*sizeof(uint16_t)) 311b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudelstruct pbe_config_t { 312b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel int16_t real_bass_mix; 313b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel int16_t bass_color_control; 314b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint16_t main_chain_delay; 315b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint16_t xover_filter_order; 316b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint16_t bandpass_filter_order; 317b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel int16_t drc_delay; 318b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint16_t rms_tav; 319b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel int16_t exp_threshold; 320b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint16_t exp_slope; 321b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel int16_t comp_threshold; 322b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint16_t comp_slope; 323b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint16_t makeup_gain; 324b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t comp_attack; 325b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t comp_release; 326b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t exp_attack; 327b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t exp_release; 328b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel int16_t limiter_bass_threshold; 329b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel int16_t limiter_high_threshold; 330b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel int16_t limiter_bass_makeup_gain; 331b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel int16_t limiter_high_makeup_gain; 332b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel int16_t limiter_bass_gc; 333b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel int16_t limiter_high_gc; 334b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel int16_t limiter_delay; 335b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint16_t reserved; 336b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel /* place holder for filter coeffs to be followed */ 337b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel int32_t p1LowPassCoeffs[5*2]; 338b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel int32_t p1HighPassCoeffs[5*2]; 339b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel int32_t p1BandPassCoeffs[5*3]; 340b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel int32_t p1BassShelfCoeffs[5]; 341b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel int32_t p1TrebleShelfCoeffs[5]; 342b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel} __attribute__((packed)); 343b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel 344b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudelstruct pbe_params { 345b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t device; 346b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t enable_flag; 347b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t cfg_len; 348b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel struct pbe_config_t config; 349b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel}; 350b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel 351b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define SOFT_VOLUME_ENABLE_PARAM_SZ \ 352b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (SOFT_VOLUME_ENABLE_PARAM_LEN*sizeof(uint32_t)) 353b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define SOFT_VOLUME_GAIN_MASTER_PARAM_SZ \ 354b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (SOFT_VOLUME_GAIN_MASTER_PARAM_LEN*sizeof(uint32_t)) 355b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#define SOFT_VOLUME_GAIN_2CH_PARAM_SZ \ 356b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel (SOFT_VOLUME_GAIN_2CH_PARAM_LEN*sizeof(uint16_t)) 357b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudelstruct soft_volume_params { 358b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t device; 359b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t enable_flag; 360b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t master_gain; 361b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t left_gain; 362b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel uint32_t right_gain; 363b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel}; 364b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel 365b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudelstruct msm_nt_eff_all_config { 366b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel struct bass_boost_params bass_boost; 367b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel struct pbe_params pbe; 368b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel struct virtualizer_params virtualizer; 369b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel struct reverb_params reverb; 370b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel struct eq_params equalizer; 371b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel struct soft_volume_params saplus_vol; 372b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel struct soft_volume_params topo_switch_vol; 373b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel}; 374b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel 375b60ef1c2d5a9a5c0bdea6d11ad991fe3c36fc652Thierry Strudel#endif /*_MSM_AUDIO_EFFECTS_H*/ 376