summaryrefslogtreecommitdiffstats
path: root/arm-fm-22k/lib_src/eas_data.h
blob: e2fcb1a71aea436695b37229f758b430d4c8cab0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
/*----------------------------------------------------------------------------
 *
 * File:
 * eas_data.h
 *
 * Contents and purpose:
 * This header defines all types, to support dynamic allocation of the
 * memory resources needed for persistent EAS data.
 *
 * Copyright 2004 Sonic Network Inc.

 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 *----------------------------------------------------------------------------
 * Revision Control:
 *   $Revision: 842 $
 *   $Date: 2007-08-23 14:32:31 -0700 (Thu, 23 Aug 2007) $
 *----------------------------------------------------------------------------
*/

#ifndef _EAS_DATA_H
#define _EAS_DATA_H

#include "eas_types.h"
#include "eas_synthcfg.h"
#include "eas.h"
#include "eas_audioconst.h"
#include "eas_sndlib.h"
#include "eas_pcm.h"
#include "eas_pcmdata.h"
#include "eas_synth.h"
#include "eas_miditypes.h"
#include "eas_effects.h"

#ifdef AUX_MIXER
#include "eas_auxmixdata.h"
#endif

#ifdef JET_INTERFACE
#include "jet.h"
#endif

#ifdef _METRICS_ENABLED
#include "eas_perf.h"
#endif

#ifndef MAX_NUMBER_STREAMS
#define MAX_NUMBER_STREAMS          4
#endif

/* flags for S_EAS_STREAM */
#define STREAM_FLAGS_PARSED         1
#define STREAM_FLAGS_PAUSE          2
#define STREAM_FLAGS_LOCATE         4
#define STREAM_FLAGS_RESUME         8

/* structure for parsing a stream */
typedef struct s_eas_stream_tag
{
    void                            *pParserModule;
    EAS_U32                         time;
    EAS_U32                         frameLength;
    EAS_I32                         repeatCount;
    EAS_VOID_PTR                    handle;
    EAS_U8                          volume;
    EAS_BOOL8                       streamFlags;
} S_EAS_STREAM;

/* default master volume is -10dB */
#define DEFAULT_VOLUME              90
#define DEFAULT_STREAM_VOLUME       100
#define DEFAULT_STREAM_GAIN         14622

/* 10 dB of boost available for individual parsers */
#define STREAM_VOLUME_HEADROOM      10

/* amalgamated persistent data type */
typedef struct s_eas_data_tag
{
#ifdef _CHECKED_BUILD
    EAS_U32                         handleCheck;
#endif
    EAS_HW_DATA_HANDLE              hwInstData;

    S_EFFECTS_MODULE                effectsModules[NUM_EFFECTS_MODULES];

#ifdef _METRICS_ENABLED
    S_METRICS_INTERFACE             *pMetricsModule;
    EAS_VOID_PTR                    pMetricsData;
#endif

    EAS_I32                         *pMixBuffer;
    EAS_PCM                         *pOutputAudioBuffer;

#ifdef AUX_MIXER
    S_EAS_AUX_MIXER                 auxMixer;
#endif

#ifdef _MAXIMIZER_ENABLED
    EAS_VOID_PTR                    pMaximizerData;
#endif

    S_EAS_STREAM                    streams[MAX_NUMBER_STREAMS];

    S_PCM_STATE                     *pPCMStreams;

    S_VOICE_MGR                     *pVoiceMgr;

#ifdef JET_INTERFACE
    JET_DATA_HANDLE                 jetHandle;
#endif

    EAS_U32                         renderTime;
    EAS_I16                         masterGain;
    EAS_U8                          masterVolume;
    EAS_BOOL8                       staticMemoryModel;
    EAS_BOOL8                       searchHeaderFlag;
} S_EAS_DATA;

#endif