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 #define JET_INTERFACE 35 36 #include "eas_types.h" 37 #include "eas_synthcfg.h" 38 #include "eas.h" 39 #include "eas_audioconst.h" 40 #include "eas_sndlib.h" 41 #include "eas_pcm.h" 42 #include "eas_pcmdata.h" 43 #include "eas_synth.h" 44 #include "eas_miditypes.h" 45 #include "eas_effects.h" 46 47 #ifdef AUX_MIXER 48 #include "eas_auxmixdata.h" 49 #endif 50 51 #ifdef JET_INTERFACE 52 #include "jet.h" 53 #endif 54 55 #ifdef _METRICS_ENABLED 56 #include "eas_perf.h" 57 #endif 58 59 #ifndef MAX_NUMBER_STREAMS 60 #define MAX_NUMBER_STREAMS 4 61 #endif 62 63 /* flags for S_EAS_STREAM */ 64 #define STREAM_FLAGS_PARSED 1 65 #define STREAM_FLAGS_PAUSE 2 66 #define STREAM_FLAGS_LOCATE 4 67 #define STREAM_FLAGS_RESUME 8 68 69 /* structure for parsing a stream */ 70 typedef struct s_eas_stream_tag 71 { 72 void *pParserModule; 73 EAS_U32 time; 74 EAS_U32 frameLength; 75 EAS_I32 repeatCount; 76 EAS_VOID_PTR handle; 77 EAS_U8 volume; 78 EAS_BOOL8 streamFlags; 79 } S_EAS_STREAM; 80 81 /* default master volume is -10dB */ 82 #define DEFAULT_VOLUME 90 83 #define DEFAULT_STREAM_VOLUME 100 84 #define DEFAULT_STREAM_GAIN 14622 85 86 /* 10 dB of boost available for individual parsers */ 87 #define STREAM_VOLUME_HEADROOM 10 88 89 /* amalgamated persistent data type */ 90 typedef struct s_eas_data_tag 91 { 92 #ifdef _CHECKED_BUILD 93 EAS_U32 handleCheck; 94 #endif 95 EAS_HW_DATA_HANDLE hwInstData; 96 97 S_EFFECTS_MODULE effectsModules[NUM_EFFECTS_MODULES]; 98 99 #ifdef _METRICS_ENABLED 100 S_METRICS_INTERFACE *pMetricsModule; 101 EAS_VOID_PTR pMetricsData; 102 #endif 103 104 EAS_I32 *pMixBuffer; 105 EAS_PCM *pOutputAudioBuffer; 106 107 #ifdef AUX_MIXER 108 S_EAS_AUX_MIXER auxMixer; 109 #endif 110 111 #ifdef _MAXIMIZER_ENABLED 112 EAS_VOID_PTR pMaximizerData; 113 #endif 114 115 S_EAS_STREAM streams[MAX_NUMBER_STREAMS]; 116 117 S_PCM_STATE *pPCMStreams; 118 119 S_VOICE_MGR *pVoiceMgr; 120 121 #ifdef JET_INTERFACE 122 JET_DATA_HANDLE jetHandle; 123 #endif 124 125 EAS_U32 renderTime; 126 EAS_I16 masterGain; 127 EAS_U8 masterVolume; 128 EAS_BOOL8 staticMemoryModel; 129 EAS_BOOL8 searchHeaderFlag; 130 } S_EAS_DATA; 131 132 #endif 133 134