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