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