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