eas_otadata.h revision e442bb7cd6a085b33a4dd52c0e20a157ada7feb1
184bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner/*---------------------------------------------------------------------------- 284bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner * 384bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner * File: 484bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner * eas_otadata.h 584bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner * 684bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner * Contents and purpose: 784bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner * OTA File Parser 884bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner * 984bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner * This file contains data declarations for the OTA parser. 1084bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner * 1184bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner * Copyright Sonic Network Inc. 2005 1284bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner 1384bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner * Licensed under the Apache License, Version 2.0 (the "License"); 1484bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner * you may not use this file except in compliance with the License. 1584bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner * You may obtain a copy of the License at 1684bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner * 176f0d024a534af18d9e60b3ea757376cd8a3a980eDan Gohman * http://www.apache.org/licenses/LICENSE-2.0 1884bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner * 1984bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner * Unless required by applicable law or agreed to in writing, software 2084bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner * distributed under the License is distributed on an "AS IS" BASIS, 2184bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 2284bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner * See the License for the specific language governing permissions and 231213d672653d7fee471d91d05b559e137d70ba56Chris Lattner * limitations under the License. 241213d672653d7fee471d91d05b559e137d70ba56Chris Lattner * 251213d672653d7fee471d91d05b559e137d70ba56Chris Lattner *---------------------------------------------------------------------------- 2684bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner * Revision Control: 2784bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner * $Revision: 82 $ 2884bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner * $Date: 2006-07-10 11:45:19 -0700 (Mon, 10 Jul 2006) $ 296f0d024a534af18d9e60b3ea757376cd8a3a980eDan Gohman *---------------------------------------------------------------------------- 3062ed6b9ade63bf01717ce5274fa11e93e873d245Chris Lattner*/ 3162ed6b9ade63bf01717ce5274fa11e93e873d245Chris Lattner 3262ed6b9ade63bf01717ce5274fa11e93e873d245Chris Lattner#ifndef EAS_OTADATA_H 3362ed6b9ade63bf01717ce5274fa11e93e873d245Chris Lattner#define EAS_OTADATA_H 3411a26f3697ea6520022ea6d3fa6a07b3c1b988cdEvan Cheng 3511a26f3697ea6520022ea6d3fa6a07b3c1b988cdEvan Cheng#include "eas_data.h" 3611a26f3697ea6520022ea6d3fa6a07b3c1b988cdEvan Cheng 3711a26f3697ea6520022ea6d3fa6a07b3c1b988cdEvan Cheng/* definition for state flags */ 3811a26f3697ea6520022ea6d3fa6a07b3c1b988cdEvan Cheng#define OTA_FLAGS_UNICODE 0x01 /* unicode text */ 3990f95f88c6ce09c6744777dc9d140c3c77203b92Evan Cheng 4090f95f88c6ce09c6744777dc9d140c3c77203b92Evan Cheng/*---------------------------------------------------------------------------- 41358dec51804ee52e47ea3a47c9248086e458ad7cEvan Cheng * 42358dec51804ee52e47ea3a47c9248086e458ad7cEvan Cheng * S_OTA_DATA 43358dec51804ee52e47ea3a47c9248086e458ad7cEvan Cheng * 44358dec51804ee52e47ea3a47c9248086e458ad7cEvan Cheng * This structure contains the state data for the OTA parser 45358dec51804ee52e47ea3a47c9248086e458ad7cEvan Cheng *---------------------------------------------------------------------------- 4690f95f88c6ce09c6744777dc9d140c3c77203b92Evan Cheng*/ 47358dec51804ee52e47ea3a47c9248086e458ad7cEvan Cheng 4862ed6b9ade63bf01717ce5274fa11e93e873d245Chris Lattnertypedef struct 4962ed6b9ade63bf01717ce5274fa11e93e873d245Chris Lattner{ 5062ed6b9ade63bf01717ce5274fa11e93e873d245Chris Lattner EAS_I32 fileOffset; /* offset to location in file */ 5162ed6b9ade63bf01717ce5274fa11e93e873d245Chris Lattner EAS_U8 patternLen; /* length of current pattern */ 5284bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner EAS_U8 dataByte; /* previous char from file */ 5384bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner EAS_U8 bitCount; /* bit count in char */ 5484bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner} S_OTA_LOC; 5584bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner 5684bc5427d6883f73cfeae3da640acd011d35c006Chris Lattnertypedef struct 5784bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner{ 5884bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner EAS_FILE_HANDLE fileHandle; /* file handle */ 5984bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner S_SYNTH *pSynth; /* synth handle */ 6084bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner EAS_I32 fileOffset; /* offset to start of data */ 6184bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner EAS_I32 time; /* current time in 256ths of a msec */ 6284bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner EAS_U32 tick; /* length of 32nd note in 256th of a msec */ 6384bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner EAS_U32 restTicks; /* ticks to rest after current note */ 6484bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner S_OTA_LOC patterns[4]; /* pattern locations */ 6584bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner S_OTA_LOC current; /* current location */ 6684bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner S_OTA_LOC restore; /* previous location */ 6762ed6b9ade63bf01717ce5274fa11e93e873d245Chris Lattner S_METADATA_CB metadata; /* metadata callback */ 6862ed6b9ade63bf01717ce5274fa11e93e873d245Chris Lattner EAS_U8 flags; /* bit flags */ 6962ed6b9ade63bf01717ce5274fa11e93e873d245Chris Lattner EAS_U8 numPatterns; /* number of patterns left in song */ 7084bc5427d6883f73cfeae3da640acd011d35c006Chris Lattner EAS_U8 currentPattern; /* current pattern for loop */ 716f0d024a534af18d9e60b3ea757376cd8a3a980eDan Gohman EAS_U8 note; /* MIDI note number */ 7262ed6b9ade63bf01717ce5274fa11e93e873d245Chris Lattner EAS_U8 octave; /* octave modifier */ 7362ed6b9ade63bf01717ce5274fa11e93e873d245Chris Lattner EAS_U8 style; /* from STYLE */ 746c5757e4e85bb190097be13c1630bb107a1fbcfeChris Lattner EAS_U8 velocity; /* current volume */ 756c5757e4e85bb190097be13c1630bb107a1fbcfeChris Lattner EAS_U8 state; /* current state EAS_STATE_XXXX */ 766c5757e4e85bb190097be13c1630bb107a1fbcfeChris Lattner EAS_U8 loopCount; /* loop count for pattern */ 776c5757e4e85bb190097be13c1630bb107a1fbcfeChris Lattner} S_OTA_DATA; 786c5757e4e85bb190097be13c1630bb107a1fbcfeChris Lattner 796c5757e4e85bb190097be13c1630bb107a1fbcfeChris Lattner#endif 806c5757e4e85bb190097be13c1630bb107a1fbcfeChris Lattner 81a65aa0f0bba1ef2322d63d05c074a92168684c63Dale Johannesen 82c637d6f4525e417260cf2ce08643dc62283e523fChris Lattner