Home | History | Annotate | Download | only in lib
      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