eas_effects.h revision e442bb7cd6a085b33a4dd52c0e20a157ada7feb1
15d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/*----------------------------------------------------------------------------
25d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) *
35d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * File:
45d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * eas_effects.h
55d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) *
65d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * Contents and purpose:
75d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * Defines a generic effects interface.
85d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) *
95d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * Copyright Sonic Network Inc. 2005
105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * Licensed under the Apache License, Version 2.0 (the "License");
125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * you may not use this file except in compliance with the License.
135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * You may obtain a copy of the License at
145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) *
155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) *      http://www.apache.org/licenses/LICENSE-2.0
165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) *
175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * Unless required by applicable law or agreed to in writing, software
18cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * distributed under the License is distributed on an "AS IS" BASIS,
195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * See the License for the specific language governing permissions and
215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * limitations under the License.
225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) *
235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) *----------------------------------------------------------------------------
245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * Revision Control:
255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) *   $Revision: 82 $
265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) *   $Date: 2006-07-10 11:45:19 -0700 (Mon, 10 Jul 2006) $
275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) *----------------------------------------------------------------------------
285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)*/
295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#ifndef _EAS_EFFECTS_H
315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define _EAS_EFFECTS_H
325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "eas_types.h"
345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)typedef struct
365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles){
375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)	EAS_RESULT 	(*pfInit)(EAS_DATA_HANDLE pEASData, EAS_VOID_PTR *pInstData);
385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)	void 		(*pfProcess)(EAS_VOID_PTR pInstData, EAS_PCM *in, EAS_PCM *out, EAS_I32 numSamples);
395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)	EAS_RESULT 	(*pfShutdown)(EAS_DATA_HANDLE pEASData, EAS_VOID_PTR pInstData);
405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)	EAS_RESULT 	(*pFGetParam)(EAS_VOID_PTR pInstData, EAS_I32 param, EAS_I32 *pValue);
41cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)	EAS_RESULT 	(*pFSetParam)(EAS_VOID_PTR pInstData, EAS_I32 param, EAS_I32 value);
425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} S_EFFECTS_INTERFACE;
435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)typedef struct
455d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles){
465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)	EAS_RESULT 	(*pfInit)(EAS_DATA_HANDLE pEASData, EAS_VOID_PTR *pInstData);
475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)	void 		(*pfProcess)(EAS_VOID_PTR pInstData, EAS_I32 *in, EAS_I32 *out, EAS_I32 numSamples);
485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)	EAS_RESULT 	(*pfShutdown)(EAS_DATA_HANDLE pEASData, EAS_VOID_PTR pInstData);
495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)	EAS_RESULT 	(*pFGetParam)(EAS_VOID_PTR pInstData, EAS_I32 param, EAS_I32 *pValue);
505d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)	EAS_RESULT 	(*pFSetParam)(EAS_VOID_PTR pInstData, EAS_I32 param, EAS_I32 value);
515d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} S_EFFECTS32_INTERFACE;
525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* mixer instance data */
545d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)typedef struct
555d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles){
565d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)	S_EFFECTS_INTERFACE	*effect;
575d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)	EAS_VOID_PTR		effectData;
585d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} S_EFFECTS_MODULE;
595d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
605d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif /* end _EAS_EFFECTS_H */
61
62