Home | History | Annotate | Download | only in lib_src
      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