[go: nahoru, domu]

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