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