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