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