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_REVERBGENERATOR_H__
     19 #define __LVCS_REVERBGENERATOR_H__
     20 
     21 #ifdef __cplusplus
     22 extern "C" {
     23 #endif /* __cplusplus */
     24 
     25 
     26 /************************************************************************************/
     27 /*                                                                                  */
     28 /*    Includes                                                                      */
     29 /*                                                                                  */
     30 /************************************************************************************/
     31 
     32 #include "LVC_Mixer.h"
     33 
     34 
     35 /************************************************************************************/
     36 /*                                                                                  */
     37 /*    Defines                                                                       */
     38 /*                                                                                  */
     39 /************************************************************************************/
     40 
     41 #define     HEADPHONEGAINPROC           LVCS_HEADPHONE_PROCGAIN
     42 #define     HEADPHONEGAINUNPROC         LVCS_HEADPHONE_UNPROCGAIN
     43 
     44 
     45 /************************************************************************************/
     46 /*                                                                                  */
     47 /*    Structures                                                                    */
     48 /*                                                                                  */
     49 /************************************************************************************/
     50 
     51 
     52 /* Reverberation module structure */
     53 typedef struct
     54 {
     55 
     56     /* Stereo delay */
     57     LVM_INT16                   DelaySize;
     58     LVM_INT16                   DelayOffset;
     59     LVM_INT16                   ProcGain;
     60     LVM_INT16                   UnprocGain;
     61     LVM_INT16                    StereoSamples[2*LVCS_STEREODELAY_CS_48KHZ];
     62 
     63     /* Reverb Level */
     64     LVM_INT16                   ReverbLevel;
     65 
     66     /* Filter */
     67     void                        (*pBiquadCallBack) (Biquad_Instance_t*, LVM_INT16*, LVM_INT16*, LVM_INT16);
     68 
     69 } LVCS_ReverbGenerator_t;
     70 
     71 
     72 /************************************************************************************/
     73 /*                                                                                    */
     74 /*    Function prototypes                                                                */
     75 /*                                                                                    */
     76 /************************************************************************************/
     77 
     78 LVCS_ReturnStatus_en LVCS_ReverbGeneratorInit(LVCS_Handle_t     hInstance,
     79                                                  LVCS_Params_t  *pParams);
     80 
     81 LVCS_ReturnStatus_en LVCS_ReverbGenerator(LVCS_Handle_t         hInstance,
     82                                           const LVM_INT16       *pInput,
     83                                           LVM_INT16             *pOutput,
     84                                           LVM_UINT16            NumSamples);
     85 
     86 #ifdef __cplusplus
     87 }
     88 #endif /* __cplusplus */
     89 
     90 #endif  /* REVERB_H */
     91