eas_config.c revision 56c99cd2c2c1e6ab038dac5fced5b92ccf11ff6c
12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/*----------------------------------------------------------------------------
22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * File:
42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * eas_config.c
52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * Contents and purpose:
7a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) * This file contains the Configuration Module interface (CM). The CM
8a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) * is a module compiled external to the library that sets the configuration
9a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) * for this build. It allows the library to find optional components and
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * links to static memory allocations (when used in a static configuration).
115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) *
12868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) * DO NOT MODIFY THIS FILE!
132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * NOTE: This module is not intended to be modified by the customer. It
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * needs to be included in the build process with the correct configuration
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * defines (see the library documentation for information on how to configure
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * the library).
185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) *
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * Copyright Sonic Network Inc. 2004-2006
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * Licensed under the Apache License, Version 2.0 (the "License");
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * you may not use this file except in compliance with the License.
235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * You may obtain a copy of the License at
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) *      http://www.apache.org/licenses/LICENSE-2.0
265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) *
27c2db58bd994c04d98e4ee2cd7565b71548655fe3Ben Murdoch * Unless required by applicable law or agreed to in writing, software
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * distributed under the License is distributed on an "AS IS" BASIS,
295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * See the License for the specific language governing permissions and
31f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * limitations under the License.
32f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) *
33effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch *----------------------------------------------------------------------------
345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * Revision Control:
35f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) *   $Revision: 796 $
36010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *   $Date: 2007-08-01 00:15:25 -0700 (Wed, 01 Aug 2007) $
37010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *----------------------------------------------------------------------------
382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)*/
395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "eas.h"
41cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "eas_config.h"
422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#ifdef _MFI_PARSER
455d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/*----------------------------------------------------------------------------
462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * Vendor/Device ID for MFi Extensions
472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * Define the preprocessor symbols to establish the vendor ID and
492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * device ID for the MFi PCM/ADPCM extensions.
50c2db58bd994c04d98e4ee2cd7565b71548655fe3Ben Murdoch *----------------------------------------------------------------------------
515d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)*/
52a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)const EAS_U8 eas_MFIVendorIDMSB = (MFI_VENDOR_ID >> 8) & 0xff;
53f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)const EAS_U8 eas_MFIVendorIDLSB = MFI_VENDOR_ID & 0xff;
54c2db58bd994c04d98e4ee2cd7565b71548655fe3Ben Murdochconst EAS_U8 eas_MFIDeviceID = MFI_DEVICE_ID;
55c2db58bd994c04d98e4ee2cd7565b71548655fe3Ben Murdoch#endif
5658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
57f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)/*----------------------------------------------------------------------------
5858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) *
5958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) * parserModules
605d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) *
615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * This structure is used by the EAS library to locate file parsing
625d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * modules.
635d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) *----------------------------------------------------------------------------
645d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)*/
655d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
665d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* define the external file parsers */
672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)extern EAS_VOID_PTR EAS_SMF_Parser;
682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifdef _XMF_PARSER
702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)extern EAS_VOID_PTR EAS_XMF_Parser;
712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
72a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
73a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#ifdef _SMAF_PARSER
74a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)extern EAS_VOID_PTR EAS_SMAF_Parser;
75a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#endif
76a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
775d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#ifdef _WAVE_PARSER
785d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)extern EAS_VOID_PTR EAS_Wave_Parser;
795d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif
805d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
815d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#ifdef _OTA_PARSER
825d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)extern EAS_VOID_PTR EAS_OTA_Parser;
835d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif
845d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
855d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#ifdef _IMELODY_PARSER
865d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)extern EAS_VOID_PTR EAS_iMelody_Parser;
875d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif
885d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
895d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#ifdef _RTTTL_PARSER
905d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)extern EAS_VOID_PTR EAS_RTTTL_Parser;
915d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif
925d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
935d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#if defined (_CMX_PARSER) || defined(_MFI_PARSER)
945d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)extern EAS_VOID_PTR EAS_CMF_Parser;
955d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif
965d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
975d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* initalize pointers to parser interfaces */
985d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/*lint -e{605} not pretty, but it works */
995d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)EAS_VOID_PTR const parserModules[] =
1005d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles){
1015d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    &EAS_SMF_Parser,
1025d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
1035d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#ifdef _XMF_PARSER
1045d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    &EAS_XMF_Parser,
1055d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif
1065d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
1075d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#ifdef _WAVE_PARSER
1085d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    &EAS_Wave_Parser,
1095d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif
1105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
1115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#ifdef _SMAF_PARSER
1125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    &EAS_SMAF_Parser,
1135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif
1145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
1155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#ifdef _OTA_PARSER
1165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    &EAS_OTA_Parser,
1175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif
1185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
1195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#ifdef _IMELODY_PARSER
1205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    &EAS_iMelody_Parser,
1215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif
1225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
1235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#ifdef _RTTTL_PARSER
1245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    &EAS_RTTTL_Parser,
1255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif
1265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
1275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#if defined (_CMX_PARSER) || defined(_MFI_PARSER)
1285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    &EAS_CMF_Parser
1295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif
1305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)};
1315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define NUM_PARSER_MODULES (sizeof(parserModules) / sizeof(EAS_VOID_PTR))
1325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
1335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/*----------------------------------------------------------------------------
1345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * Data Modules
1355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) *----------------------------------------------------------------------------
1365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)*/
1375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
1385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#ifdef _STATIC_MEMORY
1395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)extern EAS_VOID_PTR eas_SMFData;
1405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)extern EAS_VOID_PTR eas_Data;
1415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)extern EAS_VOID_PTR eas_MixBuffer;
1425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)extern EAS_VOID_PTR eas_Synth;
1435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)extern EAS_VOID_PTR eas_MIDI;
1445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)extern EAS_VOID_PTR eas_PCMData;
1455d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)extern EAS_VOID_PTR eas_MIDIData;
1465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
1475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#ifdef _XMF_PARSER
1485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)extern EAS_VOID_PTR eas_XMFData;
1495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif
1505d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
1515d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#ifdef _SMAF_PARSER
1525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)extern EAS_VOID_PTR eas_SMAFData;
1535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif
1545d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
155010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#ifdef _OTA_PARSER
156010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)extern EAS_VOID_PTR eas_OTAData;
157010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#endif
158010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
159010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#ifdef _IMELODY_PARSER
160cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)extern EAS_VOID_PTR eas_iMelodyData;
161cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#endif
162cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
163cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#ifdef _RTTTL_PARSER
164cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)extern EAS_VOID_PTR eas_RTTTLData;
165cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#endif
166cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
167cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#ifdef _WAVE_PARSER
168cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)extern EAS_VOID_PTR eas_WaveData;
169cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#endif
170cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
171cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#if defined (_CMX_PARSER) || defined(_MFI_PARSER)
172cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)extern EAS_VOID_PTR eas_CMFData;
173cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#endif
174cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#endif
1755d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
1765d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/*----------------------------------------------------------------------------
1775d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) *
178cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * Effects Modules
1795d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) *
1805d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * These declarations are used by the EAS library to locate
1815d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * effects modules.
182c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch *----------------------------------------------------------------------------
183c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch*/
1845d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
1855d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#ifdef _ENHANCER_ENABLED
186f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)extern EAS_VOID_PTR                 EAS_Enhancer;
187c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#define EAS_ENHANCER_INTERFACE      &EAS_Enhancer
188f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#ifdef _STATIC_MEMORY
189f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)extern EAS_VOID_PTR                 eas_EnhancerData;
190010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#define EAS_ENHANCER_DATA           &eas_EnhancerData
191010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#else
192c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#define EAS_ENHANCER_DATA           NULL
193c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#endif
1945d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#else
1955d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define EAS_ENHANCER_INTERFACE      NULL
1965d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define EAS_ENHANCER_DATA           NULL
1975d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif
198a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
199a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#ifdef _COMPRESSOR_ENABLED
200a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)extern EAS_VOID_PTR                 EAS_Compressor;
201a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#define EAS_COMPRESSOR_INTERFACE    &EAS_Compressor
202a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#ifdef _STATIC_MEMORY
203a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)extern EAS_VOID_PTR                 eas_CompressorData;
204a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#define EAS_COMPRESSOR_DATA         &eas_CompressorData
205a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#else
206a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#define EAS_COMPRESSOR_DATA         NULL
207a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#endif
2085d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#else
2095d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define EAS_COMPRESSOR_INTERFACE    NULL
2105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define EAS_COMPRESSOR_DATA         NULL
2115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif
2125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
2135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#ifdef _MAXIMIZER_ENABLED
2145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)extern EAS_VOID_PTR                 EAS_Maximizer;
2155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define EAS_MAXIMIZER_INTERFACE     &EAS_Maximizer
2165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#ifdef _STATIC_MEMORY
2175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)extern EAS_VOID_PTR                 eas_MaximizerData;
2185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define EAS_MAXIMIZER_DATA          &eas_MaximizerData
219c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#else
220f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#define EAS_MAXIMIZER_DATA          NULL
221f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#endif
222010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#else
223010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#define EAS_MAXIMIZER_INTERFACE NULL
224010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#define EAS_MAXIMIZER_DATA          NULL
2255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif
2265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
22746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
228f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#ifdef _REVERB_ENABLED
229f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)extern EAS_VOID_PTR                 EAS_Reverb;
23046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define EAS_REVERB_INTERFACE        &EAS_Reverb
23146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#ifdef _STATIC_MEMORY
232a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)extern EAS_VOID_PTR                 eas_ReverbData;
2335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define EAS_REVERB_DATA             &eas_ReverbData
2345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#else
2355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define EAS_REVERB_DATA             NULL
2365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif
2375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#else
2385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define EAS_REVERB_INTERFACE        NULL
2395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define EAS_REVERB_DATA             NULL
2405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif
2415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
2425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#ifdef _CHORUS_ENABLED
243a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)extern EAS_VOID_PTR                 EAS_Chorus;
244a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#define EAS_CHORUS_INTERFACE        &EAS_Chorus
245a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#ifdef _STATIC_MEMORY
246a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)extern EAS_VOID_PTR                 eas_ChorusData;
247a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#define EAS_CHORUS_DATA             &eas_ChorusData
2485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#else
2495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define EAS_CHORUS_DATA             NULL
250a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#endif
251a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#else
252a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#define EAS_CHORUS_INTERFACE        NULL
253a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#define EAS_CHORUS_DATA             NULL
254a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#endif
255a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
256a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#ifdef _WIDENER_ENABLED
257a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)extern EAS_VOID_PTR                 EAS_Widener;
258c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#define EAS_WIDENER_INTERFACE       &EAS_Widener
259c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#ifdef _STATIC_MEMORY
260a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)extern EAS_VOID_PTR                 eas_WidenerData;
261a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#define EAS_WIDENER_DATA            &eas_WidenerData
262a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#else
263a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#define EAS_WIDENER_DATA            NULL
264c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#endif
265010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#else
266010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#define EAS_WIDENER_INTERFACE       NULL
267010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#define EAS_WIDENER_DATA            NULL
268010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#endif
269010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
270f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#ifdef _GRAPHIC_EQ_ENABLED
271f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)extern EAS_VOID_PTR                 EAS_GraphicEQ;
272f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#define EAS_GRAPHIC_EQ_INTERFACE    &EAS_GraphicEQ
273f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#ifdef _STATIC_MEMORY
274f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)extern EAS_VOID_PTR                 eas_GraphicEQData;
275f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#define EAS_GRAPHIC_EQ_DATA         &eas_GraphicEQData
276f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#else
277cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#define EAS_GRAPHIC_EQ_DATA         NULL
278cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#endif
279cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#else
280cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#define EAS_GRAPHIC_EQ_INTERFACE    NULL
281cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#define EAS_GRAPHIC_EQ_DATA         NULL
282010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#endif
283010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
284010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#ifdef _WOW_ENABLED
285a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)extern EAS_VOID_PTR                 EAS_Wow;
286a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#define EAS_WOW_INTERFACE           &EAS_Wow
287a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#ifdef _STATIC_MEMORY
2885d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#error "WOW module requires dynamic memory model"
2895d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#else
290a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#define EAS_WOW_DATA                NULL
2912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
2922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else
29358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#define EAS_WOW_INTERFACE           NULL
29458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#define EAS_WOW_DATA                NULL
29558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#endif
29658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
29758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#ifdef _TONECONTROLEQ_ENABLED
2982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)extern EAS_VOID_PTR                 EAS_ToneControlEQ;
29958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#define EAS_TONECONTROLEQ_INTERFACE &EAS_ToneControlEQ
3002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifdef _STATIC_MEMORY
3012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)extern EAS_VOID_PTR                 eas_ToneControlEQData;
3022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define EAS_TONECONTROLEQ_DATA      &eas_ToneControlEQData
3032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else
304cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#define EAS_TONECONTROLEQ_DATA      NULL
305cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#endif
3062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else
3072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define EAS_TONECONTROLEQ_INTERFACE NULL
3082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define EAS_TONECONTROLEQ_DATA      NULL
3092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
3102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
3112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/*lint -e{605} not pretty, but it works */
3122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)EAS_VOID_PTR const effectsModules[] =
313a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles){
314a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)    EAS_ENHANCER_INTERFACE,
315a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)    EAS_COMPRESSOR_INTERFACE,
3162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    EAS_REVERB_INTERFACE,
31758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)    EAS_CHORUS_INTERFACE,
31858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)    EAS_WIDENER_INTERFACE,
31958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)    EAS_GRAPHIC_EQ_INTERFACE,
32058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)    EAS_WOW_INTERFACE,
3212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    EAS_MAXIMIZER_INTERFACE,
3222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    EAS_TONECONTROLEQ_INTERFACE
3232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
324effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
3255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)EAS_VOID_PTR const effectsData[] =
3265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles){
3275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    EAS_ENHANCER_DATA,
3285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    EAS_COMPRESSOR_DATA,
3295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    EAS_REVERB_DATA,
3305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    EAS_CHORUS_DATA,
3315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    EAS_WIDENER_DATA,
3325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    EAS_GRAPHIC_EQ_DATA,
3335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    EAS_WOW_DATA,
3345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    EAS_MAXIMIZER_DATA,
3355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    EAS_TONECONTROLEQ_DATA
336effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch};
337effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
338effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch/*----------------------------------------------------------------------------
339effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch *
340effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch * Optional Modules
341effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch *
342effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch * These declarations are used by the EAS library to locate
3435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * effects modules.
344effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch *----------------------------------------------------------------------------
3455d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)*/
3465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
347effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#ifdef _METRICS_ENABLED
348f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)extern EAS_VOID_PTR                 EAS_Metrics;
3492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define EAS_METRICS_INTERFACE       &EAS_Metrics
350f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#ifdef _STATIC_MEMORY
351effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochextern EAS_VOID_PTR                 eas_MetricsData;
3522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define EAS_METRICS_DATA            &eas_MetricsData
3532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else
3542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define EAS_METRICS_DATA            NULL
3552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
356f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#else
357f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#define EAS_METRICS_INTERFACE       NULL
358f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#define EAS_METRICS_DATA            NULL
359f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#endif
360f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
361f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#ifdef MMAPI_SUPPORT
362f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)extern EAS_VOID_PTR                 EAS_TC_Parser;
363f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#define EAS_TONE_CONTROL_PARSER     &EAS_TC_Parser
364f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#ifdef _STATIC_MEMORY
365f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)extern EAS_VOID_PTR                 eas_TCData;
3662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define EAS_TONE_CONTROL_DATA       &eas_TCData
3672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else
36858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#define EAS_TONE_CONTROL_DATA       NULL
369f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#endif
370f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#else
371f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#define EAS_TONE_CONTROL_PARSER     NULL
372f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#define EAS_TONE_CONTROL_DATA       NULL
37358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#endif
37458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
37558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)/*lint -e{605} not pretty, but it works */
376f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)EAS_VOID_PTR const optionalModules[] =
377f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles){
378f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    EAS_TONE_CONTROL_PARSER,
379f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    EAS_METRICS_INTERFACE
380f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)};
381f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
382effb81e5f8246d0db0270817048dc992db66e9fbBen MurdochEAS_VOID_PTR const optionalData[] =
3835d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles){
3845d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    EAS_TONE_CONTROL_DATA,
3852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    EAS_METRICS_DATA
3862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
3872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
3882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/*----------------------------------------------------------------------------
3895d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * EAS_CMStaticMemoryModel()
3905d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) *----------------------------------------------------------------------------
3915d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * Purpose:
3925d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * This function returns true if EAS has been configured for
3935d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * a static memory model. There are some limitations in the
394f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) * static memory model, see the documentation for more
395f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) * information.
396010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
397010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) * Outputs:
3985d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) *  returns EAS_TRUE if a module is found
3995d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) *----------------------------------------------------------------------------
4005d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)*/
401f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)EAS_BOOL EAS_CMStaticMemoryModel (void)
4022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles){
4032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifdef _STATIC_MEMORY
4042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return EAS_TRUE;
4052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else
4062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return EAS_FALSE;
407f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#endif
408effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch}
409effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
410effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch/*----------------------------------------------------------------------------
411f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) * EAS_CMEnumModules()
412effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch *----------------------------------------------------------------------------
413effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch * Purpose:
414effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch * This function is used to find pointers to optional modules.
415effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch *
416f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * Inputs:
4172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *  module          - module number
4182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
419f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * Outputs:
4205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) *  returns a pointer to the module function table or NULL if no module
4212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *----------------------------------------------------------------------------
422cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)*/
4232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)EAS_VOID_PTR EAS_CMEnumModules (EAS_INT module)
424f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles){
4252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
426c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    if (module >= (EAS_INT) NUM_PARSER_MODULES)
4272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return NULL;
428868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)    return parserModules[module];
429f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)}
430cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
431cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)/*----------------------------------------------------------------------------
432cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * EAS_CMEnumData()
433f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) *----------------------------------------------------------------------------
434cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * Purpose:
435cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * This function is used to find pointers to static memory allocations.
436cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) *
437cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * Inputs:
438cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) *  dataModule          - enumerated module number
439010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *
440010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) * Outputs:
441010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) * Returns handle to data or NULL if not found
442010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *----------------------------------------------------------------------------
443010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)*/
444010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)/*lint -esym(715, dataModule) used only when _STATIC_MEMORY is defined */
4452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)EAS_VOID_PTR EAS_CMEnumData (EAS_INT dataModule)
4462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles){
4475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
4485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#ifdef _STATIC_MEMORY
4495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    switch (dataModule)
4505d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    {
4515d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
452effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    /* main instance data for synthesizer */
453effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    case EAS_CM_EAS_DATA:
454effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch        return &eas_Data;
455effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
456effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    /* mix buffer for mix engine */
457effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    case EAS_CM_MIX_BUFFER:
458effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch        /*lint -e{545} lint doesn't like this because it sees the underlying type */
4595d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)        return &eas_MixBuffer;
4605d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
4615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    /* instance data for synth */
462a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    case EAS_CM_SYNTH_DATA:
463a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)        return &eas_Synth;
4645d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
4655d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    /* instance data for MIDI parser */
4665d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    case EAS_CM_MIDI_DATA:
4675d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)        return &eas_MIDI;
4685d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
469effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    /* instance data for SMF parser */
470effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    case EAS_CM_SMF_DATA:
4715d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)        return &eas_SMFData;
4725d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
473a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#ifdef _XMF_PARSER
474effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    /* instance data for XMF parser */
475a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    case EAS_CM_XMF_DATA:
476a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)        return &eas_XMFData;
477a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#endif
478effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
479a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#ifdef _SMAF_PARSER
480a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    /* instance data for SMAF parser */
481a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    case EAS_CM_SMAF_DATA:
482effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch        return &eas_SMAFData;
483a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#endif
484a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
4855d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    /* instance data for the PCM engine */
486effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    case EAS_CM_PCM_DATA:
4875d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)        /*lint -e{545} lint doesn't like this because it sees the underlying type */
4885d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)        return &eas_PCMData;
4892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
490    case EAS_CM_MIDI_STREAM_DATA:
491        return &eas_MIDIData;
492
493#ifdef _OTA_PARSER
494    /* instance data for OTA parser */
495    case EAS_CM_OTA_DATA:
496        return &eas_OTAData;
497#endif
498
499#ifdef _IMELODY_PARSER
500    /* instance data for iMelody parser */
501    case EAS_CM_IMELODY_DATA:
502        return &eas_iMelodyData;
503#endif
504
505#ifdef _RTTTL_PARSER
506    /* instance data for RTTTL parser */
507    case EAS_CM_RTTTL_DATA:
508        return &eas_RTTTLData;
509#endif
510
511#ifdef _WAVE_PARSER
512    /* instance data for WAVE parser */
513    case EAS_CM_WAVE_DATA:
514        return &eas_WaveData;
515#endif
516
517#if defined (_CMX_PARSER) || defined(_MFI_PARSER)
518    /* instance data for CMF parser */
519    case EAS_CM_CMF_DATA:
520        return &eas_CMFData;
521#endif
522
523    default:
524        return NULL;
525    }
526
527#else
528    return NULL;
529#endif
530}
531
532/*----------------------------------------------------------------------------
533 * EAS_CMEnumFXModules()
534 *----------------------------------------------------------------------------
535 * Purpose:
536 * This function is used to find pointers to optional effects modules.
537 *
538 * Inputs:
539 *  module          - enumerated module number
540 *  pModule         - pointer to module interface
541 *
542 * Outputs:
543 *  Returns pointer to function table or NULL if not found
544 *----------------------------------------------------------------------------
545*/
546EAS_VOID_PTR EAS_CMEnumFXModules (EAS_INT module)
547{
548
549    if (module >= NUM_EFFECTS_MODULES)
550        return NULL;
551    return effectsModules[module];
552}
553
554/*----------------------------------------------------------------------------
555 * EAS_CMEnumFXData()
556 *----------------------------------------------------------------------------
557 * Purpose:
558 * This function is used to find pointers to static memory allocations.
559 *
560 * Inputs:
561 *  dataModule          - enumerated module number
562 *  pData               - pointer to handle variable
563 *
564 * Outputs:
565 * Returns handle to data or NULL if not found
566 *----------------------------------------------------------------------------
567*/
568EAS_VOID_PTR EAS_CMEnumFXData (EAS_INT dataModule)
569{
570
571    if (dataModule >= NUM_EFFECTS_MODULES)
572        return NULL;
573    return effectsData[dataModule];
574}
575
576/*----------------------------------------------------------------------------
577 * EAS_CMEnumOptModules()
578 *----------------------------------------------------------------------------
579 * Purpose:
580 * This function is used to find pointers to optional modules.
581 *
582 * Inputs:
583 *  module          - enumerated module number
584 *
585 * Outputs:
586 *  returns pointer to function table or NULL if no module
587 *----------------------------------------------------------------------------
588*/
589EAS_VOID_PTR EAS_CMEnumOptModules (EAS_INT module)
590{
591
592    /* sanity check */
593    if (module >= NUM_OPTIONAL_MODULES)
594        return EAS_FALSE;
595    return optionalModules[module];
596}
597
598/*----------------------------------------------------------------------------
599 * EAS_CMEnumOptData()
600 *----------------------------------------------------------------------------
601 * Purpose:
602 * This function is used to find pointers to static memory allocations.
603 *
604 * Inputs:
605 *  dataModule          - enumerated module number
606 *
607 * Outputs:
608 * Returns handle to data or NULL if not found
609 *----------------------------------------------------------------------------
610*/
611EAS_VOID_PTR EAS_CMEnumOptData (EAS_INT dataModule)
612{
613
614    if (dataModule >= NUM_OPTIONAL_MODULES)
615        return NULL;
616    return optionalData[dataModule];
617}
618
619
620