eas_otadata.h revision e442bb7cd6a085b33a4dd52c0e20a157ada7feb1
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*---------------------------------------------------------------------------- 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * File: 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * eas_otadata.h 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Contents and purpose: 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * OTA File Parser 8d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) * 9d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) * This file contains data declarations for the OTA parser. 10d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) * 11d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) * Copyright Sonic Network Inc. 2005 12d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Licensed under the Apache License, Version 2.0 (the "License"); 14d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) * you may not use this file except in compliance with the License. 15d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) * You may obtain a copy of the License at 16d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) * 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * http://www.apache.org/licenses/LICENSE-2.0 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Unless required by applicable law or agreed to in writing, software 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * distributed under the License is distributed on an "AS IS" BASIS, 21d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 22d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) * See the License for the specific language governing permissions and 23d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) * limitations under the License. 24d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) * 25d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) *---------------------------------------------------------------------------- 26d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) * Revision Control: 27d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) * $Revision: 82 $ 28d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) * $Date: 2006-07-10 11:45:19 -0700 (Mon, 10 Jul 2006) $ 29d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) *---------------------------------------------------------------------------- 30d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)*/ 31d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 32d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#ifndef EAS_OTADATA_H 33d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#define EAS_OTADATA_H 34d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 35d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "eas_data.h" 36d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 37d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)/* definition for state flags */ 38d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#define OTA_FLAGS_UNICODE 0x01 /* unicode text */ 39d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 40d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)/*---------------------------------------------------------------------------- 41d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) * 42d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) * S_OTA_DATA 43d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) * 44d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) * This structure contains the state data for the OTA parser 45d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) *---------------------------------------------------------------------------- 46d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)*/ 47d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 48d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)typedef struct 49d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles){ 50d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) EAS_I32 fileOffset; /* offset to location in file */ 51d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) EAS_U8 patternLen; /* length of current pattern */ 521320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EAS_U8 dataByte; /* previous char from file */ 53d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) EAS_U8 bitCount; /* bit count in char */ 54d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)} S_OTA_LOC; 55d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 56d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)typedef struct 57d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles){ 58d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) EAS_FILE_HANDLE fileHandle; /* file handle */ 59d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) S_SYNTH *pSynth; /* synth handle */ 60d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) EAS_I32 fileOffset; /* offset to start of data */ 61d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) EAS_I32 time; /* current time in 256ths of a msec */ 62d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) EAS_U32 tick; /* length of 32nd note in 256th of a msec */ 63d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) EAS_U32 restTicks; /* ticks to rest after current note */ 64c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch S_OTA_LOC patterns[4]; /* pattern locations */ 65c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch S_OTA_LOC current; /* current location */ 66d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) S_OTA_LOC restore; /* previous location */ 67d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) S_METADATA_CB metadata; /* metadata callback */ 68d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) EAS_U8 flags; /* bit flags */ 69d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) EAS_U8 numPatterns; /* number of patterns left in song */ 70d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) EAS_U8 currentPattern; /* current pattern for loop */ 71d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) EAS_U8 note; /* MIDI note number */ 72d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) EAS_U8 octave; /* octave modifier */ 73d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) EAS_U8 style; /* from STYLE */ 74d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) EAS_U8 velocity; /* current volume */ 75d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) EAS_U8 state; /* current state EAS_STATE_XXXX */ 76d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) EAS_U8 loopCount; /* loop count for pattern */ 77d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)} S_OTA_DATA; 78d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 79d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#endif 80d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 81d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 82d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)