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 _LVPSA_QPD_H_ 19#define _LVPSA_QPD_H_ 20 21#include "LVM_Types.h" 22 23 24#ifdef __cplusplus 25extern "C" { 26#endif /* __cplusplus */ 27 28typedef struct 29{ 30 LVM_INT32 *pDelay; /* pointer to the delayed samples (data of 32 bits) */ 31 LVM_INT32 Coefs[2]; /* pointer to the filter coefficients */ 32}QPD_State_t, *pQPD_State_t; 33 34typedef struct 35{ 36 LVM_INT32 KP; /*should store a0*/ 37 LVM_INT32 KM; /*should store b2*/ 38 39} QPD_C32_Coefs, *PQPD_C32_Coefs; 40 41typedef struct 42{ 43 LVM_INT32 Storage[1]; 44 45} QPD_Taps_t, *pQPD_Taps_t; 46 47/************************************************************************************/ 48/* */ 49/* FUNCTION: LVPSA_QPD_Process */ 50/* */ 51/* DESCRIPTION: */ 52/* Apply downsampling, post gain, quasi peak filtering and write the levels values */ 53/* in the buffer every 20 ms. */ 54/* */ 55/* PARAMETERS: */ 56/* */ 57/* RETURNS: void */ 58/* */ 59/************************************************************************************/ 60void LVPSA_QPD_Process ( void *hInstance, 61 LVM_INT16 *pInSamps, 62 LVM_INT16 numSamples, 63 LVM_INT16 BandIndex); 64 65/************************************************************************************/ 66/* */ 67/* FUNCTION: LVPSA_QPD_Init */ 68/* */ 69/* DESCRIPTION: */ 70/* Initialize a quasi peak filter instance. */ 71/* */ 72/* PARAMETERS: */ 73/* pInstance Pointer to the instance */ 74/* pTaps Pointer to the filter's taps */ 75/* pCoef Pointer to the filter's coefficients */ 76/* */ 77/* RETURNS: void */ 78/* */ 79/************************************************************************************/ 80void LVPSA_QPD_Init ( QPD_State_t *pInstance, 81 QPD_Taps_t *pTaps, 82 QPD_C32_Coefs *pCoef ); 83 84 85#ifdef __cplusplus 86} 87#endif /* __cplusplus */ 88 89#endif 90 91