156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*----------------------------------------------------------------------------
256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *
356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * File:
456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * eas_config.c
556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *
656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Contents and purpose:
756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * This file contains the Configuration Module interface (CM). The CM
856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * is a module compiled external to the library that sets the configuration
956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * for this build. It allows the library to find optional components and
1056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * links to static memory allocations (when used in a static configuration).
1156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *
1256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * DO NOT MODIFY THIS FILE!
1356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *
1456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * NOTE: This module is not intended to be modified by the customer. It
1556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * needs to be included in the build process with the correct configuration
1656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * defines (see the library documentation for information on how to configure
1756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * the library).
1856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *
1956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Copyright Sonic Network Inc. 2004-2006
207df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
217df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
227df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * you may not use this file except in compliance with the License.
237df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * You may obtain a copy of the License at
247df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
257df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
267df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
277df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
287df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
297df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
307df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * See the License for the specific language governing permissions and
317df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * limitations under the License.
3256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *
3356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *----------------------------------------------------------------------------
3456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Revision Control:
3556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *   $Revision: 796 $
3656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *   $Date: 2007-08-01 00:15:25 -0700 (Wed, 01 Aug 2007) $
3756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *----------------------------------------------------------------------------
3856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/
3956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
4056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas.h"
4156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_config.h"
4256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
4356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
4456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _MFI_PARSER
4556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*----------------------------------------------------------------------------
4656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Vendor/Device ID for MFi Extensions
4756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *
4856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Define the preprocessor symbols to establish the vendor ID and
4956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * device ID for the MFi PCM/ADPCM extensions.
5056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *----------------------------------------------------------------------------
5156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/
5256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksconst EAS_U8 eas_MFIVendorIDMSB = (MFI_VENDOR_ID >> 8) & 0xff;
5356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksconst EAS_U8 eas_MFIVendorIDLSB = MFI_VENDOR_ID & 0xff;
5456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksconst EAS_U8 eas_MFIDeviceID = MFI_DEVICE_ID;
5556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
5656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
5756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*----------------------------------------------------------------------------
5856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *
5956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * parserModules
6056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *
6156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * This structure is used by the EAS library to locate file parsing
6256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * modules.
6356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *----------------------------------------------------------------------------
6456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/
6556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
6656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* define the external file parsers */
6756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR EAS_SMF_Parser;
6856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
6956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _XMF_PARSER
7056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR EAS_XMF_Parser;
7156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
7256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
7356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _SMAF_PARSER
7456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR EAS_SMAF_Parser;
7556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
7656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
7756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _WAVE_PARSER
7856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR EAS_Wave_Parser;
7956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
8056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
8156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _OTA_PARSER
8256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR EAS_OTA_Parser;
8356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
8456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
8556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _IMELODY_PARSER
8656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR EAS_iMelody_Parser;
8756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
8856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
8956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _RTTTL_PARSER
9056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR EAS_RTTTL_Parser;
9156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
9256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
9356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#if defined (_CMX_PARSER) || defined(_MFI_PARSER)
9456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR EAS_CMF_Parser;
9556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
9656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
9756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* initalize pointers to parser interfaces */
9856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*lint -e{605} not pretty, but it works */
9956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave SparksEAS_VOID_PTR const parserModules[] =
10056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks{
10156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    &EAS_SMF_Parser,
10256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
10356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _XMF_PARSER
10456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    &EAS_XMF_Parser,
10556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
10656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
10756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _WAVE_PARSER
10856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    &EAS_Wave_Parser,
10956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
11056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
11156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _SMAF_PARSER
11256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    &EAS_SMAF_Parser,
11356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
11456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
11556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _OTA_PARSER
11656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    &EAS_OTA_Parser,
11756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
11856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
11956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _IMELODY_PARSER
12056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    &EAS_iMelody_Parser,
12156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
12256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
12356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _RTTTL_PARSER
12456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    &EAS_RTTTL_Parser,
12556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
12656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
12756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#if defined (_CMX_PARSER) || defined(_MFI_PARSER)
12856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    &EAS_CMF_Parser
12956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
13056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks};
13156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define NUM_PARSER_MODULES (sizeof(parserModules) / sizeof(EAS_VOID_PTR))
13256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
13356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*----------------------------------------------------------------------------
13456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Data Modules
13556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *----------------------------------------------------------------------------
13656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/
13756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
13856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _STATIC_MEMORY
13956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR eas_SMFData;
14056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR eas_Data;
14156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR eas_MixBuffer;
14256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR eas_Synth;
14356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR eas_MIDI;
14456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR eas_PCMData;
14556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR eas_MIDIData;
14656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
14756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _XMF_PARSER
14856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR eas_XMFData;
14956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
15056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
15156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _SMAF_PARSER
15256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR eas_SMAFData;
15356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
15456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
15556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _OTA_PARSER
15656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR eas_OTAData;
15756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
15856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
15956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _IMELODY_PARSER
16056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR eas_iMelodyData;
16156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
16256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
16356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _RTTTL_PARSER
16456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR eas_RTTTLData;
16556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
16656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
16756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _WAVE_PARSER
16856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR eas_WaveData;
16956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
17056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
17156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#if defined (_CMX_PARSER) || defined(_MFI_PARSER)
17256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR eas_CMFData;
17356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
17456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
17556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
17656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*----------------------------------------------------------------------------
17756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *
17856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Effects Modules
17956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *
18056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * These declarations are used by the EAS library to locate
18156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * effects modules.
18256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *----------------------------------------------------------------------------
18356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/
18456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
18556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _ENHANCER_ENABLED
18656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR                 EAS_Enhancer;
18756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ENHANCER_INTERFACE      &EAS_Enhancer
18856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _STATIC_MEMORY
18956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR                 eas_EnhancerData;
19056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ENHANCER_DATA           &eas_EnhancerData
19156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#else
19256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ENHANCER_DATA           NULL
19356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
19456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#else
19556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ENHANCER_INTERFACE      NULL
19656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ENHANCER_DATA           NULL
19756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
19856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
19956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _COMPRESSOR_ENABLED
20056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR                 EAS_Compressor;
20156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_COMPRESSOR_INTERFACE    &EAS_Compressor
20256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _STATIC_MEMORY
20356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR                 eas_CompressorData;
20456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_COMPRESSOR_DATA         &eas_CompressorData
20556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#else
20656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_COMPRESSOR_DATA         NULL
20756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
20856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#else
20956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_COMPRESSOR_INTERFACE    NULL
21056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_COMPRESSOR_DATA         NULL
21156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
21256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
21356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _MAXIMIZER_ENABLED
21456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR                 EAS_Maximizer;
21556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_MAXIMIZER_INTERFACE     &EAS_Maximizer
21656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _STATIC_MEMORY
21756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR                 eas_MaximizerData;
21856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_MAXIMIZER_DATA          &eas_MaximizerData
21956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#else
22056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_MAXIMIZER_DATA          NULL
22156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
22256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#else
22356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_MAXIMIZER_INTERFACE NULL
22456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_MAXIMIZER_DATA          NULL
22556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
22656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
22756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
22856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _REVERB_ENABLED
22956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR                 EAS_Reverb;
23056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_REVERB_INTERFACE        &EAS_Reverb
23156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _STATIC_MEMORY
23256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR                 eas_ReverbData;
23356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_REVERB_DATA             &eas_ReverbData
23456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#else
23556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_REVERB_DATA             NULL
23656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
23756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#else
23856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_REVERB_INTERFACE        NULL
23956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_REVERB_DATA             NULL
24056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
24156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
24256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _CHORUS_ENABLED
24356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR                 EAS_Chorus;
24456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_CHORUS_INTERFACE        &EAS_Chorus
24556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _STATIC_MEMORY
24656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR                 eas_ChorusData;
24756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_CHORUS_DATA             &eas_ChorusData
24856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#else
24956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_CHORUS_DATA             NULL
25056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
25156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#else
25256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_CHORUS_INTERFACE        NULL
25356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_CHORUS_DATA             NULL
25456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
25556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
25656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _WIDENER_ENABLED
25756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR                 EAS_Widener;
25856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_WIDENER_INTERFACE       &EAS_Widener
25956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _STATIC_MEMORY
26056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR                 eas_WidenerData;
26156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_WIDENER_DATA            &eas_WidenerData
26256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#else
26356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_WIDENER_DATA            NULL
26456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
26556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#else
26656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_WIDENER_INTERFACE       NULL
26756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_WIDENER_DATA            NULL
26856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
26956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
27056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _GRAPHIC_EQ_ENABLED
27156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR                 EAS_GraphicEQ;
27256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_GRAPHIC_EQ_INTERFACE    &EAS_GraphicEQ
27356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _STATIC_MEMORY
27456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR                 eas_GraphicEQData;
27556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_GRAPHIC_EQ_DATA         &eas_GraphicEQData
27656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#else
27756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_GRAPHIC_EQ_DATA         NULL
27856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
27956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#else
28056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_GRAPHIC_EQ_INTERFACE    NULL
28156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_GRAPHIC_EQ_DATA         NULL
28256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
28356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
28456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _WOW_ENABLED
28556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR                 EAS_Wow;
28656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_WOW_INTERFACE           &EAS_Wow
28756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _STATIC_MEMORY
28856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#error "WOW module requires dynamic memory model"
28956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#else
29056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_WOW_DATA                NULL
29156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
29256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#else
29356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_WOW_INTERFACE           NULL
29456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_WOW_DATA                NULL
29556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
29656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
29756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _TONECONTROLEQ_ENABLED
29856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR                 EAS_ToneControlEQ;
29956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_TONECONTROLEQ_INTERFACE &EAS_ToneControlEQ
30056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _STATIC_MEMORY
30156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR                 eas_ToneControlEQData;
30256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_TONECONTROLEQ_DATA      &eas_ToneControlEQData
30356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#else
30456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_TONECONTROLEQ_DATA      NULL
30556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
30656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#else
30756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_TONECONTROLEQ_INTERFACE NULL
30856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_TONECONTROLEQ_DATA      NULL
30956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
31056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
31156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*lint -e{605} not pretty, but it works */
31256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave SparksEAS_VOID_PTR const effectsModules[] =
31356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks{
31456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_ENHANCER_INTERFACE,
31556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_COMPRESSOR_INTERFACE,
31656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_REVERB_INTERFACE,
31756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_CHORUS_INTERFACE,
31856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_WIDENER_INTERFACE,
31956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_GRAPHIC_EQ_INTERFACE,
32056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_WOW_INTERFACE,
32156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_MAXIMIZER_INTERFACE,
32256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_TONECONTROLEQ_INTERFACE
32356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks};
32456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
32556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave SparksEAS_VOID_PTR const effectsData[] =
32656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks{
32756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_ENHANCER_DATA,
32856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_COMPRESSOR_DATA,
32956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_REVERB_DATA,
33056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_CHORUS_DATA,
33156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_WIDENER_DATA,
33256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_GRAPHIC_EQ_DATA,
33356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_WOW_DATA,
33456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_MAXIMIZER_DATA,
33556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_TONECONTROLEQ_DATA
33656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks};
33756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
33856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*----------------------------------------------------------------------------
33956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *
34056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Optional Modules
34156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *
34256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * These declarations are used by the EAS library to locate
34356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * effects modules.
34456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *----------------------------------------------------------------------------
34556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/
34656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
34756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _METRICS_ENABLED
34856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR                 EAS_Metrics;
34956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_METRICS_INTERFACE       &EAS_Metrics
35056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _STATIC_MEMORY
35156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR                 eas_MetricsData;
35256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_METRICS_DATA            &eas_MetricsData
35356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#else
35456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_METRICS_DATA            NULL
35556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
35656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#else
35756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_METRICS_INTERFACE       NULL
35856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_METRICS_DATA            NULL
35956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
36056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
36156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef MMAPI_SUPPORT
36256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR                 EAS_TC_Parser;
36356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_TONE_CONTROL_PARSER     &EAS_TC_Parser
36456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _STATIC_MEMORY
36556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparksextern EAS_VOID_PTR                 eas_TCData;
36656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_TONE_CONTROL_DATA       &eas_TCData
36756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#else
36856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_TONE_CONTROL_DATA       NULL
36956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
37056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#else
37156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_TONE_CONTROL_PARSER     NULL
37256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_TONE_CONTROL_DATA       NULL
37356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
37456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
37556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*lint -e{605} not pretty, but it works */
37656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave SparksEAS_VOID_PTR const optionalModules[] =
37756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks{
37856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_TONE_CONTROL_PARSER,
37956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_METRICS_INTERFACE
38056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks};
38156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
38256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave SparksEAS_VOID_PTR const optionalData[] =
38356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks{
38456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_TONE_CONTROL_DATA,
38556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_METRICS_DATA
38656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks};
38756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
38856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*----------------------------------------------------------------------------
38956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * EAS_CMStaticMemoryModel()
39056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *----------------------------------------------------------------------------
39156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Purpose:
39256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * This function returns true if EAS has been configured for
39356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * a static memory model. There are some limitations in the
39456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * static memory model, see the documentation for more
39556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * information.
39656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *
39756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Outputs:
39856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *  returns EAS_TRUE if a module is found
39956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *----------------------------------------------------------------------------
40056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/
40156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave SparksEAS_BOOL EAS_CMStaticMemoryModel (void)
40256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks{
40356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _STATIC_MEMORY
40456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    return EAS_TRUE;
40556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#else
40656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    return EAS_FALSE;
40756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
40856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks}
40956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
41056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*----------------------------------------------------------------------------
41156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * EAS_CMEnumModules()
41256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *----------------------------------------------------------------------------
41356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Purpose:
41456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * This function is used to find pointers to optional modules.
41556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *
41656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Inputs:
41756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *  module          - module number
41856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *
41956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Outputs:
42056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *  returns a pointer to the module function table or NULL if no module
42156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *----------------------------------------------------------------------------
42256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/
42356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave SparksEAS_VOID_PTR EAS_CMEnumModules (EAS_INT module)
42456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks{
42556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
42656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    if (module >= (EAS_INT) NUM_PARSER_MODULES)
42756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks        return NULL;
42856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    return parserModules[module];
42956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks}
43056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
43156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*----------------------------------------------------------------------------
43256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * EAS_CMEnumData()
43356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *----------------------------------------------------------------------------
43456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Purpose:
43556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * This function is used to find pointers to static memory allocations.
43656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *
43756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Inputs:
43856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *  dataModule          - enumerated module number
43956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *
44056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Outputs:
44156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Returns handle to data or NULL if not found
44256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *----------------------------------------------------------------------------
44356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/
44456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*lint -esym(715, dataModule) used only when _STATIC_MEMORY is defined */
44556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave SparksEAS_VOID_PTR EAS_CMEnumData (EAS_INT dataModule)
44656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks{
44756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
44856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _STATIC_MEMORY
44956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    switch (dataModule)
45056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    {
45156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
45256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    /* main instance data for synthesizer */
45356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    case EAS_CM_EAS_DATA:
45456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks        return &eas_Data;
45556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
45656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    /* mix buffer for mix engine */
45756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    case EAS_CM_MIX_BUFFER:
45856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks        /*lint -e{545} lint doesn't like this because it sees the underlying type */
45956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks        return &eas_MixBuffer;
46056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
46156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    /* instance data for synth */
46256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    case EAS_CM_SYNTH_DATA:
46356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks        return &eas_Synth;
46456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
46556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    /* instance data for MIDI parser */
46656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    case EAS_CM_MIDI_DATA:
46756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks        return &eas_MIDI;
46856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
46956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    /* instance data for SMF parser */
47056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    case EAS_CM_SMF_DATA:
47156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks        return &eas_SMFData;
47256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
47356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _XMF_PARSER
47456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    /* instance data for XMF parser */
47556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    case EAS_CM_XMF_DATA:
47656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks        return &eas_XMFData;
47756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
47856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
47956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _SMAF_PARSER
48056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    /* instance data for SMAF parser */
48156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    case EAS_CM_SMAF_DATA:
48256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks        return &eas_SMAFData;
48356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
48456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
48556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    /* instance data for the PCM engine */
48656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    case EAS_CM_PCM_DATA:
48756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks        /*lint -e{545} lint doesn't like this because it sees the underlying type */
48856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks        return &eas_PCMData;
48956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
49056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    case EAS_CM_MIDI_STREAM_DATA:
49156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks        return &eas_MIDIData;
49256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
49356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _OTA_PARSER
49456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    /* instance data for OTA parser */
49556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    case EAS_CM_OTA_DATA:
49656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks        return &eas_OTAData;
49756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
49856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
49956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _IMELODY_PARSER
50056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    /* instance data for iMelody parser */
50156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    case EAS_CM_IMELODY_DATA:
50256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks        return &eas_iMelodyData;
50356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
50456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
50556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _RTTTL_PARSER
50656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    /* instance data for RTTTL parser */
50756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    case EAS_CM_RTTTL_DATA:
50856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks        return &eas_RTTTLData;
50956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
51056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
51156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef _WAVE_PARSER
51256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    /* instance data for WAVE parser */
51356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    case EAS_CM_WAVE_DATA:
51456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks        return &eas_WaveData;
51556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
51656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
51756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#if defined (_CMX_PARSER) || defined(_MFI_PARSER)
51856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    /* instance data for CMF parser */
51956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    case EAS_CM_CMF_DATA:
52056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks        return &eas_CMFData;
52156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
52256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
52356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    default:
52456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks        return NULL;
52556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    }
52656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
52756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#else
52856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    return NULL;
52956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
53056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks}
53156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
53256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*----------------------------------------------------------------------------
53356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * EAS_CMEnumFXModules()
53456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *----------------------------------------------------------------------------
53556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Purpose:
53656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * This function is used to find pointers to optional effects modules.
53756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *
53856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Inputs:
53956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *  module          - enumerated module number
54056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *  pModule         - pointer to module interface
54156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *
54256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Outputs:
54356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *  Returns pointer to function table or NULL if not found
54456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *----------------------------------------------------------------------------
54556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/
54656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave SparksEAS_VOID_PTR EAS_CMEnumFXModules (EAS_INT module)
54756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks{
54856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
54956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    if (module >= NUM_EFFECTS_MODULES)
55056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks        return NULL;
55156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    return effectsModules[module];
55256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks}
55356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
55456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*----------------------------------------------------------------------------
55556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * EAS_CMEnumFXData()
55656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *----------------------------------------------------------------------------
55756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Purpose:
55856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * This function is used to find pointers to static memory allocations.
55956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *
56056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Inputs:
56156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *  dataModule          - enumerated module number
56256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *  pData               - pointer to handle variable
56356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *
56456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Outputs:
56556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Returns handle to data or NULL if not found
56656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *----------------------------------------------------------------------------
56756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/
56856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave SparksEAS_VOID_PTR EAS_CMEnumFXData (EAS_INT dataModule)
56956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks{
57056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
57156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    if (dataModule >= NUM_EFFECTS_MODULES)
57256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks        return NULL;
57356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    return effectsData[dataModule];
57456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks}
57556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
57656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*----------------------------------------------------------------------------
57756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * EAS_CMEnumOptModules()
57856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *----------------------------------------------------------------------------
57956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Purpose:
58056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * This function is used to find pointers to optional modules.
58156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *
58256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Inputs:
58356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *  module          - enumerated module number
58456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *
58556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Outputs:
58656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *  returns pointer to function table or NULL if no module
58756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *----------------------------------------------------------------------------
58856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/
58956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave SparksEAS_VOID_PTR EAS_CMEnumOptModules (EAS_INT module)
59056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks{
59156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
59256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    /* sanity check */
59356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    if (module >= NUM_OPTIONAL_MODULES)
59456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks        return EAS_FALSE;
59556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    return optionalModules[module];
59656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks}
59756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
59856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*----------------------------------------------------------------------------
59956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * EAS_CMEnumOptData()
60056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *----------------------------------------------------------------------------
60156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Purpose:
60256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * This function is used to find pointers to static memory allocations.
60356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *
60456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Inputs:
60556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *  dataModule          - enumerated module number
60656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *
60756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Outputs:
60856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Returns handle to data or NULL if not found
60956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *----------------------------------------------------------------------------
61056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/
61156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave SparksEAS_VOID_PTR EAS_CMEnumOptData (EAS_INT dataModule)
61256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks{
61356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
61456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    if (dataModule >= NUM_OPTIONAL_MODULES)
61556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks        return NULL;
61656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    return optionalData[dataModule];
61756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks}
61856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
61956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
620