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