Home | History | Annotate | Download | only in src
      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 __LVCS_STEREOENHANCER_H__
     19 #define __LVCS_STEREOENHANCER_H__
     20 
     21 #ifdef __cplusplus
     22 extern "C" {
     23 #endif /* __cplusplus */
     24 
     25 
     26 /************************************************************************************/
     27 /*                                                                                  */
     28 /*    Includes                                                                      */
     29 /*                                                                                  */
     30 /************************************************************************************/
     31 
     32 #include "Filters.h"                        /* Filter definitions */
     33 #include "LVCS_Headphone_Coeffs.h"          /* Headphone coefficients */
     34 #include "BIQUAD.h"
     35 
     36 
     37 /************************************************************************************/
     38 /*                                                                                  */
     39 /*    Structures                                                                    */
     40 /*                                                                                  */
     41 /************************************************************************************/
     42 
     43 /* Stereo enhancer structure */
     44 typedef struct
     45 {
     46     /*
     47      * Middle filter
     48      */
     49     void                    (*pBiquadCallBack_Mid)(Biquad_Instance_t*, LVM_INT16*, LVM_INT16*, LVM_INT16);
     50 
     51     /*
     52      * Side filter
     53      */
     54     void                    (*pBiquadCallBack_Side)(Biquad_Instance_t*, LVM_INT16*, LVM_INT16*, LVM_INT16);
     55 
     56       LVM_UINT16              MidGain;            /* Middle gain in mobile speaker mode */
     57 
     58 } LVCS_StereoEnhancer_t;
     59 
     60 
     61 /************************************************************************************/
     62 /*                                                                                  */
     63 /*    Function prototypes                                                           */
     64 /*                                                                                  */
     65 /************************************************************************************/
     66 
     67 LVCS_ReturnStatus_en LVCS_SEnhancerInit(LVCS_Handle_t        hInstance,
     68                                         LVCS_Params_t        *pParams);
     69 
     70 LVCS_ReturnStatus_en LVCS_StereoEnhancer(LVCS_Handle_t        hInstance,
     71                                          const LVM_INT16    *pInData,
     72                                          LVM_INT16            *pOutData,
     73                                          LVM_UINT16            NumSamples);
     74 
     75 
     76 #ifdef __cplusplus
     77 }
     78 #endif /* __cplusplus */
     79 
     80 #endif  /* STEREOENHANCE_H */
     81