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_BYPASSMIX_H__
     19 #define __LVCS_BYPASSMIX_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 /*    Structures                                                                    */
     38 /*                                                                                  */
     39 /************************************************************************************/
     40 
     41 /* Bypass mixer structure */
     42 typedef struct
     43 {
     44     /* Mixer settings */
     45     LVMixer3_2St_st         Mixer_Instance;             /* Mixer instance */
     46     LVM_UINT16              Output_Shift;               /* Correcting gain output shift */
     47 
     48 } LVCS_BypassMix_t;
     49 
     50 
     51 /* Output gain type */
     52 typedef struct
     53 {
     54     /* Output gain settings, Gain = (Loss/32768) * 2^Shift */
     55     LVM_UINT16              Shift;                      /* Left shifts required */
     56     LVM_UINT16              Loss;                       /* Loss required */
     57     LVM_UINT16              UnprocLoss;                 /* Unprocessed path loss */
     58 } Gain_t;
     59 
     60 
     61 /************************************************************************************/
     62 /*                                                                                    */
     63 /*    Function prototypes                                                                */
     64 /*                                                                                    */
     65 /************************************************************************************/
     66 
     67 LVCS_ReturnStatus_en LVCS_BypassMixInit(LVCS_Handle_t       hInstance,
     68                                            LVCS_Params_t    *pParams);
     69 
     70 
     71 LVCS_ReturnStatus_en LVCS_BypassMixer(LVCS_Handle_t         hInstance,
     72                                       const LVM_INT16       *pProcessed,
     73                                       const LVM_INT16       *unProcessed,
     74                                             LVM_INT16       *pOutData,
     75                                             LVM_UINT16      NumSamples);
     76 
     77 #ifdef __cplusplus
     78 }
     79 #endif /* __cplusplus */
     80 
     81 #endif  /* BYPASSMIX_H */
     82