1 /* 2 * Copyright (C) 2004-2010 NXP Software 3 * Copyright (C) 2010 The Android Open Source Project 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 18 /************************************************************************************/ 19 /* */ 20 /* Includes */ 21 /* */ 22 /************************************************************************************/ 23 24 #include "LVM_Tables.h" 25 #include "LVM_Coeffs.h" 26 27 /************************************************************************************/ 28 /* */ 29 /* Treble Boost Filter Coefficients */ 30 /* */ 31 /************************************************************************************/ 32 #ifdef BUILD_FLOAT 33 34 FO_FLOAT_LShx_Coefs_t LVM_TrebleBoostCoefs[] = { 35 36 /* 22kHz sampling rate */ 37 {HPF_Fs22050_Gain1_A1, /* Gain setting 1 */ 38 HPF_Fs22050_Gain1_A0, 39 -HPF_Fs22050_Gain1_B1}, 40 {HPF_Fs22050_Gain2_A1, /* Gain setting 2 */ 41 HPF_Fs22050_Gain2_A0, 42 -HPF_Fs22050_Gain2_B1}, 43 {HPF_Fs22050_Gain3_A1, /* Gain setting 3 */ 44 HPF_Fs22050_Gain3_A0, 45 -HPF_Fs22050_Gain3_B1}, 46 {HPF_Fs22050_Gain4_A1, /* Gain setting 4 */ 47 HPF_Fs22050_Gain4_A0, 48 -HPF_Fs22050_Gain4_B1}, 49 {HPF_Fs22050_Gain5_A1, /* Gain setting 5 */ 50 HPF_Fs22050_Gain5_A0, 51 -HPF_Fs22050_Gain5_B1}, 52 {HPF_Fs22050_Gain6_A1, /* Gain setting 6 */ 53 HPF_Fs22050_Gain6_A0, 54 -HPF_Fs22050_Gain6_B1}, 55 {HPF_Fs22050_Gain7_A1, /* Gain setting 7 */ 56 HPF_Fs22050_Gain7_A0, 57 -HPF_Fs22050_Gain7_B1}, 58 {HPF_Fs22050_Gain8_A1, /* Gain setting 8 */ 59 HPF_Fs22050_Gain8_A0, 60 -HPF_Fs22050_Gain8_B1}, 61 {HPF_Fs22050_Gain9_A1, /* Gain setting 9 */ 62 HPF_Fs22050_Gain9_A0, 63 -HPF_Fs22050_Gain9_B1}, 64 {HPF_Fs22050_Gain10_A1, /* Gain setting 10 */ 65 HPF_Fs22050_Gain10_A0, 66 -HPF_Fs22050_Gain10_B1}, 67 {HPF_Fs22050_Gain11_A1, /* Gain setting 11 */ 68 HPF_Fs22050_Gain11_A0, 69 -HPF_Fs22050_Gain11_B1}, 70 {HPF_Fs22050_Gain12_A1, /* Gain setting 12 */ 71 HPF_Fs22050_Gain12_A0, 72 -HPF_Fs22050_Gain12_B1}, 73 {HPF_Fs22050_Gain13_A1, /* Gain setting 13 */ 74 HPF_Fs22050_Gain13_A0, 75 -HPF_Fs22050_Gain13_B1}, 76 {HPF_Fs22050_Gain14_A1, /* Gain setting 14 */ 77 HPF_Fs22050_Gain14_A0, 78 -HPF_Fs22050_Gain14_B1}, 79 {HPF_Fs22050_Gain15_A1, /* Gain setting 15 */ 80 HPF_Fs22050_Gain15_A0, 81 -HPF_Fs22050_Gain15_B1}, 82 83 /* 24kHz sampling rate */ 84 {HPF_Fs24000_Gain1_A1, /* Gain setting 1 */ 85 HPF_Fs24000_Gain1_A0, 86 -HPF_Fs24000_Gain1_B1}, 87 {HPF_Fs24000_Gain2_A1, /* Gain setting 2 */ 88 HPF_Fs24000_Gain2_A0, 89 -HPF_Fs24000_Gain2_B1}, 90 {HPF_Fs24000_Gain3_A1, /* Gain setting 3 */ 91 HPF_Fs24000_Gain3_A0, 92 -HPF_Fs24000_Gain3_B1}, 93 {HPF_Fs24000_Gain4_A1, /* Gain setting 4 */ 94 HPF_Fs24000_Gain4_A0, 95 -HPF_Fs24000_Gain4_B1}, 96 {HPF_Fs24000_Gain5_A1, /* Gain setting 5 */ 97 HPF_Fs24000_Gain5_A0, 98 -HPF_Fs24000_Gain5_B1}, 99 {HPF_Fs24000_Gain6_A1, /* Gain setting 6 */ 100 HPF_Fs24000_Gain6_A0, 101 -HPF_Fs24000_Gain6_B1}, 102 {HPF_Fs24000_Gain7_A1, /* Gain setting 7 */ 103 HPF_Fs24000_Gain7_A0, 104 -HPF_Fs24000_Gain7_B1}, 105 {HPF_Fs24000_Gain8_A1, /* Gain setting 8 */ 106 HPF_Fs24000_Gain8_A0, 107 -HPF_Fs24000_Gain8_B1}, 108 {HPF_Fs24000_Gain9_A1, /* Gain setting 9 */ 109 HPF_Fs24000_Gain9_A0, 110 -HPF_Fs24000_Gain9_B1}, 111 {HPF_Fs24000_Gain10_A1, /* Gain setting 10 */ 112 HPF_Fs24000_Gain10_A0, 113 -HPF_Fs24000_Gain10_B1}, 114 {HPF_Fs24000_Gain11_A1, /* Gain setting 11 */ 115 HPF_Fs24000_Gain11_A0, 116 -HPF_Fs24000_Gain11_B1}, 117 {HPF_Fs24000_Gain12_A1, /* Gain setting 12 */ 118 HPF_Fs24000_Gain12_A0, 119 -HPF_Fs24000_Gain12_B1}, 120 {HPF_Fs24000_Gain13_A1, /* Gain setting 13 */ 121 HPF_Fs24000_Gain13_A0, 122 -HPF_Fs24000_Gain13_B1}, 123 {HPF_Fs24000_Gain14_A1, /* Gain setting 14 */ 124 HPF_Fs24000_Gain14_A0, 125 -HPF_Fs24000_Gain14_B1}, 126 {HPF_Fs24000_Gain15_A1, /* Gain setting 15 */ 127 HPF_Fs24000_Gain15_A0, 128 -HPF_Fs24000_Gain15_B1}, 129 130 /* 32kHz sampling rate */ 131 {HPF_Fs32000_Gain1_A1, /* Gain setting 1 */ 132 HPF_Fs32000_Gain1_A0, 133 -HPF_Fs32000_Gain1_B1}, 134 {HPF_Fs32000_Gain2_A1, /* Gain setting 2 */ 135 HPF_Fs32000_Gain2_A0, 136 -HPF_Fs32000_Gain2_B1}, 137 {HPF_Fs32000_Gain3_A1, /* Gain setting 3 */ 138 HPF_Fs32000_Gain3_A0, 139 -HPF_Fs32000_Gain3_B1}, 140 {HPF_Fs32000_Gain4_A1, /* Gain setting 4 */ 141 HPF_Fs32000_Gain4_A0, 142 -HPF_Fs32000_Gain4_B1}, 143 {HPF_Fs32000_Gain5_A1, /* Gain setting 5 */ 144 HPF_Fs32000_Gain5_A0, 145 -HPF_Fs32000_Gain5_B1}, 146 {HPF_Fs32000_Gain6_A1, /* Gain setting 6 */ 147 HPF_Fs32000_Gain6_A0, 148 -HPF_Fs32000_Gain6_B1}, 149 {HPF_Fs32000_Gain7_A1, /* Gain setting 7 */ 150 HPF_Fs32000_Gain7_A0, 151 -HPF_Fs32000_Gain7_B1}, 152 {HPF_Fs32000_Gain8_A1, /* Gain setting 8 */ 153 HPF_Fs32000_Gain8_A0, 154 -HPF_Fs32000_Gain8_B1}, 155 {HPF_Fs32000_Gain9_A1, /* Gain setting 9 */ 156 HPF_Fs32000_Gain9_A0, 157 -HPF_Fs32000_Gain9_B1}, 158 {HPF_Fs32000_Gain10_A1, /* Gain setting 10 */ 159 HPF_Fs32000_Gain10_A0, 160 -HPF_Fs32000_Gain10_B1}, 161 {HPF_Fs32000_Gain11_A1, /* Gain setting 11 */ 162 HPF_Fs32000_Gain11_A0, 163 -HPF_Fs32000_Gain11_B1}, 164 {HPF_Fs32000_Gain12_A1, /* Gain setting 12 */ 165 HPF_Fs32000_Gain12_A0, 166 -HPF_Fs32000_Gain12_B1}, 167 {HPF_Fs32000_Gain13_A1, /* Gain setting 13 */ 168 HPF_Fs32000_Gain13_A0, 169 -HPF_Fs32000_Gain13_B1}, 170 {HPF_Fs32000_Gain14_A1, /* Gain setting 14 */ 171 HPF_Fs32000_Gain14_A0, 172 -HPF_Fs32000_Gain14_B1}, 173 {HPF_Fs32000_Gain15_A1, /* Gain setting 15 */ 174 HPF_Fs32000_Gain15_A0, 175 -HPF_Fs32000_Gain15_B1}, 176 177 /* 44kHz sampling rate */ 178 {HPF_Fs44100_Gain1_A1, /* Gain setting 1 */ 179 HPF_Fs44100_Gain1_A0, 180 -HPF_Fs44100_Gain1_B1,}, 181 {HPF_Fs44100_Gain2_A1, /* Gain setting 2 */ 182 HPF_Fs44100_Gain2_A0, 183 -HPF_Fs44100_Gain2_B1}, 184 {HPF_Fs44100_Gain3_A1, /* Gain setting 3 */ 185 HPF_Fs44100_Gain3_A0, 186 -HPF_Fs44100_Gain3_B1}, 187 {HPF_Fs44100_Gain4_A1, /* Gain setting 4 */ 188 HPF_Fs44100_Gain4_A0, 189 -HPF_Fs44100_Gain4_B1}, 190 {HPF_Fs44100_Gain5_A1, /* Gain setting 5 */ 191 HPF_Fs44100_Gain5_A0, 192 -HPF_Fs44100_Gain5_B1}, 193 {HPF_Fs44100_Gain6_A1, /* Gain setting 6 */ 194 HPF_Fs44100_Gain6_A0, 195 -HPF_Fs44100_Gain6_B1}, 196 {HPF_Fs44100_Gain7_A1, /* Gain setting 7 */ 197 HPF_Fs44100_Gain7_A0, 198 -HPF_Fs44100_Gain7_B1}, 199 {HPF_Fs44100_Gain8_A1, /* Gain setting 8 */ 200 HPF_Fs44100_Gain8_A0, 201 -HPF_Fs44100_Gain8_B1}, 202 {HPF_Fs44100_Gain9_A1, /* Gain setting 9 */ 203 HPF_Fs44100_Gain9_A0, 204 -HPF_Fs44100_Gain9_B1}, 205 {HPF_Fs44100_Gain10_A1, /* Gain setting 10 */ 206 HPF_Fs44100_Gain10_A0, 207 -HPF_Fs44100_Gain10_B1}, 208 {HPF_Fs44100_Gain11_A1, /* Gain setting 11 */ 209 HPF_Fs44100_Gain11_A0, 210 -HPF_Fs44100_Gain11_B1}, 211 {HPF_Fs44100_Gain12_A1, /* Gain setting 12 */ 212 HPF_Fs44100_Gain12_A0, 213 -HPF_Fs44100_Gain12_B1}, 214 {HPF_Fs44100_Gain13_A1, /* Gain setting 13 */ 215 HPF_Fs44100_Gain13_A0, 216 -HPF_Fs44100_Gain13_B1}, 217 {HPF_Fs44100_Gain14_A1, /* Gain setting 14 */ 218 HPF_Fs44100_Gain14_A0, 219 -HPF_Fs44100_Gain14_B1}, 220 {HPF_Fs44100_Gain15_A1, /* Gain setting 15 */ 221 HPF_Fs44100_Gain15_A0, 222 -HPF_Fs44100_Gain15_B1}, 223 224 /* 48kHz sampling rate */ 225 {HPF_Fs48000_Gain1_A1, /* Gain setting 1 */ 226 HPF_Fs48000_Gain1_A0, 227 -HPF_Fs48000_Gain1_B1}, 228 {HPF_Fs48000_Gain2_A1, /* Gain setting 2 */ 229 HPF_Fs48000_Gain2_A0, 230 -HPF_Fs48000_Gain2_B1}, 231 {HPF_Fs48000_Gain3_A1, /* Gain setting 3 */ 232 HPF_Fs48000_Gain3_A0, 233 -HPF_Fs48000_Gain3_B1}, 234 {HPF_Fs48000_Gain4_A1, /* Gain setting 4 */ 235 HPF_Fs48000_Gain4_A0, 236 -HPF_Fs48000_Gain4_B1}, 237 {HPF_Fs48000_Gain5_A1, /* Gain setting 5 */ 238 HPF_Fs48000_Gain5_A0, 239 -HPF_Fs48000_Gain5_B1}, 240 {HPF_Fs48000_Gain6_A1, /* Gain setting 6 */ 241 HPF_Fs48000_Gain6_A0, 242 -HPF_Fs48000_Gain6_B1}, 243 {HPF_Fs48000_Gain7_A1, /* Gain setting 7 */ 244 HPF_Fs48000_Gain7_A0, 245 -HPF_Fs48000_Gain7_B1}, 246 {HPF_Fs48000_Gain8_A1, /* Gain setting 8 */ 247 HPF_Fs48000_Gain8_A0, 248 -HPF_Fs48000_Gain8_B1}, 249 {HPF_Fs48000_Gain9_A1, /* Gain setting 9 */ 250 HPF_Fs48000_Gain9_A0, 251 -HPF_Fs48000_Gain9_B1}, 252 {HPF_Fs48000_Gain10_A1, /* Gain setting 10 */ 253 HPF_Fs48000_Gain10_A0, 254 -HPF_Fs48000_Gain10_B1}, 255 {HPF_Fs48000_Gain11_A1, /* Gain setting 11 */ 256 HPF_Fs48000_Gain11_A0, 257 -HPF_Fs48000_Gain11_B1}, 258 {HPF_Fs48000_Gain12_A1, /* Gain setting 12 */ 259 HPF_Fs48000_Gain12_A0, 260 -HPF_Fs48000_Gain12_B1}, 261 {HPF_Fs48000_Gain13_A1, /* Gain setting 13 */ 262 HPF_Fs48000_Gain13_A0, 263 -HPF_Fs48000_Gain13_B1}, 264 {HPF_Fs48000_Gain14_A1, /* Gain setting 14 */ 265 HPF_Fs48000_Gain14_A0, 266 -HPF_Fs48000_Gain14_B1}, 267 {HPF_Fs48000_Gain15_A1, /* Gain setting 15 */ 268 HPF_Fs48000_Gain15_A0, 269 -HPF_Fs48000_Gain15_B1} 270 #ifdef HIGHER_FS 271 , 272 /* 88kHz Sampling rate */ 273 {HPF_Fs88200_Gain1_A1, /* Gain Setting 1 */ 274 HPF_Fs88200_Gain1_A0, 275 -HPF_Fs88200_Gain1_B1}, 276 {HPF_Fs88200_Gain2_A1, /* Gain Setting 2 */ 277 HPF_Fs88200_Gain2_A0, 278 -HPF_Fs88200_Gain2_B1}, 279 {HPF_Fs88200_Gain3_A1, /* Gain Setting 3 */ 280 HPF_Fs88200_Gain3_A0, 281 -HPF_Fs88200_Gain3_B1}, 282 {HPF_Fs88200_Gain4_A1, /* Gain Setting 4 */ 283 HPF_Fs88200_Gain4_A0, 284 -HPF_Fs88200_Gain4_B1}, 285 {HPF_Fs88200_Gain5_A1, /* Gain Setting 5 */ 286 HPF_Fs88200_Gain5_A0, 287 -HPF_Fs88200_Gain5_B1}, 288 {HPF_Fs88200_Gain6_A1, /* Gain Setting 6 */ 289 HPF_Fs88200_Gain6_A0, 290 -HPF_Fs88200_Gain6_B1}, 291 {HPF_Fs88200_Gain7_A1, /* Gain Setting 7 */ 292 HPF_Fs88200_Gain7_A0, 293 -HPF_Fs88200_Gain7_B1}, 294 {HPF_Fs88200_Gain8_A1, /* Gain Setting 8 */ 295 HPF_Fs88200_Gain8_A0, 296 -HPF_Fs88200_Gain8_B1}, 297 {HPF_Fs88200_Gain9_A1, /* Gain Setting 9 */ 298 HPF_Fs88200_Gain9_A0, 299 -HPF_Fs88200_Gain9_B1}, 300 {HPF_Fs88200_Gain10_A1, /* Gain Setting 10 */ 301 HPF_Fs88200_Gain10_A0, 302 -HPF_Fs88200_Gain10_B1}, 303 {HPF_Fs88200_Gain11_A1, /* Gain Setting 11 */ 304 HPF_Fs88200_Gain11_A0, 305 -HPF_Fs88200_Gain11_B1}, 306 {HPF_Fs88200_Gain12_A1, /* Gain Setting 12 */ 307 HPF_Fs88200_Gain12_A0, 308 -HPF_Fs88200_Gain12_B1}, 309 {HPF_Fs88200_Gain13_A1, /* Gain Setting 13 */ 310 HPF_Fs88200_Gain13_A0, 311 -HPF_Fs88200_Gain13_B1}, 312 {HPF_Fs88200_Gain14_A1, /* Gain Setting 14 */ 313 HPF_Fs88200_Gain14_A0, 314 -HPF_Fs88200_Gain14_B1}, 315 {HPF_Fs88200_Gain15_A1, /* Gain Setting 15 */ 316 HPF_Fs88200_Gain15_A0, 317 -HPF_Fs88200_Gain15_B1}, 318 319 /* 96kHz sampling rate */ 320 {HPF_Fs96000_Gain1_A1, /* Gain setting 1 */ 321 HPF_Fs96000_Gain1_A0, 322 -HPF_Fs96000_Gain1_B1}, 323 {HPF_Fs96000_Gain2_A1, /* Gain setting 2 */ 324 HPF_Fs96000_Gain2_A0, 325 -HPF_Fs96000_Gain2_B1}, 326 {HPF_Fs96000_Gain3_A1, /* Gain setting 3 */ 327 HPF_Fs96000_Gain3_A0, 328 -HPF_Fs96000_Gain3_B1}, 329 {HPF_Fs96000_Gain4_A1, /* Gain setting 4 */ 330 HPF_Fs96000_Gain4_A0, 331 -HPF_Fs96000_Gain4_B1}, 332 {HPF_Fs96000_Gain5_A1, /* Gain setting 5 */ 333 HPF_Fs96000_Gain5_A0, 334 -HPF_Fs96000_Gain5_B1}, 335 {HPF_Fs96000_Gain6_A1, /* Gain setting 6 */ 336 HPF_Fs96000_Gain6_A0, 337 -HPF_Fs96000_Gain6_B1}, 338 {HPF_Fs96000_Gain7_A1, /* Gain setting 7 */ 339 HPF_Fs96000_Gain7_A0, 340 -HPF_Fs96000_Gain7_B1}, 341 {HPF_Fs96000_Gain8_A1, /* Gain setting 8 */ 342 HPF_Fs96000_Gain8_A0, 343 -HPF_Fs96000_Gain8_B1}, 344 {HPF_Fs96000_Gain9_A1, /* Gain setting 9 */ 345 HPF_Fs96000_Gain9_A0, 346 -HPF_Fs96000_Gain9_B1}, 347 {HPF_Fs96000_Gain10_A1, /* Gain setting 10 */ 348 HPF_Fs96000_Gain10_A0, 349 -HPF_Fs96000_Gain10_B1}, 350 {HPF_Fs96000_Gain11_A1, /* Gain setting 11 */ 351 HPF_Fs96000_Gain11_A0, 352 -HPF_Fs96000_Gain11_B1}, 353 {HPF_Fs96000_Gain12_A1, /* Gain setting 12 */ 354 HPF_Fs96000_Gain12_A0, 355 -HPF_Fs96000_Gain12_B1}, 356 {HPF_Fs96000_Gain13_A1, /* Gain setting 13 */ 357 HPF_Fs96000_Gain13_A0, 358 -HPF_Fs96000_Gain13_B1}, 359 {HPF_Fs96000_Gain14_A1, /* Gain setting 14 */ 360 HPF_Fs96000_Gain14_A0, 361 -HPF_Fs96000_Gain14_B1}, 362 {HPF_Fs96000_Gain15_A1, /* Gain setting 15 */ 363 HPF_Fs96000_Gain15_A0, 364 -HPF_Fs96000_Gain15_B1}, 365 366 /* 176kHz Sampling rate */ 367 {HPF_Fs176400_Gain1_A1, /* Gain Setting 1 */ 368 HPF_Fs176400_Gain1_A0, 369 -HPF_Fs176400_Gain1_B1}, 370 {HPF_Fs176400_Gain2_A1, /* Gain Setting 2 */ 371 HPF_Fs176400_Gain2_A0, 372 -HPF_Fs176400_Gain2_B1}, 373 {HPF_Fs176400_Gain3_A1, /* Gain Setting 3 */ 374 HPF_Fs176400_Gain3_A0, 375 -HPF_Fs176400_Gain3_B1}, 376 {HPF_Fs176400_Gain4_A1, /* Gain Setting 4 */ 377 HPF_Fs176400_Gain4_A0, 378 -HPF_Fs176400_Gain4_B1}, 379 {HPF_Fs176400_Gain5_A1, /* Gain Setting 5 */ 380 HPF_Fs176400_Gain5_A0, 381 -HPF_Fs176400_Gain5_B1}, 382 {HPF_Fs176400_Gain6_A1, /* Gain Setting 6 */ 383 HPF_Fs176400_Gain6_A0, 384 -HPF_Fs176400_Gain6_B1}, 385 {HPF_Fs176400_Gain7_A1, /* Gain Setting 7 */ 386 HPF_Fs176400_Gain7_A0, 387 -HPF_Fs176400_Gain7_B1}, 388 {HPF_Fs176400_Gain8_A1, /* Gain Setting 8 */ 389 HPF_Fs176400_Gain8_A0, 390 -HPF_Fs176400_Gain8_B1}, 391 {HPF_Fs176400_Gain9_A1, /* Gain Setting 9 */ 392 HPF_Fs176400_Gain9_A0, 393 -HPF_Fs176400_Gain9_B1}, 394 {HPF_Fs176400_Gain10_A1, /* Gain Setting 10 */ 395 HPF_Fs176400_Gain10_A0, 396 -HPF_Fs176400_Gain10_B1}, 397 {HPF_Fs176400_Gain11_A1, /* Gain Setting 11 */ 398 HPF_Fs176400_Gain11_A0, 399 -HPF_Fs176400_Gain11_B1}, 400 {HPF_Fs176400_Gain12_A1, /* Gain Setting 12 */ 401 HPF_Fs176400_Gain12_A0, 402 -HPF_Fs176400_Gain12_B1}, 403 {HPF_Fs176400_Gain13_A1, /* Gain Setting 13 */ 404 HPF_Fs176400_Gain13_A0, 405 -HPF_Fs176400_Gain13_B1}, 406 {HPF_Fs176400_Gain14_A1, /* Gain Setting 14 */ 407 HPF_Fs176400_Gain14_A0, 408 -HPF_Fs176400_Gain14_B1}, 409 {HPF_Fs176400_Gain15_A1, /* Gain Setting 15 */ 410 HPF_Fs176400_Gain15_A0, 411 -HPF_Fs176400_Gain15_B1}, 412 413 /* 192kHz sampling rate */ 414 {HPF_Fs192000_Gain1_A1, /* Gain setting 1 */ 415 HPF_Fs192000_Gain1_A0, 416 -HPF_Fs192000_Gain1_B1}, 417 {HPF_Fs192000_Gain2_A1, /* Gain setting 2 */ 418 HPF_Fs192000_Gain2_A0, 419 -HPF_Fs192000_Gain2_B1}, 420 {HPF_Fs192000_Gain3_A1, /* Gain setting 3 */ 421 HPF_Fs192000_Gain3_A0, 422 -HPF_Fs192000_Gain3_B1}, 423 {HPF_Fs192000_Gain4_A1, /* Gain setting 4 */ 424 HPF_Fs192000_Gain4_A0, 425 -HPF_Fs192000_Gain4_B1}, 426 {HPF_Fs192000_Gain5_A1, /* Gain setting 5 */ 427 HPF_Fs192000_Gain5_A0, 428 -HPF_Fs192000_Gain5_B1}, 429 {HPF_Fs192000_Gain6_A1, /* Gain setting 6 */ 430 HPF_Fs192000_Gain6_A0, 431 -HPF_Fs192000_Gain6_B1}, 432 {HPF_Fs192000_Gain7_A1, /* Gain setting 7 */ 433 HPF_Fs192000_Gain7_A0, 434 -HPF_Fs192000_Gain7_B1}, 435 {HPF_Fs192000_Gain8_A1, /* Gain setting 8 */ 436 HPF_Fs192000_Gain8_A0, 437 -HPF_Fs192000_Gain8_B1}, 438 {HPF_Fs192000_Gain9_A1, /* Gain setting 9 */ 439 HPF_Fs192000_Gain9_A0, 440 -HPF_Fs192000_Gain9_B1}, 441 {HPF_Fs192000_Gain10_A1, /* Gain setting 10 */ 442 HPF_Fs192000_Gain10_A0, 443 -HPF_Fs192000_Gain10_B1}, 444 {HPF_Fs192000_Gain11_A1, /* Gain setting 11 */ 445 HPF_Fs192000_Gain11_A0, 446 -HPF_Fs192000_Gain11_B1}, 447 {HPF_Fs192000_Gain12_A1, /* Gain setting 12 */ 448 HPF_Fs192000_Gain12_A0, 449 -HPF_Fs192000_Gain12_B1}, 450 {HPF_Fs192000_Gain13_A1, /* Gain setting 13 */ 451 HPF_Fs192000_Gain13_A0, 452 -HPF_Fs192000_Gain13_B1}, 453 {HPF_Fs192000_Gain14_A1, /* Gain setting 14 */ 454 HPF_Fs192000_Gain14_A0, 455 -HPF_Fs192000_Gain14_B1}, 456 {HPF_Fs192000_Gain15_A1, /* Gain setting 15 */ 457 HPF_Fs192000_Gain15_A0, 458 -HPF_Fs192000_Gain15_B1} 459 #endif 460 }; 461 #else 462 FO_C16_LShx_Coefs_t LVM_TrebleBoostCoefs[] = { 463 464 /* 22kHz sampling rate */ 465 {HPF_Fs22050_Gain1_A1, /* Gain setting 1 */ 466 HPF_Fs22050_Gain1_A0, 467 -HPF_Fs22050_Gain1_B1, 468 HPF_Fs22050_Gain1_Shift}, 469 {HPF_Fs22050_Gain2_A1, /* Gain setting 2 */ 470 HPF_Fs22050_Gain2_A0, 471 -HPF_Fs22050_Gain2_B1, 472 HPF_Fs22050_Gain2_Shift}, 473 {HPF_Fs22050_Gain3_A1, /* Gain setting 3 */ 474 HPF_Fs22050_Gain3_A0, 475 -HPF_Fs22050_Gain3_B1, 476 HPF_Fs22050_Gain3_Shift}, 477 {HPF_Fs22050_Gain4_A1, /* Gain setting 4 */ 478 HPF_Fs22050_Gain4_A0, 479 -HPF_Fs22050_Gain4_B1, 480 HPF_Fs22050_Gain4_Shift}, 481 {HPF_Fs22050_Gain5_A1, /* Gain setting 5 */ 482 HPF_Fs22050_Gain5_A0, 483 -HPF_Fs22050_Gain5_B1, 484 HPF_Fs22050_Gain5_Shift}, 485 {HPF_Fs22050_Gain6_A1, /* Gain setting 6 */ 486 HPF_Fs22050_Gain6_A0, 487 -HPF_Fs22050_Gain6_B1, 488 HPF_Fs22050_Gain6_Shift}, 489 {HPF_Fs22050_Gain7_A1, /* Gain setting 7 */ 490 HPF_Fs22050_Gain7_A0, 491 -HPF_Fs22050_Gain7_B1, 492 HPF_Fs22050_Gain7_Shift}, 493 {HPF_Fs22050_Gain8_A1, /* Gain setting 8 */ 494 HPF_Fs22050_Gain8_A0, 495 -HPF_Fs22050_Gain8_B1, 496 HPF_Fs22050_Gain8_Shift}, 497 {HPF_Fs22050_Gain9_A1, /* Gain setting 9 */ 498 HPF_Fs22050_Gain9_A0, 499 -HPF_Fs22050_Gain9_B1, 500 HPF_Fs22050_Gain9_Shift}, 501 {HPF_Fs22050_Gain10_A1, /* Gain setting 10 */ 502 HPF_Fs22050_Gain10_A0, 503 -HPF_Fs22050_Gain10_B1, 504 HPF_Fs22050_Gain10_Shift}, 505 {HPF_Fs22050_Gain11_A1, /* Gain setting 11 */ 506 HPF_Fs22050_Gain11_A0, 507 -HPF_Fs22050_Gain11_B1, 508 HPF_Fs22050_Gain11_Shift}, 509 {HPF_Fs22050_Gain12_A1, /* Gain setting 12 */ 510 HPF_Fs22050_Gain12_A0, 511 -HPF_Fs22050_Gain12_B1, 512 HPF_Fs22050_Gain12_Shift}, 513 {HPF_Fs22050_Gain13_A1, /* Gain setting 13 */ 514 HPF_Fs22050_Gain13_A0, 515 -HPF_Fs22050_Gain13_B1, 516 HPF_Fs22050_Gain13_Shift}, 517 {HPF_Fs22050_Gain14_A1, /* Gain setting 14 */ 518 HPF_Fs22050_Gain14_A0, 519 -HPF_Fs22050_Gain14_B1, 520 HPF_Fs22050_Gain14_Shift}, 521 {HPF_Fs22050_Gain15_A1, /* Gain setting 15 */ 522 HPF_Fs22050_Gain15_A0, 523 -HPF_Fs22050_Gain15_B1, 524 HPF_Fs22050_Gain15_Shift}, 525 526 /* 24kHz sampling rate */ 527 {HPF_Fs24000_Gain1_A1, /* Gain setting 1 */ 528 HPF_Fs24000_Gain1_A0, 529 -HPF_Fs24000_Gain1_B1, 530 HPF_Fs24000_Gain1_Shift}, 531 {HPF_Fs24000_Gain2_A1, /* Gain setting 2 */ 532 HPF_Fs24000_Gain2_A0, 533 -HPF_Fs24000_Gain2_B1, 534 HPF_Fs24000_Gain2_Shift}, 535 {HPF_Fs24000_Gain3_A1, /* Gain setting 3 */ 536 HPF_Fs24000_Gain3_A0, 537 -HPF_Fs24000_Gain3_B1, 538 HPF_Fs24000_Gain3_Shift}, 539 {HPF_Fs24000_Gain4_A1, /* Gain setting 4 */ 540 HPF_Fs24000_Gain4_A0, 541 -HPF_Fs24000_Gain4_B1, 542 HPF_Fs24000_Gain4_Shift}, 543 {HPF_Fs24000_Gain5_A1, /* Gain setting 5 */ 544 HPF_Fs24000_Gain5_A0, 545 -HPF_Fs24000_Gain5_B1, 546 HPF_Fs24000_Gain5_Shift}, 547 {HPF_Fs24000_Gain6_A1, /* Gain setting 6 */ 548 HPF_Fs24000_Gain6_A0, 549 -HPF_Fs24000_Gain6_B1, 550 HPF_Fs24000_Gain6_Shift}, 551 {HPF_Fs24000_Gain7_A1, /* Gain setting 7 */ 552 HPF_Fs24000_Gain7_A0, 553 -HPF_Fs24000_Gain7_B1, 554 HPF_Fs24000_Gain7_Shift}, 555 {HPF_Fs24000_Gain8_A1, /* Gain setting 8 */ 556 HPF_Fs24000_Gain8_A0, 557 -HPF_Fs24000_Gain8_B1, 558 HPF_Fs24000_Gain8_Shift}, 559 {HPF_Fs24000_Gain9_A1, /* Gain setting 9 */ 560 HPF_Fs24000_Gain9_A0, 561 -HPF_Fs24000_Gain9_B1, 562 HPF_Fs24000_Gain9_Shift}, 563 {HPF_Fs24000_Gain10_A1, /* Gain setting 10 */ 564 HPF_Fs24000_Gain10_A0, 565 -HPF_Fs24000_Gain10_B1, 566 HPF_Fs24000_Gain10_Shift}, 567 {HPF_Fs24000_Gain11_A1, /* Gain setting 11 */ 568 HPF_Fs24000_Gain11_A0, 569 -HPF_Fs24000_Gain11_B1, 570 HPF_Fs24000_Gain11_Shift}, 571 {HPF_Fs24000_Gain12_A1, /* Gain setting 12 */ 572 HPF_Fs24000_Gain12_A0, 573 -HPF_Fs24000_Gain12_B1, 574 HPF_Fs24000_Gain12_Shift}, 575 {HPF_Fs24000_Gain13_A1, /* Gain setting 13 */ 576 HPF_Fs24000_Gain13_A0, 577 -HPF_Fs24000_Gain13_B1, 578 HPF_Fs24000_Gain13_Shift}, 579 {HPF_Fs24000_Gain14_A1, /* Gain setting 14 */ 580 HPF_Fs24000_Gain14_A0, 581 -HPF_Fs24000_Gain14_B1, 582 HPF_Fs24000_Gain14_Shift}, 583 {HPF_Fs24000_Gain15_A1, /* Gain setting 15 */ 584 HPF_Fs24000_Gain15_A0, 585 -HPF_Fs24000_Gain15_B1, 586 HPF_Fs24000_Gain15_Shift}, 587 588 /* 32kHz sampling rate */ 589 {HPF_Fs32000_Gain1_A1, /* Gain setting 1 */ 590 HPF_Fs32000_Gain1_A0, 591 -HPF_Fs32000_Gain1_B1, 592 HPF_Fs32000_Gain1_Shift}, 593 {HPF_Fs32000_Gain2_A1, /* Gain setting 2 */ 594 HPF_Fs32000_Gain2_A0, 595 -HPF_Fs32000_Gain2_B1, 596 HPF_Fs32000_Gain2_Shift}, 597 {HPF_Fs32000_Gain3_A1, /* Gain setting 3 */ 598 HPF_Fs32000_Gain3_A0, 599 -HPF_Fs32000_Gain3_B1, 600 HPF_Fs32000_Gain3_Shift}, 601 {HPF_Fs32000_Gain4_A1, /* Gain setting 4 */ 602 HPF_Fs32000_Gain4_A0, 603 -HPF_Fs32000_Gain4_B1, 604 HPF_Fs32000_Gain4_Shift}, 605 {HPF_Fs32000_Gain5_A1, /* Gain setting 5 */ 606 HPF_Fs32000_Gain5_A0, 607 -HPF_Fs32000_Gain5_B1, 608 HPF_Fs32000_Gain5_Shift}, 609 {HPF_Fs32000_Gain6_A1, /* Gain setting 6 */ 610 HPF_Fs32000_Gain6_A0, 611 -HPF_Fs32000_Gain6_B1, 612 HPF_Fs32000_Gain6_Shift}, 613 {HPF_Fs32000_Gain7_A1, /* Gain setting 7 */ 614 HPF_Fs32000_Gain7_A0, 615 -HPF_Fs32000_Gain7_B1, 616 HPF_Fs32000_Gain7_Shift}, 617 {HPF_Fs32000_Gain8_A1, /* Gain setting 8 */ 618 HPF_Fs32000_Gain8_A0, 619 -HPF_Fs32000_Gain8_B1, 620 HPF_Fs32000_Gain8_Shift}, 621 {HPF_Fs32000_Gain9_A1, /* Gain setting 9 */ 622 HPF_Fs32000_Gain9_A0, 623 -HPF_Fs32000_Gain9_B1, 624 HPF_Fs32000_Gain9_Shift}, 625 {HPF_Fs32000_Gain10_A1, /* Gain setting 10 */ 626 HPF_Fs32000_Gain10_A0, 627 -HPF_Fs32000_Gain10_B1, 628 HPF_Fs32000_Gain10_Shift}, 629 {HPF_Fs32000_Gain11_A1, /* Gain setting 11 */ 630 HPF_Fs32000_Gain11_A0, 631 -HPF_Fs32000_Gain11_B1, 632 HPF_Fs32000_Gain11_Shift}, 633 {HPF_Fs32000_Gain12_A1, /* Gain setting 12 */ 634 HPF_Fs32000_Gain12_A0, 635 -HPF_Fs32000_Gain12_B1, 636 HPF_Fs32000_Gain12_Shift}, 637 {HPF_Fs32000_Gain13_A1, /* Gain setting 13 */ 638 HPF_Fs32000_Gain13_A0, 639 -HPF_Fs32000_Gain13_B1, 640 HPF_Fs32000_Gain13_Shift}, 641 {HPF_Fs32000_Gain14_A1, /* Gain setting 14 */ 642 HPF_Fs32000_Gain14_A0, 643 -HPF_Fs32000_Gain14_B1, 644 HPF_Fs32000_Gain14_Shift}, 645 {HPF_Fs32000_Gain15_A1, /* Gain setting 15 */ 646 HPF_Fs32000_Gain15_A0, 647 -HPF_Fs32000_Gain15_B1, 648 HPF_Fs32000_Gain15_Shift}, 649 650 /* 44kHz sampling rate */ 651 {HPF_Fs44100_Gain1_A1, /* Gain setting 1 */ 652 HPF_Fs44100_Gain1_A0, 653 -HPF_Fs44100_Gain1_B1, 654 HPF_Fs44100_Gain1_Shift}, 655 {HPF_Fs44100_Gain2_A1, /* Gain setting 2 */ 656 HPF_Fs44100_Gain2_A0, 657 -HPF_Fs44100_Gain2_B1, 658 HPF_Fs44100_Gain2_Shift}, 659 {HPF_Fs44100_Gain3_A1, /* Gain setting 3 */ 660 HPF_Fs44100_Gain3_A0, 661 -HPF_Fs44100_Gain3_B1, 662 HPF_Fs44100_Gain3_Shift}, 663 {HPF_Fs44100_Gain4_A1, /* Gain setting 4 */ 664 HPF_Fs44100_Gain4_A0, 665 -HPF_Fs44100_Gain4_B1, 666 HPF_Fs44100_Gain4_Shift}, 667 {HPF_Fs44100_Gain5_A1, /* Gain setting 5 */ 668 HPF_Fs44100_Gain5_A0, 669 -HPF_Fs44100_Gain5_B1, 670 HPF_Fs44100_Gain5_Shift}, 671 {HPF_Fs44100_Gain6_A1, /* Gain setting 6 */ 672 HPF_Fs44100_Gain6_A0, 673 -HPF_Fs44100_Gain6_B1, 674 HPF_Fs44100_Gain6_Shift}, 675 {HPF_Fs44100_Gain7_A1, /* Gain setting 7 */ 676 HPF_Fs44100_Gain7_A0, 677 -HPF_Fs44100_Gain7_B1, 678 HPF_Fs44100_Gain7_Shift}, 679 {HPF_Fs44100_Gain8_A1, /* Gain setting 8 */ 680 HPF_Fs44100_Gain8_A0, 681 -HPF_Fs44100_Gain8_B1, 682 HPF_Fs44100_Gain8_Shift}, 683 {HPF_Fs44100_Gain9_A1, /* Gain setting 9 */ 684 HPF_Fs44100_Gain9_A0, 685 -HPF_Fs44100_Gain9_B1, 686 HPF_Fs44100_Gain9_Shift}, 687 {HPF_Fs44100_Gain10_A1, /* Gain setting 10 */ 688 HPF_Fs44100_Gain10_A0, 689 -HPF_Fs44100_Gain10_B1, 690 HPF_Fs44100_Gain10_Shift}, 691 {HPF_Fs44100_Gain11_A1, /* Gain setting 11 */ 692 HPF_Fs44100_Gain11_A0, 693 -HPF_Fs44100_Gain11_B1, 694 HPF_Fs44100_Gain11_Shift}, 695 {HPF_Fs44100_Gain12_A1, /* Gain setting 12 */ 696 HPF_Fs44100_Gain12_A0, 697 -HPF_Fs44100_Gain12_B1, 698 HPF_Fs44100_Gain12_Shift}, 699 {HPF_Fs44100_Gain13_A1, /* Gain setting 13 */ 700 HPF_Fs44100_Gain13_A0, 701 -HPF_Fs44100_Gain13_B1, 702 HPF_Fs44100_Gain13_Shift}, 703 {HPF_Fs44100_Gain14_A1, /* Gain setting 14 */ 704 HPF_Fs44100_Gain14_A0, 705 -HPF_Fs44100_Gain14_B1, 706 HPF_Fs44100_Gain14_Shift}, 707 {HPF_Fs44100_Gain15_A1, /* Gain setting 15 */ 708 HPF_Fs44100_Gain15_A0, 709 -HPF_Fs44100_Gain15_B1, 710 HPF_Fs44100_Gain15_Shift}, 711 712 /* 48kHz sampling rate */ 713 {HPF_Fs48000_Gain1_A1, /* Gain setting 1 */ 714 HPF_Fs48000_Gain1_A0, 715 -HPF_Fs48000_Gain1_B1, 716 HPF_Fs48000_Gain1_Shift}, 717 {HPF_Fs48000_Gain2_A1, /* Gain setting 2 */ 718 HPF_Fs48000_Gain2_A0, 719 -HPF_Fs48000_Gain2_B1, 720 HPF_Fs48000_Gain2_Shift}, 721 {HPF_Fs48000_Gain3_A1, /* Gain setting 3 */ 722 HPF_Fs48000_Gain3_A0, 723 -HPF_Fs48000_Gain3_B1, 724 HPF_Fs48000_Gain3_Shift}, 725 {HPF_Fs48000_Gain4_A1, /* Gain setting 4 */ 726 HPF_Fs48000_Gain4_A0, 727 -HPF_Fs48000_Gain4_B1, 728 HPF_Fs48000_Gain4_Shift}, 729 {HPF_Fs48000_Gain5_A1, /* Gain setting 5 */ 730 HPF_Fs48000_Gain5_A0, 731 -HPF_Fs48000_Gain5_B1, 732 HPF_Fs48000_Gain5_Shift}, 733 {HPF_Fs48000_Gain6_A1, /* Gain setting 6 */ 734 HPF_Fs48000_Gain6_A0, 735 -HPF_Fs48000_Gain6_B1, 736 HPF_Fs48000_Gain6_Shift}, 737 {HPF_Fs48000_Gain7_A1, /* Gain setting 7 */ 738 HPF_Fs48000_Gain7_A0, 739 -HPF_Fs48000_Gain7_B1, 740 HPF_Fs48000_Gain7_Shift}, 741 {HPF_Fs48000_Gain8_A1, /* Gain setting 8 */ 742 HPF_Fs48000_Gain8_A0, 743 -HPF_Fs48000_Gain8_B1, 744 HPF_Fs48000_Gain8_Shift}, 745 {HPF_Fs48000_Gain9_A1, /* Gain setting 9 */ 746 HPF_Fs48000_Gain9_A0, 747 -HPF_Fs48000_Gain9_B1, 748 HPF_Fs48000_Gain9_Shift}, 749 {HPF_Fs48000_Gain10_A1, /* Gain setting 10 */ 750 HPF_Fs48000_Gain10_A0, 751 -HPF_Fs48000_Gain10_B1, 752 HPF_Fs48000_Gain10_Shift}, 753 {HPF_Fs48000_Gain11_A1, /* Gain setting 11 */ 754 HPF_Fs48000_Gain11_A0, 755 -HPF_Fs48000_Gain11_B1, 756 HPF_Fs48000_Gain11_Shift}, 757 {HPF_Fs48000_Gain12_A1, /* Gain setting 12 */ 758 HPF_Fs48000_Gain12_A0, 759 -HPF_Fs48000_Gain12_B1, 760 HPF_Fs48000_Gain12_Shift}, 761 {HPF_Fs48000_Gain13_A1, /* Gain setting 13 */ 762 HPF_Fs48000_Gain13_A0, 763 -HPF_Fs48000_Gain13_B1, 764 HPF_Fs48000_Gain13_Shift}, 765 {HPF_Fs48000_Gain14_A1, /* Gain setting 14 */ 766 HPF_Fs48000_Gain14_A0, 767 -HPF_Fs48000_Gain14_B1, 768 HPF_Fs48000_Gain14_Shift}, 769 {HPF_Fs48000_Gain15_A1, /* Gain setting 15 */ 770 HPF_Fs48000_Gain15_A0, 771 -HPF_Fs48000_Gain15_B1, 772 HPF_Fs48000_Gain15_Shift} 773 }; 774 #endif 775 776 /************************************************************************************/ 777 /* */ 778 /* Volume control gain and time constant tables */ 779 /* */ 780 /************************************************************************************/ 781 782 /* dB to linear conversion table */ 783 #ifdef BUILD_FLOAT 784 const LVM_FLOAT LVM_VolumeTable[] = { 785 1.000f, /* 0dB */ 786 0.891f, /* -1dB */ 787 0.794f, /* -2dB */ 788 0.708f, /* -3dB */ 789 0.631f, /* -4dB */ 790 0.562f, /* -5dB */ 791 0.501f}; /* -6dB */ 792 #else 793 const LVM_INT16 LVM_VolumeTable[] = { 794 0x7FFF, /* 0dB */ 795 0x7215, /* -1dB */ 796 0x65AD, /* -2dB */ 797 0x5A9E, /* -3dB */ 798 0x50C3, /* -4dB */ 799 0x47FB, /* -5dB */ 800 0x4000}; /* -6dB */ 801 #endif 802 803 /************************************************************************************/ 804 /* */ 805 /* Volume mixer time constants (100ms) */ 806 /* */ 807 /************************************************************************************/ 808 809 #define LVM_MIX_TC_Fs8000 32580 /* Floating point value 0.994262695 */ 810 #define LVM_MIX_TC_Fs11025 32632 /* Floating point value 0.995849609 */ 811 #define LVM_MIX_TC_Fs12000 32643 /* Floating point value 0.996185303 */ 812 #define LVM_MIX_TC_Fs16000 32674 /* Floating point value 0.997131348 */ 813 #define LVM_MIX_TC_Fs22050 32700 /* Floating point value 0.997924805 */ 814 #define LVM_MIX_TC_Fs24000 32705 /* Floating point value 0.998077393 */ 815 #define LVM_MIX_TC_Fs32000 32721 /* Floating point value 0.998565674 */ 816 #define LVM_MIX_TC_Fs44100 32734 /* Floating point value 0.998962402 */ 817 #define LVM_MIX_TC_Fs48000 32737 /* Floating point value 0.999053955 */ 818 819 820 const LVM_INT16 LVM_MixerTCTable[] = { 821 LVM_MIX_TC_Fs8000, 822 LVM_MIX_TC_Fs11025, 823 LVM_MIX_TC_Fs12000, 824 LVM_MIX_TC_Fs16000, 825 LVM_MIX_TC_Fs22050, 826 LVM_MIX_TC_Fs24000, 827 LVM_MIX_TC_Fs32000, 828 LVM_MIX_TC_Fs44100, 829 LVM_MIX_TC_Fs48000}; 830 831