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 #ifndef _BIQUAD_H_ 19 #define _BIQUAD_H_ 20 21 22 #ifdef __cplusplus 23 extern "C" { 24 #endif /* __cplusplus */ 25 26 #include "LVM_Types.h" 27 /********************************************************************************** 28 INSTANCE MEMORY TYPE DEFINITION 29 ***********************************************************************************/ 30 #ifdef BUILD_FLOAT 31 typedef struct 32 { 33 LVM_FLOAT Storage[6]; 34 35 } Biquad_FLOAT_Instance_t; 36 #else 37 typedef struct 38 { 39 LVM_INT32 Storage[6]; 40 41 } Biquad_Instance_t; 42 #endif 43 /********************************************************************************** 44 COEFFICIENT TYPE DEFINITIONS 45 ***********************************************************************************/ 46 47 /*** Biquad coefficients **********************************************************/ 48 #ifdef BUILD_FLOAT 49 typedef struct 50 { 51 LVM_FLOAT A2; /* a2 */ 52 LVM_FLOAT A1; /* a1 */ 53 LVM_FLOAT A0; /* a0 */ 54 LVM_FLOAT B2; /* -b2! */ 55 LVM_FLOAT B1; /* -b1! */ 56 } BQ_FLOAT_Coefs_t; 57 #else 58 typedef struct 59 { 60 LVM_INT16 A2; /* a2 */ 61 LVM_INT16 A1; /* a1 */ 62 LVM_INT16 A0; /* a0 */ 63 LVM_INT16 B2; /* -b2! */ 64 LVM_INT16 B1; /* -b1! */ 65 } BQ_C16_Coefs_t; 66 67 typedef struct 68 { 69 LVM_INT32 A2; /* a2 */ 70 LVM_INT32 A1; /* a1 */ 71 LVM_INT32 A0; /* a0 */ 72 LVM_INT32 B2; /* -b2! */ 73 LVM_INT32 B1; /* -b1! */ 74 } BQ_C32_Coefs_t; 75 #endif 76 77 /*** First order coefficients *****************************************************/ 78 #ifdef BUILD_FLOAT 79 typedef struct 80 { 81 LVM_FLOAT A1; /* a1 */ 82 LVM_FLOAT A0; /* a0 */ 83 LVM_FLOAT B1; /* -b1! */ 84 } FO_FLOAT_Coefs_t; 85 #else 86 typedef struct 87 { 88 LVM_INT16 A1; /* a1 */ 89 LVM_INT16 A0; /* a0 */ 90 LVM_INT16 B1; /* -b1! */ 91 } FO_C16_Coefs_t; 92 93 typedef struct 94 { 95 LVM_INT32 A1; /* a1 */ 96 LVM_INT32 A0; /* a0 */ 97 LVM_INT32 B1; /* -b1! */ 98 } FO_C32_Coefs_t; 99 #endif 100 101 /*** First order coefficients with Shift*****************************************************/ 102 #ifdef BUILD_FLOAT 103 typedef struct 104 { 105 LVM_FLOAT A1; /* a1 */ 106 LVM_FLOAT A0; /* a0 */ 107 LVM_FLOAT B1; /* -b1! */ 108 } FO_FLOAT_LShx_Coefs_t; 109 #else 110 typedef struct 111 { 112 LVM_INT16 A1; /* a1 */ 113 LVM_INT16 A0; /* a0 */ 114 LVM_INT16 B1; /* -b1! */ 115 LVM_INT16 Shift; /* Shift */ 116 } FO_C16_LShx_Coefs_t; 117 #endif 118 /*** Band pass coefficients *******************************************************/ 119 #ifdef BUILD_FLOAT 120 typedef struct 121 { 122 LVM_FLOAT A0; /* a0 */ 123 LVM_FLOAT B2; /* -b2! */ 124 LVM_FLOAT B1; /* -b1! */ 125 } BP_FLOAT_Coefs_t; 126 #else 127 typedef struct 128 { 129 LVM_INT16 A0; /* a0 */ 130 LVM_INT16 B2; /* -b2! */ 131 LVM_INT16 B1; /* -b1! */ 132 } BP_C16_Coefs_t; 133 134 typedef struct 135 { 136 LVM_INT32 A0; /* a0 */ 137 LVM_INT32 B2; /* -b2! */ 138 LVM_INT32 B1; /* -b1! */ 139 } BP_C32_Coefs_t; 140 #endif 141 142 /*** Peaking coefficients *********************************************************/ 143 #ifdef BUILD_FLOAT 144 typedef struct 145 { 146 LVM_FLOAT A0; /* a0 */ 147 LVM_FLOAT B2; /* -b2! */ 148 LVM_FLOAT B1; /* -b1! */ 149 LVM_FLOAT G; /* Gain */ 150 } PK_FLOAT_Coefs_t; 151 #else 152 typedef struct 153 { 154 LVM_INT16 A0; /* a0 */ 155 LVM_INT16 B2; /* -b2! */ 156 LVM_INT16 B1; /* -b1! */ 157 LVM_INT16 G; /* Gain */ 158 } PK_C16_Coefs_t; 159 160 typedef struct 161 { 162 LVM_INT32 A0; /* a0 */ 163 LVM_INT32 B2; /* -b2! */ 164 LVM_INT32 B1; /* -b1! */ 165 LVM_INT16 G; /* Gain */ 166 } PK_C32_Coefs_t; 167 #endif 168 169 /********************************************************************************** 170 TAPS TYPE DEFINITIONS 171 ***********************************************************************************/ 172 173 /*** Types used for first order and shelving filter *******************************/ 174 #ifdef BUILD_FLOAT 175 typedef struct 176 { 177 LVM_FLOAT Storage[ (1 * 2) ]; /* One channel, two taps of size LVM_INT32 */ 178 } Biquad_1I_Order1_FLOAT_Taps_t; 179 180 typedef struct 181 { 182 LVM_FLOAT Storage[ (2 * 2) ]; /* Two channels, two taps of size LVM_INT32 */ 183 } Biquad_2I_Order1_FLOAT_Taps_t; 184 #else 185 typedef struct 186 { 187 LVM_INT32 Storage[ (1*2) ]; /* One channel, two taps of size LVM_INT32 */ 188 } Biquad_1I_Order1_Taps_t; 189 190 typedef struct 191 { 192 LVM_INT32 Storage[ (2*2) ]; /* Two channels, two taps of size LVM_INT32 */ 193 } Biquad_2I_Order1_Taps_t; 194 #endif 195 196 /*** Types used for biquad, band pass and peaking filter **************************/ 197 #ifdef BUILD_FLOAT 198 typedef struct 199 { 200 LVM_FLOAT Storage[ (1 * 4) ]; /* One channel, four taps of size LVM_INT32 */ 201 } Biquad_1I_Order2_FLOAT_Taps_t; 202 203 typedef struct 204 { 205 LVM_FLOAT Storage[ (2 * 4) ]; /* Two channels, four taps of size LVM_INT32 */ 206 } Biquad_2I_Order2_FLOAT_Taps_t; 207 #else 208 typedef struct 209 { 210 LVM_INT32 Storage[ (1*4) ]; /* One channel, four taps of size LVM_INT32 */ 211 } Biquad_1I_Order2_Taps_t; 212 213 typedef struct 214 { 215 LVM_INT32 Storage[ (2*4) ]; /* Two channels, four taps of size LVM_INT32 */ 216 } Biquad_2I_Order2_Taps_t; 217 #endif 218 /* The names of the functions are changed to satisfy QAC rules: Name should be Unique withing 16 characters*/ 219 #define BQ_2I_D32F32Cll_TRC_WRA_01_Init Init_BQ_2I_D32F32Cll_TRC_WRA_01 220 #define BP_1I_D32F32C30_TRC_WRA_02 TWO_BP_1I_D32F32C30_TRC_WRA_02 221 222 /********************************************************************************** 223 FUNCTION PROTOTYPES: BIQUAD FILTERS 224 ***********************************************************************************/ 225 226 /*** 16 bit data path *************************************************************/ 227 228 229 #ifdef BUILD_FLOAT 230 void BQ_2I_D16F32Css_TRC_WRA_01_Init ( Biquad_FLOAT_Instance_t *pInstance, 231 Biquad_2I_Order2_FLOAT_Taps_t *pTaps, 232 BQ_FLOAT_Coefs_t *pCoef); 233 #else 234 void BQ_2I_D16F32Css_TRC_WRA_01_Init ( Biquad_Instance_t *pInstance, 235 Biquad_2I_Order2_Taps_t *pTaps, 236 BQ_C16_Coefs_t *pCoef); 237 #endif 238 239 #ifdef BUILD_FLOAT 240 void BQ_2I_D16F32C15_TRC_WRA_01 ( Biquad_FLOAT_Instance_t *pInstance, 241 LVM_FLOAT *pDataIn, 242 LVM_FLOAT *pDataOut, 243 LVM_INT16 NrSamples); 244 #else 245 void BQ_2I_D16F32C15_TRC_WRA_01 ( Biquad_Instance_t *pInstance, 246 LVM_INT16 *pDataIn, 247 LVM_INT16 *pDataOut, 248 LVM_INT16 NrSamples); 249 #endif 250 251 #ifdef BUILD_FLOAT 252 void BQ_2I_D16F32C14_TRC_WRA_01 ( Biquad_FLOAT_Instance_t *pInstance, 253 LVM_FLOAT *pDataIn, 254 LVM_FLOAT *pDataOut, 255 LVM_INT16 NrSamples); 256 #else 257 void BQ_2I_D16F32C14_TRC_WRA_01 ( Biquad_Instance_t *pInstance, 258 LVM_INT16 *pDataIn, 259 LVM_INT16 *pDataOut, 260 LVM_INT16 NrSamples); 261 262 #endif 263 264 #ifdef BUILD_FLOAT 265 void BQ_2I_D16F32C13_TRC_WRA_01 ( Biquad_FLOAT_Instance_t *pInstance, 266 LVM_FLOAT *pDataIn, 267 LVM_FLOAT *pDataOut, 268 LVM_INT16 NrSamples); 269 #else 270 void BQ_2I_D16F32C13_TRC_WRA_01 ( Biquad_Instance_t *pInstance, 271 LVM_INT16 *pDataIn, 272 LVM_INT16 *pDataOut, 273 LVM_INT16 NrSamples); 274 275 #endif 276 277 #ifdef BUILD_FLOAT 278 void BQ_2I_D16F16Css_TRC_WRA_01_Init ( Biquad_FLOAT_Instance_t *pInstance, 279 Biquad_2I_Order2_FLOAT_Taps_t *pTaps, 280 BQ_FLOAT_Coefs_t *pCoef); 281 #else 282 void BQ_2I_D16F16Css_TRC_WRA_01_Init ( Biquad_Instance_t *pInstance, 283 Biquad_2I_Order2_Taps_t *pTaps, 284 BQ_C16_Coefs_t *pCoef); 285 286 #endif 287 288 #ifdef BUILD_FLOAT 289 void BQ_2I_D16F16C15_TRC_WRA_01( Biquad_FLOAT_Instance_t *pInstance, 290 LVM_FLOAT *pDataIn, 291 LVM_FLOAT *pDataOut, 292 LVM_INT16 NrSamples); 293 #else 294 void BQ_2I_D16F16C15_TRC_WRA_01( Biquad_Instance_t *pInstance, 295 LVM_INT16 *pDataIn, 296 LVM_INT16 *pDataOut, 297 LVM_INT16 NrSamples); 298 299 #endif 300 301 #ifdef BUILD_FLOAT 302 void BQ_2I_D16F16C14_TRC_WRA_01( Biquad_FLOAT_Instance_t *pInstance, 303 LVM_FLOAT *pDataIn, 304 LVM_FLOAT *pDataOut, 305 LVM_INT16 NrSamples); 306 #else 307 void BQ_2I_D16F16C14_TRC_WRA_01( Biquad_Instance_t *pInstance, 308 LVM_INT16 *pDataIn, 309 LVM_INT16 *pDataOut, 310 LVM_INT16 NrSamples); 311 #endif 312 313 #ifdef BUILD_FLOAT 314 void BQ_1I_D16F16Css_TRC_WRA_01_Init ( Biquad_FLOAT_Instance_t *pInstance, 315 Biquad_1I_Order2_FLOAT_Taps_t *pTaps, 316 BQ_FLOAT_Coefs_t *pCoef); 317 #else 318 void BQ_1I_D16F16Css_TRC_WRA_01_Init ( Biquad_Instance_t *pInstance, 319 Biquad_1I_Order2_Taps_t *pTaps, 320 BQ_C16_Coefs_t *pCoef); 321 322 #endif 323 324 #ifdef BUILD_FLOAT 325 void BQ_1I_D16F16C15_TRC_WRA_01 ( Biquad_FLOAT_Instance_t *pInstance, 326 LVM_FLOAT *pDataIn, 327 LVM_FLOAT *pDataOut, 328 LVM_INT16 NrSamples); 329 #else 330 void BQ_1I_D16F16C15_TRC_WRA_01( Biquad_Instance_t *pInstance, 331 LVM_INT16 *pDataIn, 332 LVM_INT16 *pDataOut, 333 LVM_INT16 NrSamples); 334 335 #endif 336 337 #ifdef BUILD_FLOAT 338 void BQ_1I_D16F32Css_TRC_WRA_01_Init ( Biquad_FLOAT_Instance_t *pInstance, 339 Biquad_1I_Order2_FLOAT_Taps_t *pTaps, 340 BQ_FLOAT_Coefs_t *pCoef); 341 #else 342 void BQ_1I_D16F32Css_TRC_WRA_01_Init ( Biquad_Instance_t *pInstance, 343 Biquad_1I_Order2_Taps_t *pTaps, 344 BQ_C16_Coefs_t *pCoef); 345 346 #endif 347 348 #ifdef BUILD_FLOAT 349 void BQ_1I_D16F32C14_TRC_WRA_01 ( Biquad_FLOAT_Instance_t *pInstance, 350 LVM_FLOAT *pDataIn, 351 LVM_FLOAT *pDataOut, 352 LVM_INT16 NrSamples); 353 #else 354 void BQ_1I_D16F32C14_TRC_WRA_01 ( Biquad_Instance_t *pInstance, 355 LVM_INT16 *pDataIn, 356 LVM_INT16 *pDataOut, 357 LVM_INT16 NrSamples); 358 359 #endif 360 /*** 32 bit data path *************************************************************/ 361 #ifdef BUILD_FLOAT 362 void BQ_2I_D32F32Cll_TRC_WRA_01_Init ( Biquad_FLOAT_Instance_t *pInstance, 363 Biquad_2I_Order2_FLOAT_Taps_t *pTaps, 364 BQ_FLOAT_Coefs_t *pCoef); 365 void BQ_2I_D32F32C30_TRC_WRA_01 ( Biquad_FLOAT_Instance_t *pInstance, 366 LVM_FLOAT *pDataIn, 367 LVM_FLOAT *pDataOut, 368 LVM_INT16 NrSamples); 369 #else 370 void BQ_2I_D32F32Cll_TRC_WRA_01_Init ( Biquad_Instance_t *pInstance, 371 Biquad_2I_Order2_Taps_t *pTaps, 372 BQ_C32_Coefs_t *pCoef); 373 374 void BQ_2I_D32F32C30_TRC_WRA_01 ( Biquad_Instance_t *pInstance, 375 LVM_INT32 *pDataIn, 376 LVM_INT32 *pDataOut, 377 LVM_INT16 NrSamples); 378 #endif 379 380 /********************************************************************************** 381 FUNCTION PROTOTYPES: FIRST ORDER FILTERS 382 ***********************************************************************************/ 383 384 /*** 16 bit data path *************************************************************/ 385 #ifdef BUILD_FLOAT 386 void FO_1I_D16F16Css_TRC_WRA_01_Init( Biquad_FLOAT_Instance_t *pInstance, 387 Biquad_1I_Order1_FLOAT_Taps_t *pTaps, 388 FO_FLOAT_Coefs_t *pCoef); 389 #else 390 void FO_1I_D16F16Css_TRC_WRA_01_Init( Biquad_Instance_t *pInstance, 391 Biquad_1I_Order1_Taps_t *pTaps, 392 FO_C16_Coefs_t *pCoef); 393 #endif 394 395 #ifdef BUILD_FLOAT 396 void FO_1I_D16F16C15_TRC_WRA_01( Biquad_FLOAT_Instance_t *pInstance, 397 LVM_FLOAT *pDataIn, 398 LVM_FLOAT *pDataOut, 399 LVM_INT16 NrSamples); 400 #else 401 void FO_1I_D16F16C15_TRC_WRA_01( Biquad_Instance_t *pInstance, 402 LVM_INT16 *pDataIn, 403 LVM_INT16 *pDataOut, 404 LVM_INT16 NrSamples); 405 #endif 406 407 #ifdef BUILD_FLOAT 408 void FO_2I_D16F32Css_LShx_TRC_WRA_01_Init(Biquad_FLOAT_Instance_t *pInstance, 409 Biquad_2I_Order1_FLOAT_Taps_t *pTaps, 410 FO_FLOAT_LShx_Coefs_t *pCoef); 411 #else 412 void FO_2I_D16F32Css_LShx_TRC_WRA_01_Init(Biquad_Instance_t *pInstance, 413 Biquad_2I_Order1_Taps_t *pTaps, 414 FO_C16_LShx_Coefs_t *pCoef); 415 #endif 416 417 #ifdef BUILD_FLOAT 418 void FO_2I_D16F32C15_LShx_TRC_WRA_01(Biquad_FLOAT_Instance_t *pInstance, 419 LVM_FLOAT *pDataIn, 420 LVM_FLOAT *pDataOut, 421 LVM_INT16 NrSamples); 422 #else 423 void FO_2I_D16F32C15_LShx_TRC_WRA_01(Biquad_Instance_t *pInstance, 424 LVM_INT16 *pDataIn, 425 LVM_INT16 *pDataOut, 426 LVM_INT16 NrSamples); 427 #endif 428 /*** 32 bit data path *************************************************************/ 429 #ifdef BUILD_FLOAT 430 void FO_1I_D32F32Cll_TRC_WRA_01_Init( Biquad_FLOAT_Instance_t *pInstance, 431 Biquad_1I_Order1_FLOAT_Taps_t *pTaps, 432 FO_FLOAT_Coefs_t *pCoef); 433 void FO_1I_D32F32C31_TRC_WRA_01( Biquad_FLOAT_Instance_t *pInstance, 434 LVM_FLOAT *pDataIn, 435 LVM_FLOAT *pDataOut, 436 LVM_INT16 NrSamples); 437 #else 438 void FO_1I_D32F32Cll_TRC_WRA_01_Init( Biquad_Instance_t *pInstance, 439 Biquad_1I_Order1_Taps_t *pTaps, 440 FO_C32_Coefs_t *pCoef); 441 442 void FO_1I_D32F32C31_TRC_WRA_01( Biquad_Instance_t *pInstance, 443 LVM_INT32 *pDataIn, 444 LVM_INT32 *pDataOut, 445 LVM_INT16 NrSamples); 446 #endif 447 /********************************************************************************** 448 FUNCTION PROTOTYPES: BAND PASS FILTERS 449 ***********************************************************************************/ 450 451 /*** 16 bit data path *************************************************************/ 452 #ifdef BUILD_FLOAT 453 void BP_1I_D16F16Css_TRC_WRA_01_Init( Biquad_FLOAT_Instance_t *pInstance, 454 Biquad_1I_Order2_FLOAT_Taps_t *pTaps, 455 BP_FLOAT_Coefs_t *pCoef); 456 void BP_1I_D16F16C14_TRC_WRA_01 ( Biquad_FLOAT_Instance_t *pInstance, 457 LVM_FLOAT *pDataIn, 458 LVM_FLOAT *pDataOut, 459 LVM_INT16 NrSamples); 460 void BP_1I_D16F32Cll_TRC_WRA_01_Init (Biquad_FLOAT_Instance_t *pInstance, 461 Biquad_1I_Order2_FLOAT_Taps_t *pTaps, 462 BP_FLOAT_Coefs_t *pCoef); 463 void BP_1I_D16F32C30_TRC_WRA_01 ( Biquad_FLOAT_Instance_t *pInstance, 464 LVM_FLOAT *pDataIn, 465 LVM_FLOAT *pDataOut, 466 LVM_INT16 NrSamples); 467 #else 468 void BP_1I_D16F16Css_TRC_WRA_01_Init ( Biquad_Instance_t *pInstance, 469 Biquad_1I_Order2_Taps_t *pTaps, 470 BP_C16_Coefs_t *pCoef); 471 472 void BP_1I_D16F16C14_TRC_WRA_01 ( Biquad_Instance_t *pInstance, 473 LVM_INT16 *pDataIn, 474 LVM_INT16 *pDataOut, 475 LVM_INT16 NrSamples); 476 477 void BP_1I_D16F32Cll_TRC_WRA_01_Init ( Biquad_Instance_t *pInstance, 478 Biquad_1I_Order2_Taps_t *pTaps, 479 BP_C32_Coefs_t *pCoef); 480 481 void BP_1I_D16F32C30_TRC_WRA_01 ( Biquad_Instance_t *pInstance, 482 LVM_INT16 *pDataIn, 483 LVM_INT16 *pDataOut, 484 LVM_INT16 NrSamples); 485 #endif 486 /*** 32 bit data path *************************************************************/ 487 #ifdef BUILD_FLOAT 488 void BP_1I_D32F32Cll_TRC_WRA_02_Init ( Biquad_FLOAT_Instance_t *pInstance, 489 Biquad_1I_Order2_FLOAT_Taps_t *pTaps, 490 BP_FLOAT_Coefs_t *pCoef); 491 void BP_1I_D32F32C30_TRC_WRA_02( Biquad_FLOAT_Instance_t *pInstance, 492 LVM_FLOAT *pDataIn, 493 LVM_FLOAT *pDataOut, 494 LVM_INT16 NrSamples); 495 #else 496 void BP_1I_D32F32Cll_TRC_WRA_02_Init ( Biquad_Instance_t *pInstance, 497 Biquad_1I_Order2_Taps_t *pTaps, 498 BP_C32_Coefs_t *pCoef); 499 500 void BP_1I_D32F32C30_TRC_WRA_02( Biquad_Instance_t *pInstance, 501 LVM_INT32 *pDataIn, 502 LVM_INT32 *pDataOut, 503 LVM_INT16 NrSamples); 504 #endif 505 506 /*** 32 bit data path STEREO ******************************************************/ 507 #ifndef BUILD_FLOAT 508 void PK_2I_D32F32CllGss_TRC_WRA_01_Init ( Biquad_Instance_t *pInstance, 509 Biquad_2I_Order2_Taps_t *pTaps, 510 PK_C32_Coefs_t *pCoef); 511 void PK_2I_D32F32C30G11_TRC_WRA_01 ( Biquad_Instance_t *pInstance, 512 LVM_INT32 *pDataIn, 513 LVM_INT32 *pDataOut, 514 LVM_INT16 NrSamples); 515 #endif 516 #ifdef BUILD_FLOAT 517 void PK_2I_D32F32CssGss_TRC_WRA_01_Init ( Biquad_FLOAT_Instance_t *pInstance, 518 Biquad_2I_Order2_FLOAT_Taps_t *pTaps, 519 PK_FLOAT_Coefs_t *pCoef); 520 #else 521 void PK_2I_D32F32CssGss_TRC_WRA_01_Init ( Biquad_Instance_t *pInstance, 522 Biquad_2I_Order2_Taps_t *pTaps, 523 PK_C16_Coefs_t *pCoef); 524 #endif 525 #ifdef BUILD_FLOAT 526 void PK_2I_D32F32C14G11_TRC_WRA_01( Biquad_FLOAT_Instance_t *pInstance, 527 LVM_FLOAT *pDataIn, 528 LVM_FLOAT *pDataOut, 529 LVM_INT16 NrSamples); 530 #else 531 void PK_2I_D32F32C14G11_TRC_WRA_01 ( Biquad_Instance_t *pInstance, 532 LVM_INT32 *pDataIn, 533 LVM_INT32 *pDataOut, 534 LVM_INT16 NrSamples); 535 #endif 536 537 /********************************************************************************** 538 FUNCTION PROTOTYPES: DC REMOVAL FILTERS 539 ***********************************************************************************/ 540 541 /*** 16 bit data path STEREO ******************************************************/ 542 #ifdef BUILD_FLOAT 543 void DC_2I_D16_TRC_WRA_01_Init ( Biquad_FLOAT_Instance_t *pInstance); 544 545 void DC_2I_D16_TRC_WRA_01 ( Biquad_FLOAT_Instance_t *pInstance, 546 LVM_FLOAT *pDataIn, 547 LVM_FLOAT *pDataOut, 548 LVM_INT16 NrSamples); 549 #else 550 void DC_2I_D16_TRC_WRA_01_Init ( Biquad_Instance_t *pInstance); 551 552 void DC_2I_D16_TRC_WRA_01 ( Biquad_Instance_t *pInstance, 553 LVM_INT16 *pDataIn, 554 LVM_INT16 *pDataOut, 555 LVM_INT16 NrSamples); 556 #endif 557 #ifdef __cplusplus 558 } 559 #endif /* __cplusplus */ 560 561 562 /**********************************************************************************/ 563 564 #endif /** _BIQUAD_H_ **/ 565 566