xref: /aosp_15_r20/frameworks/wilhelm/include/SLES/OpenSLES.h (revision bebae9c0e76121f8312ccb50385c080b3a0b023c)
1*bebae9c0SAndroid Build Coastguard Worker /*
2*bebae9c0SAndroid Build Coastguard Worker  * Copyright (c) 2007-2009 The Khronos Group Inc.
3*bebae9c0SAndroid Build Coastguard Worker  *
4*bebae9c0SAndroid Build Coastguard Worker  * Permission is hereby granted, free of charge, to any person obtaining a copy of
5*bebae9c0SAndroid Build Coastguard Worker  * this software and /or associated documentation files (the "Materials "), to
6*bebae9c0SAndroid Build Coastguard Worker  * deal in the Materials without restriction, including without limitation the
7*bebae9c0SAndroid Build Coastguard Worker  * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
8*bebae9c0SAndroid Build Coastguard Worker  * sell copies of the Materials, and to permit persons to whom the Materials are
9*bebae9c0SAndroid Build Coastguard Worker  * furnished to do so, subject to
10*bebae9c0SAndroid Build Coastguard Worker  * the following conditions:
11*bebae9c0SAndroid Build Coastguard Worker  *
12*bebae9c0SAndroid Build Coastguard Worker  * The above copyright notice and this permission notice shall be included
13*bebae9c0SAndroid Build Coastguard Worker  * in all copies or substantial portions of the Materials.
14*bebae9c0SAndroid Build Coastguard Worker  *
15*bebae9c0SAndroid Build Coastguard Worker  * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16*bebae9c0SAndroid Build Coastguard Worker  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17*bebae9c0SAndroid Build Coastguard Worker  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18*bebae9c0SAndroid Build Coastguard Worker  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19*bebae9c0SAndroid Build Coastguard Worker  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20*bebae9c0SAndroid Build Coastguard Worker  * OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS IN THE
21*bebae9c0SAndroid Build Coastguard Worker  * MATERIALS.
22*bebae9c0SAndroid Build Coastguard Worker  *
23*bebae9c0SAndroid Build Coastguard Worker  * OpenSLES.h - OpenSL ES version 1.0.1
24*bebae9c0SAndroid Build Coastguard Worker  *
25*bebae9c0SAndroid Build Coastguard Worker  */
26*bebae9c0SAndroid Build Coastguard Worker 
27*bebae9c0SAndroid Build Coastguard Worker /****************************************************************************/
28*bebae9c0SAndroid Build Coastguard Worker /* NOTE: This file is a standard OpenSL ES header file and should not be    */
29*bebae9c0SAndroid Build Coastguard Worker /* modified in any way.                                                     */
30*bebae9c0SAndroid Build Coastguard Worker /****************************************************************************/
31*bebae9c0SAndroid Build Coastguard Worker 
32*bebae9c0SAndroid Build Coastguard Worker #ifndef OPENSL_ES_H_
33*bebae9c0SAndroid Build Coastguard Worker #define OPENSL_ES_H_
34*bebae9c0SAndroid Build Coastguard Worker 
35*bebae9c0SAndroid Build Coastguard Worker #ifdef __cplusplus
36*bebae9c0SAndroid Build Coastguard Worker extern "C" {
37*bebae9c0SAndroid Build Coastguard Worker #endif
38*bebae9c0SAndroid Build Coastguard Worker 
39*bebae9c0SAndroid Build Coastguard Worker #include "OpenSLES_Platform.h"
40*bebae9c0SAndroid Build Coastguard Worker 
41*bebae9c0SAndroid Build Coastguard Worker 
42*bebae9c0SAndroid Build Coastguard Worker /*****************************************************************************/
43*bebae9c0SAndroid Build Coastguard Worker /* Common types, structures, and defines                                */
44*bebae9c0SAndroid Build Coastguard Worker /*****************************************************************************/
45*bebae9c0SAndroid Build Coastguard Worker 
46*bebae9c0SAndroid Build Coastguard Worker #ifndef _KHRONOS_KEYS_
47*bebae9c0SAndroid Build Coastguard Worker #define _KHRONOS_KEYS_
48*bebae9c0SAndroid Build Coastguard Worker 
49*bebae9c0SAndroid Build Coastguard Worker #define KHRONOS_TITLE "KhronosTitle"
50*bebae9c0SAndroid Build Coastguard Worker #define KHRONOS_ALBUM "KhronosAlbum"
51*bebae9c0SAndroid Build Coastguard Worker #define KHRONOS_TRACK_NUMBER "KhronosTrackNumber"
52*bebae9c0SAndroid Build Coastguard Worker #define KHRONOS_ARTIST "KhronosArtist"
53*bebae9c0SAndroid Build Coastguard Worker #define KHRONOS_GENRE "KhronosGenre"
54*bebae9c0SAndroid Build Coastguard Worker #define KHRONOS_YEAR "KhronosYear"
55*bebae9c0SAndroid Build Coastguard Worker #define KHRONOS_COMMENT "KhronosComment"
56*bebae9c0SAndroid Build Coastguard Worker #define KHRONOS_ARTIST_URL "KhronosArtistURL"
57*bebae9c0SAndroid Build Coastguard Worker #define KHRONOS_CONTENT_URL "KhronosContentURL"
58*bebae9c0SAndroid Build Coastguard Worker #define KHRONOS_RATING "KhronosRating"
59*bebae9c0SAndroid Build Coastguard Worker #define KHRONOS_ALBUM_ART "KhronosAlbumArt"
60*bebae9c0SAndroid Build Coastguard Worker #define KHRONOS_COPYRIGHT "KhronosCopyright"
61*bebae9c0SAndroid Build Coastguard Worker 
62*bebae9c0SAndroid Build Coastguard Worker #endif
63*bebae9c0SAndroid Build Coastguard Worker 
64*bebae9c0SAndroid Build Coastguard Worker 
65*bebae9c0SAndroid Build Coastguard Worker /* remap common types to SL types for clarity */
66*bebae9c0SAndroid Build Coastguard Worker typedef sl_int8_t              SLint8;          /* 8 bit signed integer  */
67*bebae9c0SAndroid Build Coastguard Worker typedef sl_uint8_t             SLuint8;         /* 8 bit unsigned integer */
68*bebae9c0SAndroid Build Coastguard Worker typedef sl_int16_t             SLint16;         /* 16 bit signed integer */
69*bebae9c0SAndroid Build Coastguard Worker typedef sl_uint16_t            SLuint16;        /* 16 bit unsigned integer */
70*bebae9c0SAndroid Build Coastguard Worker typedef sl_int32_t             SLint32;           /* 32 bit signed integer */
71*bebae9c0SAndroid Build Coastguard Worker typedef sl_uint32_t            SLuint32;          /* 32 bit unsigned integer */
72*bebae9c0SAndroid Build Coastguard Worker 
73*bebae9c0SAndroid Build Coastguard Worker typedef SLuint32                    SLboolean;
74*bebae9c0SAndroid Build Coastguard Worker #define SL_BOOLEAN_FALSE            ((SLboolean) 0x00000000)
75*bebae9c0SAndroid Build Coastguard Worker #define SL_BOOLEAN_TRUE             ((SLboolean) 0x00000001)
76*bebae9c0SAndroid Build Coastguard Worker 
77*bebae9c0SAndroid Build Coastguard Worker typedef SLuint8						SLchar;			/* UTF-8 is to be used */
78*bebae9c0SAndroid Build Coastguard Worker typedef SLint16						SLmillibel;
79*bebae9c0SAndroid Build Coastguard Worker typedef SLuint32					SLmillisecond;
80*bebae9c0SAndroid Build Coastguard Worker typedef SLuint32					SLmilliHertz;
81*bebae9c0SAndroid Build Coastguard Worker typedef SLint32						SLmillimeter;
82*bebae9c0SAndroid Build Coastguard Worker typedef SLint32						SLmillidegree;
83*bebae9c0SAndroid Build Coastguard Worker typedef SLint16						SLpermille;
84*bebae9c0SAndroid Build Coastguard Worker typedef SLuint32					SLmicrosecond;
85*bebae9c0SAndroid Build Coastguard Worker typedef SLuint32					SLresult;
86*bebae9c0SAndroid Build Coastguard Worker 
87*bebae9c0SAndroid Build Coastguard Worker #define SL_MILLIBEL_MAX 	((SLmillibel) 0x7FFF)
88*bebae9c0SAndroid Build Coastguard Worker #define SL_MILLIBEL_MIN 	((SLmillibel) (-SL_MILLIBEL_MAX-1))
89*bebae9c0SAndroid Build Coastguard Worker 
90*bebae9c0SAndroid Build Coastguard Worker #define SL_MILLIHERTZ_MAX	((SLmilliHertz) 0xFFFFFFFF)
91*bebae9c0SAndroid Build Coastguard Worker #define SL_MILLIMETER_MAX	((SLmillimeter) 0x7FFFFFFF)
92*bebae9c0SAndroid Build Coastguard Worker 
93*bebae9c0SAndroid Build Coastguard Worker /** Interface ID defined as a UUID */
94*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLInterfaceID_ {
95*bebae9c0SAndroid Build Coastguard Worker     SLuint32 time_low;
96*bebae9c0SAndroid Build Coastguard Worker     SLuint16 time_mid;
97*bebae9c0SAndroid Build Coastguard Worker     SLuint16 time_hi_and_version;
98*bebae9c0SAndroid Build Coastguard Worker     SLuint16 clock_seq;
99*bebae9c0SAndroid Build Coastguard Worker     SLuint8  node[6];
100*bebae9c0SAndroid Build Coastguard Worker } * SLInterfaceID;
101*bebae9c0SAndroid Build Coastguard Worker 
102*bebae9c0SAndroid Build Coastguard Worker /* Forward declaration for the object interface */
103*bebae9c0SAndroid Build Coastguard Worker struct SLObjectItf_;
104*bebae9c0SAndroid Build Coastguard Worker 
105*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLObjectItf_ * const * SLObjectItf;
106*bebae9c0SAndroid Build Coastguard Worker 
107*bebae9c0SAndroid Build Coastguard Worker /* Objects ID's */
108*bebae9c0SAndroid Build Coastguard Worker 
109*bebae9c0SAndroid Build Coastguard Worker #define SL_OBJECTID_ENGINE			((SLuint32) 0x00001001)
110*bebae9c0SAndroid Build Coastguard Worker #define SL_OBJECTID_LEDDEVICE		((SLuint32) 0x00001002)
111*bebae9c0SAndroid Build Coastguard Worker #define SL_OBJECTID_VIBRADEVICE		((SLuint32) 0x00001003)
112*bebae9c0SAndroid Build Coastguard Worker #define SL_OBJECTID_AUDIOPLAYER		((SLuint32) 0x00001004)
113*bebae9c0SAndroid Build Coastguard Worker #define SL_OBJECTID_AUDIORECORDER	((SLuint32) 0x00001005)
114*bebae9c0SAndroid Build Coastguard Worker #define SL_OBJECTID_MIDIPLAYER		((SLuint32) 0x00001006)
115*bebae9c0SAndroid Build Coastguard Worker #define SL_OBJECTID_LISTENER		((SLuint32) 0x00001007)
116*bebae9c0SAndroid Build Coastguard Worker #define SL_OBJECTID_3DGROUP			((SLuint32) 0x00001008)
117*bebae9c0SAndroid Build Coastguard Worker #define SL_OBJECTID_OUTPUTMIX		((SLuint32) 0x00001009)
118*bebae9c0SAndroid Build Coastguard Worker #define SL_OBJECTID_METADATAEXTRACTOR	((SLuint32) 0x0000100A)
119*bebae9c0SAndroid Build Coastguard Worker 
120*bebae9c0SAndroid Build Coastguard Worker 
121*bebae9c0SAndroid Build Coastguard Worker /* SL Profiles */
122*bebae9c0SAndroid Build Coastguard Worker 
123*bebae9c0SAndroid Build Coastguard Worker #define SL_PROFILES_PHONE	((SLuint16) 0x0001)
124*bebae9c0SAndroid Build Coastguard Worker #define SL_PROFILES_MUSIC	((SLuint16) 0x0002)
125*bebae9c0SAndroid Build Coastguard Worker #define SL_PROFILES_GAME	((SLuint16) 0x0004)
126*bebae9c0SAndroid Build Coastguard Worker 
127*bebae9c0SAndroid Build Coastguard Worker /* Types of voices supported by the system */
128*bebae9c0SAndroid Build Coastguard Worker 
129*bebae9c0SAndroid Build Coastguard Worker #define SL_VOICETYPE_2D_AUDIO		((SLuint16) 0x0001)
130*bebae9c0SAndroid Build Coastguard Worker #define SL_VOICETYPE_MIDI			((SLuint16) 0x0002)
131*bebae9c0SAndroid Build Coastguard Worker #define SL_VOICETYPE_3D_AUDIO 		((SLuint16) 0x0004)
132*bebae9c0SAndroid Build Coastguard Worker #define SL_VOICETYPE_3D_MIDIOUTPUT 	((SLuint16) 0x0008)
133*bebae9c0SAndroid Build Coastguard Worker 
134*bebae9c0SAndroid Build Coastguard Worker /* Convenient macros representing various different priority levels, for use with the SetPriority method */
135*bebae9c0SAndroid Build Coastguard Worker 
136*bebae9c0SAndroid Build Coastguard Worker #define SL_PRIORITY_LOWEST		((SLint32) (-0x7FFFFFFF-1))
137*bebae9c0SAndroid Build Coastguard Worker #define SL_PRIORITY_VERYLOW		((SLint32) -0x60000000)
138*bebae9c0SAndroid Build Coastguard Worker #define SL_PRIORITY_LOW			((SLint32) -0x40000000)
139*bebae9c0SAndroid Build Coastguard Worker #define SL_PRIORITY_BELOWNORMAL	((SLint32) -0x20000000)
140*bebae9c0SAndroid Build Coastguard Worker #define SL_PRIORITY_NORMAL		((SLint32) 0x00000000)
141*bebae9c0SAndroid Build Coastguard Worker #define SL_PRIORITY_ABOVENORMAL	((SLint32) 0x20000000)
142*bebae9c0SAndroid Build Coastguard Worker #define SL_PRIORITY_HIGH		((SLint32) 0x40000000)
143*bebae9c0SAndroid Build Coastguard Worker #define SL_PRIORITY_VERYHIGH	((SLint32) 0x60000000)
144*bebae9c0SAndroid Build Coastguard Worker #define SL_PRIORITY_HIGHEST	((SLint32) 0x7FFFFFFF)
145*bebae9c0SAndroid Build Coastguard Worker 
146*bebae9c0SAndroid Build Coastguard Worker 
147*bebae9c0SAndroid Build Coastguard Worker /** These macros list the various sample formats that are possible on audio input and output devices. */
148*bebae9c0SAndroid Build Coastguard Worker 
149*bebae9c0SAndroid Build Coastguard Worker #define SL_PCMSAMPLEFORMAT_FIXED_8	((SLuint16) 0x0008)
150*bebae9c0SAndroid Build Coastguard Worker #define SL_PCMSAMPLEFORMAT_FIXED_16	((SLuint16) 0x0010)
151*bebae9c0SAndroid Build Coastguard Worker #define SL_PCMSAMPLEFORMAT_FIXED_20 	((SLuint16) 0x0014)
152*bebae9c0SAndroid Build Coastguard Worker #define SL_PCMSAMPLEFORMAT_FIXED_24	((SLuint16) 0x0018)
153*bebae9c0SAndroid Build Coastguard Worker #define SL_PCMSAMPLEFORMAT_FIXED_28 	((SLuint16) 0x001C)
154*bebae9c0SAndroid Build Coastguard Worker #define SL_PCMSAMPLEFORMAT_FIXED_32	((SLuint16) 0x0020)
155*bebae9c0SAndroid Build Coastguard Worker 
156*bebae9c0SAndroid Build Coastguard Worker 
157*bebae9c0SAndroid Build Coastguard Worker /** These macros specify the commonly used sampling rates (in milliHertz) supported by most audio I/O devices. */
158*bebae9c0SAndroid Build Coastguard Worker 
159*bebae9c0SAndroid Build Coastguard Worker #define SL_SAMPLINGRATE_8		((SLuint32) 8000000)
160*bebae9c0SAndroid Build Coastguard Worker #define SL_SAMPLINGRATE_11_025	((SLuint32) 11025000)
161*bebae9c0SAndroid Build Coastguard Worker #define SL_SAMPLINGRATE_12		((SLuint32) 12000000)
162*bebae9c0SAndroid Build Coastguard Worker #define SL_SAMPLINGRATE_16		((SLuint32) 16000000)
163*bebae9c0SAndroid Build Coastguard Worker #define SL_SAMPLINGRATE_22_05	((SLuint32) 22050000)
164*bebae9c0SAndroid Build Coastguard Worker #define SL_SAMPLINGRATE_24		((SLuint32) 24000000)
165*bebae9c0SAndroid Build Coastguard Worker #define SL_SAMPLINGRATE_32		((SLuint32) 32000000)
166*bebae9c0SAndroid Build Coastguard Worker #define SL_SAMPLINGRATE_44_1	((SLuint32) 44100000)
167*bebae9c0SAndroid Build Coastguard Worker #define SL_SAMPLINGRATE_48		((SLuint32) 48000000)
168*bebae9c0SAndroid Build Coastguard Worker #define SL_SAMPLINGRATE_64		((SLuint32) 64000000)
169*bebae9c0SAndroid Build Coastguard Worker #define SL_SAMPLINGRATE_88_2	((SLuint32) 88200000)
170*bebae9c0SAndroid Build Coastguard Worker #define SL_SAMPLINGRATE_96		((SLuint32) 96000000)
171*bebae9c0SAndroid Build Coastguard Worker #define SL_SAMPLINGRATE_192	((SLuint32) 192000000)
172*bebae9c0SAndroid Build Coastguard Worker 
173*bebae9c0SAndroid Build Coastguard Worker #define SL_SPEAKER_FRONT_LEFT			((SLuint32) 0x00000001)
174*bebae9c0SAndroid Build Coastguard Worker #define SL_SPEAKER_FRONT_RIGHT			((SLuint32) 0x00000002)
175*bebae9c0SAndroid Build Coastguard Worker #define SL_SPEAKER_FRONT_CENTER			((SLuint32) 0x00000004)
176*bebae9c0SAndroid Build Coastguard Worker #define SL_SPEAKER_LOW_FREQUENCY			((SLuint32) 0x00000008)
177*bebae9c0SAndroid Build Coastguard Worker #define SL_SPEAKER_BACK_LEFT			((SLuint32) 0x00000010)
178*bebae9c0SAndroid Build Coastguard Worker #define SL_SPEAKER_BACK_RIGHT			((SLuint32) 0x00000020)
179*bebae9c0SAndroid Build Coastguard Worker #define SL_SPEAKER_FRONT_LEFT_OF_CENTER	((SLuint32) 0x00000040)
180*bebae9c0SAndroid Build Coastguard Worker #define SL_SPEAKER_FRONT_RIGHT_OF_CENTER	((SLuint32) 0x00000080)
181*bebae9c0SAndroid Build Coastguard Worker #define SL_SPEAKER_BACK_CENTER			((SLuint32) 0x00000100)
182*bebae9c0SAndroid Build Coastguard Worker #define SL_SPEAKER_SIDE_LEFT			((SLuint32) 0x00000200)
183*bebae9c0SAndroid Build Coastguard Worker #define SL_SPEAKER_SIDE_RIGHT			((SLuint32) 0x00000400)
184*bebae9c0SAndroid Build Coastguard Worker #define SL_SPEAKER_TOP_CENTER			((SLuint32) 0x00000800)
185*bebae9c0SAndroid Build Coastguard Worker #define SL_SPEAKER_TOP_FRONT_LEFT		((SLuint32) 0x00001000)
186*bebae9c0SAndroid Build Coastguard Worker #define SL_SPEAKER_TOP_FRONT_CENTER		((SLuint32) 0x00002000)
187*bebae9c0SAndroid Build Coastguard Worker #define SL_SPEAKER_TOP_FRONT_RIGHT		((SLuint32) 0x00004000)
188*bebae9c0SAndroid Build Coastguard Worker #define SL_SPEAKER_TOP_BACK_LEFT			((SLuint32) 0x00008000)
189*bebae9c0SAndroid Build Coastguard Worker #define SL_SPEAKER_TOP_BACK_CENTER		((SLuint32) 0x00010000)
190*bebae9c0SAndroid Build Coastguard Worker #define SL_SPEAKER_TOP_BACK_RIGHT		((SLuint32) 0x00020000)
191*bebae9c0SAndroid Build Coastguard Worker 
192*bebae9c0SAndroid Build Coastguard Worker 
193*bebae9c0SAndroid Build Coastguard Worker /*****************************************************************************/
194*bebae9c0SAndroid Build Coastguard Worker /* Errors                                                                    */
195*bebae9c0SAndroid Build Coastguard Worker /*                                                                           */
196*bebae9c0SAndroid Build Coastguard Worker /*****************************************************************************/
197*bebae9c0SAndroid Build Coastguard Worker 
198*bebae9c0SAndroid Build Coastguard Worker #define SL_RESULT_SUCCESS				((SLuint32) 0x00000000)
199*bebae9c0SAndroid Build Coastguard Worker #define SL_RESULT_PRECONDITIONS_VIOLATED	((SLuint32) 0x00000001)
200*bebae9c0SAndroid Build Coastguard Worker #define SL_RESULT_PARAMETER_INVALID		((SLuint32) 0x00000002)
201*bebae9c0SAndroid Build Coastguard Worker #define SL_RESULT_MEMORY_FAILURE			((SLuint32) 0x00000003)
202*bebae9c0SAndroid Build Coastguard Worker #define SL_RESULT_RESOURCE_ERROR			((SLuint32) 0x00000004)
203*bebae9c0SAndroid Build Coastguard Worker #define SL_RESULT_RESOURCE_LOST			((SLuint32) 0x00000005)
204*bebae9c0SAndroid Build Coastguard Worker #define SL_RESULT_IO_ERROR				((SLuint32) 0x00000006)
205*bebae9c0SAndroid Build Coastguard Worker #define SL_RESULT_BUFFER_INSUFFICIENT		((SLuint32) 0x00000007)
206*bebae9c0SAndroid Build Coastguard Worker #define SL_RESULT_CONTENT_CORRUPTED		((SLuint32) 0x00000008)
207*bebae9c0SAndroid Build Coastguard Worker #define SL_RESULT_CONTENT_UNSUPPORTED		((SLuint32) 0x00000009)
208*bebae9c0SAndroid Build Coastguard Worker #define SL_RESULT_CONTENT_NOT_FOUND		((SLuint32) 0x0000000A)
209*bebae9c0SAndroid Build Coastguard Worker #define SL_RESULT_PERMISSION_DENIED		((SLuint32) 0x0000000B)
210*bebae9c0SAndroid Build Coastguard Worker #define SL_RESULT_FEATURE_UNSUPPORTED		((SLuint32) 0x0000000C)
211*bebae9c0SAndroid Build Coastguard Worker #define SL_RESULT_INTERNAL_ERROR			((SLuint32) 0x0000000D)
212*bebae9c0SAndroid Build Coastguard Worker #define SL_RESULT_UNKNOWN_ERROR			((SLuint32) 0x0000000E)
213*bebae9c0SAndroid Build Coastguard Worker #define SL_RESULT_OPERATION_ABORTED		((SLuint32) 0x0000000F)
214*bebae9c0SAndroid Build Coastguard Worker #define SL_RESULT_CONTROL_LOST			((SLuint32) 0x00000010)
215*bebae9c0SAndroid Build Coastguard Worker 
216*bebae9c0SAndroid Build Coastguard Worker 
217*bebae9c0SAndroid Build Coastguard Worker /* Object state definitions */
218*bebae9c0SAndroid Build Coastguard Worker 
219*bebae9c0SAndroid Build Coastguard Worker #define SL_OBJECT_STATE_UNREALIZED	((SLuint32) 0x00000001)
220*bebae9c0SAndroid Build Coastguard Worker #define SL_OBJECT_STATE_REALIZED		((SLuint32) 0x00000002)
221*bebae9c0SAndroid Build Coastguard Worker #define SL_OBJECT_STATE_SUSPENDED	((SLuint32) 0x00000003)
222*bebae9c0SAndroid Build Coastguard Worker 
223*bebae9c0SAndroid Build Coastguard Worker /* Object event definitions */
224*bebae9c0SAndroid Build Coastguard Worker 
225*bebae9c0SAndroid Build Coastguard Worker #define SL_OBJECT_EVENT_RUNTIME_ERROR			((SLuint32) 0x00000001)
226*bebae9c0SAndroid Build Coastguard Worker #define SL_OBJECT_EVENT_ASYNC_TERMINATION		((SLuint32) 0x00000002)
227*bebae9c0SAndroid Build Coastguard Worker #define SL_OBJECT_EVENT_RESOURCES_LOST			((SLuint32) 0x00000003)
228*bebae9c0SAndroid Build Coastguard Worker #define SL_OBJECT_EVENT_RESOURCES_AVAILABLE		((SLuint32) 0x00000004)
229*bebae9c0SAndroid Build Coastguard Worker #define SL_OBJECT_EVENT_ITF_CONTROL_TAKEN		((SLuint32) 0x00000005)
230*bebae9c0SAndroid Build Coastguard Worker #define SL_OBJECT_EVENT_ITF_CONTROL_RETURNED		((SLuint32) 0x00000006)
231*bebae9c0SAndroid Build Coastguard Worker #define SL_OBJECT_EVENT_ITF_PARAMETERS_CHANGED	((SLuint32) 0x00000007)
232*bebae9c0SAndroid Build Coastguard Worker 
233*bebae9c0SAndroid Build Coastguard Worker 
234*bebae9c0SAndroid Build Coastguard Worker /*****************************************************************************/
235*bebae9c0SAndroid Build Coastguard Worker /* Interface definitions                                                     */
236*bebae9c0SAndroid Build Coastguard Worker /*****************************************************************************/
237*bebae9c0SAndroid Build Coastguard Worker 
238*bebae9c0SAndroid Build Coastguard Worker /** NULL Interface */
239*bebae9c0SAndroid Build Coastguard Worker 
240*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_NULL;
241*bebae9c0SAndroid Build Coastguard Worker 
242*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
243*bebae9c0SAndroid Build Coastguard Worker /* Data Source and Data Sink Structures                                      */
244*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
245*bebae9c0SAndroid Build Coastguard Worker 
246*bebae9c0SAndroid Build Coastguard Worker /** Data locator macros  */
247*bebae9c0SAndroid Build Coastguard Worker #define SL_DATALOCATOR_URI			((SLuint32) 0x00000001)
248*bebae9c0SAndroid Build Coastguard Worker #define SL_DATALOCATOR_ADDRESS		((SLuint32) 0x00000002)
249*bebae9c0SAndroid Build Coastguard Worker #define SL_DATALOCATOR_IODEVICE		((SLuint32) 0x00000003)
250*bebae9c0SAndroid Build Coastguard Worker #define SL_DATALOCATOR_OUTPUTMIX		((SLuint32) 0x00000004)
251*bebae9c0SAndroid Build Coastguard Worker #define SL_DATALOCATOR_RESERVED5		((SLuint32) 0x00000005)
252*bebae9c0SAndroid Build Coastguard Worker #define SL_DATALOCATOR_BUFFERQUEUE	((SLuint32) 0x00000006)
253*bebae9c0SAndroid Build Coastguard Worker #define SL_DATALOCATOR_MIDIBUFFERQUEUE	((SLuint32) 0x00000007)
254*bebae9c0SAndroid Build Coastguard Worker #define SL_DATALOCATOR_RESERVED8		((SLuint32) 0x00000008)
255*bebae9c0SAndroid Build Coastguard Worker 
256*bebae9c0SAndroid Build Coastguard Worker 
257*bebae9c0SAndroid Build Coastguard Worker 
258*bebae9c0SAndroid Build Coastguard Worker /** URI-based data locator definition where locatorType must be SL_DATALOCATOR_URI*/
259*bebae9c0SAndroid Build Coastguard Worker typedef struct SLDataLocator_URI_ {
260*bebae9c0SAndroid Build Coastguard Worker 	SLuint32 		locatorType;
261*bebae9c0SAndroid Build Coastguard Worker 	SLchar *		URI;
262*bebae9c0SAndroid Build Coastguard Worker } SLDataLocator_URI;
263*bebae9c0SAndroid Build Coastguard Worker 
264*bebae9c0SAndroid Build Coastguard Worker /** Address-based data locator definition where locatorType must be SL_DATALOCATOR_ADDRESS*/
265*bebae9c0SAndroid Build Coastguard Worker typedef struct SLDataLocator_Address_ {
266*bebae9c0SAndroid Build Coastguard Worker 	SLuint32 	locatorType;
267*bebae9c0SAndroid Build Coastguard Worker 	void 		*pAddress;
268*bebae9c0SAndroid Build Coastguard Worker 	SLuint32	length;
269*bebae9c0SAndroid Build Coastguard Worker } SLDataLocator_Address;
270*bebae9c0SAndroid Build Coastguard Worker 
271*bebae9c0SAndroid Build Coastguard Worker /** IODevice-types */
272*bebae9c0SAndroid Build Coastguard Worker #define SL_IODEVICE_AUDIOINPUT	((SLuint32) 0x00000001)
273*bebae9c0SAndroid Build Coastguard Worker #define SL_IODEVICE_LEDARRAY	((SLuint32) 0x00000002)
274*bebae9c0SAndroid Build Coastguard Worker #define SL_IODEVICE_VIBRA		((SLuint32) 0x00000003)
275*bebae9c0SAndroid Build Coastguard Worker #define SL_IODEVICE_RESERVED4	((SLuint32) 0x00000004)
276*bebae9c0SAndroid Build Coastguard Worker #define SL_IODEVICE_RESERVED5	((SLuint32) 0x00000005)
277*bebae9c0SAndroid Build Coastguard Worker 
278*bebae9c0SAndroid Build Coastguard Worker /** IODevice-based data locator definition where locatorType must be SL_DATALOCATOR_IODEVICE*/
279*bebae9c0SAndroid Build Coastguard Worker typedef struct SLDataLocator_IODevice_ {
280*bebae9c0SAndroid Build Coastguard Worker 	SLuint32	locatorType;
281*bebae9c0SAndroid Build Coastguard Worker 	SLuint32	deviceType;
282*bebae9c0SAndroid Build Coastguard Worker 	SLuint32	deviceID;
283*bebae9c0SAndroid Build Coastguard Worker 	SLObjectItf	device;
284*bebae9c0SAndroid Build Coastguard Worker } SLDataLocator_IODevice;
285*bebae9c0SAndroid Build Coastguard Worker 
286*bebae9c0SAndroid Build Coastguard Worker /** OutputMix-based data locator definition where locatorType must be SL_DATALOCATOR_OUTPUTMIX*/
287*bebae9c0SAndroid Build Coastguard Worker typedef struct SLDataLocator_OutputMix {
288*bebae9c0SAndroid Build Coastguard Worker 	SLuint32 		locatorType;
289*bebae9c0SAndroid Build Coastguard Worker 	SLObjectItf		outputMix;
290*bebae9c0SAndroid Build Coastguard Worker } SLDataLocator_OutputMix;
291*bebae9c0SAndroid Build Coastguard Worker 
292*bebae9c0SAndroid Build Coastguard Worker 
293*bebae9c0SAndroid Build Coastguard Worker /** BufferQueue-based data locator definition where locatorType must be SL_DATALOCATOR_BUFFERQUEUE*/
294*bebae9c0SAndroid Build Coastguard Worker typedef struct SLDataLocator_BufferQueue {
295*bebae9c0SAndroid Build Coastguard Worker 	SLuint32	locatorType;
296*bebae9c0SAndroid Build Coastguard Worker 	SLuint32	numBuffers;
297*bebae9c0SAndroid Build Coastguard Worker } SLDataLocator_BufferQueue;
298*bebae9c0SAndroid Build Coastguard Worker 
299*bebae9c0SAndroid Build Coastguard Worker /** MidiBufferQueue-based data locator definition where locatorType must be SL_DATALOCATOR_MIDIBUFFERQUEUE*/
300*bebae9c0SAndroid Build Coastguard Worker typedef struct SLDataLocator_MIDIBufferQueue {
301*bebae9c0SAndroid Build Coastguard Worker 	SLuint32	locatorType;
302*bebae9c0SAndroid Build Coastguard Worker 	SLuint32	tpqn;
303*bebae9c0SAndroid Build Coastguard Worker 	SLuint32	numBuffers;
304*bebae9c0SAndroid Build Coastguard Worker } SLDataLocator_MIDIBufferQueue;
305*bebae9c0SAndroid Build Coastguard Worker 
306*bebae9c0SAndroid Build Coastguard Worker /** Data format defines */
307*bebae9c0SAndroid Build Coastguard Worker #define SL_DATAFORMAT_MIME		((SLuint32) 0x00000001)
308*bebae9c0SAndroid Build Coastguard Worker #define SL_DATAFORMAT_PCM		((SLuint32) 0x00000002)
309*bebae9c0SAndroid Build Coastguard Worker #define SL_DATAFORMAT_RESERVED3	((SLuint32) 0x00000003)
310*bebae9c0SAndroid Build Coastguard Worker 
311*bebae9c0SAndroid Build Coastguard Worker 
312*bebae9c0SAndroid Build Coastguard Worker /** MIME-type-based data format definition where formatType must be SL_DATAFORMAT_MIME*/
313*bebae9c0SAndroid Build Coastguard Worker typedef struct SLDataFormat_MIME_ {
314*bebae9c0SAndroid Build Coastguard Worker 	SLuint32 		formatType;
315*bebae9c0SAndroid Build Coastguard Worker 	SLchar * 		mimeType;
316*bebae9c0SAndroid Build Coastguard Worker 	SLuint32		containerType;
317*bebae9c0SAndroid Build Coastguard Worker } SLDataFormat_MIME;
318*bebae9c0SAndroid Build Coastguard Worker 
319*bebae9c0SAndroid Build Coastguard Worker /* Byte order of a block of 16- or 32-bit data */
320*bebae9c0SAndroid Build Coastguard Worker #define SL_BYTEORDER_BIGENDIAN				((SLuint32) 0x00000001)
321*bebae9c0SAndroid Build Coastguard Worker #define SL_BYTEORDER_LITTLEENDIAN			((SLuint32) 0x00000002)
322*bebae9c0SAndroid Build Coastguard Worker 
323*bebae9c0SAndroid Build Coastguard Worker /* Container type */
324*bebae9c0SAndroid Build Coastguard Worker #define SL_CONTAINERTYPE_UNSPECIFIED	((SLuint32) 0x00000001)
325*bebae9c0SAndroid Build Coastguard Worker #define SL_CONTAINERTYPE_RAW		((SLuint32) 0x00000002)
326*bebae9c0SAndroid Build Coastguard Worker #define SL_CONTAINERTYPE_ASF		((SLuint32) 0x00000003)
327*bebae9c0SAndroid Build Coastguard Worker #define SL_CONTAINERTYPE_AVI		((SLuint32) 0x00000004)
328*bebae9c0SAndroid Build Coastguard Worker #define SL_CONTAINERTYPE_BMP		((SLuint32) 0x00000005)
329*bebae9c0SAndroid Build Coastguard Worker #define SL_CONTAINERTYPE_JPG		((SLuint32) 0x00000006)
330*bebae9c0SAndroid Build Coastguard Worker #define SL_CONTAINERTYPE_JPG2000		((SLuint32) 0x00000007)
331*bebae9c0SAndroid Build Coastguard Worker #define SL_CONTAINERTYPE_M4A		((SLuint32) 0x00000008)
332*bebae9c0SAndroid Build Coastguard Worker #define SL_CONTAINERTYPE_MP3		((SLuint32) 0x00000009)
333*bebae9c0SAndroid Build Coastguard Worker #define SL_CONTAINERTYPE_MP4		((SLuint32) 0x0000000A)
334*bebae9c0SAndroid Build Coastguard Worker #define SL_CONTAINERTYPE_MPEG_ES		((SLuint32) 0x0000000B)
335*bebae9c0SAndroid Build Coastguard Worker #define SL_CONTAINERTYPE_MPEG_PS		((SLuint32) 0x0000000C)
336*bebae9c0SAndroid Build Coastguard Worker #define SL_CONTAINERTYPE_MPEG_TS		((SLuint32) 0x0000000D)
337*bebae9c0SAndroid Build Coastguard Worker #define SL_CONTAINERTYPE_QT		((SLuint32) 0x0000000E)
338*bebae9c0SAndroid Build Coastguard Worker #define SL_CONTAINERTYPE_WAV		((SLuint32) 0x0000000F)
339*bebae9c0SAndroid Build Coastguard Worker #define SL_CONTAINERTYPE_XMF_0		((SLuint32) 0x00000010)
340*bebae9c0SAndroid Build Coastguard Worker #define SL_CONTAINERTYPE_XMF_1		((SLuint32) 0x00000011)
341*bebae9c0SAndroid Build Coastguard Worker #define SL_CONTAINERTYPE_XMF_2		((SLuint32) 0x00000012)
342*bebae9c0SAndroid Build Coastguard Worker #define SL_CONTAINERTYPE_XMF_3		((SLuint32) 0x00000013)
343*bebae9c0SAndroid Build Coastguard Worker #define SL_CONTAINERTYPE_XMF_GENERIC	((SLuint32) 0x00000014)
344*bebae9c0SAndroid Build Coastguard Worker #define SL_CONTAINERTYPE_AMR  		((SLuint32) 0x00000015)
345*bebae9c0SAndroid Build Coastguard Worker #define SL_CONTAINERTYPE_AAC		((SLuint32) 0x00000016)
346*bebae9c0SAndroid Build Coastguard Worker #define SL_CONTAINERTYPE_3GPP		((SLuint32) 0x00000017)
347*bebae9c0SAndroid Build Coastguard Worker #define SL_CONTAINERTYPE_3GA		((SLuint32) 0x00000018)
348*bebae9c0SAndroid Build Coastguard Worker #define SL_CONTAINERTYPE_RM		((SLuint32) 0x00000019)
349*bebae9c0SAndroid Build Coastguard Worker #define SL_CONTAINERTYPE_DMF		((SLuint32) 0x0000001A)
350*bebae9c0SAndroid Build Coastguard Worker #define SL_CONTAINERTYPE_SMF		((SLuint32) 0x0000001B)
351*bebae9c0SAndroid Build Coastguard Worker #define SL_CONTAINERTYPE_MOBILE_DLS	((SLuint32) 0x0000001C)
352*bebae9c0SAndroid Build Coastguard Worker #define SL_CONTAINERTYPE_OGG	((SLuint32) 0x0000001D)
353*bebae9c0SAndroid Build Coastguard Worker 
354*bebae9c0SAndroid Build Coastguard Worker 
355*bebae9c0SAndroid Build Coastguard Worker /** PCM-type-based data format definition where formatType must be SL_DATAFORMAT_PCM*/
356*bebae9c0SAndroid Build Coastguard Worker typedef struct SLDataFormat_PCM_ {
357*bebae9c0SAndroid Build Coastguard Worker 	SLuint32 		formatType;
358*bebae9c0SAndroid Build Coastguard Worker 	SLuint32 		numChannels;
359*bebae9c0SAndroid Build Coastguard Worker 	SLuint32 		samplesPerSec;
360*bebae9c0SAndroid Build Coastguard Worker 	SLuint32 		bitsPerSample;
361*bebae9c0SAndroid Build Coastguard Worker 	SLuint32 		containerSize;
362*bebae9c0SAndroid Build Coastguard Worker 	SLuint32 		channelMask;
363*bebae9c0SAndroid Build Coastguard Worker 	SLuint32		endianness;
364*bebae9c0SAndroid Build Coastguard Worker } SLDataFormat_PCM;
365*bebae9c0SAndroid Build Coastguard Worker 
366*bebae9c0SAndroid Build Coastguard Worker typedef struct SLDataSource_ {
367*bebae9c0SAndroid Build Coastguard Worker 	void *pLocator;
368*bebae9c0SAndroid Build Coastguard Worker 	void *pFormat;
369*bebae9c0SAndroid Build Coastguard Worker } SLDataSource;
370*bebae9c0SAndroid Build Coastguard Worker 
371*bebae9c0SAndroid Build Coastguard Worker 
372*bebae9c0SAndroid Build Coastguard Worker typedef struct SLDataSink_ {
373*bebae9c0SAndroid Build Coastguard Worker 	void *pLocator;
374*bebae9c0SAndroid Build Coastguard Worker 	void *pFormat;
375*bebae9c0SAndroid Build Coastguard Worker } SLDataSink;
376*bebae9c0SAndroid Build Coastguard Worker 
377*bebae9c0SAndroid Build Coastguard Worker 
378*bebae9c0SAndroid Build Coastguard Worker 
379*bebae9c0SAndroid Build Coastguard Worker 
380*bebae9c0SAndroid Build Coastguard Worker 
381*bebae9c0SAndroid Build Coastguard Worker 
382*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
383*bebae9c0SAndroid Build Coastguard Worker /* Standard Object Interface                                                 */
384*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
385*bebae9c0SAndroid Build Coastguard Worker 
386*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_OBJECT;
387*bebae9c0SAndroid Build Coastguard Worker 
388*bebae9c0SAndroid Build Coastguard Worker /** Object callback */
389*bebae9c0SAndroid Build Coastguard Worker 
390*bebae9c0SAndroid Build Coastguard Worker 
391*bebae9c0SAndroid Build Coastguard Worker typedef void (SLAPIENTRY *slObjectCallback) (
392*bebae9c0SAndroid Build Coastguard Worker 	SLObjectItf caller,
393*bebae9c0SAndroid Build Coastguard Worker 	const void * pContext,
394*bebae9c0SAndroid Build Coastguard Worker 	SLuint32 event,
395*bebae9c0SAndroid Build Coastguard Worker 	SLresult result,
396*bebae9c0SAndroid Build Coastguard Worker     SLuint32 param,
397*bebae9c0SAndroid Build Coastguard Worker     void *pInterface
398*bebae9c0SAndroid Build Coastguard Worker );
399*bebae9c0SAndroid Build Coastguard Worker 
400*bebae9c0SAndroid Build Coastguard Worker 
401*bebae9c0SAndroid Build Coastguard Worker struct SLObjectItf_ {
402*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*Realize) (
403*bebae9c0SAndroid Build Coastguard Worker 		SLObjectItf self,
404*bebae9c0SAndroid Build Coastguard Worker 		SLboolean async
405*bebae9c0SAndroid Build Coastguard Worker 	);
406*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*Resume) (
407*bebae9c0SAndroid Build Coastguard Worker 		SLObjectItf self,
408*bebae9c0SAndroid Build Coastguard Worker 		SLboolean async
409*bebae9c0SAndroid Build Coastguard Worker 	);
410*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetState) (
411*bebae9c0SAndroid Build Coastguard Worker 		SLObjectItf self,
412*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 * pState
413*bebae9c0SAndroid Build Coastguard Worker 	);
414*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetInterface) (
415*bebae9c0SAndroid Build Coastguard Worker 		SLObjectItf self,
416*bebae9c0SAndroid Build Coastguard Worker 		const SLInterfaceID iid,
417*bebae9c0SAndroid Build Coastguard Worker 		void * pInterface
418*bebae9c0SAndroid Build Coastguard Worker 	);
419*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*RegisterCallback) (
420*bebae9c0SAndroid Build Coastguard Worker 		SLObjectItf self,
421*bebae9c0SAndroid Build Coastguard Worker 		slObjectCallback callback,
422*bebae9c0SAndroid Build Coastguard Worker 		void * pContext
423*bebae9c0SAndroid Build Coastguard Worker 	);
424*bebae9c0SAndroid Build Coastguard Worker 	void (*AbortAsyncOperation) (
425*bebae9c0SAndroid Build Coastguard Worker 		SLObjectItf self
426*bebae9c0SAndroid Build Coastguard Worker 	);
427*bebae9c0SAndroid Build Coastguard Worker 	void (*Destroy) (
428*bebae9c0SAndroid Build Coastguard Worker 		SLObjectItf self
429*bebae9c0SAndroid Build Coastguard Worker 	);
430*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetPriority) (
431*bebae9c0SAndroid Build Coastguard Worker 		SLObjectItf self,
432*bebae9c0SAndroid Build Coastguard Worker 		SLint32 priority,
433*bebae9c0SAndroid Build Coastguard Worker 		SLboolean preemptable
434*bebae9c0SAndroid Build Coastguard Worker 	);
435*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetPriority) (
436*bebae9c0SAndroid Build Coastguard Worker 		SLObjectItf self,
437*bebae9c0SAndroid Build Coastguard Worker 		SLint32 *pPriority,
438*bebae9c0SAndroid Build Coastguard Worker 		SLboolean *pPreemptable
439*bebae9c0SAndroid Build Coastguard Worker 	);
440*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetLossOfControlInterfaces) (
441*bebae9c0SAndroid Build Coastguard Worker 		SLObjectItf self,
442*bebae9c0SAndroid Build Coastguard Worker 		SLint16 numInterfaces,
443*bebae9c0SAndroid Build Coastguard Worker 		SLInterfaceID * pInterfaceIDs,
444*bebae9c0SAndroid Build Coastguard Worker 		SLboolean enabled
445*bebae9c0SAndroid Build Coastguard Worker 	);
446*bebae9c0SAndroid Build Coastguard Worker };
447*bebae9c0SAndroid Build Coastguard Worker 
448*bebae9c0SAndroid Build Coastguard Worker 
449*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
450*bebae9c0SAndroid Build Coastguard Worker /* Audio IO Device capabilities interface                                    */
451*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
452*bebae9c0SAndroid Build Coastguard Worker 
453*bebae9c0SAndroid Build Coastguard Worker #define SL_DEFAULTDEVICEID_AUDIOINPUT 	((SLuint32) 0xFFFFFFFF)
454*bebae9c0SAndroid Build Coastguard Worker #define SL_DEFAULTDEVICEID_AUDIOOUTPUT 	((SLuint32) 0xFFFFFFFE)
455*bebae9c0SAndroid Build Coastguard Worker #define SL_DEFAULTDEVICEID_LED          ((SLuint32) 0xFFFFFFFD)
456*bebae9c0SAndroid Build Coastguard Worker #define SL_DEFAULTDEVICEID_VIBRA        ((SLuint32) 0xFFFFFFFC)
457*bebae9c0SAndroid Build Coastguard Worker #define SL_DEFAULTDEVICEID_RESERVED1    ((SLuint32) 0xFFFFFFFB)
458*bebae9c0SAndroid Build Coastguard Worker 
459*bebae9c0SAndroid Build Coastguard Worker 
460*bebae9c0SAndroid Build Coastguard Worker #define SL_DEVCONNECTION_INTEGRATED         ((SLint16) 0x0001)
461*bebae9c0SAndroid Build Coastguard Worker #define SL_DEVCONNECTION_ATTACHED_WIRED     ((SLint16) 0x0100)
462*bebae9c0SAndroid Build Coastguard Worker #define SL_DEVCONNECTION_ATTACHED_WIRELESS  ((SLint16) 0x0200)
463*bebae9c0SAndroid Build Coastguard Worker #define SL_DEVCONNECTION_NETWORK 		    ((SLint16) 0x0400)
464*bebae9c0SAndroid Build Coastguard Worker 
465*bebae9c0SAndroid Build Coastguard Worker 
466*bebae9c0SAndroid Build Coastguard Worker #define SL_DEVLOCATION_HANDSET 	((SLuint16) 0x0001)
467*bebae9c0SAndroid Build Coastguard Worker #define SL_DEVLOCATION_HEADSET 	((SLuint16) 0x0002)
468*bebae9c0SAndroid Build Coastguard Worker #define SL_DEVLOCATION_CARKIT 	((SLuint16) 0x0003)
469*bebae9c0SAndroid Build Coastguard Worker #define SL_DEVLOCATION_DOCK 	((SLuint16) 0x0004)
470*bebae9c0SAndroid Build Coastguard Worker #define SL_DEVLOCATION_REMOTE 	((SLuint16) 0x0005)
471*bebae9c0SAndroid Build Coastguard Worker /* Note: SL_DEVLOCATION_RESLTE is deprecated, use SL_DEVLOCATION_REMOTE instead. */
472*bebae9c0SAndroid Build Coastguard Worker #define SL_DEVLOCATION_RESLTE 	((SLuint16) 0x0005)
473*bebae9c0SAndroid Build Coastguard Worker 
474*bebae9c0SAndroid Build Coastguard Worker 
475*bebae9c0SAndroid Build Coastguard Worker #define SL_DEVSCOPE_UNKNOWN     ((SLuint16) 0x0001)
476*bebae9c0SAndroid Build Coastguard Worker #define SL_DEVSCOPE_ENVIRONMENT ((SLuint16) 0x0002)
477*bebae9c0SAndroid Build Coastguard Worker #define SL_DEVSCOPE_USER        ((SLuint16) 0x0003)
478*bebae9c0SAndroid Build Coastguard Worker 
479*bebae9c0SAndroid Build Coastguard Worker 
480*bebae9c0SAndroid Build Coastguard Worker typedef struct SLAudioInputDescriptor_ {
481*bebae9c0SAndroid Build Coastguard Worker 	SLchar *deviceName;
482*bebae9c0SAndroid Build Coastguard Worker 	SLint16 deviceConnection;
483*bebae9c0SAndroid Build Coastguard Worker 	SLint16 deviceScope;
484*bebae9c0SAndroid Build Coastguard Worker 	SLint16 deviceLocation;
485*bebae9c0SAndroid Build Coastguard Worker 	SLboolean isForTelephony;
486*bebae9c0SAndroid Build Coastguard Worker 	SLmilliHertz minSampleRate;
487*bebae9c0SAndroid Build Coastguard Worker 	SLmilliHertz maxSampleRate;
488*bebae9c0SAndroid Build Coastguard Worker 	SLboolean isFreqRangeContinuous;
489*bebae9c0SAndroid Build Coastguard Worker 	SLmilliHertz *samplingRatesSupported;
490*bebae9c0SAndroid Build Coastguard Worker 	SLint16 numOfSamplingRatesSupported;
491*bebae9c0SAndroid Build Coastguard Worker 	SLint16 maxChannels;
492*bebae9c0SAndroid Build Coastguard Worker } SLAudioInputDescriptor;
493*bebae9c0SAndroid Build Coastguard Worker 
494*bebae9c0SAndroid Build Coastguard Worker 
495*bebae9c0SAndroid Build Coastguard Worker typedef struct SLAudioOutputDescriptor_ {
496*bebae9c0SAndroid Build Coastguard Worker 	SLchar *pDeviceName;
497*bebae9c0SAndroid Build Coastguard Worker 	SLint16 deviceConnection;
498*bebae9c0SAndroid Build Coastguard Worker 	SLint16 deviceScope;
499*bebae9c0SAndroid Build Coastguard Worker 	SLint16 deviceLocation;
500*bebae9c0SAndroid Build Coastguard Worker 	SLboolean isForTelephony;
501*bebae9c0SAndroid Build Coastguard Worker 	SLmilliHertz minSampleRate;
502*bebae9c0SAndroid Build Coastguard Worker 	SLmilliHertz maxSampleRate;
503*bebae9c0SAndroid Build Coastguard Worker 	SLboolean isFreqRangeContinuous;
504*bebae9c0SAndroid Build Coastguard Worker 	SLmilliHertz *samplingRatesSupported;
505*bebae9c0SAndroid Build Coastguard Worker 	SLint16 numOfSamplingRatesSupported;
506*bebae9c0SAndroid Build Coastguard Worker 	SLint16 maxChannels;
507*bebae9c0SAndroid Build Coastguard Worker } SLAudioOutputDescriptor;
508*bebae9c0SAndroid Build Coastguard Worker 
509*bebae9c0SAndroid Build Coastguard Worker 
510*bebae9c0SAndroid Build Coastguard Worker 
511*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_AUDIOIODEVICECAPABILITIES;
512*bebae9c0SAndroid Build Coastguard Worker 
513*bebae9c0SAndroid Build Coastguard Worker struct SLAudioIODeviceCapabilitiesItf_;
514*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLAudioIODeviceCapabilitiesItf_ * const * SLAudioIODeviceCapabilitiesItf;
515*bebae9c0SAndroid Build Coastguard Worker 
516*bebae9c0SAndroid Build Coastguard Worker 
517*bebae9c0SAndroid Build Coastguard Worker typedef void (SLAPIENTRY *slAvailableAudioInputsChangedCallback) (
518*bebae9c0SAndroid Build Coastguard Worker 	SLAudioIODeviceCapabilitiesItf caller,
519*bebae9c0SAndroid Build Coastguard Worker 	void *pContext,
520*bebae9c0SAndroid Build Coastguard Worker 	SLuint32 deviceID,
521*bebae9c0SAndroid Build Coastguard Worker 	SLint32 numInputs,
522*bebae9c0SAndroid Build Coastguard Worker 	SLboolean isNew
523*bebae9c0SAndroid Build Coastguard Worker );
524*bebae9c0SAndroid Build Coastguard Worker 
525*bebae9c0SAndroid Build Coastguard Worker 
526*bebae9c0SAndroid Build Coastguard Worker typedef void (SLAPIENTRY *slAvailableAudioOutputsChangedCallback) (
527*bebae9c0SAndroid Build Coastguard Worker 	SLAudioIODeviceCapabilitiesItf caller,
528*bebae9c0SAndroid Build Coastguard Worker 	void *pContext,
529*bebae9c0SAndroid Build Coastguard Worker 	SLuint32 deviceID,
530*bebae9c0SAndroid Build Coastguard Worker 	SLint32 numOutputs,
531*bebae9c0SAndroid Build Coastguard Worker 	SLboolean isNew
532*bebae9c0SAndroid Build Coastguard Worker );
533*bebae9c0SAndroid Build Coastguard Worker 
534*bebae9c0SAndroid Build Coastguard Worker typedef void (SLAPIENTRY *slDefaultDeviceIDMapChangedCallback) (
535*bebae9c0SAndroid Build Coastguard Worker 	SLAudioIODeviceCapabilitiesItf caller,
536*bebae9c0SAndroid Build Coastguard Worker 	void *pContext,
537*bebae9c0SAndroid Build Coastguard Worker 	SLboolean isOutput,
538*bebae9c0SAndroid Build Coastguard Worker 	SLint32 numDevices
539*bebae9c0SAndroid Build Coastguard Worker );
540*bebae9c0SAndroid Build Coastguard Worker 
541*bebae9c0SAndroid Build Coastguard Worker 
542*bebae9c0SAndroid Build Coastguard Worker struct SLAudioIODeviceCapabilitiesItf_ {
543*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetAvailableAudioInputs)(
544*bebae9c0SAndroid Build Coastguard Worker 		SLAudioIODeviceCapabilitiesItf self,
545*bebae9c0SAndroid Build Coastguard Worker 		SLint32  *pNumInputs,
546*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 *pInputDeviceIDs
547*bebae9c0SAndroid Build Coastguard Worker 	);
548*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*QueryAudioInputCapabilities)(
549*bebae9c0SAndroid Build Coastguard Worker 		SLAudioIODeviceCapabilitiesItf self,
550*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 deviceId,
551*bebae9c0SAndroid Build Coastguard Worker 		SLAudioInputDescriptor *pDescriptor
552*bebae9c0SAndroid Build Coastguard Worker 	);
553*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*RegisterAvailableAudioInputsChangedCallback) (
554*bebae9c0SAndroid Build Coastguard Worker 		SLAudioIODeviceCapabilitiesItf self,
555*bebae9c0SAndroid Build Coastguard Worker 		slAvailableAudioInputsChangedCallback callback,
556*bebae9c0SAndroid Build Coastguard Worker 		void *pContext
557*bebae9c0SAndroid Build Coastguard Worker 	);
558*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetAvailableAudioOutputs)(
559*bebae9c0SAndroid Build Coastguard Worker 		SLAudioIODeviceCapabilitiesItf self,
560*bebae9c0SAndroid Build Coastguard Worker 		SLint32 *pNumOutputs,
561*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 *pOutputDeviceIDs
562*bebae9c0SAndroid Build Coastguard Worker 	);
563*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*QueryAudioOutputCapabilities)(
564*bebae9c0SAndroid Build Coastguard Worker 		SLAudioIODeviceCapabilitiesItf self,
565*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 deviceId,
566*bebae9c0SAndroid Build Coastguard Worker 		SLAudioOutputDescriptor *pDescriptor
567*bebae9c0SAndroid Build Coastguard Worker 	);
568*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*RegisterAvailableAudioOutputsChangedCallback) (
569*bebae9c0SAndroid Build Coastguard Worker 		SLAudioIODeviceCapabilitiesItf self,
570*bebae9c0SAndroid Build Coastguard Worker 		slAvailableAudioOutputsChangedCallback callback,
571*bebae9c0SAndroid Build Coastguard Worker 		void *pContext
572*bebae9c0SAndroid Build Coastguard Worker 	);
573*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*RegisterDefaultDeviceIDMapChangedCallback) (
574*bebae9c0SAndroid Build Coastguard Worker 		SLAudioIODeviceCapabilitiesItf self,
575*bebae9c0SAndroid Build Coastguard Worker 		slDefaultDeviceIDMapChangedCallback callback,
576*bebae9c0SAndroid Build Coastguard Worker 		void *pContext
577*bebae9c0SAndroid Build Coastguard Worker 	);
578*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetAssociatedAudioInputs) (
579*bebae9c0SAndroid Build Coastguard Worker 		SLAudioIODeviceCapabilitiesItf self,
580*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 deviceId,
581*bebae9c0SAndroid Build Coastguard Worker 		SLint32 *pNumAudioInputs,
582*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 *pAudioInputDeviceIDs
583*bebae9c0SAndroid Build Coastguard Worker 	);
584*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetAssociatedAudioOutputs) (
585*bebae9c0SAndroid Build Coastguard Worker 		SLAudioIODeviceCapabilitiesItf self,
586*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 deviceId,
587*bebae9c0SAndroid Build Coastguard Worker 		SLint32 *pNumAudioOutputs,
588*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 *pAudioOutputDeviceIDs
589*bebae9c0SAndroid Build Coastguard Worker 	);
590*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetDefaultAudioDevices) (
591*bebae9c0SAndroid Build Coastguard Worker 		SLAudioIODeviceCapabilitiesItf self,
592*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 defaultDeviceID,
593*bebae9c0SAndroid Build Coastguard Worker 		SLint32 *pNumAudioDevices,
594*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 *pAudioDeviceIDs
595*bebae9c0SAndroid Build Coastguard Worker 	);
596*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*QuerySampleFormatsSupported)(
597*bebae9c0SAndroid Build Coastguard Worker 		SLAudioIODeviceCapabilitiesItf self,
598*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 deviceId,
599*bebae9c0SAndroid Build Coastguard Worker 		SLmilliHertz samplingRate,
600*bebae9c0SAndroid Build Coastguard Worker 		SLint32 *pSampleFormats,
601*bebae9c0SAndroid Build Coastguard Worker 		SLint32 *pNumOfSampleFormats
602*bebae9c0SAndroid Build Coastguard Worker 	);
603*bebae9c0SAndroid Build Coastguard Worker };
604*bebae9c0SAndroid Build Coastguard Worker 
605*bebae9c0SAndroid Build Coastguard Worker 
606*bebae9c0SAndroid Build Coastguard Worker 
607*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
608*bebae9c0SAndroid Build Coastguard Worker /* Capabilities of the LED array IODevice                                    */
609*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
610*bebae9c0SAndroid Build Coastguard Worker 
611*bebae9c0SAndroid Build Coastguard Worker typedef struct SLLEDDescriptor_ {
612*bebae9c0SAndroid Build Coastguard Worker 	SLuint8   ledCount;
613*bebae9c0SAndroid Build Coastguard Worker 	SLuint8   primaryLED;
614*bebae9c0SAndroid Build Coastguard Worker 	SLuint32  colorMask;
615*bebae9c0SAndroid Build Coastguard Worker } SLLEDDescriptor;
616*bebae9c0SAndroid Build Coastguard Worker 
617*bebae9c0SAndroid Build Coastguard Worker 
618*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
619*bebae9c0SAndroid Build Coastguard Worker /* LED Array interface                                                       */
620*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
621*bebae9c0SAndroid Build Coastguard Worker 
622*bebae9c0SAndroid Build Coastguard Worker typedef struct SLHSL_ {
623*bebae9c0SAndroid Build Coastguard Worker     SLmillidegree  hue;
624*bebae9c0SAndroid Build Coastguard Worker     SLpermille     saturation;
625*bebae9c0SAndroid Build Coastguard Worker     SLpermille     lightness;
626*bebae9c0SAndroid Build Coastguard Worker } SLHSL;
627*bebae9c0SAndroid Build Coastguard Worker 
628*bebae9c0SAndroid Build Coastguard Worker 
629*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_LED;
630*bebae9c0SAndroid Build Coastguard Worker 
631*bebae9c0SAndroid Build Coastguard Worker struct SLLEDArrayItf_;
632*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLLEDArrayItf_ * const * SLLEDArrayItf;
633*bebae9c0SAndroid Build Coastguard Worker 
634*bebae9c0SAndroid Build Coastguard Worker struct SLLEDArrayItf_ {
635*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*ActivateLEDArray) (
636*bebae9c0SAndroid Build Coastguard Worker 		SLLEDArrayItf self,
637*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 lightMask
638*bebae9c0SAndroid Build Coastguard Worker 	);
639*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*IsLEDArrayActivated) (
640*bebae9c0SAndroid Build Coastguard Worker 		SLLEDArrayItf self,
641*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 *lightMask
642*bebae9c0SAndroid Build Coastguard Worker 	);
643*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetColor) (
644*bebae9c0SAndroid Build Coastguard Worker 		SLLEDArrayItf self,
645*bebae9c0SAndroid Build Coastguard Worker 		SLuint8 index,
646*bebae9c0SAndroid Build Coastguard Worker 		const SLHSL *color
647*bebae9c0SAndroid Build Coastguard Worker 	);
648*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetColor) (
649*bebae9c0SAndroid Build Coastguard Worker 		SLLEDArrayItf self,
650*bebae9c0SAndroid Build Coastguard Worker 		SLuint8 index,
651*bebae9c0SAndroid Build Coastguard Worker 		SLHSL *color
652*bebae9c0SAndroid Build Coastguard Worker 	);
653*bebae9c0SAndroid Build Coastguard Worker };
654*bebae9c0SAndroid Build Coastguard Worker 
655*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
656*bebae9c0SAndroid Build Coastguard Worker /* Capabilities of the Vibra IODevice                                        */
657*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
658*bebae9c0SAndroid Build Coastguard Worker 
659*bebae9c0SAndroid Build Coastguard Worker typedef struct SLVibraDescriptor_ {
660*bebae9c0SAndroid Build Coastguard Worker 	SLboolean supportsFrequency;
661*bebae9c0SAndroid Build Coastguard Worker 	SLboolean supportsIntensity;
662*bebae9c0SAndroid Build Coastguard Worker 	SLmilliHertz  minFrequency;
663*bebae9c0SAndroid Build Coastguard Worker 	SLmilliHertz  maxFrequency;
664*bebae9c0SAndroid Build Coastguard Worker } SLVibraDescriptor;
665*bebae9c0SAndroid Build Coastguard Worker 
666*bebae9c0SAndroid Build Coastguard Worker 
667*bebae9c0SAndroid Build Coastguard Worker 
668*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
669*bebae9c0SAndroid Build Coastguard Worker /* Vibra interface                                                           */
670*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
671*bebae9c0SAndroid Build Coastguard Worker 
672*bebae9c0SAndroid Build Coastguard Worker 
673*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_VIBRA;
674*bebae9c0SAndroid Build Coastguard Worker 
675*bebae9c0SAndroid Build Coastguard Worker 
676*bebae9c0SAndroid Build Coastguard Worker struct SLVibraItf_;
677*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLVibraItf_ * const * SLVibraItf;
678*bebae9c0SAndroid Build Coastguard Worker 
679*bebae9c0SAndroid Build Coastguard Worker struct SLVibraItf_ {
680*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*Vibrate) (
681*bebae9c0SAndroid Build Coastguard Worker 		SLVibraItf self,
682*bebae9c0SAndroid Build Coastguard Worker 		SLboolean vibrate
683*bebae9c0SAndroid Build Coastguard Worker 	);
684*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*IsVibrating) (
685*bebae9c0SAndroid Build Coastguard Worker 		SLVibraItf self,
686*bebae9c0SAndroid Build Coastguard Worker 		SLboolean *pVibrating
687*bebae9c0SAndroid Build Coastguard Worker 	);
688*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetFrequency) (
689*bebae9c0SAndroid Build Coastguard Worker 		SLVibraItf self,
690*bebae9c0SAndroid Build Coastguard Worker 		SLmilliHertz frequency
691*bebae9c0SAndroid Build Coastguard Worker 	);
692*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetFrequency) (
693*bebae9c0SAndroid Build Coastguard Worker 		SLVibraItf self,
694*bebae9c0SAndroid Build Coastguard Worker 		SLmilliHertz *pFrequency
695*bebae9c0SAndroid Build Coastguard Worker 	);
696*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetIntensity) (
697*bebae9c0SAndroid Build Coastguard Worker 		SLVibraItf self,
698*bebae9c0SAndroid Build Coastguard Worker 		SLpermille intensity
699*bebae9c0SAndroid Build Coastguard Worker 	);
700*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetIntensity) (
701*bebae9c0SAndroid Build Coastguard Worker 		SLVibraItf self,
702*bebae9c0SAndroid Build Coastguard Worker 		SLpermille *pIntensity
703*bebae9c0SAndroid Build Coastguard Worker 	);
704*bebae9c0SAndroid Build Coastguard Worker };
705*bebae9c0SAndroid Build Coastguard Worker 
706*bebae9c0SAndroid Build Coastguard Worker 
707*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
708*bebae9c0SAndroid Build Coastguard Worker /* Meta data extraction related types and interface                          */
709*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
710*bebae9c0SAndroid Build Coastguard Worker 
711*bebae9c0SAndroid Build Coastguard Worker #define SL_CHARACTERENCODING_UNKNOWN			((SLuint32) 0x00000000)
712*bebae9c0SAndroid Build Coastguard Worker #define SL_CHARACTERENCODING_BINARY       ((SLuint32) 0x00000001)
713*bebae9c0SAndroid Build Coastguard Worker #define SL_CHARACTERENCODING_ASCII        ((SLuint32) 0x00000002)
714*bebae9c0SAndroid Build Coastguard Worker #define SL_CHARACTERENCODING_BIG5         ((SLuint32) 0x00000003)
715*bebae9c0SAndroid Build Coastguard Worker #define SL_CHARACTERENCODING_CODEPAGE1252		((SLuint32) 0x00000004)
716*bebae9c0SAndroid Build Coastguard Worker #define SL_CHARACTERENCODING_GB2312			((SLuint32) 0x00000005)
717*bebae9c0SAndroid Build Coastguard Worker #define SL_CHARACTERENCODING_HZGB2312			((SLuint32) 0x00000006)
718*bebae9c0SAndroid Build Coastguard Worker #define SL_CHARACTERENCODING_GB12345			((SLuint32) 0x00000007)
719*bebae9c0SAndroid Build Coastguard Worker #define SL_CHARACTERENCODING_GB18030			((SLuint32) 0x00000008)
720*bebae9c0SAndroid Build Coastguard Worker #define SL_CHARACTERENCODING_GBK				((SLuint32) 0x00000009)
721*bebae9c0SAndroid Build Coastguard Worker #define SL_CHARACTERENCODING_IMAPUTF7			((SLuint32) 0x0000000A)
722*bebae9c0SAndroid Build Coastguard Worker #define SL_CHARACTERENCODING_ISO2022JP			((SLuint32) 0x0000000B)
723*bebae9c0SAndroid Build Coastguard Worker #define SL_CHARACTERENCODING_ISO2022JP1		((SLuint32) 0x0000000B)
724*bebae9c0SAndroid Build Coastguard Worker #define SL_CHARACTERENCODING_ISO88591			((SLuint32) 0x0000000C)
725*bebae9c0SAndroid Build Coastguard Worker #define SL_CHARACTERENCODING_ISO885910			((SLuint32) 0x0000000D)
726*bebae9c0SAndroid Build Coastguard Worker #define SL_CHARACTERENCODING_ISO885913			((SLuint32) 0x0000000E)
727*bebae9c0SAndroid Build Coastguard Worker #define SL_CHARACTERENCODING_ISO885914			((SLuint32) 0x0000000F)
728*bebae9c0SAndroid Build Coastguard Worker #define SL_CHARACTERENCODING_ISO885915			((SLuint32) 0x00000010)
729*bebae9c0SAndroid Build Coastguard Worker #define SL_CHARACTERENCODING_ISO88592			((SLuint32) 0x00000011)
730*bebae9c0SAndroid Build Coastguard Worker #define SL_CHARACTERENCODING_ISO88593			((SLuint32) 0x00000012)
731*bebae9c0SAndroid Build Coastguard Worker #define SL_CHARACTERENCODING_ISO88594			((SLuint32) 0x00000013)
732*bebae9c0SAndroid Build Coastguard Worker #define SL_CHARACTERENCODING_ISO88595			((SLuint32) 0x00000014)
733*bebae9c0SAndroid Build Coastguard Worker #define SL_CHARACTERENCODING_ISO88596			((SLuint32) 0x00000015)
734*bebae9c0SAndroid Build Coastguard Worker #define SL_CHARACTERENCODING_ISO88597			((SLuint32) 0x00000016)
735*bebae9c0SAndroid Build Coastguard Worker #define SL_CHARACTERENCODING_ISO88598			((SLuint32) 0x00000017)
736*bebae9c0SAndroid Build Coastguard Worker #define SL_CHARACTERENCODING_ISO88599			((SLuint32) 0x00000018)
737*bebae9c0SAndroid Build Coastguard Worker #define SL_CHARACTERENCODING_ISOEUCJP			((SLuint32) 0x00000019)
738*bebae9c0SAndroid Build Coastguard Worker #define SL_CHARACTERENCODING_SHIFTJIS			((SLuint32) 0x0000001A)
739*bebae9c0SAndroid Build Coastguard Worker #define SL_CHARACTERENCODING_SMS7BIT			((SLuint32) 0x0000001B)
740*bebae9c0SAndroid Build Coastguard Worker #define SL_CHARACTERENCODING_UTF7			((SLuint32) 0x0000001C)
741*bebae9c0SAndroid Build Coastguard Worker #define SL_CHARACTERENCODING_UTF8			((SLuint32) 0x0000001D)
742*bebae9c0SAndroid Build Coastguard Worker #define SL_CHARACTERENCODING_JAVACONFORMANTUTF8	((SLuint32) 0x0000001E)
743*bebae9c0SAndroid Build Coastguard Worker #define SL_CHARACTERENCODING_UTF16BE			((SLuint32) 0x0000001F)
744*bebae9c0SAndroid Build Coastguard Worker #define SL_CHARACTERENCODING_UTF16LE			((SLuint32) 0x00000020)
745*bebae9c0SAndroid Build Coastguard Worker 
746*bebae9c0SAndroid Build Coastguard Worker 
747*bebae9c0SAndroid Build Coastguard Worker #define SL_METADATA_FILTER_KEY		((SLuint8) 0x01)
748*bebae9c0SAndroid Build Coastguard Worker #define SL_METADATA_FILTER_LANG		((SLuint8) 0x02)
749*bebae9c0SAndroid Build Coastguard Worker #define SL_METADATA_FILTER_ENCODING	((SLuint8) 0x04)
750*bebae9c0SAndroid Build Coastguard Worker 
751*bebae9c0SAndroid Build Coastguard Worker 
752*bebae9c0SAndroid Build Coastguard Worker typedef struct SLMetadataInfo_ {
753*bebae9c0SAndroid Build Coastguard Worker     SLuint32     size;
754*bebae9c0SAndroid Build Coastguard Worker     SLuint32     encoding;
755*bebae9c0SAndroid Build Coastguard Worker     SLchar       langCountry[16];
756*bebae9c0SAndroid Build Coastguard Worker     SLuint8      data[1];
757*bebae9c0SAndroid Build Coastguard Worker } SLMetadataInfo;
758*bebae9c0SAndroid Build Coastguard Worker 
759*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_METADATAEXTRACTION;
760*bebae9c0SAndroid Build Coastguard Worker 
761*bebae9c0SAndroid Build Coastguard Worker struct SLMetadataExtractionItf_;
762*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLMetadataExtractionItf_ * const * SLMetadataExtractionItf;
763*bebae9c0SAndroid Build Coastguard Worker 
764*bebae9c0SAndroid Build Coastguard Worker 
765*bebae9c0SAndroid Build Coastguard Worker struct SLMetadataExtractionItf_ {
766*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetItemCount) (
767*bebae9c0SAndroid Build Coastguard Worker 		SLMetadataExtractionItf self,
768*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 *pItemCount
769*bebae9c0SAndroid Build Coastguard Worker 	);
770*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetKeySize) (
771*bebae9c0SAndroid Build Coastguard Worker 		SLMetadataExtractionItf self,
772*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 index,
773*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 *pKeySize
774*bebae9c0SAndroid Build Coastguard Worker 	);
775*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetKey) (
776*bebae9c0SAndroid Build Coastguard Worker 		SLMetadataExtractionItf self,
777*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 index,
778*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 keySize,
779*bebae9c0SAndroid Build Coastguard Worker 		SLMetadataInfo *pKey
780*bebae9c0SAndroid Build Coastguard Worker 	);
781*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetValueSize) (
782*bebae9c0SAndroid Build Coastguard Worker 		SLMetadataExtractionItf self,
783*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 index,
784*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 *pValueSize
785*bebae9c0SAndroid Build Coastguard Worker 	);
786*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetValue) (
787*bebae9c0SAndroid Build Coastguard Worker 		SLMetadataExtractionItf self,
788*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 index,
789*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 valueSize,
790*bebae9c0SAndroid Build Coastguard Worker 		SLMetadataInfo *pValue
791*bebae9c0SAndroid Build Coastguard Worker 	);
792*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*AddKeyFilter) (
793*bebae9c0SAndroid Build Coastguard Worker 		SLMetadataExtractionItf self,
794*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 keySize,
795*bebae9c0SAndroid Build Coastguard Worker 		const void *pKey,
796*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 keyEncoding,
797*bebae9c0SAndroid Build Coastguard Worker 		const SLchar *pValueLangCountry,
798*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 valueEncoding,
799*bebae9c0SAndroid Build Coastguard Worker 		SLuint8 filterMask
800*bebae9c0SAndroid Build Coastguard Worker 	);
801*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*ClearKeyFilter) (
802*bebae9c0SAndroid Build Coastguard Worker 		SLMetadataExtractionItf self
803*bebae9c0SAndroid Build Coastguard Worker 	);
804*bebae9c0SAndroid Build Coastguard Worker };
805*bebae9c0SAndroid Build Coastguard Worker 
806*bebae9c0SAndroid Build Coastguard Worker 
807*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
808*bebae9c0SAndroid Build Coastguard Worker /* Meta data traversal related types and interface                          */
809*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
810*bebae9c0SAndroid Build Coastguard Worker 
811*bebae9c0SAndroid Build Coastguard Worker #define SL_METADATATRAVERSALMODE_ALL	((SLuint32) 0x00000001)
812*bebae9c0SAndroid Build Coastguard Worker #define SL_METADATATRAVERSALMODE_NODE	((SLuint32) 0x00000002)
813*bebae9c0SAndroid Build Coastguard Worker 
814*bebae9c0SAndroid Build Coastguard Worker 
815*bebae9c0SAndroid Build Coastguard Worker #define SL_NODETYPE_UNSPECIFIED	((SLuint32) 0x00000001)
816*bebae9c0SAndroid Build Coastguard Worker #define SL_NODETYPE_AUDIO		((SLuint32) 0x00000002)
817*bebae9c0SAndroid Build Coastguard Worker #define SL_NODETYPE_VIDEO		((SLuint32) 0x00000003)
818*bebae9c0SAndroid Build Coastguard Worker #define SL_NODETYPE_IMAGE		((SLuint32) 0x00000004)
819*bebae9c0SAndroid Build Coastguard Worker 
820*bebae9c0SAndroid Build Coastguard Worker #define SL_NODE_PARENT 0xFFFFFFFF
821*bebae9c0SAndroid Build Coastguard Worker 
822*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_METADATATRAVERSAL;
823*bebae9c0SAndroid Build Coastguard Worker 
824*bebae9c0SAndroid Build Coastguard Worker struct SLMetadataTraversalItf_;
825*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLMetadataTraversalItf_ * const * SLMetadataTraversalItf;
826*bebae9c0SAndroid Build Coastguard Worker 
827*bebae9c0SAndroid Build Coastguard Worker struct SLMetadataTraversalItf_ {
828*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetMode) (
829*bebae9c0SAndroid Build Coastguard Worker 		SLMetadataTraversalItf self,
830*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 mode
831*bebae9c0SAndroid Build Coastguard Worker 	);
832*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetChildCount) (
833*bebae9c0SAndroid Build Coastguard Worker 		SLMetadataTraversalItf self,
834*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 *pCount
835*bebae9c0SAndroid Build Coastguard Worker 	);
836*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetChildMIMETypeSize) (
837*bebae9c0SAndroid Build Coastguard Worker 		SLMetadataTraversalItf self,
838*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 index,
839*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 *pSize
840*bebae9c0SAndroid Build Coastguard Worker 	);
841*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetChildInfo) (
842*bebae9c0SAndroid Build Coastguard Worker 		SLMetadataTraversalItf self,
843*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 index,
844*bebae9c0SAndroid Build Coastguard Worker 		SLint32 *pNodeID,
845*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 *pType,
846*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 size,
847*bebae9c0SAndroid Build Coastguard Worker 		SLchar *pMimeType
848*bebae9c0SAndroid Build Coastguard Worker 	);
849*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetActiveNode) (
850*bebae9c0SAndroid Build Coastguard Worker 		SLMetadataTraversalItf self,
851*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 index
852*bebae9c0SAndroid Build Coastguard Worker 	);
853*bebae9c0SAndroid Build Coastguard Worker };
854*bebae9c0SAndroid Build Coastguard Worker 
855*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
856*bebae9c0SAndroid Build Coastguard Worker /* Dynamic Source types and interface                                        */
857*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
858*bebae9c0SAndroid Build Coastguard Worker 
859*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_DYNAMICSOURCE;
860*bebae9c0SAndroid Build Coastguard Worker 
861*bebae9c0SAndroid Build Coastguard Worker struct SLDynamicSourceItf_;
862*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLDynamicSourceItf_ * const * SLDynamicSourceItf;
863*bebae9c0SAndroid Build Coastguard Worker 
864*bebae9c0SAndroid Build Coastguard Worker struct SLDynamicSourceItf_ {
865*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetSource) (
866*bebae9c0SAndroid Build Coastguard Worker 		SLDynamicSourceItf self,
867*bebae9c0SAndroid Build Coastguard Worker 		SLDataSource *pDataSource
868*bebae9c0SAndroid Build Coastguard Worker 	);
869*bebae9c0SAndroid Build Coastguard Worker };
870*bebae9c0SAndroid Build Coastguard Worker 
871*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
872*bebae9c0SAndroid Build Coastguard Worker /* Output Mix interface                                                      */
873*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
874*bebae9c0SAndroid Build Coastguard Worker 
875*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_OUTPUTMIX;
876*bebae9c0SAndroid Build Coastguard Worker 
877*bebae9c0SAndroid Build Coastguard Worker struct SLOutputMixItf_;
878*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLOutputMixItf_ * const * SLOutputMixItf;
879*bebae9c0SAndroid Build Coastguard Worker 
880*bebae9c0SAndroid Build Coastguard Worker typedef void (SLAPIENTRY *slMixDeviceChangeCallback) (
881*bebae9c0SAndroid Build Coastguard Worker 	SLOutputMixItf caller,
882*bebae9c0SAndroid Build Coastguard Worker     void *pContext
883*bebae9c0SAndroid Build Coastguard Worker );
884*bebae9c0SAndroid Build Coastguard Worker 
885*bebae9c0SAndroid Build Coastguard Worker 
886*bebae9c0SAndroid Build Coastguard Worker struct SLOutputMixItf_ {
887*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetDestinationOutputDeviceIDs) (
888*bebae9c0SAndroid Build Coastguard Worker 		SLOutputMixItf self,
889*bebae9c0SAndroid Build Coastguard Worker 		SLint32 *pNumDevices,
890*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 *pDeviceIDs
891*bebae9c0SAndroid Build Coastguard Worker 	);
892*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*RegisterDeviceChangeCallback) (
893*bebae9c0SAndroid Build Coastguard Worker 		SLOutputMixItf self,
894*bebae9c0SAndroid Build Coastguard Worker 		slMixDeviceChangeCallback callback,
895*bebae9c0SAndroid Build Coastguard Worker 		void *pContext
896*bebae9c0SAndroid Build Coastguard Worker     );
897*bebae9c0SAndroid Build Coastguard Worker     SLresult (*ReRoute)(
898*bebae9c0SAndroid Build Coastguard Worker         SLOutputMixItf self,
899*bebae9c0SAndroid Build Coastguard Worker         SLint32 numOutputDevices,
900*bebae9c0SAndroid Build Coastguard Worker         SLuint32 *pOutputDeviceIDs
901*bebae9c0SAndroid Build Coastguard Worker     );
902*bebae9c0SAndroid Build Coastguard Worker };
903*bebae9c0SAndroid Build Coastguard Worker 
904*bebae9c0SAndroid Build Coastguard Worker 
905*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
906*bebae9c0SAndroid Build Coastguard Worker /* Playback interface                                                        */
907*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
908*bebae9c0SAndroid Build Coastguard Worker 
909*bebae9c0SAndroid Build Coastguard Worker /** Playback states */
910*bebae9c0SAndroid Build Coastguard Worker #define SL_PLAYSTATE_STOPPED	((SLuint32) 0x00000001)
911*bebae9c0SAndroid Build Coastguard Worker #define SL_PLAYSTATE_PAUSED	((SLuint32) 0x00000002)
912*bebae9c0SAndroid Build Coastguard Worker #define SL_PLAYSTATE_PLAYING	((SLuint32) 0x00000003)
913*bebae9c0SAndroid Build Coastguard Worker 
914*bebae9c0SAndroid Build Coastguard Worker /** Play events **/
915*bebae9c0SAndroid Build Coastguard Worker #define SL_PLAYEVENT_HEADATEND		((SLuint32) 0x00000001)
916*bebae9c0SAndroid Build Coastguard Worker #define SL_PLAYEVENT_HEADATMARKER	((SLuint32) 0x00000002)
917*bebae9c0SAndroid Build Coastguard Worker #define SL_PLAYEVENT_HEADATNEWPOS	((SLuint32) 0x00000004)
918*bebae9c0SAndroid Build Coastguard Worker #define SL_PLAYEVENT_HEADMOVING		((SLuint32) 0x00000008)
919*bebae9c0SAndroid Build Coastguard Worker #define SL_PLAYEVENT_HEADSTALLED	((SLuint32) 0x00000010)
920*bebae9c0SAndroid Build Coastguard Worker 
921*bebae9c0SAndroid Build Coastguard Worker #define SL_TIME_UNKNOWN	((SLuint32) 0xFFFFFFFF)
922*bebae9c0SAndroid Build Coastguard Worker 
923*bebae9c0SAndroid Build Coastguard Worker 
924*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_PLAY;
925*bebae9c0SAndroid Build Coastguard Worker 
926*bebae9c0SAndroid Build Coastguard Worker /** Playback interface methods */
927*bebae9c0SAndroid Build Coastguard Worker 
928*bebae9c0SAndroid Build Coastguard Worker struct SLPlayItf_;
929*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLPlayItf_ * const * SLPlayItf;
930*bebae9c0SAndroid Build Coastguard Worker 
931*bebae9c0SAndroid Build Coastguard Worker typedef void (SLAPIENTRY *slPlayCallback) (
932*bebae9c0SAndroid Build Coastguard Worker 	SLPlayItf caller,
933*bebae9c0SAndroid Build Coastguard Worker 	void *pContext,
934*bebae9c0SAndroid Build Coastguard Worker 	SLuint32 event
935*bebae9c0SAndroid Build Coastguard Worker );
936*bebae9c0SAndroid Build Coastguard Worker 
937*bebae9c0SAndroid Build Coastguard Worker struct SLPlayItf_ {
938*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetPlayState) (
939*bebae9c0SAndroid Build Coastguard Worker 		SLPlayItf self,
940*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 state
941*bebae9c0SAndroid Build Coastguard Worker 	);
942*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetPlayState) (
943*bebae9c0SAndroid Build Coastguard Worker 		SLPlayItf self,
944*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 *pState
945*bebae9c0SAndroid Build Coastguard Worker 	);
946*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetDuration) (
947*bebae9c0SAndroid Build Coastguard Worker 		SLPlayItf self,
948*bebae9c0SAndroid Build Coastguard Worker 		SLmillisecond *pMsec
949*bebae9c0SAndroid Build Coastguard Worker 	);
950*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetPosition) (
951*bebae9c0SAndroid Build Coastguard Worker 		SLPlayItf self,
952*bebae9c0SAndroid Build Coastguard Worker 		SLmillisecond *pMsec
953*bebae9c0SAndroid Build Coastguard Worker 	);
954*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*RegisterCallback) (
955*bebae9c0SAndroid Build Coastguard Worker 		SLPlayItf self,
956*bebae9c0SAndroid Build Coastguard Worker 		slPlayCallback callback,
957*bebae9c0SAndroid Build Coastguard Worker 		void *pContext
958*bebae9c0SAndroid Build Coastguard Worker 	);
959*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetCallbackEventsMask) (
960*bebae9c0SAndroid Build Coastguard Worker 		SLPlayItf self,
961*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 eventFlags
962*bebae9c0SAndroid Build Coastguard Worker 	);
963*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetCallbackEventsMask) (
964*bebae9c0SAndroid Build Coastguard Worker 		SLPlayItf self,
965*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 *pEventFlags
966*bebae9c0SAndroid Build Coastguard Worker 	);
967*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetMarkerPosition) (
968*bebae9c0SAndroid Build Coastguard Worker 		SLPlayItf self,
969*bebae9c0SAndroid Build Coastguard Worker 		SLmillisecond mSec
970*bebae9c0SAndroid Build Coastguard Worker 	);
971*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*ClearMarkerPosition) (
972*bebae9c0SAndroid Build Coastguard Worker 		SLPlayItf self
973*bebae9c0SAndroid Build Coastguard Worker 	);
974*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetMarkerPosition) (
975*bebae9c0SAndroid Build Coastguard Worker 		SLPlayItf self,
976*bebae9c0SAndroid Build Coastguard Worker 		SLmillisecond *pMsec
977*bebae9c0SAndroid Build Coastguard Worker 	);
978*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetPositionUpdatePeriod) (
979*bebae9c0SAndroid Build Coastguard Worker 		SLPlayItf self,
980*bebae9c0SAndroid Build Coastguard Worker 		SLmillisecond mSec
981*bebae9c0SAndroid Build Coastguard Worker 	);
982*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetPositionUpdatePeriod) (
983*bebae9c0SAndroid Build Coastguard Worker 		SLPlayItf self,
984*bebae9c0SAndroid Build Coastguard Worker 		SLmillisecond *pMsec
985*bebae9c0SAndroid Build Coastguard Worker 	);
986*bebae9c0SAndroid Build Coastguard Worker };
987*bebae9c0SAndroid Build Coastguard Worker 
988*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
989*bebae9c0SAndroid Build Coastguard Worker /* Prefetch status interface                                                 */
990*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
991*bebae9c0SAndroid Build Coastguard Worker 
992*bebae9c0SAndroid Build Coastguard Worker #define SL_PREFETCHEVENT_STATUSCHANGE		((SLuint32) 0x00000001)
993*bebae9c0SAndroid Build Coastguard Worker #define SL_PREFETCHEVENT_FILLLEVELCHANGE	((SLuint32) 0x00000002)
994*bebae9c0SAndroid Build Coastguard Worker 
995*bebae9c0SAndroid Build Coastguard Worker #define SL_PREFETCHSTATUS_UNDERFLOW		((SLuint32) 0x00000001)
996*bebae9c0SAndroid Build Coastguard Worker #define SL_PREFETCHSTATUS_SUFFICIENTDATA	((SLuint32) 0x00000002)
997*bebae9c0SAndroid Build Coastguard Worker #define SL_PREFETCHSTATUS_OVERFLOW		((SLuint32) 0x00000003)
998*bebae9c0SAndroid Build Coastguard Worker 
999*bebae9c0SAndroid Build Coastguard Worker 
1000*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_PREFETCHSTATUS;
1001*bebae9c0SAndroid Build Coastguard Worker 
1002*bebae9c0SAndroid Build Coastguard Worker 
1003*bebae9c0SAndroid Build Coastguard Worker /** Prefetch status interface methods */
1004*bebae9c0SAndroid Build Coastguard Worker 
1005*bebae9c0SAndroid Build Coastguard Worker struct SLPrefetchStatusItf_;
1006*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLPrefetchStatusItf_ * const * SLPrefetchStatusItf;
1007*bebae9c0SAndroid Build Coastguard Worker 
1008*bebae9c0SAndroid Build Coastguard Worker typedef void (SLAPIENTRY *slPrefetchCallback) (
1009*bebae9c0SAndroid Build Coastguard Worker 	SLPrefetchStatusItf caller,
1010*bebae9c0SAndroid Build Coastguard Worker 	void *pContext,
1011*bebae9c0SAndroid Build Coastguard Worker 	SLuint32 event
1012*bebae9c0SAndroid Build Coastguard Worker );
1013*bebae9c0SAndroid Build Coastguard Worker 
1014*bebae9c0SAndroid Build Coastguard Worker struct SLPrefetchStatusItf_ {
1015*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetPrefetchStatus) (
1016*bebae9c0SAndroid Build Coastguard Worker 		SLPrefetchStatusItf self,
1017*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 *pStatus
1018*bebae9c0SAndroid Build Coastguard Worker 	);
1019*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetFillLevel) (
1020*bebae9c0SAndroid Build Coastguard Worker 		SLPrefetchStatusItf self,
1021*bebae9c0SAndroid Build Coastguard Worker 		SLpermille *pLevel
1022*bebae9c0SAndroid Build Coastguard Worker 	);
1023*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*RegisterCallback) (
1024*bebae9c0SAndroid Build Coastguard Worker 		SLPrefetchStatusItf self,
1025*bebae9c0SAndroid Build Coastguard Worker 		slPrefetchCallback callback,
1026*bebae9c0SAndroid Build Coastguard Worker 		void *pContext
1027*bebae9c0SAndroid Build Coastguard Worker 	);
1028*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetCallbackEventsMask) (
1029*bebae9c0SAndroid Build Coastguard Worker 		SLPrefetchStatusItf self,
1030*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 eventFlags
1031*bebae9c0SAndroid Build Coastguard Worker 	);
1032*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetCallbackEventsMask) (
1033*bebae9c0SAndroid Build Coastguard Worker 		SLPrefetchStatusItf self,
1034*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 *pEventFlags
1035*bebae9c0SAndroid Build Coastguard Worker 	);
1036*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetFillUpdatePeriod) (
1037*bebae9c0SAndroid Build Coastguard Worker 		SLPrefetchStatusItf self,
1038*bebae9c0SAndroid Build Coastguard Worker 		SLpermille period
1039*bebae9c0SAndroid Build Coastguard Worker 	);
1040*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetFillUpdatePeriod) (
1041*bebae9c0SAndroid Build Coastguard Worker 		SLPrefetchStatusItf self,
1042*bebae9c0SAndroid Build Coastguard Worker 		SLpermille *pPeriod
1043*bebae9c0SAndroid Build Coastguard Worker 	);
1044*bebae9c0SAndroid Build Coastguard Worker };
1045*bebae9c0SAndroid Build Coastguard Worker 
1046*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
1047*bebae9c0SAndroid Build Coastguard Worker /* Playback Rate interface                                                   */
1048*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
1049*bebae9c0SAndroid Build Coastguard Worker 
1050*bebae9c0SAndroid Build Coastguard Worker #define SL_RATEPROP_RESERVED1		  		((SLuint32) 0x00000001)
1051*bebae9c0SAndroid Build Coastguard Worker #define SL_RATEPROP_RESERVED2		  		((SLuint32) 0x00000002)
1052*bebae9c0SAndroid Build Coastguard Worker #define SL_RATEPROP_SILENTAUDIO				((SLuint32) 0x00000100)
1053*bebae9c0SAndroid Build Coastguard Worker #define SL_RATEPROP_STAGGEREDAUDIO	((SLuint32) 0x00000200)
1054*bebae9c0SAndroid Build Coastguard Worker #define SL_RATEPROP_NOPITCHCORAUDIO	((SLuint32) 0x00000400)
1055*bebae9c0SAndroid Build Coastguard Worker #define SL_RATEPROP_PITCHCORAUDIO	((SLuint32) 0x00000800)
1056*bebae9c0SAndroid Build Coastguard Worker 
1057*bebae9c0SAndroid Build Coastguard Worker 
1058*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_PLAYBACKRATE;
1059*bebae9c0SAndroid Build Coastguard Worker 
1060*bebae9c0SAndroid Build Coastguard Worker struct SLPlaybackRateItf_;
1061*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLPlaybackRateItf_ * const * SLPlaybackRateItf;
1062*bebae9c0SAndroid Build Coastguard Worker 
1063*bebae9c0SAndroid Build Coastguard Worker struct SLPlaybackRateItf_ {
1064*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetRate)(
1065*bebae9c0SAndroid Build Coastguard Worker 		SLPlaybackRateItf self,
1066*bebae9c0SAndroid Build Coastguard Worker 		SLpermille rate
1067*bebae9c0SAndroid Build Coastguard Worker 	);
1068*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetRate)(
1069*bebae9c0SAndroid Build Coastguard Worker 		SLPlaybackRateItf self,
1070*bebae9c0SAndroid Build Coastguard Worker 		SLpermille *pRate
1071*bebae9c0SAndroid Build Coastguard Worker 	);
1072*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetPropertyConstraints)(
1073*bebae9c0SAndroid Build Coastguard Worker 		SLPlaybackRateItf self,
1074*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 constraints
1075*bebae9c0SAndroid Build Coastguard Worker 	);
1076*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetProperties)(
1077*bebae9c0SAndroid Build Coastguard Worker 		SLPlaybackRateItf self,
1078*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 *pProperties
1079*bebae9c0SAndroid Build Coastguard Worker 	);
1080*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetCapabilitiesOfRate)(
1081*bebae9c0SAndroid Build Coastguard Worker 		SLPlaybackRateItf self,
1082*bebae9c0SAndroid Build Coastguard Worker 		SLpermille rate,
1083*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 *pCapabilities
1084*bebae9c0SAndroid Build Coastguard Worker 	);
1085*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetRateRange) (
1086*bebae9c0SAndroid Build Coastguard Worker 		SLPlaybackRateItf self,
1087*bebae9c0SAndroid Build Coastguard Worker 		SLuint8 index,
1088*bebae9c0SAndroid Build Coastguard Worker 		SLpermille *pMinRate,
1089*bebae9c0SAndroid Build Coastguard Worker 		SLpermille *pMaxRate,
1090*bebae9c0SAndroid Build Coastguard Worker 		SLpermille *pStepSize,
1091*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 *pCapabilities
1092*bebae9c0SAndroid Build Coastguard Worker 	);
1093*bebae9c0SAndroid Build Coastguard Worker };
1094*bebae9c0SAndroid Build Coastguard Worker 
1095*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
1096*bebae9c0SAndroid Build Coastguard Worker /* Seek Interface                                                            */
1097*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
1098*bebae9c0SAndroid Build Coastguard Worker 
1099*bebae9c0SAndroid Build Coastguard Worker #define SL_SEEKMODE_FAST		((SLuint32) 0x0001)
1100*bebae9c0SAndroid Build Coastguard Worker #define SL_SEEKMODE_ACCURATE	((SLuint32) 0x0002)
1101*bebae9c0SAndroid Build Coastguard Worker 
1102*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_SEEK;
1103*bebae9c0SAndroid Build Coastguard Worker 
1104*bebae9c0SAndroid Build Coastguard Worker struct SLSeekItf_;
1105*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLSeekItf_ * const * SLSeekItf;
1106*bebae9c0SAndroid Build Coastguard Worker 
1107*bebae9c0SAndroid Build Coastguard Worker struct SLSeekItf_ {
1108*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetPosition)(
1109*bebae9c0SAndroid Build Coastguard Worker 		SLSeekItf self,
1110*bebae9c0SAndroid Build Coastguard Worker 		SLmillisecond pos,
1111*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 seekMode
1112*bebae9c0SAndroid Build Coastguard Worker 	);
1113*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetLoop)(
1114*bebae9c0SAndroid Build Coastguard Worker 		SLSeekItf self,
1115*bebae9c0SAndroid Build Coastguard Worker 		SLboolean loopEnable,
1116*bebae9c0SAndroid Build Coastguard Worker 		SLmillisecond startPos,
1117*bebae9c0SAndroid Build Coastguard Worker 		SLmillisecond endPos
1118*bebae9c0SAndroid Build Coastguard Worker 	);
1119*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetLoop)(
1120*bebae9c0SAndroid Build Coastguard Worker 		SLSeekItf self,
1121*bebae9c0SAndroid Build Coastguard Worker 		SLboolean *pLoopEnabled,
1122*bebae9c0SAndroid Build Coastguard Worker 		SLmillisecond *pStartPos,
1123*bebae9c0SAndroid Build Coastguard Worker 		SLmillisecond *pEndPos
1124*bebae9c0SAndroid Build Coastguard Worker 	);
1125*bebae9c0SAndroid Build Coastguard Worker };
1126*bebae9c0SAndroid Build Coastguard Worker 
1127*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
1128*bebae9c0SAndroid Build Coastguard Worker /* Standard Recording Interface                                              */
1129*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
1130*bebae9c0SAndroid Build Coastguard Worker 
1131*bebae9c0SAndroid Build Coastguard Worker /** Recording states */
1132*bebae9c0SAndroid Build Coastguard Worker #define SL_RECORDSTATE_STOPPED 	((SLuint32) 0x00000001)
1133*bebae9c0SAndroid Build Coastguard Worker #define SL_RECORDSTATE_PAUSED	((SLuint32) 0x00000002)
1134*bebae9c0SAndroid Build Coastguard Worker #define SL_RECORDSTATE_RECORDING	((SLuint32) 0x00000003)
1135*bebae9c0SAndroid Build Coastguard Worker 
1136*bebae9c0SAndroid Build Coastguard Worker 
1137*bebae9c0SAndroid Build Coastguard Worker /** Record event **/
1138*bebae9c0SAndroid Build Coastguard Worker #define SL_RECORDEVENT_HEADATLIMIT	((SLuint32) 0x00000001)
1139*bebae9c0SAndroid Build Coastguard Worker #define SL_RECORDEVENT_HEADATMARKER	((SLuint32) 0x00000002)
1140*bebae9c0SAndroid Build Coastguard Worker #define SL_RECORDEVENT_HEADATNEWPOS	((SLuint32) 0x00000004)
1141*bebae9c0SAndroid Build Coastguard Worker #define SL_RECORDEVENT_HEADMOVING	((SLuint32) 0x00000008)
1142*bebae9c0SAndroid Build Coastguard Worker #define SL_RECORDEVENT_HEADSTALLED 	((SLuint32) 0x00000010)
1143*bebae9c0SAndroid Build Coastguard Worker /* Note: SL_RECORDEVENT_BUFFER_INSUFFICIENT is deprecated, use SL_RECORDEVENT_BUFFER_FULL instead. */
1144*bebae9c0SAndroid Build Coastguard Worker #define SL_RECORDEVENT_BUFFER_INSUFFICIENT      ((SLuint32) 0x00000020)
1145*bebae9c0SAndroid Build Coastguard Worker #define SL_RECORDEVENT_BUFFER_FULL	((SLuint32) 0x00000020)
1146*bebae9c0SAndroid Build Coastguard Worker 
1147*bebae9c0SAndroid Build Coastguard Worker 
1148*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_RECORD;
1149*bebae9c0SAndroid Build Coastguard Worker 
1150*bebae9c0SAndroid Build Coastguard Worker struct SLRecordItf_;
1151*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLRecordItf_ * const * SLRecordItf;
1152*bebae9c0SAndroid Build Coastguard Worker 
1153*bebae9c0SAndroid Build Coastguard Worker typedef void (SLAPIENTRY *slRecordCallback) (
1154*bebae9c0SAndroid Build Coastguard Worker 	SLRecordItf caller,
1155*bebae9c0SAndroid Build Coastguard Worker 	void *pContext,
1156*bebae9c0SAndroid Build Coastguard Worker 	SLuint32 event
1157*bebae9c0SAndroid Build Coastguard Worker );
1158*bebae9c0SAndroid Build Coastguard Worker 
1159*bebae9c0SAndroid Build Coastguard Worker /** Recording interface methods */
1160*bebae9c0SAndroid Build Coastguard Worker struct SLRecordItf_ {
1161*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetRecordState) (
1162*bebae9c0SAndroid Build Coastguard Worker 		SLRecordItf self,
1163*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 state
1164*bebae9c0SAndroid Build Coastguard Worker 	);
1165*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetRecordState) (
1166*bebae9c0SAndroid Build Coastguard Worker 		SLRecordItf self,
1167*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 *pState
1168*bebae9c0SAndroid Build Coastguard Worker 	);
1169*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetDurationLimit) (
1170*bebae9c0SAndroid Build Coastguard Worker 		SLRecordItf self,
1171*bebae9c0SAndroid Build Coastguard Worker 		SLmillisecond msec
1172*bebae9c0SAndroid Build Coastguard Worker 	);
1173*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetPosition) (
1174*bebae9c0SAndroid Build Coastguard Worker 		SLRecordItf self,
1175*bebae9c0SAndroid Build Coastguard Worker 		SLmillisecond *pMsec
1176*bebae9c0SAndroid Build Coastguard Worker 	);
1177*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*RegisterCallback) (
1178*bebae9c0SAndroid Build Coastguard Worker 		SLRecordItf self,
1179*bebae9c0SAndroid Build Coastguard Worker 		slRecordCallback callback,
1180*bebae9c0SAndroid Build Coastguard Worker 		void *pContext
1181*bebae9c0SAndroid Build Coastguard Worker 	);
1182*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetCallbackEventsMask) (
1183*bebae9c0SAndroid Build Coastguard Worker 		SLRecordItf self,
1184*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 eventFlags
1185*bebae9c0SAndroid Build Coastguard Worker 	);
1186*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetCallbackEventsMask) (
1187*bebae9c0SAndroid Build Coastguard Worker 		SLRecordItf self,
1188*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 *pEventFlags
1189*bebae9c0SAndroid Build Coastguard Worker 	);
1190*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetMarkerPosition) (
1191*bebae9c0SAndroid Build Coastguard Worker 		SLRecordItf self,
1192*bebae9c0SAndroid Build Coastguard Worker 		SLmillisecond mSec
1193*bebae9c0SAndroid Build Coastguard Worker 	);
1194*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*ClearMarkerPosition) (
1195*bebae9c0SAndroid Build Coastguard Worker 		SLRecordItf self
1196*bebae9c0SAndroid Build Coastguard Worker 	);
1197*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetMarkerPosition) (
1198*bebae9c0SAndroid Build Coastguard Worker 		SLRecordItf self,
1199*bebae9c0SAndroid Build Coastguard Worker 		SLmillisecond *pMsec
1200*bebae9c0SAndroid Build Coastguard Worker 	);
1201*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetPositionUpdatePeriod) (
1202*bebae9c0SAndroid Build Coastguard Worker 		SLRecordItf self,
1203*bebae9c0SAndroid Build Coastguard Worker 		SLmillisecond mSec
1204*bebae9c0SAndroid Build Coastguard Worker 	);
1205*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetPositionUpdatePeriod) (
1206*bebae9c0SAndroid Build Coastguard Worker 		SLRecordItf self,
1207*bebae9c0SAndroid Build Coastguard Worker 		SLmillisecond *pMsec
1208*bebae9c0SAndroid Build Coastguard Worker 	);
1209*bebae9c0SAndroid Build Coastguard Worker };
1210*bebae9c0SAndroid Build Coastguard Worker 
1211*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
1212*bebae9c0SAndroid Build Coastguard Worker /* Equalizer interface                                                       */
1213*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
1214*bebae9c0SAndroid Build Coastguard Worker 
1215*bebae9c0SAndroid Build Coastguard Worker #define SL_EQUALIZER_UNDEFINED				((SLuint16) 0xFFFF)
1216*bebae9c0SAndroid Build Coastguard Worker 
1217*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_EQUALIZER;
1218*bebae9c0SAndroid Build Coastguard Worker 
1219*bebae9c0SAndroid Build Coastguard Worker struct SLEqualizerItf_;
1220*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLEqualizerItf_ * const * SLEqualizerItf;
1221*bebae9c0SAndroid Build Coastguard Worker 
1222*bebae9c0SAndroid Build Coastguard Worker struct SLEqualizerItf_ {
1223*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetEnabled)(
1224*bebae9c0SAndroid Build Coastguard Worker 		SLEqualizerItf self,
1225*bebae9c0SAndroid Build Coastguard Worker 		SLboolean enabled
1226*bebae9c0SAndroid Build Coastguard Worker 	);
1227*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*IsEnabled)(
1228*bebae9c0SAndroid Build Coastguard Worker 		SLEqualizerItf self,
1229*bebae9c0SAndroid Build Coastguard Worker 		SLboolean *pEnabled
1230*bebae9c0SAndroid Build Coastguard Worker 	);
1231*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetNumberOfBands)(
1232*bebae9c0SAndroid Build Coastguard Worker 		SLEqualizerItf self,
1233*bebae9c0SAndroid Build Coastguard Worker 		SLuint16 *pAmount
1234*bebae9c0SAndroid Build Coastguard Worker 	);
1235*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetBandLevelRange)(
1236*bebae9c0SAndroid Build Coastguard Worker 		SLEqualizerItf self,
1237*bebae9c0SAndroid Build Coastguard Worker 		SLmillibel *pMin,
1238*bebae9c0SAndroid Build Coastguard Worker 		SLmillibel *pMax
1239*bebae9c0SAndroid Build Coastguard Worker 	);
1240*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetBandLevel)(
1241*bebae9c0SAndroid Build Coastguard Worker 		SLEqualizerItf self,
1242*bebae9c0SAndroid Build Coastguard Worker 		SLuint16 band,
1243*bebae9c0SAndroid Build Coastguard Worker 		SLmillibel level
1244*bebae9c0SAndroid Build Coastguard Worker 	);
1245*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetBandLevel)(
1246*bebae9c0SAndroid Build Coastguard Worker 		SLEqualizerItf self,
1247*bebae9c0SAndroid Build Coastguard Worker 		SLuint16 band,
1248*bebae9c0SAndroid Build Coastguard Worker 		SLmillibel *pLevel
1249*bebae9c0SAndroid Build Coastguard Worker 	);
1250*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetCenterFreq)(
1251*bebae9c0SAndroid Build Coastguard Worker 		SLEqualizerItf self,
1252*bebae9c0SAndroid Build Coastguard Worker 		SLuint16 band,
1253*bebae9c0SAndroid Build Coastguard Worker 		SLmilliHertz *pCenter
1254*bebae9c0SAndroid Build Coastguard Worker 	);
1255*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetBandFreqRange)(
1256*bebae9c0SAndroid Build Coastguard Worker 		SLEqualizerItf self,
1257*bebae9c0SAndroid Build Coastguard Worker 		SLuint16 band,
1258*bebae9c0SAndroid Build Coastguard Worker 		SLmilliHertz *pMin,
1259*bebae9c0SAndroid Build Coastguard Worker 		SLmilliHertz *pMax
1260*bebae9c0SAndroid Build Coastguard Worker 	);
1261*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetBand)(
1262*bebae9c0SAndroid Build Coastguard Worker 		SLEqualizerItf self,
1263*bebae9c0SAndroid Build Coastguard Worker 		SLmilliHertz frequency,
1264*bebae9c0SAndroid Build Coastguard Worker 		SLuint16 *pBand
1265*bebae9c0SAndroid Build Coastguard Worker 	);
1266*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetCurrentPreset)(
1267*bebae9c0SAndroid Build Coastguard Worker 		SLEqualizerItf self,
1268*bebae9c0SAndroid Build Coastguard Worker 		SLuint16 *pPreset
1269*bebae9c0SAndroid Build Coastguard Worker 	);
1270*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*UsePreset)(
1271*bebae9c0SAndroid Build Coastguard Worker 		SLEqualizerItf self,
1272*bebae9c0SAndroid Build Coastguard Worker 		SLuint16 index
1273*bebae9c0SAndroid Build Coastguard Worker 	);
1274*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetNumberOfPresets)(
1275*bebae9c0SAndroid Build Coastguard Worker 		SLEqualizerItf self,
1276*bebae9c0SAndroid Build Coastguard Worker 		SLuint16 *pNumPresets
1277*bebae9c0SAndroid Build Coastguard Worker 	);
1278*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetPresetName)(
1279*bebae9c0SAndroid Build Coastguard Worker 		SLEqualizerItf self,
1280*bebae9c0SAndroid Build Coastguard Worker 		SLuint16 index,
1281*bebae9c0SAndroid Build Coastguard Worker 		const SLchar ** ppName
1282*bebae9c0SAndroid Build Coastguard Worker 	);
1283*bebae9c0SAndroid Build Coastguard Worker };
1284*bebae9c0SAndroid Build Coastguard Worker 
1285*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
1286*bebae9c0SAndroid Build Coastguard Worker /* Volume Interface                                                           */
1287*bebae9c0SAndroid Build Coastguard Worker /* --------------------------------------------------------------------------*/
1288*bebae9c0SAndroid Build Coastguard Worker 
1289*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_VOLUME;
1290*bebae9c0SAndroid Build Coastguard Worker 
1291*bebae9c0SAndroid Build Coastguard Worker struct SLVolumeItf_;
1292*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLVolumeItf_ * const * SLVolumeItf;
1293*bebae9c0SAndroid Build Coastguard Worker 
1294*bebae9c0SAndroid Build Coastguard Worker struct SLVolumeItf_ {
1295*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetVolumeLevel) (
1296*bebae9c0SAndroid Build Coastguard Worker 		SLVolumeItf self,
1297*bebae9c0SAndroid Build Coastguard Worker 		SLmillibel level
1298*bebae9c0SAndroid Build Coastguard Worker 	);
1299*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetVolumeLevel) (
1300*bebae9c0SAndroid Build Coastguard Worker 		SLVolumeItf self,
1301*bebae9c0SAndroid Build Coastguard Worker 		SLmillibel *pLevel
1302*bebae9c0SAndroid Build Coastguard Worker 	);
1303*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetMaxVolumeLevel) (
1304*bebae9c0SAndroid Build Coastguard Worker 		SLVolumeItf  self,
1305*bebae9c0SAndroid Build Coastguard Worker 		SLmillibel *pMaxLevel
1306*bebae9c0SAndroid Build Coastguard Worker 	);
1307*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetMute) (
1308*bebae9c0SAndroid Build Coastguard Worker 		SLVolumeItf self,
1309*bebae9c0SAndroid Build Coastguard Worker 		SLboolean mute
1310*bebae9c0SAndroid Build Coastguard Worker 	);
1311*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetMute) (
1312*bebae9c0SAndroid Build Coastguard Worker 		SLVolumeItf self,
1313*bebae9c0SAndroid Build Coastguard Worker 		SLboolean *pMute
1314*bebae9c0SAndroid Build Coastguard Worker 	);
1315*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*EnableStereoPosition) (
1316*bebae9c0SAndroid Build Coastguard Worker 		SLVolumeItf self,
1317*bebae9c0SAndroid Build Coastguard Worker 		SLboolean enable
1318*bebae9c0SAndroid Build Coastguard Worker 	);
1319*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*IsEnabledStereoPosition) (
1320*bebae9c0SAndroid Build Coastguard Worker 		SLVolumeItf self,
1321*bebae9c0SAndroid Build Coastguard Worker 		SLboolean *pEnable
1322*bebae9c0SAndroid Build Coastguard Worker 	);
1323*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetStereoPosition) (
1324*bebae9c0SAndroid Build Coastguard Worker 		SLVolumeItf self,
1325*bebae9c0SAndroid Build Coastguard Worker 		SLpermille stereoPosition
1326*bebae9c0SAndroid Build Coastguard Worker 	);
1327*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetStereoPosition) (
1328*bebae9c0SAndroid Build Coastguard Worker 		SLVolumeItf self,
1329*bebae9c0SAndroid Build Coastguard Worker 		SLpermille *pStereoPosition
1330*bebae9c0SAndroid Build Coastguard Worker 	);
1331*bebae9c0SAndroid Build Coastguard Worker };
1332*bebae9c0SAndroid Build Coastguard Worker 
1333*bebae9c0SAndroid Build Coastguard Worker 
1334*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
1335*bebae9c0SAndroid Build Coastguard Worker /* Device Volume Interface                                                   */
1336*bebae9c0SAndroid Build Coastguard Worker /* --------------------------------------------------------------------------*/
1337*bebae9c0SAndroid Build Coastguard Worker 
1338*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_DEVICEVOLUME;
1339*bebae9c0SAndroid Build Coastguard Worker 
1340*bebae9c0SAndroid Build Coastguard Worker struct SLDeviceVolumeItf_;
1341*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLDeviceVolumeItf_ * const * SLDeviceVolumeItf;
1342*bebae9c0SAndroid Build Coastguard Worker 
1343*bebae9c0SAndroid Build Coastguard Worker struct SLDeviceVolumeItf_ {
1344*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetVolumeScale) (
1345*bebae9c0SAndroid Build Coastguard Worker 		SLDeviceVolumeItf self,
1346*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 deviceID,
1347*bebae9c0SAndroid Build Coastguard Worker 		SLint32 *pMinValue,
1348*bebae9c0SAndroid Build Coastguard Worker 		SLint32 *pMaxValue,
1349*bebae9c0SAndroid Build Coastguard Worker 		SLboolean *pIsMillibelScale
1350*bebae9c0SAndroid Build Coastguard Worker 	);
1351*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetVolume) (
1352*bebae9c0SAndroid Build Coastguard Worker 		SLDeviceVolumeItf self,
1353*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 deviceID,
1354*bebae9c0SAndroid Build Coastguard Worker 		SLint32 volume
1355*bebae9c0SAndroid Build Coastguard Worker 	);
1356*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetVolume) (
1357*bebae9c0SAndroid Build Coastguard Worker 		SLDeviceVolumeItf self,
1358*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 deviceID,
1359*bebae9c0SAndroid Build Coastguard Worker 		SLint32 *pVolume
1360*bebae9c0SAndroid Build Coastguard Worker 	);
1361*bebae9c0SAndroid Build Coastguard Worker };
1362*bebae9c0SAndroid Build Coastguard Worker 
1363*bebae9c0SAndroid Build Coastguard Worker 
1364*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
1365*bebae9c0SAndroid Build Coastguard Worker /* Buffer Queue Interface                                                    */
1366*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
1367*bebae9c0SAndroid Build Coastguard Worker 
1368*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_BUFFERQUEUE;
1369*bebae9c0SAndroid Build Coastguard Worker 
1370*bebae9c0SAndroid Build Coastguard Worker struct SLBufferQueueItf_;
1371*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLBufferQueueItf_ * const * SLBufferQueueItf;
1372*bebae9c0SAndroid Build Coastguard Worker 
1373*bebae9c0SAndroid Build Coastguard Worker typedef void (SLAPIENTRY *slBufferQueueCallback)(
1374*bebae9c0SAndroid Build Coastguard Worker 	SLBufferQueueItf caller,
1375*bebae9c0SAndroid Build Coastguard Worker 	void *pContext
1376*bebae9c0SAndroid Build Coastguard Worker );
1377*bebae9c0SAndroid Build Coastguard Worker 
1378*bebae9c0SAndroid Build Coastguard Worker /** Buffer queue state **/
1379*bebae9c0SAndroid Build Coastguard Worker 
1380*bebae9c0SAndroid Build Coastguard Worker typedef struct SLBufferQueueState_ {
1381*bebae9c0SAndroid Build Coastguard Worker 	SLuint32	count;
1382*bebae9c0SAndroid Build Coastguard Worker 	SLuint32	playIndex;
1383*bebae9c0SAndroid Build Coastguard Worker } SLBufferQueueState;
1384*bebae9c0SAndroid Build Coastguard Worker 
1385*bebae9c0SAndroid Build Coastguard Worker 
1386*bebae9c0SAndroid Build Coastguard Worker struct SLBufferQueueItf_ {
1387*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*Enqueue) (
1388*bebae9c0SAndroid Build Coastguard Worker 		SLBufferQueueItf self,
1389*bebae9c0SAndroid Build Coastguard Worker 		const void *pBuffer,
1390*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 size
1391*bebae9c0SAndroid Build Coastguard Worker 	);
1392*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*Clear) (
1393*bebae9c0SAndroid Build Coastguard Worker 		SLBufferQueueItf self
1394*bebae9c0SAndroid Build Coastguard Worker 	);
1395*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetState) (
1396*bebae9c0SAndroid Build Coastguard Worker 		SLBufferQueueItf self,
1397*bebae9c0SAndroid Build Coastguard Worker 		SLBufferQueueState *pState
1398*bebae9c0SAndroid Build Coastguard Worker 	);
1399*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*RegisterCallback) (
1400*bebae9c0SAndroid Build Coastguard Worker 		SLBufferQueueItf self,
1401*bebae9c0SAndroid Build Coastguard Worker 		slBufferQueueCallback callback,
1402*bebae9c0SAndroid Build Coastguard Worker 		void* pContext
1403*bebae9c0SAndroid Build Coastguard Worker 	);
1404*bebae9c0SAndroid Build Coastguard Worker };
1405*bebae9c0SAndroid Build Coastguard Worker 
1406*bebae9c0SAndroid Build Coastguard Worker 
1407*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
1408*bebae9c0SAndroid Build Coastguard Worker /* PresetReverb                                                              */
1409*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
1410*bebae9c0SAndroid Build Coastguard Worker 
1411*bebae9c0SAndroid Build Coastguard Worker #define SL_REVERBPRESET_NONE		((SLuint16) 0x0000)
1412*bebae9c0SAndroid Build Coastguard Worker #define SL_REVERBPRESET_SMALLROOM	((SLuint16) 0x0001)
1413*bebae9c0SAndroid Build Coastguard Worker #define SL_REVERBPRESET_MEDIUMROOM	((SLuint16) 0x0002)
1414*bebae9c0SAndroid Build Coastguard Worker #define SL_REVERBPRESET_LARGEROOM	((SLuint16) 0x0003)
1415*bebae9c0SAndroid Build Coastguard Worker #define SL_REVERBPRESET_MEDIUMHALL	((SLuint16) 0x0004)
1416*bebae9c0SAndroid Build Coastguard Worker #define SL_REVERBPRESET_LARGEHALL	((SLuint16) 0x0005)
1417*bebae9c0SAndroid Build Coastguard Worker #define SL_REVERBPRESET_PLATE 		((SLuint16) 0x0006)
1418*bebae9c0SAndroid Build Coastguard Worker 
1419*bebae9c0SAndroid Build Coastguard Worker 
1420*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_PRESETREVERB;
1421*bebae9c0SAndroid Build Coastguard Worker 
1422*bebae9c0SAndroid Build Coastguard Worker struct SLPresetReverbItf_;
1423*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLPresetReverbItf_ * const * SLPresetReverbItf;
1424*bebae9c0SAndroid Build Coastguard Worker 
1425*bebae9c0SAndroid Build Coastguard Worker struct SLPresetReverbItf_ {
1426*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetPreset) (
1427*bebae9c0SAndroid Build Coastguard Worker 		SLPresetReverbItf self,
1428*bebae9c0SAndroid Build Coastguard Worker 		SLuint16 preset
1429*bebae9c0SAndroid Build Coastguard Worker 	);
1430*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetPreset) (
1431*bebae9c0SAndroid Build Coastguard Worker 		SLPresetReverbItf self,
1432*bebae9c0SAndroid Build Coastguard Worker 		SLuint16 *pPreset
1433*bebae9c0SAndroid Build Coastguard Worker 	);
1434*bebae9c0SAndroid Build Coastguard Worker };
1435*bebae9c0SAndroid Build Coastguard Worker 
1436*bebae9c0SAndroid Build Coastguard Worker 
1437*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
1438*bebae9c0SAndroid Build Coastguard Worker /* EnvironmentalReverb                                                       */
1439*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
1440*bebae9c0SAndroid Build Coastguard Worker 
1441*bebae9c0SAndroid Build Coastguard Worker #define SL_I3DL2_ENVIRONMENT_PRESET_DEFAULT \
1442*bebae9c0SAndroid Build Coastguard Worker 	{ SL_MILLIBEL_MIN,    0,  1000,   500, SL_MILLIBEL_MIN,  20, SL_MILLIBEL_MIN,  40, 1000,1000 }
1443*bebae9c0SAndroid Build Coastguard Worker #define SL_I3DL2_ENVIRONMENT_PRESET_GENERIC \
1444*bebae9c0SAndroid Build Coastguard Worker 	{ -1000, -100, 1490,  830, -2602,   7,   200,  11, 1000,1000 }
1445*bebae9c0SAndroid Build Coastguard Worker #define SL_I3DL2_ENVIRONMENT_PRESET_PADDEDCELL \
1446*bebae9c0SAndroid Build Coastguard Worker 	{ -1000,-6000,  170,  100, -1204,   1,   207,   2, 1000,1000 }
1447*bebae9c0SAndroid Build Coastguard Worker #define SL_I3DL2_ENVIRONMENT_PRESET_ROOM \
1448*bebae9c0SAndroid Build Coastguard Worker 	{ -1000, -454,  400,  830, -1646,   2,    53,   3, 1000,1000 }
1449*bebae9c0SAndroid Build Coastguard Worker #define SL_I3DL2_ENVIRONMENT_PRESET_BATHROOM \
1450*bebae9c0SAndroid Build Coastguard Worker 	{ -1000,-1200, 1490,  540,  -370,   7,  1030,  11, 1000, 600 }
1451*bebae9c0SAndroid Build Coastguard Worker #define SL_I3DL2_ENVIRONMENT_PRESET_LIVINGROOM \
1452*bebae9c0SAndroid Build Coastguard Worker 	{ -1000,-6000,  500,  100, -1376,   3, -1104,   4, 1000,1000 }
1453*bebae9c0SAndroid Build Coastguard Worker #define SL_I3DL2_ENVIRONMENT_PRESET_STONEROOM \
1454*bebae9c0SAndroid Build Coastguard Worker 	{ -1000, -300, 2310,  640,  -711,  12,    83,  17, 1000,1000 }
1455*bebae9c0SAndroid Build Coastguard Worker #define SL_I3DL2_ENVIRONMENT_PRESET_AUDITORIUM \
1456*bebae9c0SAndroid Build Coastguard Worker 	{ -1000, -476, 4320,  590,  -789,  20,  -289,  30, 1000,1000 }
1457*bebae9c0SAndroid Build Coastguard Worker #define SL_I3DL2_ENVIRONMENT_PRESET_CONCERTHALL \
1458*bebae9c0SAndroid Build Coastguard Worker 	{ -1000, -500, 3920,  700, -1230,  20,    -2,  29, 1000,1000 }
1459*bebae9c0SAndroid Build Coastguard Worker #define SL_I3DL2_ENVIRONMENT_PRESET_CAVE \
1460*bebae9c0SAndroid Build Coastguard Worker 	{ -1000,    0, 2910, 1300,  -602,  15,  -302,  22, 1000,1000 }
1461*bebae9c0SAndroid Build Coastguard Worker #define SL_I3DL2_ENVIRONMENT_PRESET_ARENA \
1462*bebae9c0SAndroid Build Coastguard Worker 	{ -1000, -698, 7240,  330, -1166,  20,    16,  30, 1000,1000 }
1463*bebae9c0SAndroid Build Coastguard Worker #define SL_I3DL2_ENVIRONMENT_PRESET_HANGAR \
1464*bebae9c0SAndroid Build Coastguard Worker 	{ -1000,-1000, 10050,  230,  -602,  20,   198,  30, 1000,1000 }
1465*bebae9c0SAndroid Build Coastguard Worker #define SL_I3DL2_ENVIRONMENT_PRESET_CARPETEDHALLWAY \
1466*bebae9c0SAndroid Build Coastguard Worker 	{ -1000,-4000,  300,  100, -1831,   2, -1630,  30, 1000,1000 }
1467*bebae9c0SAndroid Build Coastguard Worker #define SL_I3DL2_ENVIRONMENT_PRESET_HALLWAY \
1468*bebae9c0SAndroid Build Coastguard Worker 	{ -1000, -300, 1490,  590, -1219,   7,   441,  11, 1000,1000 }
1469*bebae9c0SAndroid Build Coastguard Worker #define SL_I3DL2_ENVIRONMENT_PRESET_STONECORRIDOR \
1470*bebae9c0SAndroid Build Coastguard Worker 	{ -1000, -237, 2700,  790, -1214,  13,   395,  20, 1000,1000 }
1471*bebae9c0SAndroid Build Coastguard Worker #define SL_I3DL2_ENVIRONMENT_PRESET_ALLEY \
1472*bebae9c0SAndroid Build Coastguard Worker 	{ -1000, -270, 1490,  860, -1204,   7,    -4,  11, 1000,1000 }
1473*bebae9c0SAndroid Build Coastguard Worker #define SL_I3DL2_ENVIRONMENT_PRESET_FOREST \
1474*bebae9c0SAndroid Build Coastguard Worker 	{ -1000,-3300, 1490,  540, -2560, 162,  -613,  88,  790,1000 }
1475*bebae9c0SAndroid Build Coastguard Worker #define SL_I3DL2_ENVIRONMENT_PRESET_CITY \
1476*bebae9c0SAndroid Build Coastguard Worker 	{ -1000, -800, 1490,  670, -2273,   7, -2217,  11,  500,1000 }
1477*bebae9c0SAndroid Build Coastguard Worker #define SL_I3DL2_ENVIRONMENT_PRESET_MOUNTAINS \
1478*bebae9c0SAndroid Build Coastguard Worker 	{ -1000,-2500, 1490,  210, -2780, 300, -2014, 100,  270,1000 }
1479*bebae9c0SAndroid Build Coastguard Worker #define SL_I3DL2_ENVIRONMENT_PRESET_QUARRY \
1480*bebae9c0SAndroid Build Coastguard Worker 	{ -1000,-1000, 1490,  830, SL_MILLIBEL_MIN,  61,   500,  25, 1000,1000 }
1481*bebae9c0SAndroid Build Coastguard Worker #define SL_I3DL2_ENVIRONMENT_PRESET_PLAIN \
1482*bebae9c0SAndroid Build Coastguard Worker 	{ -1000,-2000, 1490,  500, -2466, 179, -2514, 100,  210,1000 }
1483*bebae9c0SAndroid Build Coastguard Worker #define SL_I3DL2_ENVIRONMENT_PRESET_PARKINGLOT \
1484*bebae9c0SAndroid Build Coastguard Worker 	{ -1000,    0, 1650, 1500, -1363,   8, -1153,  12, 1000,1000 }
1485*bebae9c0SAndroid Build Coastguard Worker #define SL_I3DL2_ENVIRONMENT_PRESET_SEWERPIPE \
1486*bebae9c0SAndroid Build Coastguard Worker 	{ -1000,-1000, 2810,  140,   429,  14,   648,  21,  800, 600 }
1487*bebae9c0SAndroid Build Coastguard Worker #define SL_I3DL2_ENVIRONMENT_PRESET_UNDERWATER \
1488*bebae9c0SAndroid Build Coastguard Worker 	{ -1000,-4000, 1490,  100,  -449,   7,  1700,  11, 1000,1000 }
1489*bebae9c0SAndroid Build Coastguard Worker #define SL_I3DL2_ENVIRONMENT_PRESET_SMALLROOM \
1490*bebae9c0SAndroid Build Coastguard Worker 	{ -1000,-600, 1100, 830, -400, 5, 500, 10, 1000, 1000 }
1491*bebae9c0SAndroid Build Coastguard Worker #define SL_I3DL2_ENVIRONMENT_PRESET_MEDIUMROOM \
1492*bebae9c0SAndroid Build Coastguard Worker 	{ -1000,-600, 1300, 830, -1000, 20, -200, 20, 1000, 1000 }
1493*bebae9c0SAndroid Build Coastguard Worker #define SL_I3DL2_ENVIRONMENT_PRESET_LARGEROOM \
1494*bebae9c0SAndroid Build Coastguard Worker 	{ -1000,-600, 1500, 830, -1600, 5, -1000, 40, 1000, 1000 }
1495*bebae9c0SAndroid Build Coastguard Worker #define SL_I3DL2_ENVIRONMENT_PRESET_MEDIUMHALL \
1496*bebae9c0SAndroid Build Coastguard Worker 	{ -1000,-600, 1800, 700, -1300, 15, -800, 30, 1000, 1000 }
1497*bebae9c0SAndroid Build Coastguard Worker #define SL_I3DL2_ENVIRONMENT_PRESET_LARGEHALL \
1498*bebae9c0SAndroid Build Coastguard Worker 	{ -1000,-600, 1800, 700, -2000, 30, -1400, 60, 1000, 1000 }
1499*bebae9c0SAndroid Build Coastguard Worker #define SL_I3DL2_ENVIRONMENT_PRESET_PLATE \
1500*bebae9c0SAndroid Build Coastguard Worker 	{ -1000,-200, 1300, 900, 0, 2, 0, 10, 1000, 750 }
1501*bebae9c0SAndroid Build Coastguard Worker 
1502*bebae9c0SAndroid Build Coastguard Worker 
1503*bebae9c0SAndroid Build Coastguard Worker typedef struct SLEnvironmentalReverbSettings_ {
1504*bebae9c0SAndroid Build Coastguard Worker 	SLmillibel    roomLevel;
1505*bebae9c0SAndroid Build Coastguard Worker 	SLmillibel    roomHFLevel;
1506*bebae9c0SAndroid Build Coastguard Worker 	SLmillisecond decayTime;
1507*bebae9c0SAndroid Build Coastguard Worker 	SLpermille    decayHFRatio;
1508*bebae9c0SAndroid Build Coastguard Worker 	SLmillibel    reflectionsLevel;
1509*bebae9c0SAndroid Build Coastguard Worker 	SLmillisecond reflectionsDelay;
1510*bebae9c0SAndroid Build Coastguard Worker 	SLmillibel    reverbLevel;
1511*bebae9c0SAndroid Build Coastguard Worker 	SLmillisecond reverbDelay;
1512*bebae9c0SAndroid Build Coastguard Worker 	SLpermille    diffusion;
1513*bebae9c0SAndroid Build Coastguard Worker 	SLpermille    density;
1514*bebae9c0SAndroid Build Coastguard Worker } SLEnvironmentalReverbSettings;
1515*bebae9c0SAndroid Build Coastguard Worker 
1516*bebae9c0SAndroid Build Coastguard Worker 
1517*bebae9c0SAndroid Build Coastguard Worker 
1518*bebae9c0SAndroid Build Coastguard Worker 
1519*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_ENVIRONMENTALREVERB;
1520*bebae9c0SAndroid Build Coastguard Worker 
1521*bebae9c0SAndroid Build Coastguard Worker 
1522*bebae9c0SAndroid Build Coastguard Worker struct SLEnvironmentalReverbItf_;
1523*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLEnvironmentalReverbItf_ * const * SLEnvironmentalReverbItf;
1524*bebae9c0SAndroid Build Coastguard Worker 
1525*bebae9c0SAndroid Build Coastguard Worker struct SLEnvironmentalReverbItf_ {
1526*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetRoomLevel) (
1527*bebae9c0SAndroid Build Coastguard Worker 		SLEnvironmentalReverbItf self,
1528*bebae9c0SAndroid Build Coastguard Worker 		SLmillibel room
1529*bebae9c0SAndroid Build Coastguard Worker 	);
1530*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetRoomLevel) (
1531*bebae9c0SAndroid Build Coastguard Worker 		SLEnvironmentalReverbItf self,
1532*bebae9c0SAndroid Build Coastguard Worker 		SLmillibel *pRoom
1533*bebae9c0SAndroid Build Coastguard Worker 	);
1534*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetRoomHFLevel) (
1535*bebae9c0SAndroid Build Coastguard Worker 		SLEnvironmentalReverbItf self,
1536*bebae9c0SAndroid Build Coastguard Worker 		SLmillibel roomHF
1537*bebae9c0SAndroid Build Coastguard Worker 	);
1538*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetRoomHFLevel) (
1539*bebae9c0SAndroid Build Coastguard Worker 		SLEnvironmentalReverbItf self,
1540*bebae9c0SAndroid Build Coastguard Worker 		SLmillibel *pRoomHF
1541*bebae9c0SAndroid Build Coastguard Worker 	);
1542*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetDecayTime) (
1543*bebae9c0SAndroid Build Coastguard Worker 		SLEnvironmentalReverbItf self,
1544*bebae9c0SAndroid Build Coastguard Worker 		SLmillisecond decayTime
1545*bebae9c0SAndroid Build Coastguard Worker 	);
1546*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetDecayTime) (
1547*bebae9c0SAndroid Build Coastguard Worker 		SLEnvironmentalReverbItf self,
1548*bebae9c0SAndroid Build Coastguard Worker 		SLmillisecond *pDecayTime
1549*bebae9c0SAndroid Build Coastguard Worker 	);
1550*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetDecayHFRatio) (
1551*bebae9c0SAndroid Build Coastguard Worker 		SLEnvironmentalReverbItf self,
1552*bebae9c0SAndroid Build Coastguard Worker 		SLpermille decayHFRatio
1553*bebae9c0SAndroid Build Coastguard Worker 	);
1554*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetDecayHFRatio) (
1555*bebae9c0SAndroid Build Coastguard Worker 		SLEnvironmentalReverbItf self,
1556*bebae9c0SAndroid Build Coastguard Worker 		SLpermille *pDecayHFRatio
1557*bebae9c0SAndroid Build Coastguard Worker 	);
1558*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetReflectionsLevel) (
1559*bebae9c0SAndroid Build Coastguard Worker 		SLEnvironmentalReverbItf self,
1560*bebae9c0SAndroid Build Coastguard Worker 		SLmillibel reflectionsLevel
1561*bebae9c0SAndroid Build Coastguard Worker 	);
1562*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetReflectionsLevel) (
1563*bebae9c0SAndroid Build Coastguard Worker 		SLEnvironmentalReverbItf self,
1564*bebae9c0SAndroid Build Coastguard Worker 		SLmillibel *pReflectionsLevel
1565*bebae9c0SAndroid Build Coastguard Worker 	);
1566*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetReflectionsDelay) (
1567*bebae9c0SAndroid Build Coastguard Worker 		SLEnvironmentalReverbItf self,
1568*bebae9c0SAndroid Build Coastguard Worker 		SLmillisecond reflectionsDelay
1569*bebae9c0SAndroid Build Coastguard Worker 	);
1570*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetReflectionsDelay) (
1571*bebae9c0SAndroid Build Coastguard Worker 		SLEnvironmentalReverbItf self,
1572*bebae9c0SAndroid Build Coastguard Worker 		SLmillisecond *pReflectionsDelay
1573*bebae9c0SAndroid Build Coastguard Worker 	);
1574*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetReverbLevel) (
1575*bebae9c0SAndroid Build Coastguard Worker 		SLEnvironmentalReverbItf self,
1576*bebae9c0SAndroid Build Coastguard Worker 		SLmillibel reverbLevel
1577*bebae9c0SAndroid Build Coastguard Worker 	);
1578*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetReverbLevel) (
1579*bebae9c0SAndroid Build Coastguard Worker 		SLEnvironmentalReverbItf self,
1580*bebae9c0SAndroid Build Coastguard Worker 		SLmillibel *pReverbLevel
1581*bebae9c0SAndroid Build Coastguard Worker 	);
1582*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetReverbDelay) (
1583*bebae9c0SAndroid Build Coastguard Worker 		SLEnvironmentalReverbItf self,
1584*bebae9c0SAndroid Build Coastguard Worker 		SLmillisecond reverbDelay
1585*bebae9c0SAndroid Build Coastguard Worker 	);
1586*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetReverbDelay) (
1587*bebae9c0SAndroid Build Coastguard Worker 		SLEnvironmentalReverbItf self,
1588*bebae9c0SAndroid Build Coastguard Worker 		SLmillisecond *pReverbDelay
1589*bebae9c0SAndroid Build Coastguard Worker 	);
1590*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetDiffusion) (
1591*bebae9c0SAndroid Build Coastguard Worker 		SLEnvironmentalReverbItf self,
1592*bebae9c0SAndroid Build Coastguard Worker 		SLpermille diffusion
1593*bebae9c0SAndroid Build Coastguard Worker 	);
1594*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetDiffusion) (
1595*bebae9c0SAndroid Build Coastguard Worker 		SLEnvironmentalReverbItf self,
1596*bebae9c0SAndroid Build Coastguard Worker 		SLpermille *pDiffusion
1597*bebae9c0SAndroid Build Coastguard Worker 	);
1598*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetDensity) (
1599*bebae9c0SAndroid Build Coastguard Worker 		SLEnvironmentalReverbItf self,
1600*bebae9c0SAndroid Build Coastguard Worker 		SLpermille density
1601*bebae9c0SAndroid Build Coastguard Worker 	);
1602*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetDensity) (
1603*bebae9c0SAndroid Build Coastguard Worker 		SLEnvironmentalReverbItf self,
1604*bebae9c0SAndroid Build Coastguard Worker 		SLpermille *pDensity
1605*bebae9c0SAndroid Build Coastguard Worker 	);
1606*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetEnvironmentalReverbProperties) (
1607*bebae9c0SAndroid Build Coastguard Worker 		SLEnvironmentalReverbItf self,
1608*bebae9c0SAndroid Build Coastguard Worker 		const SLEnvironmentalReverbSettings *pProperties
1609*bebae9c0SAndroid Build Coastguard Worker 	);
1610*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetEnvironmentalReverbProperties) (
1611*bebae9c0SAndroid Build Coastguard Worker 		SLEnvironmentalReverbItf self,
1612*bebae9c0SAndroid Build Coastguard Worker 		SLEnvironmentalReverbSettings *pProperties
1613*bebae9c0SAndroid Build Coastguard Worker 	);
1614*bebae9c0SAndroid Build Coastguard Worker };
1615*bebae9c0SAndroid Build Coastguard Worker 
1616*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
1617*bebae9c0SAndroid Build Coastguard Worker /* Effects Send Interface                                                    */
1618*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
1619*bebae9c0SAndroid Build Coastguard Worker 
1620*bebae9c0SAndroid Build Coastguard Worker 
1621*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_EFFECTSEND;
1622*bebae9c0SAndroid Build Coastguard Worker 
1623*bebae9c0SAndroid Build Coastguard Worker struct SLEffectSendItf_;
1624*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLEffectSendItf_ * const * SLEffectSendItf;
1625*bebae9c0SAndroid Build Coastguard Worker 
1626*bebae9c0SAndroid Build Coastguard Worker struct SLEffectSendItf_ {
1627*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*EnableEffectSend) (
1628*bebae9c0SAndroid Build Coastguard Worker 		SLEffectSendItf self,
1629*bebae9c0SAndroid Build Coastguard Worker 		const void *pAuxEffect,
1630*bebae9c0SAndroid Build Coastguard Worker 		SLboolean enable,
1631*bebae9c0SAndroid Build Coastguard Worker 		SLmillibel initialLevel
1632*bebae9c0SAndroid Build Coastguard Worker 	);
1633*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*IsEnabled) (
1634*bebae9c0SAndroid Build Coastguard Worker 		SLEffectSendItf self,
1635*bebae9c0SAndroid Build Coastguard Worker 		const void * pAuxEffect,
1636*bebae9c0SAndroid Build Coastguard Worker 		SLboolean *pEnable
1637*bebae9c0SAndroid Build Coastguard Worker 	);
1638*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetDirectLevel) (
1639*bebae9c0SAndroid Build Coastguard Worker 		SLEffectSendItf self,
1640*bebae9c0SAndroid Build Coastguard Worker 		SLmillibel directLevel
1641*bebae9c0SAndroid Build Coastguard Worker 	);
1642*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetDirectLevel) (
1643*bebae9c0SAndroid Build Coastguard Worker 		SLEffectSendItf self,
1644*bebae9c0SAndroid Build Coastguard Worker 		SLmillibel *pDirectLevel
1645*bebae9c0SAndroid Build Coastguard Worker 	);
1646*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetSendLevel) (
1647*bebae9c0SAndroid Build Coastguard Worker 		SLEffectSendItf self,
1648*bebae9c0SAndroid Build Coastguard Worker 		const void *pAuxEffect,
1649*bebae9c0SAndroid Build Coastguard Worker 		SLmillibel sendLevel
1650*bebae9c0SAndroid Build Coastguard Worker 	);
1651*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetSendLevel)(
1652*bebae9c0SAndroid Build Coastguard Worker 		SLEffectSendItf self,
1653*bebae9c0SAndroid Build Coastguard Worker 		const void *pAuxEffect,
1654*bebae9c0SAndroid Build Coastguard Worker 		SLmillibel *pSendLevel
1655*bebae9c0SAndroid Build Coastguard Worker 	);
1656*bebae9c0SAndroid Build Coastguard Worker };
1657*bebae9c0SAndroid Build Coastguard Worker 
1658*bebae9c0SAndroid Build Coastguard Worker 
1659*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
1660*bebae9c0SAndroid Build Coastguard Worker /* 3D Grouping Interface                                                     */
1661*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
1662*bebae9c0SAndroid Build Coastguard Worker 
1663*bebae9c0SAndroid Build Coastguard Worker 
1664*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_3DGROUPING;
1665*bebae9c0SAndroid Build Coastguard Worker 
1666*bebae9c0SAndroid Build Coastguard Worker 
1667*bebae9c0SAndroid Build Coastguard Worker struct SL3DGroupingItf_ ;
1668*bebae9c0SAndroid Build Coastguard Worker typedef const struct SL3DGroupingItf_ * const * SL3DGroupingItf;
1669*bebae9c0SAndroid Build Coastguard Worker 
1670*bebae9c0SAndroid Build Coastguard Worker struct SL3DGroupingItf_ {
1671*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*Set3DGroup) (
1672*bebae9c0SAndroid Build Coastguard Worker 		SL3DGroupingItf self,
1673*bebae9c0SAndroid Build Coastguard Worker 		SLObjectItf group
1674*bebae9c0SAndroid Build Coastguard Worker 	);
1675*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*Get3DGroup) (
1676*bebae9c0SAndroid Build Coastguard Worker 		SL3DGroupingItf self,
1677*bebae9c0SAndroid Build Coastguard Worker 		SLObjectItf *pGroup
1678*bebae9c0SAndroid Build Coastguard Worker 	);
1679*bebae9c0SAndroid Build Coastguard Worker };
1680*bebae9c0SAndroid Build Coastguard Worker 
1681*bebae9c0SAndroid Build Coastguard Worker 
1682*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
1683*bebae9c0SAndroid Build Coastguard Worker /* 3D Commit Interface                                                       */
1684*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
1685*bebae9c0SAndroid Build Coastguard Worker 
1686*bebae9c0SAndroid Build Coastguard Worker 
1687*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_3DCOMMIT;
1688*bebae9c0SAndroid Build Coastguard Worker 
1689*bebae9c0SAndroid Build Coastguard Worker struct SL3DCommitItf_;
1690*bebae9c0SAndroid Build Coastguard Worker typedef const struct SL3DCommitItf_* const * SL3DCommitItf;
1691*bebae9c0SAndroid Build Coastguard Worker 
1692*bebae9c0SAndroid Build Coastguard Worker struct SL3DCommitItf_ {
1693*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*Commit) (
1694*bebae9c0SAndroid Build Coastguard Worker 		SL3DCommitItf self
1695*bebae9c0SAndroid Build Coastguard Worker 	);
1696*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetDeferred) (
1697*bebae9c0SAndroid Build Coastguard Worker 		SL3DCommitItf self,
1698*bebae9c0SAndroid Build Coastguard Worker 		SLboolean deferred
1699*bebae9c0SAndroid Build Coastguard Worker 	);
1700*bebae9c0SAndroid Build Coastguard Worker };
1701*bebae9c0SAndroid Build Coastguard Worker 
1702*bebae9c0SAndroid Build Coastguard Worker 
1703*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
1704*bebae9c0SAndroid Build Coastguard Worker /* 3D Location Interface                                                     */
1705*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
1706*bebae9c0SAndroid Build Coastguard Worker 
1707*bebae9c0SAndroid Build Coastguard Worker typedef struct SLVec3D_ {
1708*bebae9c0SAndroid Build Coastguard Worker 	SLint32	x;
1709*bebae9c0SAndroid Build Coastguard Worker 	SLint32	y;
1710*bebae9c0SAndroid Build Coastguard Worker 	SLint32	z;
1711*bebae9c0SAndroid Build Coastguard Worker } SLVec3D;
1712*bebae9c0SAndroid Build Coastguard Worker 
1713*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_3DLOCATION;
1714*bebae9c0SAndroid Build Coastguard Worker 
1715*bebae9c0SAndroid Build Coastguard Worker struct SL3DLocationItf_;
1716*bebae9c0SAndroid Build Coastguard Worker typedef const struct SL3DLocationItf_ * const * SL3DLocationItf;
1717*bebae9c0SAndroid Build Coastguard Worker 
1718*bebae9c0SAndroid Build Coastguard Worker struct SL3DLocationItf_ {
1719*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetLocationCartesian) (
1720*bebae9c0SAndroid Build Coastguard Worker 		SL3DLocationItf self,
1721*bebae9c0SAndroid Build Coastguard Worker 		const SLVec3D *pLocation
1722*bebae9c0SAndroid Build Coastguard Worker 	);
1723*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetLocationSpherical) (
1724*bebae9c0SAndroid Build Coastguard Worker 		SL3DLocationItf self,
1725*bebae9c0SAndroid Build Coastguard Worker 		SLmillidegree azimuth,
1726*bebae9c0SAndroid Build Coastguard Worker 		SLmillidegree elevation,
1727*bebae9c0SAndroid Build Coastguard Worker 		SLmillimeter distance
1728*bebae9c0SAndroid Build Coastguard Worker 	);
1729*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*Move) (
1730*bebae9c0SAndroid Build Coastguard Worker 		SL3DLocationItf self,
1731*bebae9c0SAndroid Build Coastguard Worker 		const SLVec3D *pMovement
1732*bebae9c0SAndroid Build Coastguard Worker 	);
1733*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetLocationCartesian) (
1734*bebae9c0SAndroid Build Coastguard Worker 		SL3DLocationItf self,
1735*bebae9c0SAndroid Build Coastguard Worker 		SLVec3D *pLocation
1736*bebae9c0SAndroid Build Coastguard Worker 	);
1737*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetOrientationVectors) (
1738*bebae9c0SAndroid Build Coastguard Worker 		SL3DLocationItf self,
1739*bebae9c0SAndroid Build Coastguard Worker 		const SLVec3D *pFront,
1740*bebae9c0SAndroid Build Coastguard Worker 		const SLVec3D *pAbove
1741*bebae9c0SAndroid Build Coastguard Worker 	);
1742*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetOrientationAngles) (
1743*bebae9c0SAndroid Build Coastguard Worker 		SL3DLocationItf self,
1744*bebae9c0SAndroid Build Coastguard Worker 		SLmillidegree heading,
1745*bebae9c0SAndroid Build Coastguard Worker 		SLmillidegree pitch,
1746*bebae9c0SAndroid Build Coastguard Worker 		SLmillidegree roll
1747*bebae9c0SAndroid Build Coastguard Worker 	);
1748*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*Rotate) (
1749*bebae9c0SAndroid Build Coastguard Worker 		SL3DLocationItf self,
1750*bebae9c0SAndroid Build Coastguard Worker 		SLmillidegree theta,
1751*bebae9c0SAndroid Build Coastguard Worker 		const SLVec3D *pAxis
1752*bebae9c0SAndroid Build Coastguard Worker 	);
1753*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetOrientationVectors) (
1754*bebae9c0SAndroid Build Coastguard Worker 		SL3DLocationItf self,
1755*bebae9c0SAndroid Build Coastguard Worker 		SLVec3D *pFront,
1756*bebae9c0SAndroid Build Coastguard Worker 		SLVec3D *pUp
1757*bebae9c0SAndroid Build Coastguard Worker 	);
1758*bebae9c0SAndroid Build Coastguard Worker };
1759*bebae9c0SAndroid Build Coastguard Worker 
1760*bebae9c0SAndroid Build Coastguard Worker 
1761*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
1762*bebae9c0SAndroid Build Coastguard Worker /* 3D Doppler Interface                                                      */
1763*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
1764*bebae9c0SAndroid Build Coastguard Worker 
1765*bebae9c0SAndroid Build Coastguard Worker 
1766*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_3DDOPPLER;
1767*bebae9c0SAndroid Build Coastguard Worker 
1768*bebae9c0SAndroid Build Coastguard Worker struct SL3DDopplerItf_;
1769*bebae9c0SAndroid Build Coastguard Worker typedef const struct SL3DDopplerItf_ * const * SL3DDopplerItf;
1770*bebae9c0SAndroid Build Coastguard Worker 
1771*bebae9c0SAndroid Build Coastguard Worker struct SL3DDopplerItf_ {
1772*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetVelocityCartesian) (
1773*bebae9c0SAndroid Build Coastguard Worker 		SL3DDopplerItf self,
1774*bebae9c0SAndroid Build Coastguard Worker 		const SLVec3D *pVelocity
1775*bebae9c0SAndroid Build Coastguard Worker 	);
1776*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetVelocitySpherical) (
1777*bebae9c0SAndroid Build Coastguard Worker 		SL3DDopplerItf self,
1778*bebae9c0SAndroid Build Coastguard Worker 		SLmillidegree azimuth,
1779*bebae9c0SAndroid Build Coastguard Worker 		SLmillidegree elevation,
1780*bebae9c0SAndroid Build Coastguard Worker 		SLmillimeter speed
1781*bebae9c0SAndroid Build Coastguard Worker 	);
1782*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetVelocityCartesian) (
1783*bebae9c0SAndroid Build Coastguard Worker 		SL3DDopplerItf self,
1784*bebae9c0SAndroid Build Coastguard Worker 		SLVec3D *pVelocity
1785*bebae9c0SAndroid Build Coastguard Worker 	);
1786*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetDopplerFactor) (
1787*bebae9c0SAndroid Build Coastguard Worker 		SL3DDopplerItf self,
1788*bebae9c0SAndroid Build Coastguard Worker 		SLpermille dopplerFactor
1789*bebae9c0SAndroid Build Coastguard Worker 	);
1790*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetDopplerFactor) (
1791*bebae9c0SAndroid Build Coastguard Worker 		SL3DDopplerItf self,
1792*bebae9c0SAndroid Build Coastguard Worker 		SLpermille *pDopplerFactor
1793*bebae9c0SAndroid Build Coastguard Worker 	);
1794*bebae9c0SAndroid Build Coastguard Worker };
1795*bebae9c0SAndroid Build Coastguard Worker 
1796*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
1797*bebae9c0SAndroid Build Coastguard Worker /* 3D Source Interface and associated defines                                */
1798*bebae9c0SAndroid Build Coastguard Worker /* --------------------------------------------------------------------------*/
1799*bebae9c0SAndroid Build Coastguard Worker 
1800*bebae9c0SAndroid Build Coastguard Worker #define SL_ROLLOFFMODEL_EXPONENTIAL	((SLuint32) 0x00000000)
1801*bebae9c0SAndroid Build Coastguard Worker #define SL_ROLLOFFMODEL_LINEAR		((SLuint32) 0x00000001)
1802*bebae9c0SAndroid Build Coastguard Worker 
1803*bebae9c0SAndroid Build Coastguard Worker 
1804*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_3DSOURCE;
1805*bebae9c0SAndroid Build Coastguard Worker 
1806*bebae9c0SAndroid Build Coastguard Worker struct SL3DSourceItf_;
1807*bebae9c0SAndroid Build Coastguard Worker typedef const struct SL3DSourceItf_ * const * SL3DSourceItf;
1808*bebae9c0SAndroid Build Coastguard Worker 
1809*bebae9c0SAndroid Build Coastguard Worker struct SL3DSourceItf_ {
1810*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetHeadRelative) (
1811*bebae9c0SAndroid Build Coastguard Worker 		SL3DSourceItf self,
1812*bebae9c0SAndroid Build Coastguard Worker 		SLboolean headRelative
1813*bebae9c0SAndroid Build Coastguard Worker 	);
1814*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetHeadRelative) (
1815*bebae9c0SAndroid Build Coastguard Worker 		SL3DSourceItf self,
1816*bebae9c0SAndroid Build Coastguard Worker 		SLboolean *pHeadRelative
1817*bebae9c0SAndroid Build Coastguard Worker 	);
1818*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetRolloffDistances) (
1819*bebae9c0SAndroid Build Coastguard Worker 		SL3DSourceItf self,
1820*bebae9c0SAndroid Build Coastguard Worker 		SLmillimeter minDistance,
1821*bebae9c0SAndroid Build Coastguard Worker 		SLmillimeter maxDistance
1822*bebae9c0SAndroid Build Coastguard Worker 	);
1823*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetRolloffDistances) (
1824*bebae9c0SAndroid Build Coastguard Worker 		SL3DSourceItf self,
1825*bebae9c0SAndroid Build Coastguard Worker 		SLmillimeter *pMinDistance,
1826*bebae9c0SAndroid Build Coastguard Worker 		SLmillimeter *pMaxDistance
1827*bebae9c0SAndroid Build Coastguard Worker 	);
1828*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetRolloffMaxDistanceMute) (
1829*bebae9c0SAndroid Build Coastguard Worker 		SL3DSourceItf self,
1830*bebae9c0SAndroid Build Coastguard Worker 		SLboolean mute
1831*bebae9c0SAndroid Build Coastguard Worker 	);
1832*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetRolloffMaxDistanceMute) (
1833*bebae9c0SAndroid Build Coastguard Worker 		SL3DSourceItf self,
1834*bebae9c0SAndroid Build Coastguard Worker 		SLboolean *pMute
1835*bebae9c0SAndroid Build Coastguard Worker 	);
1836*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetRolloffFactor) (
1837*bebae9c0SAndroid Build Coastguard Worker 		SL3DSourceItf self,
1838*bebae9c0SAndroid Build Coastguard Worker 		SLpermille rolloffFactor
1839*bebae9c0SAndroid Build Coastguard Worker 	);
1840*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetRolloffFactor) (
1841*bebae9c0SAndroid Build Coastguard Worker 		SL3DSourceItf self,
1842*bebae9c0SAndroid Build Coastguard Worker 		SLpermille *pRolloffFactor
1843*bebae9c0SAndroid Build Coastguard Worker 	);
1844*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetRoomRolloffFactor) (
1845*bebae9c0SAndroid Build Coastguard Worker 		SL3DSourceItf self,
1846*bebae9c0SAndroid Build Coastguard Worker 		SLpermille roomRolloffFactor
1847*bebae9c0SAndroid Build Coastguard Worker 	);
1848*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetRoomRolloffFactor) (
1849*bebae9c0SAndroid Build Coastguard Worker 		SL3DSourceItf self,
1850*bebae9c0SAndroid Build Coastguard Worker 		SLpermille *pRoomRolloffFactor
1851*bebae9c0SAndroid Build Coastguard Worker 	);
1852*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetRolloffModel) (
1853*bebae9c0SAndroid Build Coastguard Worker 		SL3DSourceItf self,
1854*bebae9c0SAndroid Build Coastguard Worker 		SLuint8 model
1855*bebae9c0SAndroid Build Coastguard Worker 	);
1856*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetRolloffModel) (
1857*bebae9c0SAndroid Build Coastguard Worker 		SL3DSourceItf self,
1858*bebae9c0SAndroid Build Coastguard Worker 		SLuint8 *pModel
1859*bebae9c0SAndroid Build Coastguard Worker 	);
1860*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetCone) (
1861*bebae9c0SAndroid Build Coastguard Worker 		SL3DSourceItf self,
1862*bebae9c0SAndroid Build Coastguard Worker 		SLmillidegree innerAngle,
1863*bebae9c0SAndroid Build Coastguard Worker 		SLmillidegree outerAngle,
1864*bebae9c0SAndroid Build Coastguard Worker 		SLmillibel outerLevel
1865*bebae9c0SAndroid Build Coastguard Worker 	);
1866*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetCone) (
1867*bebae9c0SAndroid Build Coastguard Worker 		SL3DSourceItf self,
1868*bebae9c0SAndroid Build Coastguard Worker 		SLmillidegree *pInnerAngle,
1869*bebae9c0SAndroid Build Coastguard Worker 		SLmillidegree *pOuterAngle,
1870*bebae9c0SAndroid Build Coastguard Worker 		SLmillibel *pOuterLevel
1871*bebae9c0SAndroid Build Coastguard Worker 	);
1872*bebae9c0SAndroid Build Coastguard Worker };
1873*bebae9c0SAndroid Build Coastguard Worker 
1874*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
1875*bebae9c0SAndroid Build Coastguard Worker /* 3D Macroscopic Interface                                                  */
1876*bebae9c0SAndroid Build Coastguard Worker /* --------------------------------------------------------------------------*/
1877*bebae9c0SAndroid Build Coastguard Worker 
1878*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_3DMACROSCOPIC;
1879*bebae9c0SAndroid Build Coastguard Worker 
1880*bebae9c0SAndroid Build Coastguard Worker struct SL3DMacroscopicItf_;
1881*bebae9c0SAndroid Build Coastguard Worker typedef const struct SL3DMacroscopicItf_ * const * SL3DMacroscopicItf;
1882*bebae9c0SAndroid Build Coastguard Worker 
1883*bebae9c0SAndroid Build Coastguard Worker struct SL3DMacroscopicItf_ {
1884*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetSize) (
1885*bebae9c0SAndroid Build Coastguard Worker 		SL3DMacroscopicItf self,
1886*bebae9c0SAndroid Build Coastguard Worker 		SLmillimeter width,
1887*bebae9c0SAndroid Build Coastguard Worker 		SLmillimeter height,
1888*bebae9c0SAndroid Build Coastguard Worker 		SLmillimeter depth
1889*bebae9c0SAndroid Build Coastguard Worker 	);
1890*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetSize) (
1891*bebae9c0SAndroid Build Coastguard Worker 		SL3DMacroscopicItf self,
1892*bebae9c0SAndroid Build Coastguard Worker 		SLmillimeter *pWidth,
1893*bebae9c0SAndroid Build Coastguard Worker 		SLmillimeter *pHeight,
1894*bebae9c0SAndroid Build Coastguard Worker 		SLmillimeter *pDepth
1895*bebae9c0SAndroid Build Coastguard Worker 	);
1896*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetOrientationAngles) (
1897*bebae9c0SAndroid Build Coastguard Worker 		SL3DMacroscopicItf self,
1898*bebae9c0SAndroid Build Coastguard Worker 		SLmillidegree heading,
1899*bebae9c0SAndroid Build Coastguard Worker 		SLmillidegree pitch,
1900*bebae9c0SAndroid Build Coastguard Worker 		SLmillidegree roll
1901*bebae9c0SAndroid Build Coastguard Worker 	);
1902*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetOrientationVectors) (
1903*bebae9c0SAndroid Build Coastguard Worker 		SL3DMacroscopicItf self,
1904*bebae9c0SAndroid Build Coastguard Worker 		const SLVec3D *pFront,
1905*bebae9c0SAndroid Build Coastguard Worker 		const SLVec3D *pAbove
1906*bebae9c0SAndroid Build Coastguard Worker 	);
1907*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*Rotate) (
1908*bebae9c0SAndroid Build Coastguard Worker 		SL3DMacroscopicItf self,
1909*bebae9c0SAndroid Build Coastguard Worker 		SLmillidegree theta,
1910*bebae9c0SAndroid Build Coastguard Worker 		const SLVec3D *pAxis
1911*bebae9c0SAndroid Build Coastguard Worker 	);
1912*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetOrientationVectors) (
1913*bebae9c0SAndroid Build Coastguard Worker 		SL3DMacroscopicItf self,
1914*bebae9c0SAndroid Build Coastguard Worker 		SLVec3D *pFront,
1915*bebae9c0SAndroid Build Coastguard Worker 		SLVec3D *pUp
1916*bebae9c0SAndroid Build Coastguard Worker 	);
1917*bebae9c0SAndroid Build Coastguard Worker };
1918*bebae9c0SAndroid Build Coastguard Worker 
1919*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
1920*bebae9c0SAndroid Build Coastguard Worker /* Mute Solo Interface                                                       */
1921*bebae9c0SAndroid Build Coastguard Worker /* --------------------------------------------------------------------------*/
1922*bebae9c0SAndroid Build Coastguard Worker 
1923*bebae9c0SAndroid Build Coastguard Worker 
1924*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_MUTESOLO;
1925*bebae9c0SAndroid Build Coastguard Worker 
1926*bebae9c0SAndroid Build Coastguard Worker struct SLMuteSoloItf_;
1927*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLMuteSoloItf_ * const * SLMuteSoloItf;
1928*bebae9c0SAndroid Build Coastguard Worker 
1929*bebae9c0SAndroid Build Coastguard Worker struct SLMuteSoloItf_ {
1930*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetChannelMute) (
1931*bebae9c0SAndroid Build Coastguard Worker 		SLMuteSoloItf self,
1932*bebae9c0SAndroid Build Coastguard Worker 		SLuint8 chan,
1933*bebae9c0SAndroid Build Coastguard Worker 		SLboolean mute
1934*bebae9c0SAndroid Build Coastguard Worker 	);
1935*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetChannelMute) (
1936*bebae9c0SAndroid Build Coastguard Worker 		SLMuteSoloItf self,
1937*bebae9c0SAndroid Build Coastguard Worker 		SLuint8 chan,
1938*bebae9c0SAndroid Build Coastguard Worker 		SLboolean *pMute
1939*bebae9c0SAndroid Build Coastguard Worker 	);
1940*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetChannelSolo) (
1941*bebae9c0SAndroid Build Coastguard Worker 		SLMuteSoloItf self,
1942*bebae9c0SAndroid Build Coastguard Worker 		SLuint8 chan,
1943*bebae9c0SAndroid Build Coastguard Worker 		SLboolean solo
1944*bebae9c0SAndroid Build Coastguard Worker 	);
1945*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetChannelSolo) (
1946*bebae9c0SAndroid Build Coastguard Worker 		SLMuteSoloItf self,
1947*bebae9c0SAndroid Build Coastguard Worker 		SLuint8 chan,
1948*bebae9c0SAndroid Build Coastguard Worker 		SLboolean *pSolo
1949*bebae9c0SAndroid Build Coastguard Worker 	);
1950*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetNumChannels) (
1951*bebae9c0SAndroid Build Coastguard Worker 		SLMuteSoloItf self,
1952*bebae9c0SAndroid Build Coastguard Worker 		SLuint8 *pNumChannels
1953*bebae9c0SAndroid Build Coastguard Worker 	);
1954*bebae9c0SAndroid Build Coastguard Worker };
1955*bebae9c0SAndroid Build Coastguard Worker 
1956*bebae9c0SAndroid Build Coastguard Worker 
1957*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
1958*bebae9c0SAndroid Build Coastguard Worker /* Dynamic Interface Management Interface and associated types and macros    */
1959*bebae9c0SAndroid Build Coastguard Worker /* --------------------------------------------------------------------------*/
1960*bebae9c0SAndroid Build Coastguard Worker 
1961*bebae9c0SAndroid Build Coastguard Worker #define SL_DYNAMIC_ITF_EVENT_RUNTIME_ERROR			((SLuint32) 0x00000001)
1962*bebae9c0SAndroid Build Coastguard Worker #define SL_DYNAMIC_ITF_EVENT_ASYNC_TERMINATION		((SLuint32) 0x00000002)
1963*bebae9c0SAndroid Build Coastguard Worker #define SL_DYNAMIC_ITF_EVENT_RESOURCES_LOST			((SLuint32) 0x00000003)
1964*bebae9c0SAndroid Build Coastguard Worker #define SL_DYNAMIC_ITF_EVENT_RESOURCES_LOST_PERMANENTLY	((SLuint32) 0x00000004)
1965*bebae9c0SAndroid Build Coastguard Worker #define SL_DYNAMIC_ITF_EVENT_RESOURCES_AVAILABLE		((SLuint32) 0x00000005)
1966*bebae9c0SAndroid Build Coastguard Worker 
1967*bebae9c0SAndroid Build Coastguard Worker 
1968*bebae9c0SAndroid Build Coastguard Worker 
1969*bebae9c0SAndroid Build Coastguard Worker 
1970*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_DYNAMICINTERFACEMANAGEMENT;
1971*bebae9c0SAndroid Build Coastguard Worker 
1972*bebae9c0SAndroid Build Coastguard Worker struct SLDynamicInterfaceManagementItf_;
1973*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLDynamicInterfaceManagementItf_ * const * SLDynamicInterfaceManagementItf;
1974*bebae9c0SAndroid Build Coastguard Worker 
1975*bebae9c0SAndroid Build Coastguard Worker typedef void (SLAPIENTRY *slDynamicInterfaceManagementCallback) (
1976*bebae9c0SAndroid Build Coastguard Worker 	SLDynamicInterfaceManagementItf caller,
1977*bebae9c0SAndroid Build Coastguard Worker 	void * pContext,
1978*bebae9c0SAndroid Build Coastguard Worker 	SLuint32 event,
1979*bebae9c0SAndroid Build Coastguard Worker 	SLresult result,
1980*bebae9c0SAndroid Build Coastguard Worker     const SLInterfaceID iid
1981*bebae9c0SAndroid Build Coastguard Worker );
1982*bebae9c0SAndroid Build Coastguard Worker 
1983*bebae9c0SAndroid Build Coastguard Worker 
1984*bebae9c0SAndroid Build Coastguard Worker struct SLDynamicInterfaceManagementItf_ {
1985*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*AddInterface) (
1986*bebae9c0SAndroid Build Coastguard Worker 		SLDynamicInterfaceManagementItf self,
1987*bebae9c0SAndroid Build Coastguard Worker 		const SLInterfaceID iid,
1988*bebae9c0SAndroid Build Coastguard Worker 		SLboolean async
1989*bebae9c0SAndroid Build Coastguard Worker 	);
1990*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*RemoveInterface) (
1991*bebae9c0SAndroid Build Coastguard Worker 		SLDynamicInterfaceManagementItf self,
1992*bebae9c0SAndroid Build Coastguard Worker 		const SLInterfaceID iid
1993*bebae9c0SAndroid Build Coastguard Worker 	);
1994*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*ResumeInterface) (
1995*bebae9c0SAndroid Build Coastguard Worker 		SLDynamicInterfaceManagementItf self,
1996*bebae9c0SAndroid Build Coastguard Worker 		const SLInterfaceID iid,
1997*bebae9c0SAndroid Build Coastguard Worker 		SLboolean async
1998*bebae9c0SAndroid Build Coastguard Worker 	);
1999*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*RegisterCallback) (
2000*bebae9c0SAndroid Build Coastguard Worker 		SLDynamicInterfaceManagementItf self,
2001*bebae9c0SAndroid Build Coastguard Worker 		slDynamicInterfaceManagementCallback callback,
2002*bebae9c0SAndroid Build Coastguard Worker 		void * pContext
2003*bebae9c0SAndroid Build Coastguard Worker 	);
2004*bebae9c0SAndroid Build Coastguard Worker };
2005*bebae9c0SAndroid Build Coastguard Worker 
2006*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
2007*bebae9c0SAndroid Build Coastguard Worker /* Midi Message Interface and associated types                               */
2008*bebae9c0SAndroid Build Coastguard Worker /* --------------------------------------------------------------------------*/
2009*bebae9c0SAndroid Build Coastguard Worker 
2010*bebae9c0SAndroid Build Coastguard Worker #define SL_MIDIMESSAGETYPE_NOTE_ON_OFF		((SLuint32) 0x00000001)
2011*bebae9c0SAndroid Build Coastguard Worker #define SL_MIDIMESSAGETYPE_POLY_PRESSURE	((SLuint32) 0x00000002)
2012*bebae9c0SAndroid Build Coastguard Worker #define SL_MIDIMESSAGETYPE_CONTROL_CHANGE	((SLuint32) 0x00000003)
2013*bebae9c0SAndroid Build Coastguard Worker #define SL_MIDIMESSAGETYPE_PROGRAM_CHANGE	((SLuint32) 0x00000004)
2014*bebae9c0SAndroid Build Coastguard Worker #define SL_MIDIMESSAGETYPE_CHANNEL_PRESSURE	((SLuint32) 0x00000005)
2015*bebae9c0SAndroid Build Coastguard Worker #define SL_MIDIMESSAGETYPE_PITCH_BEND		((SLuint32) 0x00000006)
2016*bebae9c0SAndroid Build Coastguard Worker #define SL_MIDIMESSAGETYPE_SYSTEM_MESSAGE	((SLuint32) 0x00000007)
2017*bebae9c0SAndroid Build Coastguard Worker 
2018*bebae9c0SAndroid Build Coastguard Worker 
2019*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_MIDIMESSAGE;
2020*bebae9c0SAndroid Build Coastguard Worker 
2021*bebae9c0SAndroid Build Coastguard Worker struct SLMIDIMessageItf_;
2022*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLMIDIMessageItf_ * const * SLMIDIMessageItf;
2023*bebae9c0SAndroid Build Coastguard Worker 
2024*bebae9c0SAndroid Build Coastguard Worker typedef void (SLAPIENTRY *slMetaEventCallback) (
2025*bebae9c0SAndroid Build Coastguard Worker 	SLMIDIMessageItf caller,
2026*bebae9c0SAndroid Build Coastguard Worker 	void *pContext,
2027*bebae9c0SAndroid Build Coastguard Worker 	SLuint8 type,
2028*bebae9c0SAndroid Build Coastguard Worker     SLuint32 length,
2029*bebae9c0SAndroid Build Coastguard Worker 	const SLuint8 *pData,
2030*bebae9c0SAndroid Build Coastguard Worker 	SLuint32 tick,
2031*bebae9c0SAndroid Build Coastguard Worker 	SLuint16 track
2032*bebae9c0SAndroid Build Coastguard Worker );
2033*bebae9c0SAndroid Build Coastguard Worker 
2034*bebae9c0SAndroid Build Coastguard Worker typedef void (SLAPIENTRY *slMIDIMessageCallback) (
2035*bebae9c0SAndroid Build Coastguard Worker 	SLMIDIMessageItf caller,
2036*bebae9c0SAndroid Build Coastguard Worker 	void *pContext,
2037*bebae9c0SAndroid Build Coastguard Worker 	SLuint8 statusByte,
2038*bebae9c0SAndroid Build Coastguard Worker 	SLuint32 length,
2039*bebae9c0SAndroid Build Coastguard Worker 	const SLuint8 *pData,
2040*bebae9c0SAndroid Build Coastguard Worker 	SLuint32 tick,
2041*bebae9c0SAndroid Build Coastguard Worker 	SLuint16 track
2042*bebae9c0SAndroid Build Coastguard Worker );
2043*bebae9c0SAndroid Build Coastguard Worker 
2044*bebae9c0SAndroid Build Coastguard Worker struct SLMIDIMessageItf_ {
2045*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SendMessage) (
2046*bebae9c0SAndroid Build Coastguard Worker 		SLMIDIMessageItf self,
2047*bebae9c0SAndroid Build Coastguard Worker 		const SLuint8 *data,
2048*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 length
2049*bebae9c0SAndroid Build Coastguard Worker 	);
2050*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*RegisterMetaEventCallback) (
2051*bebae9c0SAndroid Build Coastguard Worker 		SLMIDIMessageItf self,
2052*bebae9c0SAndroid Build Coastguard Worker 		slMetaEventCallback callback,
2053*bebae9c0SAndroid Build Coastguard Worker 		void *pContext
2054*bebae9c0SAndroid Build Coastguard Worker 	);
2055*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*RegisterMIDIMessageCallback) (
2056*bebae9c0SAndroid Build Coastguard Worker 		SLMIDIMessageItf self,
2057*bebae9c0SAndroid Build Coastguard Worker 		slMIDIMessageCallback callback,
2058*bebae9c0SAndroid Build Coastguard Worker 		void *pContext
2059*bebae9c0SAndroid Build Coastguard Worker 	);
2060*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*AddMIDIMessageCallbackFilter) (
2061*bebae9c0SAndroid Build Coastguard Worker 		SLMIDIMessageItf self,
2062*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 messageType
2063*bebae9c0SAndroid Build Coastguard Worker 	);
2064*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*ClearMIDIMessageCallbackFilter) (
2065*bebae9c0SAndroid Build Coastguard Worker 		SLMIDIMessageItf self
2066*bebae9c0SAndroid Build Coastguard Worker 	);
2067*bebae9c0SAndroid Build Coastguard Worker };
2068*bebae9c0SAndroid Build Coastguard Worker 
2069*bebae9c0SAndroid Build Coastguard Worker 
2070*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
2071*bebae9c0SAndroid Build Coastguard Worker /* Midi Mute Solo interface                                                  */
2072*bebae9c0SAndroid Build Coastguard Worker /* --------------------------------------------------------------------------*/
2073*bebae9c0SAndroid Build Coastguard Worker 
2074*bebae9c0SAndroid Build Coastguard Worker 
2075*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_MIDIMUTESOLO;
2076*bebae9c0SAndroid Build Coastguard Worker 
2077*bebae9c0SAndroid Build Coastguard Worker struct SLMIDIMuteSoloItf_;
2078*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLMIDIMuteSoloItf_ * const * SLMIDIMuteSoloItf;
2079*bebae9c0SAndroid Build Coastguard Worker 
2080*bebae9c0SAndroid Build Coastguard Worker struct SLMIDIMuteSoloItf_ {
2081*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetChannelMute) (
2082*bebae9c0SAndroid Build Coastguard Worker 		SLMIDIMuteSoloItf self,
2083*bebae9c0SAndroid Build Coastguard Worker 		SLuint8 channel,
2084*bebae9c0SAndroid Build Coastguard Worker 		SLboolean mute
2085*bebae9c0SAndroid Build Coastguard Worker 	);
2086*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetChannelMute) (
2087*bebae9c0SAndroid Build Coastguard Worker 		SLMIDIMuteSoloItf self,
2088*bebae9c0SAndroid Build Coastguard Worker 		SLuint8 channel,
2089*bebae9c0SAndroid Build Coastguard Worker 		SLboolean *pMute
2090*bebae9c0SAndroid Build Coastguard Worker 	);
2091*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetChannelSolo) (
2092*bebae9c0SAndroid Build Coastguard Worker 		SLMIDIMuteSoloItf self,
2093*bebae9c0SAndroid Build Coastguard Worker 		SLuint8 channel,
2094*bebae9c0SAndroid Build Coastguard Worker 		SLboolean solo
2095*bebae9c0SAndroid Build Coastguard Worker 	);
2096*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetChannelSolo) (
2097*bebae9c0SAndroid Build Coastguard Worker 		SLMIDIMuteSoloItf self,
2098*bebae9c0SAndroid Build Coastguard Worker 		SLuint8 channel,
2099*bebae9c0SAndroid Build Coastguard Worker 		SLboolean *pSolo
2100*bebae9c0SAndroid Build Coastguard Worker 	);
2101*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetTrackCount) (
2102*bebae9c0SAndroid Build Coastguard Worker 		SLMIDIMuteSoloItf self,
2103*bebae9c0SAndroid Build Coastguard Worker 		SLuint16 *pCount
2104*bebae9c0SAndroid Build Coastguard Worker 	);
2105*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetTrackMute) (
2106*bebae9c0SAndroid Build Coastguard Worker 		SLMIDIMuteSoloItf self,
2107*bebae9c0SAndroid Build Coastguard Worker 		SLuint16 track,
2108*bebae9c0SAndroid Build Coastguard Worker 		SLboolean mute
2109*bebae9c0SAndroid Build Coastguard Worker 	);
2110*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetTrackMute) (
2111*bebae9c0SAndroid Build Coastguard Worker 		SLMIDIMuteSoloItf self,
2112*bebae9c0SAndroid Build Coastguard Worker 		SLuint16 track,
2113*bebae9c0SAndroid Build Coastguard Worker 		SLboolean *pMute
2114*bebae9c0SAndroid Build Coastguard Worker 	);
2115*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetTrackSolo) (
2116*bebae9c0SAndroid Build Coastguard Worker 		SLMIDIMuteSoloItf self,
2117*bebae9c0SAndroid Build Coastguard Worker 		SLuint16 track,
2118*bebae9c0SAndroid Build Coastguard Worker 		SLboolean solo
2119*bebae9c0SAndroid Build Coastguard Worker 	);
2120*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetTrackSolo) (
2121*bebae9c0SAndroid Build Coastguard Worker 		SLMIDIMuteSoloItf self,
2122*bebae9c0SAndroid Build Coastguard Worker 		SLuint16 track,
2123*bebae9c0SAndroid Build Coastguard Worker 		SLboolean *pSolo
2124*bebae9c0SAndroid Build Coastguard Worker 	);
2125*bebae9c0SAndroid Build Coastguard Worker };
2126*bebae9c0SAndroid Build Coastguard Worker 
2127*bebae9c0SAndroid Build Coastguard Worker 
2128*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
2129*bebae9c0SAndroid Build Coastguard Worker /* Midi Tempo interface                                                      */
2130*bebae9c0SAndroid Build Coastguard Worker /* --------------------------------------------------------------------------*/
2131*bebae9c0SAndroid Build Coastguard Worker 
2132*bebae9c0SAndroid Build Coastguard Worker 
2133*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_MIDITEMPO;
2134*bebae9c0SAndroid Build Coastguard Worker 
2135*bebae9c0SAndroid Build Coastguard Worker struct SLMIDITempoItf_;
2136*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLMIDITempoItf_ * const * SLMIDITempoItf;
2137*bebae9c0SAndroid Build Coastguard Worker 
2138*bebae9c0SAndroid Build Coastguard Worker struct SLMIDITempoItf_ {
2139*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetTicksPerQuarterNote) (
2140*bebae9c0SAndroid Build Coastguard Worker 		SLMIDITempoItf self,
2141*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 tpqn
2142*bebae9c0SAndroid Build Coastguard Worker 	);
2143*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetTicksPerQuarterNote) (
2144*bebae9c0SAndroid Build Coastguard Worker 		SLMIDITempoItf self,
2145*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 *pTpqn
2146*bebae9c0SAndroid Build Coastguard Worker 	);
2147*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetMicrosecondsPerQuarterNote) (
2148*bebae9c0SAndroid Build Coastguard Worker 		SLMIDITempoItf self,
2149*bebae9c0SAndroid Build Coastguard Worker 		SLmicrosecond uspqn
2150*bebae9c0SAndroid Build Coastguard Worker 	);
2151*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetMicrosecondsPerQuarterNote) (
2152*bebae9c0SAndroid Build Coastguard Worker 		SLMIDITempoItf self,
2153*bebae9c0SAndroid Build Coastguard Worker 		SLmicrosecond *uspqn
2154*bebae9c0SAndroid Build Coastguard Worker 	);
2155*bebae9c0SAndroid Build Coastguard Worker };
2156*bebae9c0SAndroid Build Coastguard Worker 
2157*bebae9c0SAndroid Build Coastguard Worker 
2158*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
2159*bebae9c0SAndroid Build Coastguard Worker /* Midi Time interface                                                       */
2160*bebae9c0SAndroid Build Coastguard Worker /* --------------------------------------------------------------------------*/
2161*bebae9c0SAndroid Build Coastguard Worker 
2162*bebae9c0SAndroid Build Coastguard Worker 
2163*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_MIDITIME;
2164*bebae9c0SAndroid Build Coastguard Worker 
2165*bebae9c0SAndroid Build Coastguard Worker struct SLMIDITimeItf_;
2166*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLMIDITimeItf_ * const * SLMIDITimeItf;
2167*bebae9c0SAndroid Build Coastguard Worker 
2168*bebae9c0SAndroid Build Coastguard Worker struct SLMIDITimeItf_ {
2169*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetDuration) (
2170*bebae9c0SAndroid Build Coastguard Worker 		SLMIDITimeItf self,
2171*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 *pDuration
2172*bebae9c0SAndroid Build Coastguard Worker 	);
2173*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetPosition) (
2174*bebae9c0SAndroid Build Coastguard Worker 		SLMIDITimeItf self,
2175*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 position
2176*bebae9c0SAndroid Build Coastguard Worker 	);
2177*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetPosition) (
2178*bebae9c0SAndroid Build Coastguard Worker 		SLMIDITimeItf self,
2179*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 *pPosition
2180*bebae9c0SAndroid Build Coastguard Worker 	);
2181*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetLoopPoints) (
2182*bebae9c0SAndroid Build Coastguard Worker 		SLMIDITimeItf self,
2183*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 startTick,
2184*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 numTicks
2185*bebae9c0SAndroid Build Coastguard Worker 	);
2186*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetLoopPoints) (
2187*bebae9c0SAndroid Build Coastguard Worker 		SLMIDITimeItf self,
2188*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 *pStartTick,
2189*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 *pNumTicks
2190*bebae9c0SAndroid Build Coastguard Worker 	);
2191*bebae9c0SAndroid Build Coastguard Worker };
2192*bebae9c0SAndroid Build Coastguard Worker 
2193*bebae9c0SAndroid Build Coastguard Worker 
2194*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
2195*bebae9c0SAndroid Build Coastguard Worker /* Audio Decoder Capabilities Interface                                      */
2196*bebae9c0SAndroid Build Coastguard Worker /* --------------------------------------------------------------------------*/
2197*bebae9c0SAndroid Build Coastguard Worker 
2198*bebae9c0SAndroid Build Coastguard Worker /*Audio Codec related defines*/
2199*bebae9c0SAndroid Build Coastguard Worker 
2200*bebae9c0SAndroid Build Coastguard Worker #define SL_RATECONTROLMODE_CONSTANTBITRATE	((SLuint32) 0x00000001)
2201*bebae9c0SAndroid Build Coastguard Worker #define SL_RATECONTROLMODE_VARIABLEBITRATE	((SLuint32) 0x00000002)
2202*bebae9c0SAndroid Build Coastguard Worker 
2203*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOCODEC_PCM         ((SLuint32) 0x00000001)
2204*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOCODEC_MP3         ((SLuint32) 0x00000002)
2205*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOCODEC_AMR         ((SLuint32) 0x00000003)
2206*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOCODEC_AMRWB       ((SLuint32) 0x00000004)
2207*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOCODEC_AMRWBPLUS   ((SLuint32) 0x00000005)
2208*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOCODEC_AAC         ((SLuint32) 0x00000006)
2209*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOCODEC_WMA         ((SLuint32) 0x00000007)
2210*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOCODEC_REAL        ((SLuint32) 0x00000008)
2211*bebae9c0SAndroid Build Coastguard Worker 
2212*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOPROFILE_PCM                   ((SLuint32) 0x00000001)
2213*bebae9c0SAndroid Build Coastguard Worker 
2214*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOPROFILE_MPEG1_L3              ((SLuint32) 0x00000001)
2215*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOPROFILE_MPEG2_L3              ((SLuint32) 0x00000002)
2216*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOPROFILE_MPEG25_L3             ((SLuint32) 0x00000003)
2217*bebae9c0SAndroid Build Coastguard Worker 
2218*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOCHANMODE_MP3_MONO             ((SLuint32) 0x00000001)
2219*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOCHANMODE_MP3_STEREO           ((SLuint32) 0x00000002)
2220*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOCHANMODE_MP3_JOINTSTEREO      ((SLuint32) 0x00000003)
2221*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOCHANMODE_MP3_DUAL             ((SLuint32) 0x00000004)
2222*bebae9c0SAndroid Build Coastguard Worker 
2223*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOPROFILE_AMR			((SLuint32) 0x00000001)
2224*bebae9c0SAndroid Build Coastguard Worker 
2225*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOSTREAMFORMAT_CONFORMANCE	((SLuint32) 0x00000001)
2226*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOSTREAMFORMAT_IF1			((SLuint32) 0x00000002)
2227*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOSTREAMFORMAT_IF2			((SLuint32) 0x00000003)
2228*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOSTREAMFORMAT_FSF			((SLuint32) 0x00000004)
2229*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOSTREAMFORMAT_RTPPAYLOAD	((SLuint32) 0x00000005)
2230*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOSTREAMFORMAT_ITU			((SLuint32) 0x00000006)
2231*bebae9c0SAndroid Build Coastguard Worker 
2232*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOPROFILE_AMRWB			((SLuint32) 0x00000001)
2233*bebae9c0SAndroid Build Coastguard Worker 
2234*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOPROFILE_AMRWBPLUS		((SLuint32) 0x00000001)
2235*bebae9c0SAndroid Build Coastguard Worker 
2236*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOPROFILE_AAC_AAC			((SLuint32) 0x00000001)
2237*bebae9c0SAndroid Build Coastguard Worker 
2238*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOMODE_AAC_MAIN			((SLuint32) 0x00000001)
2239*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOMODE_AAC_LC			((SLuint32) 0x00000002)
2240*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOMODE_AAC_SSR			((SLuint32) 0x00000003)
2241*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOMODE_AAC_LTP			((SLuint32) 0x00000004)
2242*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOMODE_AAC_HE			((SLuint32) 0x00000005)
2243*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOMODE_AAC_SCALABLE		((SLuint32) 0x00000006)
2244*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOMODE_AAC_ERLC			((SLuint32) 0x00000007)
2245*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOMODE_AAC_LD			((SLuint32) 0x00000008)
2246*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOMODE_AAC_HE_PS			((SLuint32) 0x00000009)
2247*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOMODE_AAC_HE_MPS			((SLuint32) 0x0000000A)
2248*bebae9c0SAndroid Build Coastguard Worker 
2249*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOSTREAMFORMAT_MP2ADTS		((SLuint32) 0x00000001)
2250*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOSTREAMFORMAT_MP4ADTS		((SLuint32) 0x00000002)
2251*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOSTREAMFORMAT_MP4LOAS		((SLuint32) 0x00000003)
2252*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOSTREAMFORMAT_MP4LATM		((SLuint32) 0x00000004)
2253*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOSTREAMFORMAT_ADIF		((SLuint32) 0x00000005)
2254*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOSTREAMFORMAT_MP4FF		((SLuint32) 0x00000006)
2255*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOSTREAMFORMAT_RAW			((SLuint32) 0x00000007)
2256*bebae9c0SAndroid Build Coastguard Worker 
2257*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOPROFILE_WMA7		((SLuint32) 0x00000001)
2258*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOPROFILE_WMA8		((SLuint32) 0x00000002)
2259*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOPROFILE_WMA9		((SLuint32) 0x00000003)
2260*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOPROFILE_WMA10		((SLuint32) 0x00000004)
2261*bebae9c0SAndroid Build Coastguard Worker 
2262*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOMODE_WMA_LEVEL1		((SLuint32) 0x00000001)
2263*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOMODE_WMA_LEVEL2		((SLuint32) 0x00000002)
2264*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOMODE_WMA_LEVEL3		((SLuint32) 0x00000003)
2265*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOMODE_WMA_LEVEL4		((SLuint32) 0x00000004)
2266*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOMODE_WMAPRO_LEVELM0	((SLuint32) 0x00000005)
2267*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOMODE_WMAPRO_LEVELM1	((SLuint32) 0x00000006)
2268*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOMODE_WMAPRO_LEVELM2	((SLuint32) 0x00000007)
2269*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOMODE_WMAPRO_LEVELM3	((SLuint32) 0x00000008)
2270*bebae9c0SAndroid Build Coastguard Worker 
2271*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOPROFILE_REALAUDIO		((SLuint32) 0x00000001)
2272*bebae9c0SAndroid Build Coastguard Worker 
2273*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOMODE_REALAUDIO_G2		((SLuint32) 0x00000001)
2274*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOMODE_REALAUDIO_8			((SLuint32) 0x00000002)
2275*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOMODE_REALAUDIO_10		((SLuint32) 0x00000003)
2276*bebae9c0SAndroid Build Coastguard Worker #define SL_AUDIOMODE_REALAUDIO_SURROUND	((SLuint32) 0x00000004)
2277*bebae9c0SAndroid Build Coastguard Worker 
2278*bebae9c0SAndroid Build Coastguard Worker typedef struct SLAudioCodecDescriptor_ {
2279*bebae9c0SAndroid Build Coastguard Worker     SLuint32      maxChannels;
2280*bebae9c0SAndroid Build Coastguard Worker     SLuint32      minBitsPerSample;
2281*bebae9c0SAndroid Build Coastguard Worker     SLuint32      maxBitsPerSample;
2282*bebae9c0SAndroid Build Coastguard Worker     SLmilliHertz  minSampleRate;
2283*bebae9c0SAndroid Build Coastguard Worker     SLmilliHertz  maxSampleRate;
2284*bebae9c0SAndroid Build Coastguard Worker     SLboolean     isFreqRangeContinuous;
2285*bebae9c0SAndroid Build Coastguard Worker     SLmilliHertz *pSampleRatesSupported;
2286*bebae9c0SAndroid Build Coastguard Worker     SLuint32      numSampleRatesSupported;
2287*bebae9c0SAndroid Build Coastguard Worker     SLuint32      minBitRate;
2288*bebae9c0SAndroid Build Coastguard Worker     SLuint32      maxBitRate;
2289*bebae9c0SAndroid Build Coastguard Worker     SLboolean     isBitrateRangeContinuous;
2290*bebae9c0SAndroid Build Coastguard Worker     SLuint32     *pBitratesSupported;
2291*bebae9c0SAndroid Build Coastguard Worker     SLuint32      numBitratesSupported;
2292*bebae9c0SAndroid Build Coastguard Worker     SLuint32	  profileSetting;
2293*bebae9c0SAndroid Build Coastguard Worker     SLuint32      modeSetting;
2294*bebae9c0SAndroid Build Coastguard Worker } SLAudioCodecDescriptor;
2295*bebae9c0SAndroid Build Coastguard Worker 
2296*bebae9c0SAndroid Build Coastguard Worker /*Structure used to retrieve the profile and level settings supported by an audio encoder */
2297*bebae9c0SAndroid Build Coastguard Worker 
2298*bebae9c0SAndroid Build Coastguard Worker typedef struct SLAudioCodecProfileMode_ {
2299*bebae9c0SAndroid Build Coastguard Worker     SLuint32 profileSetting;
2300*bebae9c0SAndroid Build Coastguard Worker     SLuint32 modeSetting;
2301*bebae9c0SAndroid Build Coastguard Worker } SLAudioCodecProfileMode;
2302*bebae9c0SAndroid Build Coastguard Worker 
2303*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_AUDIODECODERCAPABILITIES;
2304*bebae9c0SAndroid Build Coastguard Worker 
2305*bebae9c0SAndroid Build Coastguard Worker struct SLAudioDecoderCapabilitiesItf_;
2306*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLAudioDecoderCapabilitiesItf_ * const * SLAudioDecoderCapabilitiesItf;
2307*bebae9c0SAndroid Build Coastguard Worker 
2308*bebae9c0SAndroid Build Coastguard Worker struct SLAudioDecoderCapabilitiesItf_ {
2309*bebae9c0SAndroid Build Coastguard Worker     SLresult (*GetAudioDecoders) (
2310*bebae9c0SAndroid Build Coastguard Worker         SLAudioDecoderCapabilitiesItf self,
2311*bebae9c0SAndroid Build Coastguard Worker         SLuint32 * pNumDecoders ,
2312*bebae9c0SAndroid Build Coastguard Worker         SLuint32 *pDecoderIds
2313*bebae9c0SAndroid Build Coastguard Worker     );
2314*bebae9c0SAndroid Build Coastguard Worker     SLresult (*GetAudioDecoderCapabilities) (
2315*bebae9c0SAndroid Build Coastguard Worker         SLAudioDecoderCapabilitiesItf self,
2316*bebae9c0SAndroid Build Coastguard Worker         SLuint32 decoderId,
2317*bebae9c0SAndroid Build Coastguard Worker         SLuint32 *pIndex,
2318*bebae9c0SAndroid Build Coastguard Worker         SLAudioCodecDescriptor *pDescriptor
2319*bebae9c0SAndroid Build Coastguard Worker     );
2320*bebae9c0SAndroid Build Coastguard Worker };
2321*bebae9c0SAndroid Build Coastguard Worker 
2322*bebae9c0SAndroid Build Coastguard Worker 
2323*bebae9c0SAndroid Build Coastguard Worker 
2324*bebae9c0SAndroid Build Coastguard Worker 
2325*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
2326*bebae9c0SAndroid Build Coastguard Worker /* Audio Encoder Capabilities Interface                                      */
2327*bebae9c0SAndroid Build Coastguard Worker /* --------------------------------------------------------------------------*/
2328*bebae9c0SAndroid Build Coastguard Worker 
2329*bebae9c0SAndroid Build Coastguard Worker /* Structure used when setting audio encoding parameters */
2330*bebae9c0SAndroid Build Coastguard Worker 
2331*bebae9c0SAndroid Build Coastguard Worker typedef struct SLAudioEncoderSettings_ {
2332*bebae9c0SAndroid Build Coastguard Worker     SLuint32 encoderId;
2333*bebae9c0SAndroid Build Coastguard Worker     SLuint32 channelsIn;
2334*bebae9c0SAndroid Build Coastguard Worker     SLuint32 channelsOut;
2335*bebae9c0SAndroid Build Coastguard Worker     SLmilliHertz sampleRate;
2336*bebae9c0SAndroid Build Coastguard Worker     SLuint32 bitRate;
2337*bebae9c0SAndroid Build Coastguard Worker     SLuint32 bitsPerSample;
2338*bebae9c0SAndroid Build Coastguard Worker     SLuint32 rateControl;
2339*bebae9c0SAndroid Build Coastguard Worker     SLuint32 profileSetting;
2340*bebae9c0SAndroid Build Coastguard Worker     SLuint32 levelSetting;
2341*bebae9c0SAndroid Build Coastguard Worker     SLuint32 channelMode;
2342*bebae9c0SAndroid Build Coastguard Worker     SLuint32 streamFormat;
2343*bebae9c0SAndroid Build Coastguard Worker     SLuint32 encodeOptions;
2344*bebae9c0SAndroid Build Coastguard Worker     SLuint32 blockAlignment;
2345*bebae9c0SAndroid Build Coastguard Worker } SLAudioEncoderSettings;
2346*bebae9c0SAndroid Build Coastguard Worker 
2347*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_AUDIOENCODERCAPABILITIES;
2348*bebae9c0SAndroid Build Coastguard Worker 
2349*bebae9c0SAndroid Build Coastguard Worker struct SLAudioEncoderCapabilitiesItf_;
2350*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLAudioEncoderCapabilitiesItf_ * const * SLAudioEncoderCapabilitiesItf;
2351*bebae9c0SAndroid Build Coastguard Worker 
2352*bebae9c0SAndroid Build Coastguard Worker struct SLAudioEncoderCapabilitiesItf_ {
2353*bebae9c0SAndroid Build Coastguard Worker     SLresult (*GetAudioEncoders) (
2354*bebae9c0SAndroid Build Coastguard Worker         SLAudioEncoderCapabilitiesItf self,
2355*bebae9c0SAndroid Build Coastguard Worker         SLuint32 *pNumEncoders ,
2356*bebae9c0SAndroid Build Coastguard Worker         SLuint32 *pEncoderIds
2357*bebae9c0SAndroid Build Coastguard Worker     );
2358*bebae9c0SAndroid Build Coastguard Worker     SLresult (*GetAudioEncoderCapabilities) (
2359*bebae9c0SAndroid Build Coastguard Worker         SLAudioEncoderCapabilitiesItf self,
2360*bebae9c0SAndroid Build Coastguard Worker         SLuint32 encoderId,
2361*bebae9c0SAndroid Build Coastguard Worker         SLuint32 *pIndex,
2362*bebae9c0SAndroid Build Coastguard Worker         SLAudioCodecDescriptor * pDescriptor
2363*bebae9c0SAndroid Build Coastguard Worker     );
2364*bebae9c0SAndroid Build Coastguard Worker };
2365*bebae9c0SAndroid Build Coastguard Worker 
2366*bebae9c0SAndroid Build Coastguard Worker 
2367*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
2368*bebae9c0SAndroid Build Coastguard Worker /* Audio Encoder Interface                                                   */
2369*bebae9c0SAndroid Build Coastguard Worker /* --------------------------------------------------------------------------*/
2370*bebae9c0SAndroid Build Coastguard Worker 
2371*bebae9c0SAndroid Build Coastguard Worker 
2372*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_AUDIOENCODER;
2373*bebae9c0SAndroid Build Coastguard Worker 
2374*bebae9c0SAndroid Build Coastguard Worker struct SLAudioEncoderItf_;
2375*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLAudioEncoderItf_ * const * SLAudioEncoderItf;
2376*bebae9c0SAndroid Build Coastguard Worker 
2377*bebae9c0SAndroid Build Coastguard Worker struct SLAudioEncoderItf_ {
2378*bebae9c0SAndroid Build Coastguard Worker     SLresult (*SetEncoderSettings) (
2379*bebae9c0SAndroid Build Coastguard Worker         SLAudioEncoderItf		self,
2380*bebae9c0SAndroid Build Coastguard Worker         SLAudioEncoderSettings 	*pSettings
2381*bebae9c0SAndroid Build Coastguard Worker     );
2382*bebae9c0SAndroid Build Coastguard Worker     SLresult (*GetEncoderSettings) (
2383*bebae9c0SAndroid Build Coastguard Worker         SLAudioEncoderItf		self,
2384*bebae9c0SAndroid Build Coastguard Worker         SLAudioEncoderSettings	*pSettings
2385*bebae9c0SAndroid Build Coastguard Worker     );
2386*bebae9c0SAndroid Build Coastguard Worker };
2387*bebae9c0SAndroid Build Coastguard Worker 
2388*bebae9c0SAndroid Build Coastguard Worker 
2389*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
2390*bebae9c0SAndroid Build Coastguard Worker /* Bass Boost Interface                                                      */
2391*bebae9c0SAndroid Build Coastguard Worker /* --------------------------------------------------------------------------*/
2392*bebae9c0SAndroid Build Coastguard Worker 
2393*bebae9c0SAndroid Build Coastguard Worker 
2394*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_BASSBOOST;
2395*bebae9c0SAndroid Build Coastguard Worker 
2396*bebae9c0SAndroid Build Coastguard Worker struct SLBassBoostItf_;
2397*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLBassBoostItf_ * const * SLBassBoostItf;
2398*bebae9c0SAndroid Build Coastguard Worker 
2399*bebae9c0SAndroid Build Coastguard Worker struct SLBassBoostItf_ {
2400*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetEnabled)(
2401*bebae9c0SAndroid Build Coastguard Worker 		SLBassBoostItf self,
2402*bebae9c0SAndroid Build Coastguard Worker 		SLboolean enabled
2403*bebae9c0SAndroid Build Coastguard Worker 	);
2404*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*IsEnabled)(
2405*bebae9c0SAndroid Build Coastguard Worker 		SLBassBoostItf self,
2406*bebae9c0SAndroid Build Coastguard Worker 		SLboolean *pEnabled
2407*bebae9c0SAndroid Build Coastguard Worker 	);
2408*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetStrength)(
2409*bebae9c0SAndroid Build Coastguard Worker 		SLBassBoostItf self,
2410*bebae9c0SAndroid Build Coastguard Worker 		SLpermille strength
2411*bebae9c0SAndroid Build Coastguard Worker 	);
2412*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetRoundedStrength)(
2413*bebae9c0SAndroid Build Coastguard Worker 		SLBassBoostItf self,
2414*bebae9c0SAndroid Build Coastguard Worker 		SLpermille *pStrength
2415*bebae9c0SAndroid Build Coastguard Worker 	);
2416*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*IsStrengthSupported)(
2417*bebae9c0SAndroid Build Coastguard Worker 		SLBassBoostItf self,
2418*bebae9c0SAndroid Build Coastguard Worker 		SLboolean *pSupported
2419*bebae9c0SAndroid Build Coastguard Worker 	);
2420*bebae9c0SAndroid Build Coastguard Worker };
2421*bebae9c0SAndroid Build Coastguard Worker 
2422*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
2423*bebae9c0SAndroid Build Coastguard Worker /* Pitch Interface                                                           */
2424*bebae9c0SAndroid Build Coastguard Worker /* --------------------------------------------------------------------------*/
2425*bebae9c0SAndroid Build Coastguard Worker 
2426*bebae9c0SAndroid Build Coastguard Worker 
2427*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_PITCH;
2428*bebae9c0SAndroid Build Coastguard Worker 
2429*bebae9c0SAndroid Build Coastguard Worker struct SLPitchItf_;
2430*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLPitchItf_ * const * SLPitchItf;
2431*bebae9c0SAndroid Build Coastguard Worker 
2432*bebae9c0SAndroid Build Coastguard Worker struct SLPitchItf_ {
2433*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetPitch) (
2434*bebae9c0SAndroid Build Coastguard Worker 		SLPitchItf self,
2435*bebae9c0SAndroid Build Coastguard Worker 		SLpermille pitch
2436*bebae9c0SAndroid Build Coastguard Worker 	);
2437*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetPitch) (
2438*bebae9c0SAndroid Build Coastguard Worker 		SLPitchItf self,
2439*bebae9c0SAndroid Build Coastguard Worker 		SLpermille *pPitch
2440*bebae9c0SAndroid Build Coastguard Worker 	);
2441*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetPitchCapabilities) (
2442*bebae9c0SAndroid Build Coastguard Worker 		SLPitchItf self,
2443*bebae9c0SAndroid Build Coastguard Worker 		SLpermille *pMinPitch,
2444*bebae9c0SAndroid Build Coastguard Worker 		SLpermille *pMaxPitch
2445*bebae9c0SAndroid Build Coastguard Worker 	);
2446*bebae9c0SAndroid Build Coastguard Worker };
2447*bebae9c0SAndroid Build Coastguard Worker 
2448*bebae9c0SAndroid Build Coastguard Worker 
2449*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
2450*bebae9c0SAndroid Build Coastguard Worker /* Rate Pitch Interface                                                      */
2451*bebae9c0SAndroid Build Coastguard Worker /* RatePitchItf is an interface for controlling the rate a sound is played   */
2452*bebae9c0SAndroid Build Coastguard Worker /* back. A change in rate will cause a change in pitch.                      */
2453*bebae9c0SAndroid Build Coastguard Worker /* --------------------------------------------------------------------------*/
2454*bebae9c0SAndroid Build Coastguard Worker 
2455*bebae9c0SAndroid Build Coastguard Worker 
2456*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_RATEPITCH;
2457*bebae9c0SAndroid Build Coastguard Worker 
2458*bebae9c0SAndroid Build Coastguard Worker struct SLRatePitchItf_;
2459*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLRatePitchItf_ * const * SLRatePitchItf;
2460*bebae9c0SAndroid Build Coastguard Worker 
2461*bebae9c0SAndroid Build Coastguard Worker struct SLRatePitchItf_ {
2462*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetRate) (
2463*bebae9c0SAndroid Build Coastguard Worker 		SLRatePitchItf self,
2464*bebae9c0SAndroid Build Coastguard Worker 		SLpermille rate
2465*bebae9c0SAndroid Build Coastguard Worker 	);
2466*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetRate) (
2467*bebae9c0SAndroid Build Coastguard Worker 		SLRatePitchItf self,
2468*bebae9c0SAndroid Build Coastguard Worker 		SLpermille *pRate
2469*bebae9c0SAndroid Build Coastguard Worker 	);
2470*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetRatePitchCapabilities) (
2471*bebae9c0SAndroid Build Coastguard Worker 		SLRatePitchItf self,
2472*bebae9c0SAndroid Build Coastguard Worker 		SLpermille *pMinRate,
2473*bebae9c0SAndroid Build Coastguard Worker 		SLpermille *pMaxRate
2474*bebae9c0SAndroid Build Coastguard Worker 	);
2475*bebae9c0SAndroid Build Coastguard Worker };
2476*bebae9c0SAndroid Build Coastguard Worker 
2477*bebae9c0SAndroid Build Coastguard Worker 
2478*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
2479*bebae9c0SAndroid Build Coastguard Worker /* Virtualizer Interface                                                      */
2480*bebae9c0SAndroid Build Coastguard Worker /* --------------------------------------------------------------------------*/
2481*bebae9c0SAndroid Build Coastguard Worker 
2482*bebae9c0SAndroid Build Coastguard Worker 
2483*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_VIRTUALIZER;
2484*bebae9c0SAndroid Build Coastguard Worker 
2485*bebae9c0SAndroid Build Coastguard Worker struct SLVirtualizerItf_;
2486*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLVirtualizerItf_ * const * SLVirtualizerItf;
2487*bebae9c0SAndroid Build Coastguard Worker 
2488*bebae9c0SAndroid Build Coastguard Worker struct SLVirtualizerItf_ {
2489*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetEnabled)(
2490*bebae9c0SAndroid Build Coastguard Worker 		SLVirtualizerItf self,
2491*bebae9c0SAndroid Build Coastguard Worker 		SLboolean enabled
2492*bebae9c0SAndroid Build Coastguard Worker 	);
2493*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*IsEnabled)(
2494*bebae9c0SAndroid Build Coastguard Worker 		SLVirtualizerItf self,
2495*bebae9c0SAndroid Build Coastguard Worker 		SLboolean *pEnabled
2496*bebae9c0SAndroid Build Coastguard Worker 	);
2497*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*SetStrength)(
2498*bebae9c0SAndroid Build Coastguard Worker 		SLVirtualizerItf self,
2499*bebae9c0SAndroid Build Coastguard Worker 		SLpermille strength
2500*bebae9c0SAndroid Build Coastguard Worker 	);
2501*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetRoundedStrength)(
2502*bebae9c0SAndroid Build Coastguard Worker 		SLVirtualizerItf self,
2503*bebae9c0SAndroid Build Coastguard Worker 		SLpermille *pStrength
2504*bebae9c0SAndroid Build Coastguard Worker 	);
2505*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*IsStrengthSupported)(
2506*bebae9c0SAndroid Build Coastguard Worker 		SLVirtualizerItf self,
2507*bebae9c0SAndroid Build Coastguard Worker 		SLboolean *pSupported
2508*bebae9c0SAndroid Build Coastguard Worker 	);
2509*bebae9c0SAndroid Build Coastguard Worker };
2510*bebae9c0SAndroid Build Coastguard Worker 
2511*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
2512*bebae9c0SAndroid Build Coastguard Worker /* Visualization Interface                                                   */
2513*bebae9c0SAndroid Build Coastguard Worker /* --------------------------------------------------------------------------*/
2514*bebae9c0SAndroid Build Coastguard Worker 
2515*bebae9c0SAndroid Build Coastguard Worker 
2516*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_VISUALIZATION;
2517*bebae9c0SAndroid Build Coastguard Worker 
2518*bebae9c0SAndroid Build Coastguard Worker struct SLVisualizationItf_;
2519*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLVisualizationItf_ * const * SLVisualizationItf;
2520*bebae9c0SAndroid Build Coastguard Worker 
2521*bebae9c0SAndroid Build Coastguard Worker typedef void (SLAPIENTRY *slVisualizationCallback) (
2522*bebae9c0SAndroid Build Coastguard Worker 	void *pContext,
2523*bebae9c0SAndroid Build Coastguard Worker 	const SLuint8 waveform[],
2524*bebae9c0SAndroid Build Coastguard Worker 	const SLuint8 fft[],
2525*bebae9c0SAndroid Build Coastguard Worker 	SLmilliHertz samplerate
2526*bebae9c0SAndroid Build Coastguard Worker );
2527*bebae9c0SAndroid Build Coastguard Worker 
2528*bebae9c0SAndroid Build Coastguard Worker struct SLVisualizationItf_{
2529*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*RegisterVisualizationCallback)(
2530*bebae9c0SAndroid Build Coastguard Worker 		SLVisualizationItf self,
2531*bebae9c0SAndroid Build Coastguard Worker 		slVisualizationCallback callback,
2532*bebae9c0SAndroid Build Coastguard Worker 		void *pContext,
2533*bebae9c0SAndroid Build Coastguard Worker 		SLmilliHertz rate
2534*bebae9c0SAndroid Build Coastguard Worker 	);
2535*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*GetMaxRate)(
2536*bebae9c0SAndroid Build Coastguard Worker 		SLVisualizationItf self,
2537*bebae9c0SAndroid Build Coastguard Worker 		SLmilliHertz* pRate
2538*bebae9c0SAndroid Build Coastguard Worker 	);
2539*bebae9c0SAndroid Build Coastguard Worker };
2540*bebae9c0SAndroid Build Coastguard Worker 
2541*bebae9c0SAndroid Build Coastguard Worker 
2542*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
2543*bebae9c0SAndroid Build Coastguard Worker /* Engine Interface                                                          */
2544*bebae9c0SAndroid Build Coastguard Worker /* --------------------------------------------------------------------------*/
2545*bebae9c0SAndroid Build Coastguard Worker 
2546*bebae9c0SAndroid Build Coastguard Worker 
2547*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_ENGINE;
2548*bebae9c0SAndroid Build Coastguard Worker 
2549*bebae9c0SAndroid Build Coastguard Worker struct SLEngineItf_;
2550*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLEngineItf_ * const * SLEngineItf;
2551*bebae9c0SAndroid Build Coastguard Worker 
2552*bebae9c0SAndroid Build Coastguard Worker 
2553*bebae9c0SAndroid Build Coastguard Worker struct SLEngineItf_ {
2554*bebae9c0SAndroid Build Coastguard Worker 
2555*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*CreateLEDDevice) (
2556*bebae9c0SAndroid Build Coastguard Worker 		SLEngineItf self,
2557*bebae9c0SAndroid Build Coastguard Worker 		SLObjectItf * pDevice,
2558*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 deviceID,
2559*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 numInterfaces,
2560*bebae9c0SAndroid Build Coastguard Worker 		const SLInterfaceID * pInterfaceIds,
2561*bebae9c0SAndroid Build Coastguard Worker 		const SLboolean * pInterfaceRequired
2562*bebae9c0SAndroid Build Coastguard Worker 	);
2563*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*CreateVibraDevice) (
2564*bebae9c0SAndroid Build Coastguard Worker 		SLEngineItf self,
2565*bebae9c0SAndroid Build Coastguard Worker 		SLObjectItf * pDevice,
2566*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 deviceID,
2567*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 numInterfaces,
2568*bebae9c0SAndroid Build Coastguard Worker 		const SLInterfaceID * pInterfaceIds,
2569*bebae9c0SAndroid Build Coastguard Worker 		const SLboolean * pInterfaceRequired
2570*bebae9c0SAndroid Build Coastguard Worker 	);
2571*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*CreateAudioPlayer) (
2572*bebae9c0SAndroid Build Coastguard Worker 		SLEngineItf self,
2573*bebae9c0SAndroid Build Coastguard Worker 		SLObjectItf * pPlayer,
2574*bebae9c0SAndroid Build Coastguard Worker 		SLDataSource *pAudioSrc,
2575*bebae9c0SAndroid Build Coastguard Worker 		SLDataSink *pAudioSnk,
2576*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 numInterfaces,
2577*bebae9c0SAndroid Build Coastguard Worker 		const SLInterfaceID * pInterfaceIds,
2578*bebae9c0SAndroid Build Coastguard Worker 		const SLboolean * pInterfaceRequired
2579*bebae9c0SAndroid Build Coastguard Worker 	);
2580*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*CreateAudioRecorder) (
2581*bebae9c0SAndroid Build Coastguard Worker 		SLEngineItf self,
2582*bebae9c0SAndroid Build Coastguard Worker 		SLObjectItf * pRecorder,
2583*bebae9c0SAndroid Build Coastguard Worker 		SLDataSource *pAudioSrc,
2584*bebae9c0SAndroid Build Coastguard Worker 		SLDataSink *pAudioSnk,
2585*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 numInterfaces,
2586*bebae9c0SAndroid Build Coastguard Worker 		const SLInterfaceID * pInterfaceIds,
2587*bebae9c0SAndroid Build Coastguard Worker 		const SLboolean * pInterfaceRequired
2588*bebae9c0SAndroid Build Coastguard Worker 	);
2589*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*CreateMidiPlayer) (
2590*bebae9c0SAndroid Build Coastguard Worker 		SLEngineItf self,
2591*bebae9c0SAndroid Build Coastguard Worker 		SLObjectItf * pPlayer,
2592*bebae9c0SAndroid Build Coastguard Worker 		SLDataSource *pMIDISrc,
2593*bebae9c0SAndroid Build Coastguard Worker 		SLDataSource *pBankSrc,
2594*bebae9c0SAndroid Build Coastguard Worker 		SLDataSink *pAudioOutput,
2595*bebae9c0SAndroid Build Coastguard Worker 		SLDataSink *pVibra,
2596*bebae9c0SAndroid Build Coastguard Worker 		SLDataSink *pLEDArray,
2597*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 numInterfaces,
2598*bebae9c0SAndroid Build Coastguard Worker 		const SLInterfaceID * pInterfaceIds,
2599*bebae9c0SAndroid Build Coastguard Worker 		const SLboolean * pInterfaceRequired
2600*bebae9c0SAndroid Build Coastguard Worker 	);
2601*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*CreateListener) (
2602*bebae9c0SAndroid Build Coastguard Worker 		SLEngineItf self,
2603*bebae9c0SAndroid Build Coastguard Worker 		SLObjectItf * pListener,
2604*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 numInterfaces,
2605*bebae9c0SAndroid Build Coastguard Worker 		const SLInterfaceID * pInterfaceIds,
2606*bebae9c0SAndroid Build Coastguard Worker 		const SLboolean * pInterfaceRequired
2607*bebae9c0SAndroid Build Coastguard Worker 	);
2608*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*Create3DGroup) (
2609*bebae9c0SAndroid Build Coastguard Worker 		SLEngineItf self,
2610*bebae9c0SAndroid Build Coastguard Worker 		SLObjectItf * pGroup,
2611*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 numInterfaces,
2612*bebae9c0SAndroid Build Coastguard Worker 		const SLInterfaceID * pInterfaceIds,
2613*bebae9c0SAndroid Build Coastguard Worker 		const SLboolean * pInterfaceRequired
2614*bebae9c0SAndroid Build Coastguard Worker 	);
2615*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*CreateOutputMix) (
2616*bebae9c0SAndroid Build Coastguard Worker 		SLEngineItf self,
2617*bebae9c0SAndroid Build Coastguard Worker 		SLObjectItf * pMix,
2618*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 numInterfaces,
2619*bebae9c0SAndroid Build Coastguard Worker 		const SLInterfaceID * pInterfaceIds,
2620*bebae9c0SAndroid Build Coastguard Worker 		const SLboolean * pInterfaceRequired
2621*bebae9c0SAndroid Build Coastguard Worker 	);
2622*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*CreateMetadataExtractor) (
2623*bebae9c0SAndroid Build Coastguard Worker 		SLEngineItf self,
2624*bebae9c0SAndroid Build Coastguard Worker 		SLObjectItf * pMetadataExtractor,
2625*bebae9c0SAndroid Build Coastguard Worker 		SLDataSource * pDataSource,
2626*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 numInterfaces,
2627*bebae9c0SAndroid Build Coastguard Worker 		const SLInterfaceID * pInterfaceIds,
2628*bebae9c0SAndroid Build Coastguard Worker 		const SLboolean * pInterfaceRequired
2629*bebae9c0SAndroid Build Coastguard Worker 	);
2630*bebae9c0SAndroid Build Coastguard Worker     SLresult (*CreateExtensionObject) (
2631*bebae9c0SAndroid Build Coastguard Worker         SLEngineItf self,
2632*bebae9c0SAndroid Build Coastguard Worker         SLObjectItf * pObject,
2633*bebae9c0SAndroid Build Coastguard Worker         void * pParameters,
2634*bebae9c0SAndroid Build Coastguard Worker         SLuint32 objectID,
2635*bebae9c0SAndroid Build Coastguard Worker         SLuint32 numInterfaces,
2636*bebae9c0SAndroid Build Coastguard Worker         const SLInterfaceID * pInterfaceIds,
2637*bebae9c0SAndroid Build Coastguard Worker         const SLboolean * pInterfaceRequired
2638*bebae9c0SAndroid Build Coastguard Worker     );
2639*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*QueryNumSupportedInterfaces) (
2640*bebae9c0SAndroid Build Coastguard Worker 		SLEngineItf self,
2641*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 objectID,
2642*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 * pNumSupportedInterfaces
2643*bebae9c0SAndroid Build Coastguard Worker 	);
2644*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*QuerySupportedInterfaces) (
2645*bebae9c0SAndroid Build Coastguard Worker 		SLEngineItf self,
2646*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 objectID,
2647*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 index,
2648*bebae9c0SAndroid Build Coastguard Worker 		SLInterfaceID * pInterfaceId
2649*bebae9c0SAndroid Build Coastguard Worker 	);
2650*bebae9c0SAndroid Build Coastguard Worker     SLresult (*QueryNumSupportedExtensions) (
2651*bebae9c0SAndroid Build Coastguard Worker         SLEngineItf self,
2652*bebae9c0SAndroid Build Coastguard Worker         SLuint32 * pNumExtensions
2653*bebae9c0SAndroid Build Coastguard Worker     );
2654*bebae9c0SAndroid Build Coastguard Worker     SLresult (*QuerySupportedExtension) (
2655*bebae9c0SAndroid Build Coastguard Worker         SLEngineItf self,
2656*bebae9c0SAndroid Build Coastguard Worker         SLuint32 index,
2657*bebae9c0SAndroid Build Coastguard Worker         SLchar * pExtensionName,
2658*bebae9c0SAndroid Build Coastguard Worker         SLint16 * pNameLength
2659*bebae9c0SAndroid Build Coastguard Worker     );
2660*bebae9c0SAndroid Build Coastguard Worker     SLresult (*IsExtensionSupported) (
2661*bebae9c0SAndroid Build Coastguard Worker         SLEngineItf self,
2662*bebae9c0SAndroid Build Coastguard Worker         const SLchar * pExtensionName,
2663*bebae9c0SAndroid Build Coastguard Worker         SLboolean * pSupported
2664*bebae9c0SAndroid Build Coastguard Worker     );
2665*bebae9c0SAndroid Build Coastguard Worker };
2666*bebae9c0SAndroid Build Coastguard Worker 
2667*bebae9c0SAndroid Build Coastguard Worker 
2668*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
2669*bebae9c0SAndroid Build Coastguard Worker /* Engine Capabilities Interface                                             */
2670*bebae9c0SAndroid Build Coastguard Worker /* --------------------------------------------------------------------------*/
2671*bebae9c0SAndroid Build Coastguard Worker 
2672*bebae9c0SAndroid Build Coastguard Worker 
2673*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_ENGINECAPABILITIES;
2674*bebae9c0SAndroid Build Coastguard Worker 
2675*bebae9c0SAndroid Build Coastguard Worker struct SLEngineCapabilitiesItf_;
2676*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLEngineCapabilitiesItf_ * const * SLEngineCapabilitiesItf;
2677*bebae9c0SAndroid Build Coastguard Worker 
2678*bebae9c0SAndroid Build Coastguard Worker struct SLEngineCapabilitiesItf_ {
2679*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*QuerySupportedProfiles) (
2680*bebae9c0SAndroid Build Coastguard Worker 		SLEngineCapabilitiesItf self,
2681*bebae9c0SAndroid Build Coastguard Worker 		SLuint16 *pProfilesSupported
2682*bebae9c0SAndroid Build Coastguard Worker 	);
2683*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*QueryAvailableVoices) (
2684*bebae9c0SAndroid Build Coastguard Worker 		SLEngineCapabilitiesItf self,
2685*bebae9c0SAndroid Build Coastguard Worker 		SLuint16 voiceType,
2686*bebae9c0SAndroid Build Coastguard Worker 		SLint16 *pNumMaxVoices,
2687*bebae9c0SAndroid Build Coastguard Worker 		SLboolean *pIsAbsoluteMax,
2688*bebae9c0SAndroid Build Coastguard Worker 		SLint16 *pNumFreeVoices
2689*bebae9c0SAndroid Build Coastguard Worker 	);
2690*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*QueryNumberOfMIDISynthesizers) (
2691*bebae9c0SAndroid Build Coastguard Worker 		SLEngineCapabilitiesItf self,
2692*bebae9c0SAndroid Build Coastguard Worker 		SLint16 *pNumMIDIsynthesizers
2693*bebae9c0SAndroid Build Coastguard Worker 	);
2694*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*QueryAPIVersion) (
2695*bebae9c0SAndroid Build Coastguard Worker 		SLEngineCapabilitiesItf self,
2696*bebae9c0SAndroid Build Coastguard Worker 		SLint16 *pMajor,
2697*bebae9c0SAndroid Build Coastguard Worker 		SLint16 *pMinor,
2698*bebae9c0SAndroid Build Coastguard Worker 		SLint16 *pStep
2699*bebae9c0SAndroid Build Coastguard Worker 	);
2700*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*QueryLEDCapabilities) (
2701*bebae9c0SAndroid Build Coastguard Worker 		SLEngineCapabilitiesItf self,
2702*bebae9c0SAndroid Build Coastguard Worker         SLuint32 *pIndex,
2703*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 *pLEDDeviceID,
2704*bebae9c0SAndroid Build Coastguard Worker 		SLLEDDescriptor *pDescriptor
2705*bebae9c0SAndroid Build Coastguard Worker 	);
2706*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*QueryVibraCapabilities) (
2707*bebae9c0SAndroid Build Coastguard Worker 		SLEngineCapabilitiesItf self,
2708*bebae9c0SAndroid Build Coastguard Worker         SLuint32 *pIndex,
2709*bebae9c0SAndroid Build Coastguard Worker 		SLuint32 *pVibraDeviceID,
2710*bebae9c0SAndroid Build Coastguard Worker 		SLVibraDescriptor *pDescriptor
2711*bebae9c0SAndroid Build Coastguard Worker 	);
2712*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*IsThreadSafe) (
2713*bebae9c0SAndroid Build Coastguard Worker 		SLEngineCapabilitiesItf self,
2714*bebae9c0SAndroid Build Coastguard Worker 		SLboolean *pIsThreadSafe
2715*bebae9c0SAndroid Build Coastguard Worker 	);
2716*bebae9c0SAndroid Build Coastguard Worker };
2717*bebae9c0SAndroid Build Coastguard Worker 
2718*bebae9c0SAndroid Build Coastguard Worker /*---------------------------------------------------------------------------*/
2719*bebae9c0SAndroid Build Coastguard Worker /* Thread Sync Interface                                                     */
2720*bebae9c0SAndroid Build Coastguard Worker /* --------------------------------------------------------------------------*/
2721*bebae9c0SAndroid Build Coastguard Worker 
2722*bebae9c0SAndroid Build Coastguard Worker 
2723*bebae9c0SAndroid Build Coastguard Worker extern SL_API const SLInterfaceID SL_IID_THREADSYNC;
2724*bebae9c0SAndroid Build Coastguard Worker 
2725*bebae9c0SAndroid Build Coastguard Worker struct SLThreadSyncItf_;
2726*bebae9c0SAndroid Build Coastguard Worker typedef const struct SLThreadSyncItf_ * const * SLThreadSyncItf;
2727*bebae9c0SAndroid Build Coastguard Worker 
2728*bebae9c0SAndroid Build Coastguard Worker 
2729*bebae9c0SAndroid Build Coastguard Worker struct SLThreadSyncItf_ {
2730*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*EnterCriticalSection) (
2731*bebae9c0SAndroid Build Coastguard Worker 		SLThreadSyncItf self
2732*bebae9c0SAndroid Build Coastguard Worker 	);
2733*bebae9c0SAndroid Build Coastguard Worker 	SLresult (*ExitCriticalSection) (
2734*bebae9c0SAndroid Build Coastguard Worker 		SLThreadSyncItf self
2735*bebae9c0SAndroid Build Coastguard Worker 	);
2736*bebae9c0SAndroid Build Coastguard Worker };
2737*bebae9c0SAndroid Build Coastguard Worker 
2738*bebae9c0SAndroid Build Coastguard Worker 
2739*bebae9c0SAndroid Build Coastguard Worker /*****************************************************************************/
2740*bebae9c0SAndroid Build Coastguard Worker /* SL engine constructor                                                     */
2741*bebae9c0SAndroid Build Coastguard Worker /*****************************************************************************/
2742*bebae9c0SAndroid Build Coastguard Worker 
2743*bebae9c0SAndroid Build Coastguard Worker #define SL_ENGINEOPTION_THREADSAFE	((SLuint32) 0x00000001)
2744*bebae9c0SAndroid Build Coastguard Worker #define SL_ENGINEOPTION_LOSSOFCONTROL	((SLuint32) 0x00000002)
2745*bebae9c0SAndroid Build Coastguard Worker 
2746*bebae9c0SAndroid Build Coastguard Worker typedef struct SLEngineOption_ {
2747*bebae9c0SAndroid Build Coastguard Worker 	SLuint32 feature;
2748*bebae9c0SAndroid Build Coastguard Worker 	SLuint32 data;
2749*bebae9c0SAndroid Build Coastguard Worker } SLEngineOption;
2750*bebae9c0SAndroid Build Coastguard Worker 
2751*bebae9c0SAndroid Build Coastguard Worker 
2752*bebae9c0SAndroid Build Coastguard Worker SL_API SLresult SLAPIENTRY slCreateEngine(
2753*bebae9c0SAndroid Build Coastguard Worker 	SLObjectItf             *pEngine,
2754*bebae9c0SAndroid Build Coastguard Worker 	SLuint32                numOptions,
2755*bebae9c0SAndroid Build Coastguard Worker 	const SLEngineOption    *pEngineOptions,
2756*bebae9c0SAndroid Build Coastguard Worker 	SLuint32                numInterfaces,
2757*bebae9c0SAndroid Build Coastguard Worker 	const SLInterfaceID     *pInterfaceIds,
2758*bebae9c0SAndroid Build Coastguard Worker 	const SLboolean         * pInterfaceRequired
2759*bebae9c0SAndroid Build Coastguard Worker ) SL_API_DEPRECATED(30);
2760*bebae9c0SAndroid Build Coastguard Worker 
2761*bebae9c0SAndroid Build Coastguard Worker SL_API SLresult SLAPIENTRY slQueryNumSupportedEngineInterfaces(
2762*bebae9c0SAndroid Build Coastguard Worker 	SLuint32 * pNumSupportedInterfaces
2763*bebae9c0SAndroid Build Coastguard Worker ) SL_API_DEPRECATED(30);
2764*bebae9c0SAndroid Build Coastguard Worker 
2765*bebae9c0SAndroid Build Coastguard Worker SL_API SLresult SLAPIENTRY slQuerySupportedEngineInterfaces(
2766*bebae9c0SAndroid Build Coastguard Worker 	SLuint32 index,
2767*bebae9c0SAndroid Build Coastguard Worker 	SLInterfaceID * pInterfaceId
2768*bebae9c0SAndroid Build Coastguard Worker ) SL_API_DEPRECATED(30);
2769*bebae9c0SAndroid Build Coastguard Worker 
2770*bebae9c0SAndroid Build Coastguard Worker #ifdef __cplusplus
2771*bebae9c0SAndroid Build Coastguard Worker } /* extern "C" */
2772*bebae9c0SAndroid Build Coastguard Worker #endif
2773*bebae9c0SAndroid Build Coastguard Worker 
2774*bebae9c0SAndroid Build Coastguard Worker #endif /* OPENSL_ES_H_ */
2775