• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*----------------------------------------------------------------------------
2  *
3  * File:
4  * eas_data.h
5  *
6  * Contents and purpose:
7  * This header defines all types, to support dynamic allocation of the
8  * memory resources needed for persistent EAS data.
9  *
10  * Copyright 2004 Sonic Network Inc.
11 
12  * Licensed under the Apache License, Version 2.0 (the "License");
13  * you may not use this file except in compliance with the License.
14  * You may obtain a copy of the License at
15  *
16  *      http://www.apache.org/licenses/LICENSE-2.0
17  *
18  * Unless required by applicable law or agreed to in writing, software
19  * distributed under the License is distributed on an "AS IS" BASIS,
20  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21  * See the License for the specific language governing permissions and
22  * limitations under the License.
23  *
24  *----------------------------------------------------------------------------
25  * Revision Control:
26  *   $Revision: 842 $
27  *   $Date: 2007-08-23 14:32:31 -0700 (Thu, 23 Aug 2007) $
28  *----------------------------------------------------------------------------
29 */
30 
31 #ifndef _EAS_DATA_H
32 #define _EAS_DATA_H
33 
34 #include "eas_types.h"
35 #include "eas_synthcfg.h"
36 #include "eas.h"
37 #include "eas_audioconst.h"
38 #include "eas_sndlib.h"
39 #include "eas_pcm.h"
40 #include "eas_pcmdata.h"
41 #include "eas_synth.h"
42 #include "eas_miditypes.h"
43 #include "eas_effects.h"
44 
45 #ifdef AUX_MIXER
46 #include "eas_auxmixdata.h"
47 #endif
48 
49 #ifdef JET_INTERFACE
50 #include "jet.h"
51 #endif
52 
53 #ifdef _METRICS_ENABLED
54 #include "eas_perf.h"
55 #endif
56 
57 #ifndef MAX_NUMBER_STREAMS
58 #define MAX_NUMBER_STREAMS          4
59 #endif
60 
61 /* flags for S_EAS_STREAM */
62 #define STREAM_FLAGS_PARSED         1
63 #define STREAM_FLAGS_PAUSE          2
64 #define STREAM_FLAGS_LOCATE         4
65 #define STREAM_FLAGS_RESUME         8
66 
67 /* structure for parsing a stream */
68 typedef struct s_eas_stream_tag
69 {
70     void                            *pParserModule;
71     EAS_U32                         time;
72     EAS_U32                         frameLength;
73     EAS_I32                         repeatCount;
74     EAS_VOID_PTR                    handle;
75     EAS_U8                          volume;
76     EAS_BOOL8                       streamFlags;
77 } S_EAS_STREAM;
78 
79 /* default master volume is -10dB */
80 #define DEFAULT_VOLUME              90
81 #define DEFAULT_STREAM_VOLUME       100
82 #define DEFAULT_STREAM_GAIN         14622
83 
84 /* 10 dB of boost available for individual parsers */
85 #define STREAM_VOLUME_HEADROOM      10
86 
87 /* amalgamated persistent data type */
88 typedef struct s_eas_data_tag
89 {
90 #ifdef _CHECKED_BUILD
91     EAS_U32                         handleCheck;
92 #endif
93     EAS_HW_DATA_HANDLE              hwInstData;
94 
95     S_EFFECTS_MODULE                effectsModules[NUM_EFFECTS_MODULES];
96 
97 #ifdef _METRICS_ENABLED
98     S_METRICS_INTERFACE             *pMetricsModule;
99     EAS_VOID_PTR                    pMetricsData;
100 #endif
101 
102     EAS_I32                         *pMixBuffer;
103     EAS_PCM                         *pOutputAudioBuffer;
104 
105 #ifdef AUX_MIXER
106     S_EAS_AUX_MIXER                 auxMixer;
107 #endif
108 
109 #ifdef _MAXIMIZER_ENABLED
110     EAS_VOID_PTR                    pMaximizerData;
111 #endif
112 
113     S_EAS_STREAM                    streams[MAX_NUMBER_STREAMS];
114 
115     S_PCM_STATE                     *pPCMStreams;
116 
117     S_VOICE_MGR                     *pVoiceMgr;
118 
119 #ifdef JET_INTERFACE
120     JET_DATA_HANDLE                 jetHandle;
121 #endif
122 
123     EAS_U32                         renderTime;
124     EAS_I16                         masterGain;
125     EAS_U8                          masterVolume;
126     EAS_BOOL8                       staticMemoryModel;
127     EAS_BOOL8                       searchHeaderFlag;
128 } S_EAS_DATA;
129 
130 #endif
131 
132