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 #include "BIQUAD.h" 19 #include "BQ_2I_D16F32Css_TRC_WRA_01_Private.h" 20 21 22 /*-------------------------------------------------------------------------*/ 23 /* FUNCTION: */ 24 /* BQ_2I_D16F32Css_TRC_WRA_01_Init */ 25 /* */ 26 /* DESCRIPTION: */ 27 /* These functions initializes a BIQUAD filter defined as a cascade of */ 28 /* biquadratic Filter Sections. */ 29 /* */ 30 /* PARAMETERS: */ 31 /* pInstance - output, returns the pointer to the State Variable */ 32 /* This state pointer must be passed to any subsequent */ 33 /* call to "Biquad" functions. */ 34 /* pTaps - input, pointer to the taps memory */ 35 /* pCoef - input, pointer to the coefficient structure */ 36 /* N - M coefficient factor of QM.N */ 37 /* RETURNS: */ 38 /* void return code */ 39 /*-------------------------------------------------------------------------*/ 40 #ifdef BUILD_FLOAT 41 void BQ_2I_D16F32Css_TRC_WRA_01_Init ( Biquad_FLOAT_Instance_t *pInstance, 42 Biquad_2I_Order2_FLOAT_Taps_t *pTaps, 43 BQ_FLOAT_Coefs_t *pCoef) 44 { 45 LVM_FLOAT temp; 46 PFilter_State_FLOAT pBiquadState = (PFilter_State_FLOAT) pInstance; 47 pBiquadState->pDelays = (LVM_FLOAT *) pTaps; 48 temp = pCoef->A2; 49 pBiquadState->coefs[0] = temp; 50 temp = pCoef->A1; 51 pBiquadState->coefs[1] = temp; 52 temp = pCoef->A0; 53 pBiquadState->coefs[2] = temp; 54 temp = pCoef->B2; 55 pBiquadState->coefs[3] = temp; 56 temp = pCoef->B1; 57 pBiquadState->coefs[4] = temp; 58 } 59 #else 60 void BQ_2I_D16F32Css_TRC_WRA_01_Init ( Biquad_Instance_t *pInstance, 61 Biquad_2I_Order2_Taps_t *pTaps, 62 BQ_C16_Coefs_t *pCoef) 63 { 64 LVM_INT16 temp; 65 PFilter_State pBiquadState = (PFilter_State) pInstance; 66 pBiquadState->pDelays =(LVM_INT32 *) pTaps ; 67 68 temp=pCoef->A2; 69 pBiquadState->coefs[0]=temp; 70 temp=pCoef->A1; 71 pBiquadState->coefs[1]=temp; 72 temp=pCoef->A0; 73 pBiquadState->coefs[2]=temp; 74 temp=pCoef->B2; 75 pBiquadState->coefs[3]=temp; 76 temp=pCoef->B1; 77 pBiquadState->coefs[4]=temp; 78 } 79 #endif 80 /*-------------------------------------------------------------------------*/ 81 /* End Of File: BQ_2I_D16F32Css_TRC_WRA_01_Init */ 82 83