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