blob: 836bfd74cf30246912d3769aaff5d6b86abf40e7 [file] [log] [blame]
/*
* Copyright (C) 2004-2010 NXP Software
* Copyright (C) 2010 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef _LVPSA_QPD_H_
#define _LVPSA_QPD_H_
#include "LVM_Types.h"
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
typedef struct
{
LVM_INT32 *pDelay; /* pointer to the delayed samples (data of 32 bits) */
LVM_INT32 Coefs[2]; /* pointer to the filter coefficients */
}QPD_State_t, *pQPD_State_t;
typedef struct
{
LVM_INT32 KP; /*should store a0*/
LVM_INT32 KM; /*should store b2*/
} QPD_C32_Coefs, *PQPD_C32_Coefs;
typedef struct
{
LVM_INT32 Storage[1];
} QPD_Taps_t, *pQPD_Taps_t;
/************************************************************************************/
/* */
/* FUNCTION: LVPSA_QPD_Process */
/* */
/* DESCRIPTION: */
/* Apply downsampling, post gain, quasi peak filtering and write the levels values */
/* in the buffer every 20 ms. */
/* */
/* PARAMETERS: */
/* */
/* RETURNS: void */
/* */
/************************************************************************************/
void LVPSA_QPD_Process ( void *hInstance,
LVM_INT16 *pInSamps,
LVM_INT16 numSamples,
LVM_INT16 BandIndex);
/************************************************************************************/
/* */
/* FUNCTION: LVPSA_QPD_Init */
/* */
/* DESCRIPTION: */
/* Initialize a quasi peak filter instance. */
/* */
/* PARAMETERS: */
/* pInstance Pointer to the instance */
/* pTaps Pointer to the filter's taps */
/* pCoef Pointer to the filter's coefficients */
/* */
/* RETURNS: void */
/* */
/************************************************************************************/
void LVPSA_QPD_Init ( QPD_State_t *pInstance,
QPD_Taps_t *pTaps,
QPD_C32_Coefs *pCoef );
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif