blob: 29d77aa54cf8c47accc21eb2144cdc18fd619da8 [file] [log] [blame]
Dave Sparks56c99cd2009-08-24 17:35:45 -07001/*----------------------------------------------------------------------------
2 *
3 * File:
4 * eas_wt_IPC_frame.h
5 *
6 * Contents and purpose:
7 * This module contains data definitions for the interprocessor
8 * communications framework for a split-architecture synthesizer.
9 *
10 * This sample version writes IPC data to a file that can be used
11 * as a test vector for the DSP simulator. For a real-time system
12 * the file I/O is replaced with an IPC protocol in the hardware.
13 *
14 * Synchronization with the DSP is accomplished at the API level,
15 * i.e. the host code should call EAS_Render when it is ready to
16 * buffer another block of data for transmission to the DSP.
17 *
18 * Copyright Sonic Network Inc. 2005
The Android Open Source Project7df30102009-03-03 19:30:38 -080019
20 * Licensed under the Apache License, Version 2.0 (the "License");
21 * you may not use this file except in compliance with the License.
22 * You may obtain a copy of the License at
23 *
24 * http://www.apache.org/licenses/LICENSE-2.0
25 *
26 * Unless required by applicable law or agreed to in writing, software
27 * distributed under the License is distributed on an "AS IS" BASIS,
28 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
29 * See the License for the specific language governing permissions and
30 * limitations under the License.
Dave Sparks56c99cd2009-08-24 17:35:45 -070031 *
32 *----------------------------------------------------------------------------
33 * Revision Control:
34 * $Revision: 818 $
35 * $Date: 2007-08-02 15:19:41 -0700 (Thu, 02 Aug 2007) $
36 *----------------------------------------------------------------------------
37*/
38
39#ifndef _EAS_WT_IPC_FRAME_H
40#define _EAS_WT_IPC_FRAME_H
41
42/*----------------------------------------------------------------------------
43 * S_WT_FRAME
44 *
45 * This structure contains the common parameters that are updated
46 *for each frame of audio.
47 *----------------------------------------------------------------------------
48*/
49typedef struct s_wt_frame_tag
50{
51 EAS_I32 gainTarget;
52 EAS_I32 phaseIncrement;
53
54#if defined(_FILTER_ENABLED)
55 EAS_I32 k;
56 EAS_I32 b1;
57 EAS_I32 b2;
58#endif
59} S_WT_FRAME;
60
61/*----------------------------------------------------------------------------
62 * S_WT_CONFIG
63 *
64 * This structure contains state data for the wavetable engine
65 *----------------------------------------------------------------------------
66*/
67typedef struct s_wt_config_tag
68{
69 EAS_U32 loopEnd; /* points to last PCM sample (not 1 beyond last) */
70 EAS_U32 loopStart; /* points to first sample at start of loop */
71 EAS_U32 phaseAccum; /* current sample, integer portion of phase */
72
73#if (NUM_OUTPUT_CHANNELS == 2)
74 EAS_I16 gainLeft; /* left channel gain */
75 EAS_I16 gainRight; /* right channel gain */
76#endif
77
78 EAS_I16 gain; /* current voice gain */
79} S_WT_CONFIG;
80
81#endif
82