| /*---------------------------------------------------------------------------- |
| * |
| * 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 |
| |