14d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin/* 24d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin * Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. 34d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin * 44d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin * This program is free software; you can redistribute it and/or modify 54d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin * it under the terms of the GNU General Public License version 2 and 64d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin * only version 2 as published by the Free Software Foundation. 74d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin * 84d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin * This program is distributed in the hope that it will be useful, 94d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin * but WITHOUT ANY WARRANTY; without even the implied warranty of 104d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 114d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin * GNU General Public License for more details. 124d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin */ 134d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin 144d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#ifndef _AUDIO_EFFECTS_H 154d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define _AUDIO_EFFECTS_H 164d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin 174d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin/** AUDIO EFFECTS **/ 184d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin 194d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin 204d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin/* CONFIG GET/SET */ 214d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define CONFIG_CACHE 0 224d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define CONFIG_SET 1 234d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define CONFIG_GET 2 244d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin 254d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin/* CONFIG HEADER */ 264d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin/* 274d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin 284d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin MODULE_ID, 294d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin DEVICE, 304d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin NUM_COMMANDS, 314d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin COMMAND_ID_1, 324d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin CONFIG_CACHE/SET/GET, 334d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin OFFSET_1, 344d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin LENGTH_1, 354d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin VALUES_1, 364d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin ..., 374d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin ..., 384d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin COMMAND_ID_2, 394d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin CONFIG_CACHE/SET/GET, 404d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin OFFSET_2, 414d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin LENGTH_2, 424d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin VALUES_2, 434d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin ..., 444d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin ..., 454d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin COMMAND_ID_3, 464d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin ... 474d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin*/ 484d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin 494d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin 504d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin/* CONFIG PARAM IDs */ 514d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define VIRTUALIZER_MODULE 0x00001000 524d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define VIRTUALIZER_ENABLE 0x00001001 534d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define VIRTUALIZER_STRENGTH 0x00001002 544d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define VIRTUALIZER_OUT_TYPE 0x00001003 554d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define VIRTUALIZER_GAIN_ADJUST 0x00001004 564d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define VIRTUALIZER_ENABLE_PARAM_LEN 1 574d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define VIRTUALIZER_STRENGTH_PARAM_LEN 1 584d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define VIRTUALIZER_OUT_TYPE_PARAM_LEN 1 594d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define VIRTUALIZER_GAIN_ADJUST_PARAM_LEN 1 604d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin 614d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_MODULE 0x00002000 624d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_ENABLE 0x00002001 634d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_MODE 0x00002002 644d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_PRESET 0x00002003 654d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_WET_MIX 0x00002004 664d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_GAIN_ADJUST 0x00002005 674d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_ROOM_LEVEL 0x00002006 684d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_ROOM_HF_LEVEL 0x00002007 694d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_DECAY_TIME 0x00002008 704d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_DECAY_HF_RATIO 0x00002009 714d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_REFLECTIONS_LEVEL 0x0000200a 724d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_REFLECTIONS_DELAY 0x0000200b 734d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_LEVEL 0x0000200c 744d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_DELAY 0x0000200d 754d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_DIFFUSION 0x0000200e 764d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_DENSITY 0x0000200f 774d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_ENABLE_PARAM_LEN 1 784d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_MODE_PARAM_LEN 1 794d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_PRESET_PARAM_LEN 1 804d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_WET_MIX_PARAM_LEN 1 814d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_GAIN_ADJUST_PARAM_LEN 1 824d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_ROOM_LEVEL_PARAM_LEN 1 834d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_ROOM_HF_LEVEL_PARAM_LEN 1 844d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_DECAY_TIME_PARAM_LEN 1 854d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_DECAY_HF_RATIO_PARAM_LEN 1 864d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_REFLECTIONS_LEVEL_PARAM_LEN 1 874d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_REFLECTIONS_DELAY_PARAM_LEN 1 884d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_LEVEL_PARAM_LEN 1 894d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_DELAY_PARAM_LEN 1 904d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_DIFFUSION_PARAM_LEN 1 914d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_DENSITY_PARAM_LEN 1 924d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin 934d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define BASS_BOOST_MODULE 0x00003000 944d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define BASS_BOOST_ENABLE 0x00003001 954d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define BASS_BOOST_MODE 0x00003002 964d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define BASS_BOOST_STRENGTH 0x00003003 974d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define BASS_BOOST_ENABLE_PARAM_LEN 1 984d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define BASS_BOOST_MODE_PARAM_LEN 1 994d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define BASS_BOOST_STRENGTH_PARAM_LEN 1 1004d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin 1014d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_MODULE 0x00004000 1024d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_ENABLE 0x00004001 1034d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_CONFIG 0x00004002 1044d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_NUM_BANDS 0x00004003 1054d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_BAND_LEVELS 0x00004004 1064d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_BAND_LEVEL_RANGE 0x00004005 1074d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_BAND_FREQS 0x00004006 1084d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_SINGLE_BAND_FREQ_RANGE 0x00004007 1094d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_SINGLE_BAND_FREQ 0x00004008 1104d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_BAND_INDEX 0x00004009 1114d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_PRESET_ID 0x0000400a 1124d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_NUM_PRESETS 0x0000400b 1134d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_PRESET_NAME 0x0000400c 1144d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_ENABLE_PARAM_LEN 1 1154d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_CONFIG_PARAM_LEN 3 1164d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_CONFIG_PER_BAND_PARAM_LEN 5 1174d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_NUM_BANDS_PARAM_LEN 1 1184d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_BAND_LEVELS_PARAM_LEN 13 1194d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_BAND_LEVEL_RANGE_PARAM_LEN 2 1204d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_BAND_FREQS_PARAM_LEN 13 1214d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_SINGLE_BAND_FREQ_RANGE_PARAM_LEN 2 1224d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_SINGLE_BAND_FREQ_PARAM_LEN 1 1234d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_BAND_INDEX_PARAM_LEN 1 1244d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_PRESET_ID_PARAM_LEN 1 1254d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_NUM_PRESETS_PARAM_LEN 1 1264d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_PRESET_NAME_PARAM_LEN 32 1274d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin 1284d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_TYPE_NONE 0 1294d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_BASS_BOOST 1 1304d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_BASS_CUT 2 1314d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_TREBLE_BOOST 3 1324d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_TREBLE_CUT 4 1334d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_BAND_BOOST 5 1344d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_BAND_CUT 6 1354d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin 1364d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define SOFT_VOLUME_MODULE 0x00006000 1374d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define SOFT_VOLUME_ENABLE 0x00006001 1384d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define SOFT_VOLUME_GAIN_2CH 0x00006002 1394d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define SOFT_VOLUME_GAIN_MASTER 0x00006003 1404d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define SOFT_VOLUME_ENABLE_PARAM_LEN 1 1414d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define SOFT_VOLUME_GAIN_2CH_PARAM_LEN 2 1424d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define SOFT_VOLUME_GAIN_MASTER_PARAM_LEN 1 1434d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin 1444d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define SOFT_VOLUME2_MODULE 0x00007000 1454d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define SOFT_VOLUME2_ENABLE 0x00007001 1464d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define SOFT_VOLUME2_GAIN_2CH 0x00007002 1474d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define SOFT_VOLUME2_GAIN_MASTER 0x00007003 1484d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define SOFT_VOLUME2_ENABLE_PARAM_LEN SOFT_VOLUME_ENABLE_PARAM_LEN 1494d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define SOFT_VOLUME2_GAIN_2CH_PARAM_LEN SOFT_VOLUME_GAIN_2CH_PARAM_LEN 1504d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define SOFT_VOLUME2_GAIN_MASTER_PARAM_LEN \ 1514d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin SOFT_VOLUME_GAIN_MASTER_PARAM_LEN 1524d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin 1534d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define COMMAND_PAYLOAD_LEN 3 1544d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define COMMAND_PAYLOAD_SZ (COMMAND_PAYLOAD_LEN * sizeof(uint32_t)) 1554d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define MAX_INBAND_PARAM_SZ 4096 1564d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define Q27_UNITY (1 << 27) 1574d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define Q8_UNITY (1 << 8) 1584d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define CUSTOM_OPENSL_PRESET 18 1594d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin 1604d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define VIRTUALIZER_ENABLE_PARAM_SZ \ 1614d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (VIRTUALIZER_ENABLE_PARAM_LEN*sizeof(uint32_t)) 1624d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define VIRTUALIZER_STRENGTH_PARAM_SZ \ 1634d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (VIRTUALIZER_STRENGTH_PARAM_LEN*sizeof(uint32_t)) 1644d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define VIRTUALIZER_OUT_TYPE_PARAM_SZ \ 1654d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (VIRTUALIZER_OUT_TYPE_PARAM_LEN*sizeof(uint32_t)) 1664d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define VIRTUALIZER_GAIN_ADJUST_PARAM_SZ \ 1674d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (VIRTUALIZER_GAIN_ADJUST_PARAM_LEN*sizeof(uint32_t)) 1684d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjinstruct virtualizer_params { 1694d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin uint32_t device; 1704d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin uint32_t enable_flag; 1714d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin uint32_t strength; 1724d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin uint32_t out_type; 1734d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin int32_t gain_adjust; 1744d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin}; 1754d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin 1764d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define NUM_OSL_REVERB_PRESETS_SUPPORTED 6 1774d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_ENABLE_PARAM_SZ \ 1784d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (REVERB_ENABLE_PARAM_LEN*sizeof(uint32_t)) 1794d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_MODE_PARAM_SZ \ 1804d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (REVERB_MODE_PARAM_LEN*sizeof(uint32_t)) 1814d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_PRESET_PARAM_SZ \ 1824d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (REVERB_PRESET_PARAM_LEN*sizeof(uint32_t)) 1834d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_WET_MIX_PARAM_SZ \ 1844d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (REVERB_WET_MIX_PARAM_LEN*sizeof(uint32_t)) 1854d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_GAIN_ADJUST_PARAM_SZ \ 1864d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (REVERB_GAIN_ADJUST_PARAM_LEN*sizeof(uint32_t)) 1874d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_ROOM_LEVEL_PARAM_SZ \ 1884d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (REVERB_ROOM_LEVEL_PARAM_LEN*sizeof(uint32_t)) 1894d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_ROOM_HF_LEVEL_PARAM_SZ \ 1904d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (REVERB_ROOM_HF_LEVEL_PARAM_LEN*sizeof(uint32_t)) 1914d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_DECAY_TIME_PARAM_SZ \ 1924d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (REVERB_DECAY_TIME_PARAM_LEN*sizeof(uint32_t)) 1934d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_DECAY_HF_RATIO_PARAM_SZ \ 1944d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (REVERB_DECAY_HF_RATIO_PARAM_LEN*sizeof(uint32_t)) 1954d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_REFLECTIONS_LEVEL_PARAM_SZ \ 1964d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (REVERB_REFLECTIONS_LEVEL_PARAM_LEN*sizeof(uint32_t)) 1974d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_REFLECTIONS_DELAY_PARAM_SZ \ 1984d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (REVERB_REFLECTIONS_DELAY_PARAM_LEN*sizeof(uint32_t)) 1994d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_LEVEL_PARAM_SZ \ 2004d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (REVERB_LEVEL_PARAM_LEN*sizeof(uint32_t)) 2014d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_DELAY_PARAM_SZ \ 2024d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (REVERB_DELAY_PARAM_LEN*sizeof(uint32_t)) 2034d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_DIFFUSION_PARAM_SZ \ 2044d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (REVERB_DIFFUSION_PARAM_LEN*sizeof(uint32_t)) 2054d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define REVERB_DENSITY_PARAM_SZ \ 2064d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (REVERB_DENSITY_PARAM_LEN*sizeof(uint32_t)) 2074d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjinstruct reverb_params { 2084d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin uint32_t device; 2094d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin uint32_t enable_flag; 2104d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin uint32_t mode; 2114d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin uint32_t preset; 2124d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin uint32_t wet_mix; 2134d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin int32_t gain_adjust; 2144d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin int32_t room_level; 2154d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin int32_t room_hf_level; 2164d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin uint32_t decay_time; 2174d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin uint32_t decay_hf_ratio; 2184d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin int32_t reflections_level; 2194d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin uint32_t reflections_delay; 2204d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin int32_t level; 2214d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin uint32_t delay; 2224d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin uint32_t diffusion; 2234d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin uint32_t density; 2244d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin}; 2254d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin 2264d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define BASS_BOOST_ENABLE_PARAM_SZ \ 2274d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (BASS_BOOST_ENABLE_PARAM_LEN*sizeof(uint32_t)) 2284d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define BASS_BOOST_MODE_PARAM_SZ \ 2294d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (BASS_BOOST_MODE_PARAM_LEN*sizeof(uint32_t)) 2304d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define BASS_BOOST_STRENGTH_PARAM_SZ \ 2314d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (BASS_BOOST_STRENGTH_PARAM_LEN*sizeof(uint32_t)) 2324d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjinstruct bass_boost_params { 2334d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin uint32_t device; 2344d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin uint32_t enable_flag; 2354d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin uint32_t mode; 2364d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin uint32_t strength; 2374d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin}; 2384d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin 2394d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin 2404d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define MAX_EQ_BANDS 12 2414d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define MAX_OSL_EQ_BANDS 5 2424d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_ENABLE_PARAM_SZ \ 2434d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (EQ_ENABLE_PARAM_LEN*sizeof(uint32_t)) 2444d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_CONFIG_PARAM_SZ \ 2454d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (EQ_CONFIG_PARAM_LEN*sizeof(uint32_t)) 2464d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_CONFIG_PER_BAND_PARAM_SZ \ 2474d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (EQ_CONFIG_PER_BAND_PARAM_LEN*sizeof(uint32_t)) 2484d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_CONFIG_PARAM_MAX_LEN (EQ_CONFIG_PARAM_LEN+\ 2494d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin MAX_EQ_BANDS*EQ_CONFIG_PER_BAND_PARAM_LEN) 2504d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_CONFIG_PARAM_MAX_SZ \ 2514d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (EQ_CONFIG_PARAM_MAX_LEN*sizeof(uint32_t)) 2524d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_NUM_BANDS_PARAM_SZ \ 2534d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (EQ_NUM_BANDS_PARAM_LEN*sizeof(uint32_t)) 2544d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_BAND_LEVELS_PARAM_SZ \ 2554d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (EQ_BAND_LEVELS_PARAM_LEN*sizeof(uint32_t)) 2564d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_BAND_LEVEL_RANGE_PARAM_SZ \ 2574d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (EQ_BAND_LEVEL_RANGE_PARAM_LEN*sizeof(uint32_t)) 2584d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_BAND_FREQS_PARAM_SZ \ 2594d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (EQ_BAND_FREQS_PARAM_LEN*sizeof(uint32_t)) 2604d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_SINGLE_BAND_FREQ_RANGE_PARAM_SZ \ 2614d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (EQ_SINGLE_BAND_FREQ_RANGE_PARAM_LEN*sizeof(uint32_t)) 2624d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_SINGLE_BAND_FREQ_PARAM_SZ \ 2634d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (EQ_SINGLE_BAND_FREQ_PARAM_LEN*sizeof(uint32_t)) 2644d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_BAND_INDEX_PARAM_SZ \ 2654d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (EQ_BAND_INDEX_PARAM_LEN*sizeof(uint32_t)) 2664d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_PRESET_ID_PARAM_SZ \ 2674d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (EQ_PRESET_ID_PARAM_LEN*sizeof(uint32_t)) 2684d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define EQ_NUM_PRESETS_PARAM_SZ \ 2694d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (EQ_NUM_PRESETS_PARAM_LEN*sizeof(uint8_t)) 2704d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjinstruct eq_config_t { 2714d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin int32_t eq_pregain; 2724d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin int32_t preset_id; 2734d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin uint32_t num_bands; 2744d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin}; 2754d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjinstruct eq_per_band_config_t { 2764d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin int32_t band_idx; 2774d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin uint32_t filter_type; 2784d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin uint32_t freq_millihertz; 2794d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin int32_t gain_millibels; 2804d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin uint32_t quality_factor; 2814d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin}; 2824d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjinstruct eq_per_band_freq_range_t { 2834d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin uint32_t band_index; 2844d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin uint32_t min_freq_millihertz; 2854d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin uint32_t max_freq_millihertz; 2864d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin}; 2874d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin 2884d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjinstruct eq_params { 2894d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin uint32_t device; 2904d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin uint32_t enable_flag; 2914d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin struct eq_config_t config; 2924d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin struct eq_per_band_config_t per_band_cfg[MAX_EQ_BANDS]; 2934d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin struct eq_per_band_freq_range_t per_band_freq_range[MAX_EQ_BANDS]; 2944d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin uint32_t band_index; 2954d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin uint32_t freq_millihertz; 2964d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin}; 2974d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin 2984d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define SOFT_VOLUME_ENABLE_PARAM_SZ \ 2994d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (SOFT_VOLUME_ENABLE_PARAM_LEN*sizeof(uint32_t)) 3004d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define SOFT_VOLUME_GAIN_MASTER_PARAM_SZ \ 3014d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (SOFT_VOLUME_GAIN_MASTER_PARAM_LEN*sizeof(uint32_t)) 3024d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#define SOFT_VOLUME_GAIN_2CH_PARAM_SZ \ 3034d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin (SOFT_VOLUME_GAIN_2CH_PARAM_LEN*sizeof(uint16_t)) 3044d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjinstruct soft_volume_params { 3054d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin uint32_t device; 3064d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin uint32_t enable_flag; 3074d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin uint32_t master_gain; 3084d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin uint32_t left_gain; 3094d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin uint32_t right_gain; 3104d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin}; 3114d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin 3124d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjinstruct msm_nt_eff_all_config { 3134d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin struct bass_boost_params bass_boost; 3144d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin struct virtualizer_params virtualizer; 3154d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin struct reverb_params reverb; 3164d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin struct eq_params equalizer; 3174d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin struct soft_volume_params saplus_vol; 3184d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin struct soft_volume_params topo_switch_vol; 3194d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin}; 3204d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin 3214d667bae0175a66dffc4d241a449e706bdee0a85Patrick Tjin#endif /*_MSM_AUDIO_EFFECTS_H*/ 322