156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*---------------------------------------------------------------------------- 256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * File: 456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * eas_data.h 556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Contents and purpose: 756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * This header defines all types, to support dynamic allocation of the 856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * memory resources needed for persistent EAS data. 956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 1056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Copyright 2004 Sonic Network Inc. 117df30109963092559d3760c0661a020f9daf1030The Android Open Source Project 127df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 137df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * you may not use this file except in compliance with the License. 147df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * You may obtain a copy of the License at 157df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * 167df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 177df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * 187df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 197df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 207df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 217df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * See the License for the specific language governing permissions and 227df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * limitations under the License. 2356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 2456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 2556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Revision Control: 2656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * $Revision: 842 $ 2756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * $Date: 2007-08-23 14:32:31 -0700 (Thu, 23 Aug 2007) $ 2856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 2956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/ 3056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 3156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifndef _EAS_DATA_H 3256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define _EAS_DATA_H 3356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 3456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_types.h" 3556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_synthcfg.h" 3656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas.h" 3756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_audioconst.h" 3856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_sndlib.h" 3956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_pcm.h" 4056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_pcmdata.h" 4156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_synth.h" 4256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_miditypes.h" 4356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_effects.h" 4456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 4556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef AUX_MIXER 4656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_auxmixdata.h" 4756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif 4856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 4956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef JET_INTERFACE 5056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "jet.h" 5156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif 5256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 5356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _METRICS_ENABLED 5456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_perf.h" 5556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif 5656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 5756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifndef MAX_NUMBER_STREAMS 5856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define MAX_NUMBER_STREAMS 4 5956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif 6056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 6156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* flags for S_EAS_STREAM */ 6256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define STREAM_FLAGS_PARSED 1 6356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define STREAM_FLAGS_PAUSE 2 6456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define STREAM_FLAGS_LOCATE 4 6556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define STREAM_FLAGS_RESUME 8 6656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 6756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* structure for parsing a stream */ 6856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef struct s_eas_stream_tag 6956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks{ 7056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks void *pParserModule; 7156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_U32 time; 7256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_U32 frameLength; 7356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_I32 repeatCount; 7456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_VOID_PTR handle; 7556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_U8 volume; 7656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_BOOL8 streamFlags; 7756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks} S_EAS_STREAM; 7856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 7956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* default master volume is -10dB */ 8056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define DEFAULT_VOLUME 90 8156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define DEFAULT_STREAM_VOLUME 100 8256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define DEFAULT_STREAM_GAIN 14622 8356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 8456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* 10 dB of boost available for individual parsers */ 8556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define STREAM_VOLUME_HEADROOM 10 8656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 8756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* amalgamated persistent data type */ 8856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef struct s_eas_data_tag 8956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks{ 9056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _CHECKED_BUILD 9156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_U32 handleCheck; 9256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif 9356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_HW_DATA_HANDLE hwInstData; 9456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 9556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks S_EFFECTS_MODULE effectsModules[NUM_EFFECTS_MODULES]; 9656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 9756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _METRICS_ENABLED 9856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks S_METRICS_INTERFACE *pMetricsModule; 9956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_VOID_PTR pMetricsData; 10056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif 10156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 10256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_I32 *pMixBuffer; 10356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_PCM *pOutputAudioBuffer; 10456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 10556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef AUX_MIXER 10656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks S_EAS_AUX_MIXER auxMixer; 10756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif 10856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 10956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _MAXIMIZER_ENABLED 11056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_VOID_PTR pMaximizerData; 11156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif 11256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 11356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks S_EAS_STREAM streams[MAX_NUMBER_STREAMS]; 11456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 11556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks S_PCM_STATE *pPCMStreams; 11656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 11756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks S_VOICE_MGR *pVoiceMgr; 11856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 11956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef JET_INTERFACE 12056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks JET_DATA_HANDLE jetHandle; 12156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif 12256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 12356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_U32 renderTime; 12456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_I16 masterGain; 12556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_U8 masterVolume; 12656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_BOOL8 staticMemoryModel; 12756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_BOOL8 searchHeaderFlag; 12856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks} S_EAS_DATA; 12956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 13056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif 13156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 132