xref: /aosp_15_r20/external/sonivox/arm-wt-22k/lib_src/jet_data.h (revision f81fb7c475c4b71ff83bdcc517de2a8c174e4e5c)
1*f81fb7c4SAndroid Build Coastguard Worker /*----------------------------------------------------------------------------
2*f81fb7c4SAndroid Build Coastguard Worker  *
3*f81fb7c4SAndroid Build Coastguard Worker  * File:
4*f81fb7c4SAndroid Build Coastguard Worker  * jet_data.h
5*f81fb7c4SAndroid Build Coastguard Worker  *
6*f81fb7c4SAndroid Build Coastguard Worker  * Contents and purpose:
7*f81fb7c4SAndroid Build Coastguard Worker  * Internal data structures and interfaces for JET
8*f81fb7c4SAndroid Build Coastguard Worker  *
9*f81fb7c4SAndroid Build Coastguard Worker  * Copyright (c) 2006 Sonic Network Inc.
10*f81fb7c4SAndroid Build Coastguard Worker 
11*f81fb7c4SAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
12*f81fb7c4SAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
13*f81fb7c4SAndroid Build Coastguard Worker  * You may obtain a copy of the License at
14*f81fb7c4SAndroid Build Coastguard Worker  *
15*f81fb7c4SAndroid Build Coastguard Worker  *      http://www.apache.org/licenses/LICENSE-2.0
16*f81fb7c4SAndroid Build Coastguard Worker  *
17*f81fb7c4SAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
18*f81fb7c4SAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
19*f81fb7c4SAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20*f81fb7c4SAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
21*f81fb7c4SAndroid Build Coastguard Worker  * limitations under the License.
22*f81fb7c4SAndroid Build Coastguard Worker  *----------------------------------------------------------------------------
23*f81fb7c4SAndroid Build Coastguard Worker  * Revision Control:
24*f81fb7c4SAndroid Build Coastguard Worker  *   $Revision: 554 $
25*f81fb7c4SAndroid Build Coastguard Worker  *   $Date: 2007-02-02 11:06:10 -0800 (Fri, 02 Feb 2007) $
26*f81fb7c4SAndroid Build Coastguard Worker  *----------------------------------------------------------------------------
27*f81fb7c4SAndroid Build Coastguard Worker */
28*f81fb7c4SAndroid Build Coastguard Worker 
29*f81fb7c4SAndroid Build Coastguard Worker #ifndef _JET_DATA_H
30*f81fb7c4SAndroid Build Coastguard Worker #define _JET_DATA_H
31*f81fb7c4SAndroid Build Coastguard Worker 
32*f81fb7c4SAndroid Build Coastguard Worker #include "eas.h"
33*f81fb7c4SAndroid Build Coastguard Worker #include "jet.h"
34*f81fb7c4SAndroid Build Coastguard Worker 
35*f81fb7c4SAndroid Build Coastguard Worker /* maximum number of segments allowed in a JET file */
36*f81fb7c4SAndroid Build Coastguard Worker #ifndef JET_MAX_SEGMENTS
37*f81fb7c4SAndroid Build Coastguard Worker #define JET_MAX_SEGMENTS            32
38*f81fb7c4SAndroid Build Coastguard Worker #endif
39*f81fb7c4SAndroid Build Coastguard Worker 
40*f81fb7c4SAndroid Build Coastguard Worker /* maximum number of DLS collections allowed in a JET file */
41*f81fb7c4SAndroid Build Coastguard Worker #ifndef JET_MAX_DLS_COLLECTIONS
42*f81fb7c4SAndroid Build Coastguard Worker #define JET_MAX_DLS_COLLECTIONS     4
43*f81fb7c4SAndroid Build Coastguard Worker #endif
44*f81fb7c4SAndroid Build Coastguard Worker 
45*f81fb7c4SAndroid Build Coastguard Worker /* maximum number of JET events in internal queue */
46*f81fb7c4SAndroid Build Coastguard Worker #ifndef JET_EVENT_QUEUE_SIZE
47*f81fb7c4SAndroid Build Coastguard Worker #define JET_EVENT_QUEUE_SIZE        32
48*f81fb7c4SAndroid Build Coastguard Worker #endif
49*f81fb7c4SAndroid Build Coastguard Worker 
50*f81fb7c4SAndroid Build Coastguard Worker /* maximum number of JET events in application queue */
51*f81fb7c4SAndroid Build Coastguard Worker #ifndef APP_EVENT_QUEUE_SIZE
52*f81fb7c4SAndroid Build Coastguard Worker #define APP_EVENT_QUEUE_SIZE        32
53*f81fb7c4SAndroid Build Coastguard Worker #endif
54*f81fb7c4SAndroid Build Coastguard Worker 
55*f81fb7c4SAndroid Build Coastguard Worker /* maximum number of active mute events */
56*f81fb7c4SAndroid Build Coastguard Worker #ifndef JET_MUTE_QUEUE_SIZE
57*f81fb7c4SAndroid Build Coastguard Worker #define JET_MUTE_QUEUE_SIZE         8
58*f81fb7c4SAndroid Build Coastguard Worker #endif
59*f81fb7c4SAndroid Build Coastguard Worker 
60*f81fb7c4SAndroid Build Coastguard Worker /*----------------------------------------------------------------------------
61*f81fb7c4SAndroid Build Coastguard Worker  * JET event definitions
62*f81fb7c4SAndroid Build Coastguard Worker  *----------------------------------------------------------------------------
63*f81fb7c4SAndroid Build Coastguard Worker */
64*f81fb7c4SAndroid Build Coastguard Worker #define JET_EVENT_APP_LOW           80
65*f81fb7c4SAndroid Build Coastguard Worker #define JET_EVENT_APP_HIGH          83
66*f81fb7c4SAndroid Build Coastguard Worker #define JET_EVENT_LOW               102
67*f81fb7c4SAndroid Build Coastguard Worker #define JET_EVENT_HIGH              119
68*f81fb7c4SAndroid Build Coastguard Worker #define JET_EVENT_MARKER            102
69*f81fb7c4SAndroid Build Coastguard Worker #define JET_EVENT_TRIGGER_CLIP      103
70*f81fb7c4SAndroid Build Coastguard Worker 
71*f81fb7c4SAndroid Build Coastguard Worker #define JET_MARKER_LOOP_END         0
72*f81fb7c4SAndroid Build Coastguard Worker 
73*f81fb7c4SAndroid Build Coastguard Worker #define JET_CLIP_ACTIVE_FLAG        0x80
74*f81fb7c4SAndroid Build Coastguard Worker #define JET_CLIP_TRIGGER_FLAG       0x40
75*f81fb7c4SAndroid Build Coastguard Worker #define JET_CLIP_ID_MASK            0x3f
76*f81fb7c4SAndroid Build Coastguard Worker 
77*f81fb7c4SAndroid Build Coastguard Worker /*----------------------------------------------------------------------------
78*f81fb7c4SAndroid Build Coastguard Worker  * JET file definitions
79*f81fb7c4SAndroid Build Coastguard Worker  *----------------------------------------------------------------------------
80*f81fb7c4SAndroid Build Coastguard Worker */
81*f81fb7c4SAndroid Build Coastguard Worker #define JET_TAG(a,b,c,d) (\
82*f81fb7c4SAndroid Build Coastguard Worker     ( ((EAS_U32)(a) & 0xFF) << 24 ) \
83*f81fb7c4SAndroid Build Coastguard Worker     + ( ((EAS_U32)(b) & 0xFF) << 16 ) \
84*f81fb7c4SAndroid Build Coastguard Worker     + ( ((EAS_U32)(c) & 0xFF) <<  8 ) \
85*f81fb7c4SAndroid Build Coastguard Worker     + ( ((EAS_U32)(d) & 0xFF)))
86*f81fb7c4SAndroid Build Coastguard Worker 
87*f81fb7c4SAndroid Build Coastguard Worker #define JET_VERSION 0x01000000
88*f81fb7c4SAndroid Build Coastguard Worker #define JET_HEADER_TAG JET_TAG('J','E','T',' ')
89*f81fb7c4SAndroid Build Coastguard Worker #define JET_INFO_CHUNK JET_TAG('J','I','N','F')
90*f81fb7c4SAndroid Build Coastguard Worker #define JET_SMF_CHUNK JET_TAG('J','S','M','F')
91*f81fb7c4SAndroid Build Coastguard Worker #define JET_DLS_CHUNK JET_TAG('J','D','L','S')
92*f81fb7c4SAndroid Build Coastguard Worker #define INFO_JET_COPYRIGHT JET_TAG('J','C','O','P')
93*f81fb7c4SAndroid Build Coastguard Worker #define JET_APP_DATA_CHUNK JET_TAG('J','A','P','P')
94*f81fb7c4SAndroid Build Coastguard Worker 
95*f81fb7c4SAndroid Build Coastguard Worker #define INFO_NUM_SMF_CHUNKS JET_TAG('S','M','F','#')
96*f81fb7c4SAndroid Build Coastguard Worker #define INFO_NUM_DLS_CHUNKS JET_TAG('D','L','S','#')
97*f81fb7c4SAndroid Build Coastguard Worker #define INFO_JET_VERSION JET_TAG('J','V','E','R')
98*f81fb7c4SAndroid Build Coastguard Worker 
99*f81fb7c4SAndroid Build Coastguard Worker /*----------------------------------------------------------------------------
100*f81fb7c4SAndroid Build Coastguard Worker  * S_JET_SEGMENT
101*f81fb7c4SAndroid Build Coastguard Worker  *
102*f81fb7c4SAndroid Build Coastguard Worker  * JET segment data
103*f81fb7c4SAndroid Build Coastguard Worker  *----------------------------------------------------------------------------
104*f81fb7c4SAndroid Build Coastguard Worker */
105*f81fb7c4SAndroid Build Coastguard Worker typedef struct s_jet_segment_tag
106*f81fb7c4SAndroid Build Coastguard Worker {
107*f81fb7c4SAndroid Build Coastguard Worker     EAS_HANDLE          streamHandle;
108*f81fb7c4SAndroid Build Coastguard Worker     EAS_U32             muteFlags;
109*f81fb7c4SAndroid Build Coastguard Worker     EAS_I16             repeatCount;
110*f81fb7c4SAndroid Build Coastguard Worker     EAS_U8              userID;
111*f81fb7c4SAndroid Build Coastguard Worker     EAS_I8              transpose;
112*f81fb7c4SAndroid Build Coastguard Worker     EAS_I8              libNum;
113*f81fb7c4SAndroid Build Coastguard Worker     EAS_U8              state;
114*f81fb7c4SAndroid Build Coastguard Worker     EAS_U8              flags;
115*f81fb7c4SAndroid Build Coastguard Worker } S_JET_SEGMENT;
116*f81fb7c4SAndroid Build Coastguard Worker 
117*f81fb7c4SAndroid Build Coastguard Worker /* S_JET_SEGMENT.state */
118*f81fb7c4SAndroid Build Coastguard Worker typedef enum
119*f81fb7c4SAndroid Build Coastguard Worker {
120*f81fb7c4SAndroid Build Coastguard Worker     JET_STATE_CLOSED,
121*f81fb7c4SAndroid Build Coastguard Worker     JET_STATE_OPEN,
122*f81fb7c4SAndroid Build Coastguard Worker     JET_STATE_READY,
123*f81fb7c4SAndroid Build Coastguard Worker     JET_STATE_PLAYING,
124*f81fb7c4SAndroid Build Coastguard Worker     JET_STATE_PAUSED,
125*f81fb7c4SAndroid Build Coastguard Worker     JET_STATE_STOPPING
126*f81fb7c4SAndroid Build Coastguard Worker } E_JET_SEGMENT_STATE;
127*f81fb7c4SAndroid Build Coastguard Worker 
128*f81fb7c4SAndroid Build Coastguard Worker /* S_JEG_SEGMENT.flags */
129*f81fb7c4SAndroid Build Coastguard Worker #define JET_SEG_FLAG_MUTE_UPDATE        0x01
130*f81fb7c4SAndroid Build Coastguard Worker 
131*f81fb7c4SAndroid Build Coastguard Worker /*----------------------------------------------------------------------------
132*f81fb7c4SAndroid Build Coastguard Worker  * S_JET_DATA
133*f81fb7c4SAndroid Build Coastguard Worker  *
134*f81fb7c4SAndroid Build Coastguard Worker  * Main JET data structure
135*f81fb7c4SAndroid Build Coastguard Worker  *----------------------------------------------------------------------------
136*f81fb7c4SAndroid Build Coastguard Worker */
137*f81fb7c4SAndroid Build Coastguard Worker #define SEG_QUEUE_DEPTH 3
138*f81fb7c4SAndroid Build Coastguard Worker typedef struct s_jet_data_tag
139*f81fb7c4SAndroid Build Coastguard Worker {
140*f81fb7c4SAndroid Build Coastguard Worker     EAS_FILE_HANDLE     jetFileHandle;
141*f81fb7c4SAndroid Build Coastguard Worker     S_JET_SEGMENT       segQueue[SEG_QUEUE_DEPTH];
142*f81fb7c4SAndroid Build Coastguard Worker     EAS_I32             segmentOffsets[JET_MAX_SEGMENTS];
143*f81fb7c4SAndroid Build Coastguard Worker     EAS_I32             appDataOffset;
144*f81fb7c4SAndroid Build Coastguard Worker     EAS_I32             appDataSize;
145*f81fb7c4SAndroid Build Coastguard Worker     EAS_DLSLIB_HANDLE   libHandles[JET_MAX_DLS_COLLECTIONS];
146*f81fb7c4SAndroid Build Coastguard Worker     EAS_U32             jetEventQueue[JET_EVENT_QUEUE_SIZE];
147*f81fb7c4SAndroid Build Coastguard Worker     EAS_U32             appEventQueue[APP_EVENT_QUEUE_SIZE];
148*f81fb7c4SAndroid Build Coastguard Worker     S_JET_CONFIG        config;
149*f81fb7c4SAndroid Build Coastguard Worker     EAS_U32             segmentTime;
150*f81fb7c4SAndroid Build Coastguard Worker     EAS_U8              muteQueue[JET_MUTE_QUEUE_SIZE];
151*f81fb7c4SAndroid Build Coastguard Worker     EAS_U8              numSegments;
152*f81fb7c4SAndroid Build Coastguard Worker     EAS_U8              numLibraries;
153*f81fb7c4SAndroid Build Coastguard Worker     EAS_U8              flags;
154*f81fb7c4SAndroid Build Coastguard Worker     EAS_U8              playSegment;
155*f81fb7c4SAndroid Build Coastguard Worker     EAS_U8              queueSegment;
156*f81fb7c4SAndroid Build Coastguard Worker     EAS_U8              numQueuedSegments;
157*f81fb7c4SAndroid Build Coastguard Worker     EAS_U8              jetEventQueueRead;
158*f81fb7c4SAndroid Build Coastguard Worker     EAS_U8              jetEventQueueWrite;
159*f81fb7c4SAndroid Build Coastguard Worker     EAS_U8              appEventQueueRead;
160*f81fb7c4SAndroid Build Coastguard Worker     EAS_U8              appEventQueueWrite;
161*f81fb7c4SAndroid Build Coastguard Worker } S_JET_DATA;
162*f81fb7c4SAndroid Build Coastguard Worker 
163*f81fb7c4SAndroid Build Coastguard Worker /* flags for S_JET_DATA.flags */
164*f81fb7c4SAndroid Build Coastguard Worker #define JET_FLAGS_PLAYING       1
165*f81fb7c4SAndroid Build Coastguard Worker 
166*f81fb7c4SAndroid Build Coastguard Worker #define JET_EVENT_VAL_MASK      0x0000007f  /* mask for value */
167*f81fb7c4SAndroid Build Coastguard Worker #define JET_EVENT_CTRL_MASK     0x00003f80  /* mask for controller */
168*f81fb7c4SAndroid Build Coastguard Worker #define JET_EVENT_CHAN_MASK     0x0003c000  /* mask for channel */
169*f81fb7c4SAndroid Build Coastguard Worker #define JET_EVENT_TRACK_MASK    0x00fc0000  /* mask for track number */
170*f81fb7c4SAndroid Build Coastguard Worker #define JET_EVENT_SEG_MASK      0xff000000  /* mask for segment ID */
171*f81fb7c4SAndroid Build Coastguard Worker #define JET_EVENT_CTRL_SHIFT    7           /* shift for controller number */
172*f81fb7c4SAndroid Build Coastguard Worker #define JET_EVENT_CHAN_SHIFT    14          /* shift to for MIDI channel */
173*f81fb7c4SAndroid Build Coastguard Worker #define JET_EVENT_TRACK_SHIFT   18          /* shift to get track ID to bit 0 */
174*f81fb7c4SAndroid Build Coastguard Worker #define JET_EVENT_SEG_SHIFT     24          /* shift to get segment ID to bit 0 */
175*f81fb7c4SAndroid Build Coastguard Worker 
176*f81fb7c4SAndroid Build Coastguard Worker /* prototype for callback function */
177*f81fb7c4SAndroid Build Coastguard Worker extern void JET_Event (EAS_DATA_HANDLE easHandle, EAS_U32 segTrack, EAS_U8 channel, EAS_U8 controller, EAS_U8 value);
178*f81fb7c4SAndroid Build Coastguard Worker 
179*f81fb7c4SAndroid Build Coastguard Worker /* prototype for JET render function */
180*f81fb7c4SAndroid Build Coastguard Worker extern EAS_PUBLIC EAS_RESULT JET_Process (EAS_DATA_HANDLE easHandle);
181*f81fb7c4SAndroid Build Coastguard Worker 
182*f81fb7c4SAndroid Build Coastguard Worker #endif
183*f81fb7c4SAndroid Build Coastguard Worker 
184