1 /*----------------------------------------------------------------------------
2  *
3  * File:
4  * eas_effects.h
5  *
6  * Contents and purpose:
7  * Defines a generic effects interface.
8  *
9  * Copyright Sonic Network Inc. 2005
10 
11  * Licensed under the Apache License, Version 2.0 (the "License");
12  * you may not use this file except in compliance with the License.
13  * You may obtain a copy of the License at
14  *
15  *      http://www.apache.org/licenses/LICENSE-2.0
16  *
17  * Unless required by applicable law or agreed to in writing, software
18  * distributed under the License is distributed on an "AS IS" BASIS,
19  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20  * See the License for the specific language governing permissions and
21  * limitations under the License.
22  *
23  *----------------------------------------------------------------------------
24  * Revision Control:
25  *   $Revision: 82 $
26  *   $Date: 2006-07-10 11:45:19 -0700 (Mon, 10 Jul 2006) $
27  *----------------------------------------------------------------------------
28 */
29 
30 #ifndef _EAS_EFFECTS_H
31 #define _EAS_EFFECTS_H
32 
33 #include "eas_types.h"
34 
35 typedef struct
36 {
37     EAS_RESULT  (*pfInit)(EAS_DATA_HANDLE pEASData, EAS_VOID_PTR *pInstData);
38     void        (*pfProcess)(EAS_VOID_PTR pInstData, EAS_PCM *in, EAS_PCM *out, EAS_I32 numSamples);
39     EAS_RESULT  (*pfShutdown)(EAS_DATA_HANDLE pEASData, EAS_VOID_PTR pInstData);
40     EAS_RESULT  (*pFGetParam)(EAS_VOID_PTR pInstData, EAS_I32 param, EAS_I32 *pValue);
41     EAS_RESULT  (*pFSetParam)(EAS_VOID_PTR pInstData, EAS_I32 param, EAS_I32 value);
42 } S_EFFECTS_INTERFACE;
43 
44 typedef struct
45 {
46     EAS_RESULT  (*pfInit)(EAS_DATA_HANDLE pEASData, EAS_VOID_PTR *pInstData);
47     void        (*pfProcess)(EAS_VOID_PTR pInstData, EAS_I32 *in, EAS_I32 *out, EAS_I32 numSamples);
48     EAS_RESULT  (*pfShutdown)(EAS_DATA_HANDLE pEASData, EAS_VOID_PTR pInstData);
49     EAS_RESULT  (*pFGetParam)(EAS_VOID_PTR pInstData, EAS_I32 param, EAS_I32 *pValue);
50     EAS_RESULT  (*pFSetParam)(EAS_VOID_PTR pInstData, EAS_I32 param, EAS_I32 value);
51 } S_EFFECTS32_INTERFACE;
52 
53 /* mixer instance data */
54 typedef struct
55 {
56     S_EFFECTS_INTERFACE *effect;
57     EAS_VOID_PTR        effectData;
58 } S_EFFECTS_MODULE;
59 
60 #endif /* end _EAS_EFFECTS_H */
61 
62