Home | History | Annotate | Download | only in lib_src
      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