|
1 /* |
|
2 * Copyright (c) 2007-2010 The Khronos Group Inc. |
|
3 * |
|
4 * Permission is hereby granted, free of charge, to any person obtaining |
|
5 * a copy of this software and/or associated documentation files (the |
|
6 * "Materials "), to deal in the Materials without restriction, including |
|
7 * without limitation the rights to use, copy, modify, merge, publish, |
|
8 * distribute, sublicense, and/or sell copies of the Materials, and to |
|
9 * permit persons to whom the Materials are furnished to do so, subject to |
|
10 * the following conditions: |
|
11 * |
|
12 * The above copyright notice and this permission notice shall be included |
|
13 * in all copies or substantial portions of the Materials. |
|
14 * |
|
15 * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
|
16 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
|
17 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
|
18 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
|
19 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
|
20 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
|
21 * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. |
|
22 * |
|
23 * OpenMAXAL.h - OpenMAX AL version 1.0.1 |
|
24 * |
|
25 */ |
|
26 |
|
27 /****************************************************************************/ |
|
28 /* NOTE: This file is a standard OpenMAX AL header file and should not be */ |
|
29 /* modified in any way. */ |
|
30 /****************************************************************************/ |
|
31 |
|
32 #ifndef _OPENMAXAL_H_ |
|
33 #define _OPENMAXAL_H_ |
|
34 |
|
35 #include "OpenMAXAL_Platform.h" |
|
36 |
|
37 #ifdef __cplusplus |
|
38 extern "C" { |
|
39 #endif |
|
40 |
|
41 |
|
42 |
|
43 /*****************************************************************/ |
|
44 /* TYPES */ |
|
45 /*****************************************************************/ |
|
46 |
|
47 /* remap common types to XA types for clarity */ |
|
48 typedef xa_int8_t XAint8; /* 8 bit signed integer */ |
|
49 typedef xa_uint8_t XAuint8; /* 8 bit unsigned integer */ |
|
50 typedef xa_int16_t XAint16; /* 16 bit signed integer */ |
|
51 typedef xa_uint16_t XAuint16; /* 16 bit unsigned integer */ |
|
52 typedef xa_int32_t XAint32; /* 32 bit signed integer */ |
|
53 typedef xa_uint32_t XAuint32; /* 32 bit unsigned integer */ |
|
54 typedef xa_uint64_t XAuint64; /* 64 bit unsigned integer */ |
|
55 |
|
56 typedef XAuint32 XAboolean; |
|
57 typedef XAuint8 XAchar; |
|
58 typedef XAint16 XAmillibel; |
|
59 typedef XAuint32 XAmillisecond; |
|
60 typedef XAuint32 XAmilliHertz; |
|
61 typedef XAint32 XAmillimeter; |
|
62 typedef XAint32 XAmillidegree; |
|
63 typedef XAint16 XApermille; |
|
64 typedef XAuint32 XAmicrosecond; |
|
65 typedef XAuint64 XAtime; |
|
66 typedef XAuint32 XAresult; |
|
67 |
|
68 #define XA_BOOLEAN_FALSE ((XAuint32) 0x00000000) |
|
69 #define XA_BOOLEAN_TRUE ((XAuint32) 0x00000001) |
|
70 |
|
71 #define XA_MILLIBEL_MAX ((XAmillibel) 0x7FFF) |
|
72 #define XA_MILLIBEL_MIN ((XAmillibel) (-XA_MILLIBEL_MAX-1)) |
|
73 |
|
74 #define XA_MILLIHERTZ_MAX ((XAmilliHertz) 0xFFFFFFFF) |
|
75 |
|
76 #define XA_MILLIMETER_MAX ((XAmillimeter) 0x7FFFFFFF) |
|
77 |
|
78 |
|
79 |
|
80 /*****************************************************************/ |
|
81 /* RESULT CODES */ |
|
82 /*****************************************************************/ |
|
83 |
|
84 #define XA_RESULT_SUCCESS ((XAuint32) 0x00000000) |
|
85 #define XA_RESULT_PRECONDITIONS_VIOLATED ((XAuint32) 0x00000001) |
|
86 #define XA_RESULT_PARAMETER_INVALID ((XAuint32) 0x00000002) |
|
87 #define XA_RESULT_MEMORY_FAILURE ((XAuint32) 0x00000003) |
|
88 #define XA_RESULT_RESOURCE_ERROR ((XAuint32) 0x00000004) |
|
89 #define XA_RESULT_RESOURCE_LOST ((XAuint32) 0x00000005) |
|
90 #define XA_RESULT_IO_ERROR ((XAuint32) 0x00000006) |
|
91 #define XA_RESULT_BUFFER_INSUFFICIENT ((XAuint32) 0x00000007) |
|
92 #define XA_RESULT_CONTENT_CORRUPTED ((XAuint32) 0x00000008) |
|
93 #define XA_RESULT_CONTENT_UNSUPPORTED ((XAuint32) 0x00000009) |
|
94 #define XA_RESULT_CONTENT_NOT_FOUND ((XAuint32) 0x0000000A) |
|
95 #define XA_RESULT_PERMISSION_DENIED ((XAuint32) 0x0000000B) |
|
96 #define XA_RESULT_FEATURE_UNSUPPORTED ((XAuint32) 0x0000000C) |
|
97 #define XA_RESULT_INTERNAL_ERROR ((XAuint32) 0x0000000D) |
|
98 #define XA_RESULT_UNKNOWN_ERROR ((XAuint32) 0x0000000E) |
|
99 #define XA_RESULT_OPERATION_ABORTED ((XAuint32) 0x0000000F) |
|
100 #define XA_RESULT_CONTROL_LOST ((XAuint32) 0x00000010) |
|
101 |
|
102 |
|
103 |
|
104 /*****************************************************************/ |
|
105 /* INTERFACE ID DEFINITION */ |
|
106 /*****************************************************************/ |
|
107 |
|
108 /* Interface ID defined as a UUID */ |
|
109 typedef const struct XAInterfaceID_ { |
|
110 XAuint32 time_low; |
|
111 XAuint16 time_mid; |
|
112 XAuint16 time_hi_and_version; |
|
113 XAuint16 clock_seq; |
|
114 XAuint8 node[6]; |
|
115 } * XAInterfaceID; |
|
116 |
|
117 /* NULL Interface */ |
|
118 XA_API extern const XAInterfaceID XA_IID_NULL; |
|
119 |
|
120 |
|
121 |
|
122 /*****************************************************************/ |
|
123 /* GENERAL INTERFACES, STRUCTS AND DEFINES */ |
|
124 /*****************************************************************/ |
|
125 |
|
126 /* OBJECT */ |
|
127 |
|
128 #define XA_PRIORITY_LOWEST ((XAint32) (-0x7FFFFFFF-1)) |
|
129 #define XA_PRIORITY_VERYLOW ((XAint32) -0x60000000) |
|
130 #define XA_PRIORITY_LOW ((XAint32) -0x40000000) |
|
131 #define XA_PRIORITY_BELOWNORMAL ((XAint32) -0x20000000) |
|
132 #define XA_PRIORITY_NORMAL ((XAint32) 0x00000000) |
|
133 #define XA_PRIORITY_ABOVENORMAL ((XAint32) 0x20000000) |
|
134 #define XA_PRIORITY_HIGH ((XAint32) 0x40000000) |
|
135 #define XA_PRIORITY_VERYHIGH ((XAint32) 0x60000000) |
|
136 #define XA_PRIORITY_HIGHEST ((XAint32) 0x7FFFFFFF) |
|
137 |
|
138 #define XA_OBJECT_EVENT_RUNTIME_ERROR ((XAuint32) 0x00000001) |
|
139 #define XA_OBJECT_EVENT_ASYNC_TERMINATION ((XAuint32) 0x00000002) |
|
140 #define XA_OBJECT_EVENT_RESOURCES_LOST ((XAuint32) 0x00000003) |
|
141 #define XA_OBJECT_EVENT_RESOURCES_AVAILABLE ((XAuint32) 0x00000004) |
|
142 #define XA_OBJECT_EVENT_ITF_CONTROL_TAKEN ((XAuint32) 0x00000005) |
|
143 #define XA_OBJECT_EVENT_ITF_CONTROL_RETURNED ((XAuint32) 0x00000006) |
|
144 #define XA_OBJECT_EVENT_ITF_PARAMETERS_CHANGED ((XAuint32) 0x00000007) |
|
145 |
|
146 #define XA_OBJECT_STATE_UNREALIZED ((XAuint32) 0x00000001) |
|
147 #define XA_OBJECT_STATE_REALIZED ((XAuint32) 0x00000002) |
|
148 #define XA_OBJECT_STATE_SUSPENDED ((XAuint32) 0x00000003) |
|
149 |
|
150 |
|
151 XA_API extern const XAInterfaceID XA_IID_OBJECT; |
|
152 |
|
153 struct XAObjectItf_; |
|
154 typedef const struct XAObjectItf_ * const * XAObjectItf; |
|
155 |
|
156 typedef void (XAAPIENTRY * xaObjectCallback) ( |
|
157 XAObjectItf caller, |
|
158 const void * pContext, |
|
159 XAuint32 event, |
|
160 XAresult result, |
|
161 XAuint32 param, |
|
162 void * pInterface |
|
163 ); |
|
164 |
|
165 struct XAObjectItf_ { |
|
166 XAresult (*Realize) ( |
|
167 XAObjectItf self, |
|
168 XAboolean async |
|
169 ); |
|
170 XAresult (*Resume) ( |
|
171 XAObjectItf self, |
|
172 XAboolean async |
|
173 ); |
|
174 XAresult (*GetState) ( |
|
175 XAObjectItf self, |
|
176 XAuint32 * pState |
|
177 ); |
|
178 XAresult (*GetInterface) ( |
|
179 XAObjectItf self, |
|
180 const XAInterfaceID iid, |
|
181 void * pInterface |
|
182 ); |
|
183 XAresult (*RegisterCallback) ( |
|
184 XAObjectItf self, |
|
185 xaObjectCallback callback, |
|
186 void * pContext |
|
187 ); |
|
188 void (*AbortAsyncOperation) ( |
|
189 XAObjectItf self |
|
190 ); |
|
191 void (*Destroy) ( |
|
192 XAObjectItf self |
|
193 ); |
|
194 XAresult (*SetPriority) ( |
|
195 XAObjectItf self, |
|
196 XAint32 priority, |
|
197 XAboolean preemptable |
|
198 ); |
|
199 XAresult (*GetPriority) ( |
|
200 XAObjectItf self, |
|
201 XAint32 * pPriority, |
|
202 XAboolean * pPreemptable |
|
203 ); |
|
204 XAresult (*SetLossOfControlInterfaces) ( |
|
205 XAObjectItf self, |
|
206 XAint16 numInterfaces, |
|
207 XAInterfaceID * pInterfaceIDs, |
|
208 XAboolean enabled |
|
209 ); |
|
210 }; |
|
211 |
|
212 /* CONFIG EXTENSION */ |
|
213 |
|
214 XA_API extern const XAInterfaceID XA_IID_CONFIGEXTENSION; |
|
215 |
|
216 struct XAConfigExtensionsItf_; |
|
217 typedef const struct XAConfigExtensionsItf_ |
|
218 * const * XAConfigExtensionsItf; |
|
219 |
|
220 struct XAConfigExtensionsItf_ { |
|
221 XAresult (*SetConfiguration) ( |
|
222 XAConfigExtensionsItf self, |
|
223 const XAchar * configKey, |
|
224 XAuint32 valueSize, |
|
225 const void * pConfigValue |
|
226 ); |
|
227 XAresult (*GetConfiguration) ( |
|
228 XAConfigExtensionsItf self, |
|
229 const XAchar * configKey, |
|
230 XAuint32 * pValueSize, |
|
231 void * pConfigValue |
|
232 ); |
|
233 }; |
|
234 |
|
235 /* DYNAMIC INTERFACE MANAGEMENT */ |
|
236 |
|
237 #define XA_DYNAMIC_ITF_EVENT_RUNTIME_ERROR ((XAuint32) 0x00000001) |
|
238 #define XA_DYNAMIC_ITF_EVENT_ASYNC_TERMINATION ((XAuint32) 0x00000002) |
|
239 #define XA_DYNAMIC_ITF_EVENT_RESOURCES_LOST ((XAuint32) 0x00000003) |
|
240 #define XA_DYNAMIC_ITF_EVENT_RESOURCES_LOST_PERMANENTLY ((XAuint32) 0x00000004) |
|
241 #define XA_DYNAMIC_ITF_EVENT_RESOURCES_AVAILABLE ((XAuint32) 0x00000005) |
|
242 |
|
243 XA_API extern const XAInterfaceID XA_IID_DYNAMICINTERFACEMANAGEMENT; |
|
244 |
|
245 struct XADynamicInterfaceManagementItf_; |
|
246 typedef const struct XADynamicInterfaceManagementItf_ |
|
247 * const * XADynamicInterfaceManagementItf; |
|
248 |
|
249 typedef void (XAAPIENTRY * xaDynamicInterfaceManagementCallback) ( |
|
250 XADynamicInterfaceManagementItf caller, |
|
251 void * pContext, |
|
252 XAuint32 event, |
|
253 XAresult result, |
|
254 const XAInterfaceID iid |
|
255 ); |
|
256 |
|
257 struct XADynamicInterfaceManagementItf_ { |
|
258 XAresult (*AddInterface) ( |
|
259 XADynamicInterfaceManagementItf self, |
|
260 const XAInterfaceID iid, |
|
261 XAboolean aysnc |
|
262 ); |
|
263 XAresult (*RemoveInterface) ( |
|
264 XADynamicInterfaceManagementItf self, |
|
265 const XAInterfaceID iid |
|
266 ); |
|
267 XAresult (*ResumeInterface) ( |
|
268 XADynamicInterfaceManagementItf self, |
|
269 const XAInterfaceID iid, |
|
270 XAboolean aysnc |
|
271 ); |
|
272 XAresult (*RegisterCallback) ( |
|
273 XADynamicInterfaceManagementItf self, |
|
274 xaDynamicInterfaceManagementCallback callback, |
|
275 void * pContext |
|
276 ); |
|
277 }; |
|
278 |
|
279 /* DATA SOURCES/SINKS */ |
|
280 |
|
281 #define XA_DATAFORMAT_MIME ((XAuint32) 0x00000001) |
|
282 #define XA_DATAFORMAT_PCM ((XAuint32) 0x00000002) |
|
283 #define XA_DATAFORMAT_RAWIMAGE ((XAuint32) 0x00000003) |
|
284 |
|
285 #define XA_DATALOCATOR_URI ((XAuint32) 0x00000001) |
|
286 #define XA_DATALOCATOR_ADDRESS ((XAuint32) 0x00000002) |
|
287 #define XA_DATALOCATOR_IODEVICE ((XAuint32) 0x00000003) |
|
288 #define XA_DATALOCATOR_OUTPUTMIX ((XAuint32) 0x00000004) |
|
289 #define XA_DATALOCATOR_NATIVEDISPLAY ((XAuint32) 0x00000005) |
|
290 #define XA_DATALOCATOR_RESERVED6 ((XAuint32) 0x00000006) |
|
291 #define XA_DATALOCATOR_RESERVED7 ((XAuint32) 0x00000007) |
|
292 |
|
293 typedef struct XADataSink_ { |
|
294 void * pLocator; |
|
295 void * pFormat; |
|
296 } XADataSink; |
|
297 |
|
298 typedef struct XADataSource_ { |
|
299 void * pLocator; |
|
300 void * pFormat; |
|
301 } XADataSource; |
|
302 |
|
303 #define XA_CONTAINERTYPE_UNSPECIFIED ((XAuint32) 0x00000001) |
|
304 #define XA_CONTAINERTYPE_RAW ((XAuint32) 0x00000002) |
|
305 #define XA_CONTAINERTYPE_ASF ((XAuint32) 0x00000003) |
|
306 #define XA_CONTAINERTYPE_AVI ((XAuint32) 0x00000004) |
|
307 #define XA_CONTAINERTYPE_BMP ((XAuint32) 0x00000005) |
|
308 #define XA_CONTAINERTYPE_JPG ((XAuint32) 0x00000006) |
|
309 #define XA_CONTAINERTYPE_JPG2000 ((XAuint32) 0x00000007) |
|
310 #define XA_CONTAINERTYPE_M4A ((XAuint32) 0x00000008) |
|
311 #define XA_CONTAINERTYPE_MP3 ((XAuint32) 0x00000009) |
|
312 #define XA_CONTAINERTYPE_MP4 ((XAuint32) 0x0000000A) |
|
313 #define XA_CONTAINERTYPE_MPEG_ES ((XAuint32) 0x0000000B) |
|
314 #define XA_CONTAINERTYPE_MPEG_PS ((XAuint32) 0x0000000C) |
|
315 #define XA_CONTAINERTYPE_MPEG_TS ((XAuint32) 0x0000000D) |
|
316 #define XA_CONTAINERTYPE_QT ((XAuint32) 0x0000000E) |
|
317 #define XA_CONTAINERTYPE_WAV ((XAuint32) 0x0000000F) |
|
318 #define XA_CONTAINERTYPE_XMF_0 ((XAuint32) 0x00000010) |
|
319 #define XA_CONTAINERTYPE_XMF_1 ((XAuint32) 0x00000011) |
|
320 #define XA_CONTAINERTYPE_XMF_2 ((XAuint32) 0x00000012) |
|
321 #define XA_CONTAINERTYPE_XMF_3 ((XAuint32) 0x00000013) |
|
322 #define XA_CONTAINERTYPE_XMF_GENERIC ((XAuint32) 0x00000014) |
|
323 #define XA_CONTAINERTYPE_AMR ((XAuint32) 0x00000015) |
|
324 #define XA_CONTAINERTYPE_AAC ((XAuint32) 0x00000016) |
|
325 #define XA_CONTAINERTYPE_3GPP ((XAuint32) 0x00000017) |
|
326 #define XA_CONTAINERTYPE_3GA ((XAuint32) 0x00000018) |
|
327 #define XA_CONTAINERTYPE_RM ((XAuint32) 0x00000019) |
|
328 #define XA_CONTAINERTYPE_DMF ((XAuint32) 0x0000001A) |
|
329 #define XA_CONTAINERTYPE_SMF ((XAuint32) 0x0000001B) |
|
330 #define XA_CONTAINERTYPE_MOBILE_DLS ((XAuint32) 0x0000001C) |
|
331 #define XA_CONTAINERTYPE_OGG ((XAuint32) 0x0000001D) |
|
332 |
|
333 typedef struct XADataFormat_MIME_ { |
|
334 XAuint32 formatType; |
|
335 XAchar * mimeType; |
|
336 XAuint32 containerType; |
|
337 } XADataFormat_MIME; |
|
338 |
|
339 #define XA_BYTEORDER_BIGENDIAN ((XAuint32) 0x00000001) |
|
340 #define XA_BYTEORDER_LITTLEENDIAN ((XAuint32) 0x00000002) |
|
341 |
|
342 #define XA_SAMPLINGRATE_8 ((XAuint32) 8000000) |
|
343 #define XA_SAMPLINGRATE_11_025 ((XAuint32) 11025000) |
|
344 #define XA_SAMPLINGRATE_12 ((XAuint32) 12000000) |
|
345 #define XA_SAMPLINGRATE_16 ((XAuint32) 16000000) |
|
346 #define XA_SAMPLINGRATE_22_05 ((XAuint32) 22050000) |
|
347 #define XA_SAMPLINGRATE_24 ((XAuint32) 24000000) |
|
348 #define XA_SAMPLINGRATE_32 ((XAuint32) 32000000) |
|
349 #define XA_SAMPLINGRATE_44_1 ((XAuint32) 44100000) |
|
350 #define XA_SAMPLINGRATE_48 ((XAuint32) 48000000) |
|
351 #define XA_SAMPLINGRATE_64 ((XAuint32) 64000000) |
|
352 #define XA_SAMPLINGRATE_88_2 ((XAuint32) 88200000) |
|
353 #define XA_SAMPLINGRATE_96 ((XAuint32) 96000000) |
|
354 #define XA_SAMPLINGRATE_192 ((XAuint32) 192000000) |
|
355 |
|
356 #define XA_SPEAKER_FRONT_LEFT ((XAuint32) 0x00000001) |
|
357 #define XA_SPEAKER_FRONT_RIGHT ((XAuint32) 0x00000002) |
|
358 #define XA_SPEAKER_FRONT_CENTER ((XAuint32) 0x00000004) |
|
359 #define XA_SPEAKER_LOW_FREQUENCY ((XAuint32) 0x00000008) |
|
360 #define XA_SPEAKER_BACK_LEFT ((XAuint32) 0x00000010) |
|
361 #define XA_SPEAKER_BACK_RIGHT ((XAuint32) 0x00000020) |
|
362 #define XA_SPEAKER_FRONT_LEFT_OF_CENTER ((XAuint32) 0x00000040) |
|
363 #define XA_SPEAKER_FRONT_RIGHT_OF_CENTER ((XAuint32) 0x00000080) |
|
364 #define XA_SPEAKER_BACK_CENTER ((XAuint32) 0x00000100) |
|
365 #define XA_SPEAKER_SIDE_LEFT ((XAuint32) 0x00000200) |
|
366 #define XA_SPEAKER_SIDE_RIGHT ((XAuint32) 0x00000400) |
|
367 #define XA_SPEAKER_TOP_CENTER ((XAuint32) 0x00000800) |
|
368 #define XA_SPEAKER_TOP_FRONT_LEFT ((XAuint32) 0x00001000) |
|
369 #define XA_SPEAKER_TOP_FRONT_CENTER ((XAuint32) 0x00002000) |
|
370 #define XA_SPEAKER_TOP_FRONT_RIGHT ((XAuint32) 0x00004000) |
|
371 #define XA_SPEAKER_TOP_BACK_LEFT ((XAuint32) 0x00008000) |
|
372 #define XA_SPEAKER_TOP_BACK_CENTER ((XAuint32) 0x00010000) |
|
373 #define XA_SPEAKER_TOP_BACK_RIGHT ((XAuint32) 0x00020000) |
|
374 |
|
375 #define XA_PCMSAMPLEFORMAT_FIXED_8 ((XAuint16) 0x0008) |
|
376 #define XA_PCMSAMPLEFORMAT_FIXED_16 ((XAuint16) 0x0010) |
|
377 #define XA_PCMSAMPLEFORMAT_FIXED_20 ((XAuint16) 0x0014) |
|
378 #define XA_PCMSAMPLEFORMAT_FIXED_24 ((XAuint16) 0x0018) |
|
379 #define XA_PCMSAMPLEFORMAT_FIXED_28 ((XAuint16) 0x001C) |
|
380 #define XA_PCMSAMPLEFORMAT_FIXED_32 ((XAuint16) 0x0020) |
|
381 |
|
382 typedef struct XADataFormat_PCM_ { |
|
383 XAuint32 formatType; |
|
384 XAuint32 numChannels; |
|
385 XAuint32 samplesPerSec; |
|
386 XAuint32 bitsPerSample; |
|
387 XAuint32 containerSize; |
|
388 XAuint32 channelMask; |
|
389 XAuint32 endianness; |
|
390 } XADataFormat_PCM; |
|
391 |
|
392 #define XA_COLORFORMAT_UNUSED ((XAuint32) 0x00000000) |
|
393 #define XA_COLORFORMAT_MONOCHROME ((XAuint32) 0x00000001) |
|
394 #define XA_COLORFORMAT_8BITRGB332 ((XAuint32) 0x00000002) |
|
395 #define XA_COLORFORMAT_12BITRGB444 ((XAuint32) 0x00000003) |
|
396 #define XA_COLORFORMAT_16BITARGB4444 ((XAuint32) 0x00000004) |
|
397 #define XA_COLORFORMAT_16BITARGB1555 ((XAuint32) 0x00000005) |
|
398 #define XA_COLORFORMAT_16BITRGB565 ((XAuint32) 0x00000006) |
|
399 #define XA_COLORFORMAT_16BITBGR565 ((XAuint32) 0x00000007) |
|
400 #define XA_COLORFORMAT_18BITRGB666 ((XAuint32) 0x00000008) |
|
401 #define XA_COLORFORMAT_18BITARGB1665 ((XAuint32) 0x00000009) |
|
402 #define XA_COLORFORMAT_19BITARGB1666 ((XAuint32) 0x0000000A) |
|
403 #define XA_COLORFORMAT_24BITRGB888 ((XAuint32) 0x0000000B) |
|
404 #define XA_COLORFORMAT_24BITBGR888 ((XAuint32) 0x0000000C) |
|
405 #define XA_COLORFORMAT_24BITARGB1887 ((XAuint32) 0x0000000D) |
|
406 #define XA_COLORFORMAT_25BITARGB1888 ((XAuint32) 0x0000000E) |
|
407 #define XA_COLORFORMAT_32BITBGRA8888 ((XAuint32) 0x0000000F) |
|
408 #define XA_COLORFORMAT_32BITARGB8888 ((XAuint32) 0x00000010) |
|
409 #define XA_COLORFORMAT_YUV411PLANAR ((XAuint32) 0x00000011) |
|
410 #define XA_COLORFORMAT_YUV420PLANAR ((XAuint32) 0x00000013) |
|
411 #define XA_COLORFORMAT_YUV420SEMIPLANAR ((XAuint32) 0x00000015) |
|
412 #define XA_COLORFORMAT_YUV422PLANAR ((XAuint32) 0x00000016) |
|
413 #define XA_COLORFORMAT_YUV422SEMIPLANAR ((XAuint32) 0x00000018) |
|
414 #define XA_COLORFORMAT_YCBYCR ((XAuint32) 0x00000019) |
|
415 #define XA_COLORFORMAT_YCRYCB ((XAuint32) 0x0000001A) |
|
416 #define XA_COLORFORMAT_CBYCRY ((XAuint32) 0x0000001B) |
|
417 #define XA_COLORFORMAT_CRYCBY ((XAuint32) 0x0000001C) |
|
418 #define XA_COLORFORMAT_YUV444INTERLEAVED ((XAuint32) 0x0000001D) |
|
419 #define XA_COLORFORMAT_RAWBAYER8BIT ((XAuint32) 0x0000001E) |
|
420 #define XA_COLORFORMAT_RAWBAYER10BIT ((XAuint32) 0x0000001F) |
|
421 #define XA_COLORFORMAT_RAWBAYER8BITCOMPRESSED ((XAuint32) 0x00000020) |
|
422 #define XA_COLORFORMAT_L2 ((XAuint32) 0x00000021) |
|
423 #define XA_COLORFORMAT_L4 ((XAuint32) 0x00000022) |
|
424 #define XA_COLORFORMAT_L8 ((XAuint32) 0x00000023) |
|
425 #define XA_COLORFORMAT_L16 ((XAuint32) 0x00000024) |
|
426 #define XA_COLORFORMAT_L24 ((XAuint32) 0x00000025) |
|
427 #define XA_COLORFORMAT_L32 ((XAuint32) 0x00000026) |
|
428 #define XA_COLORFORMAT_18BITBGR666 ((XAuint32) 0x00000029) |
|
429 #define XA_COLORFORMAT_24BITARGB6666 ((XAuint32) 0x0000002A) |
|
430 #define XA_COLORFORMAT_24BITABGR6666 ((XAuint32) 0x0000002B) |
|
431 |
|
432 typedef struct XADataFormat_RawImage_ { |
|
433 XAuint32 formatType; |
|
434 XAuint32 colorFormat; |
|
435 XAuint32 height; |
|
436 XAuint32 width; |
|
437 XAuint32 stride; |
|
438 } XADataFormat_RawImage; |
|
439 |
|
440 typedef struct XADataLocator_Address_ { |
|
441 XAuint32 locatorType; |
|
442 void * pAddress; |
|
443 XAuint32 length; |
|
444 } XADataLocator_Address; |
|
445 |
|
446 #define XA_IODEVICE_AUDIOINPUT ((XAuint32) 0x00000001) |
|
447 #define XA_IODEVICE_LEDARRAY ((XAuint32) 0x00000002) |
|
448 #define XA_IODEVICE_VIBRA ((XAuint32) 0x00000003) |
|
449 #define XA_IODEVICE_CAMERA ((XAuint32) 0x00000004) |
|
450 #define XA_IODEVICE_RADIO ((XAuint32) 0x00000005) |
|
451 |
|
452 typedef struct XADataLocator_IODevice_ { |
|
453 XAuint32 locatorType; |
|
454 XAuint32 deviceType; |
|
455 XAuint32 deviceID; |
|
456 XAObjectItf device; |
|
457 } XADataLocator_IODevice; |
|
458 |
|
459 typedef void * XANativeHandle; |
|
460 |
|
461 typedef struct XADataLocator_NativeDisplay_{ |
|
462 XAuint32 locatorType; |
|
463 XANativeHandle hWindow; |
|
464 XANativeHandle hDisplay; |
|
465 } XADataLocator_NativeDisplay; |
|
466 |
|
467 typedef struct XADataLocator_OutputMix { |
|
468 XAuint32 locatorType; |
|
469 XAObjectItf outputMix; |
|
470 } XADataLocator_OutputMix; |
|
471 |
|
472 typedef struct XADataLocator_URI_ { |
|
473 XAuint32 locatorType; |
|
474 XAchar * URI; |
|
475 } XADataLocator_URI; |
|
476 |
|
477 |
|
478 /* ENGINE */ |
|
479 |
|
480 #define XA_DEFAULTDEVICEID_AUDIOINPUT ((XAuint32) 0xFFFFFFFF) |
|
481 #define XA_DEFAULTDEVICEID_AUDIOOUTPUT ((XAuint32) 0xFFFFFFFE) |
|
482 #define XA_DEFAULTDEVICEID_LED ((XAuint32) 0xFFFFFFFD) |
|
483 #define XA_DEFAULTDEVICEID_VIBRA ((XAuint32) 0xFFFFFFFC) |
|
484 #define XA_DEFAULTDEVICEID_CAMERA ((XAuint32) 0xFFFFFFFB) |
|
485 |
|
486 #define XA_ENGINEOPTION_THREADSAFE ((XAuint32) 0x00000001) |
|
487 #define XA_ENGINEOPTION_LOSSOFCONTROL ((XAuint32) 0x00000002) |
|
488 |
|
489 #define XA_OBJECTID_ENGINE ((XAuint32) 0x00000001) |
|
490 #define XA_OBJECTID_LEDDEVICE ((XAuint32) 0x00000002) |
|
491 #define XA_OBJECTID_VIBRADEVICE ((XAuint32) 0x00000003) |
|
492 #define XA_OBJECTID_MEDIAPLAYER ((XAuint32) 0x00000004) |
|
493 #define XA_OBJECTID_MEDIARECORDER ((XAuint32) 0x00000005) |
|
494 #define XA_OBJECTID_RADIODEVICE ((XAuint32) 0x00000006) |
|
495 #define XA_OBJECTID_OUTPUTMIX ((XAuint32) 0x00000007) |
|
496 #define XA_OBJECTID_METADATAEXTRACTOR ((XAuint32) 0x00000008) |
|
497 #define XA_OBJECTID_CAMERADEVICE ((XAuint32) 0x00000009) |
|
498 |
|
499 #define XA_PROFILES_MEDIA_PLAYER ((XAint16) 0x0001) |
|
500 #define XA_PROFILES_MEDIA_PLAYER_RECORDER ((XAint16) 0x0002) |
|
501 #define XA_PROFILES_PLUS_MIDI ((XAint16) 0x0004) |
|
502 |
|
503 typedef struct XAEngineOption_ { |
|
504 XAuint32 feature; |
|
505 XAuint32 data; |
|
506 } XAEngineOption; |
|
507 |
|
508 XA_API XAresult XAAPIENTRY xaCreateEngine( |
|
509 XAObjectItf * pEngine, |
|
510 XAuint32 numOptions, |
|
511 const XAEngineOption * pEngineOptions, |
|
512 XAuint32 numInterfaces, |
|
513 const XAInterfaceID * pInterfaceIds, |
|
514 const XAboolean * pInterfaceRequired |
|
515 ); |
|
516 |
|
517 XA_API XAresult XAAPIENTRY xaQueryNumSupportedEngineInterfaces( |
|
518 XAuint32 * pNumSupportedInterfaces |
|
519 ); |
|
520 |
|
521 XA_API XAresult XAAPIENTRY xaQuerySupportedEngineInterfaces( |
|
522 XAuint32 index, |
|
523 XAInterfaceID * pInterfaceId |
|
524 ); |
|
525 |
|
526 typedef struct XALEDDescriptor_ { |
|
527 XAuint8 ledCount; |
|
528 XAuint8 primaryLED; |
|
529 XAuint32 colorMask; |
|
530 } XALEDDescriptor; |
|
531 |
|
532 typedef struct XAVibraDescriptor_ { |
|
533 XAboolean supportsFrequency; |
|
534 XAboolean supportsIntensity; |
|
535 XAmilliHertz minFrequency; |
|
536 XAmilliHertz maxFrequency; |
|
537 } XAVibraDescriptor; |
|
538 |
|
539 |
|
540 XA_API extern const XAInterfaceID XA_IID_ENGINE; |
|
541 |
|
542 struct XAEngineItf_; |
|
543 typedef const struct XAEngineItf_ * const * XAEngineItf; |
|
544 |
|
545 struct XAEngineItf_ { |
|
546 XAresult (*CreateCameraDevice) ( |
|
547 XAEngineItf self, |
|
548 XAObjectItf * pDevice, |
|
549 XAuint32 deviceID, |
|
550 XAuint32 numInterfaces, |
|
551 const XAInterfaceID * pInterfaceIds, |
|
552 const XAboolean * pInterfaceRequired |
|
553 ); |
|
554 XAresult (*CreateRadioDevice) ( |
|
555 XAEngineItf self, |
|
556 XAObjectItf * pDevice, |
|
557 XAuint32 numInterfaces, |
|
558 const XAInterfaceID * pInterfaceIds, |
|
559 const XAboolean * pInterfaceRequired |
|
560 ); |
|
561 XAresult (*CreateLEDDevice) ( |
|
562 XAEngineItf self, |
|
563 XAObjectItf * pDevice, |
|
564 XAuint32 deviceID, |
|
565 XAuint32 numInterfaces, |
|
566 const XAInterfaceID * pInterfaceIds, |
|
567 const XAboolean * pInterfaceRequired |
|
568 ); |
|
569 XAresult (*CreateVibraDevice) ( |
|
570 XAEngineItf self, |
|
571 XAObjectItf * pDevice, |
|
572 XAuint32 deviceID, |
|
573 XAuint32 numInterfaces, |
|
574 const XAInterfaceID * pInterfaceIds, |
|
575 const XAboolean * pInterfaceRequired |
|
576 ); |
|
577 XAresult (*CreateMediaPlayer) ( |
|
578 XAEngineItf self, |
|
579 XAObjectItf * pPlayer, |
|
580 XADataSource * pDataSrc, |
|
581 XADataSource * pBankSrc, |
|
582 XADataSink * pAudioSnk, |
|
583 XADataSink * pImageVideoSnk, |
|
584 XADataSink * pVibra, |
|
585 XADataSink * pLEDArray, |
|
586 XAuint32 numInterfaces, |
|
587 const XAInterfaceID * pInterfaceIds, |
|
588 const XAboolean * pInterfaceRequired |
|
589 ); |
|
590 XAresult (*CreateMediaRecorder) ( |
|
591 XAEngineItf self, |
|
592 XAObjectItf * pRecorder, |
|
593 XADataSource * pAudioSrc, |
|
594 XADataSource * pImageVideoSrc, |
|
595 XADataSink * pDataSnk, |
|
596 XAuint32 numInterfaces, |
|
597 const XAInterfaceID * pInterfaceIds, |
|
598 const XAboolean * pInterfaceRequired |
|
599 ); |
|
600 XAresult (*CreateOutputMix) ( |
|
601 XAEngineItf self, |
|
602 XAObjectItf * pMix, |
|
603 XAuint32 numInterfaces, |
|
604 const XAInterfaceID * pInterfaceIds, |
|
605 const XAboolean * pInterfaceRequired |
|
606 ); |
|
607 XAresult (*CreateMetadataExtractor) ( |
|
608 XAEngineItf self, |
|
609 XAObjectItf * pMetadataExtractor, |
|
610 XADataSource * pDataSource, |
|
611 XAuint32 numInterfaces, |
|
612 const XAInterfaceID * pInterfaceIds, |
|
613 const XAboolean * pInterfaceRequired |
|
614 ); |
|
615 XAresult (*CreateExtensionObject) ( |
|
616 XAEngineItf self, |
|
617 XAObjectItf * pObject, |
|
618 void * pParameters, |
|
619 XAuint32 objectID, |
|
620 XAuint32 numInterfaces, |
|
621 const XAInterfaceID * pInterfaceIds, |
|
622 const XAboolean * pInterfaceRequired |
|
623 ); |
|
624 XAresult (*GetImplementationInfo) ( |
|
625 XAEngineItf self, |
|
626 XAuint32 * pMajor, |
|
627 XAuint32 * pMinor, |
|
628 XAuint32 * pStep, |
|
629 const XAchar * pImplementationText |
|
630 ); |
|
631 XAresult (*QuerySupportedProfiles) ( |
|
632 XAEngineItf self, |
|
633 XAint16 * pProfilesSupported |
|
634 ); |
|
635 XAresult (*QueryNumSupportedInterfaces) ( |
|
636 XAEngineItf self, |
|
637 XAuint32 objectID, |
|
638 XAuint32 * pNumSupportedInterfaces |
|
639 ); |
|
640 XAresult (*QuerySupportedInterfaces) ( |
|
641 XAEngineItf self, |
|
642 XAuint32 objectID, |
|
643 XAuint32 index, |
|
644 XAInterfaceID * pInterfaceId |
|
645 ); |
|
646 XAresult (*QueryNumSupportedExtensions) ( |
|
647 XAEngineItf self, |
|
648 XAuint32 * pNumExtensions |
|
649 ); |
|
650 XAresult (*QuerySupportedExtension) ( |
|
651 XAEngineItf self, |
|
652 XAuint32 index, |
|
653 XAchar * pExtensionName, |
|
654 XAint16 * pNameLength |
|
655 ); |
|
656 XAresult (*IsExtensionSupported) ( |
|
657 XAEngineItf self, |
|
658 const XAchar * pExtensionName, |
|
659 XAboolean * pSupported |
|
660 ); |
|
661 XAresult (*QueryLEDCapabilities) ( |
|
662 XAEngineItf self, |
|
663 XAuint32 *pIndex, |
|
664 XAuint32 * pLEDDeviceID, |
|
665 XALEDDescriptor * pDescriptor |
|
666 ); |
|
667 XAresult (*QueryVibraCapabilities) ( |
|
668 XAEngineItf self, |
|
669 XAuint32 *pIndex, |
|
670 XAuint32 * pVibraDeviceID, |
|
671 XAVibraDescriptor * pDescriptor |
|
672 ); |
|
673 }; |
|
674 |
|
675 /* THREAD SYNC */ |
|
676 |
|
677 XA_API extern const XAInterfaceID XA_IID_THREADSYNC; |
|
678 |
|
679 struct XAThreadSyncItf_; |
|
680 typedef const struct XAThreadSyncItf_ * const * XAThreadSyncItf; |
|
681 |
|
682 struct XAThreadSyncItf_ { |
|
683 XAresult (*EnterCriticalSection) ( |
|
684 XAThreadSyncItf self |
|
685 ); |
|
686 XAresult (*ExitCriticalSection) ( |
|
687 XAThreadSyncItf self |
|
688 ); |
|
689 }; |
|
690 |
|
691 |
|
692 |
|
693 /*****************************************************************/ |
|
694 /* PLAYBACK RELATED INTERFACES, STRUCTS AND DEFINES */ |
|
695 /*****************************************************************/ |
|
696 |
|
697 /* PLAY */ |
|
698 |
|
699 #define XA_TIME_UNKNOWN ((XAuint32) 0xFFFFFFFF) |
|
700 |
|
701 #define XA_PLAYEVENT_HEADATEND ((XAuint32) 0x00000001) |
|
702 #define XA_PLAYEVENT_HEADATMARKER ((XAuint32) 0x00000002) |
|
703 #define XA_PLAYEVENT_HEADATNEWPOS ((XAuint32) 0x00000004) |
|
704 #define XA_PLAYEVENT_HEADMOVING ((XAuint32) 0x00000008) |
|
705 #define XA_PLAYEVENT_HEADSTALLED ((XAuint32) 0x00000010) |
|
706 |
|
707 #define XA_PLAYSTATE_STOPPED ((XAuint32) 0x00000001) |
|
708 #define XA_PLAYSTATE_PAUSED ((XAuint32) 0x00000002) |
|
709 #define XA_PLAYSTATE_PLAYING ((XAuint32) 0x00000003) |
|
710 |
|
711 #define XA_PREFETCHEVENT_STATUSCHANGE ((XAuint32) 0x00000001) |
|
712 #define XA_PREFETCHEVENT_FILLLEVELCHANGE ((XAuint32) 0x00000002) |
|
713 |
|
714 #define XA_PREFETCHSTATUS_UNDERFLOW ((XAuint32) 0x00000001) |
|
715 #define XA_PREFETCHSTATUS_SUFFICIENTDATA ((XAuint32) 0x00000002) |
|
716 #define XA_PREFETCHSTATUS_OVERFLOW ((XAuint32) 0x00000003) |
|
717 |
|
718 #define XA_SEEKMODE_FAST ((XAuint32) 0x0001) |
|
719 #define XA_SEEKMODE_ACCURATE ((XAuint32) 0x0002) |
|
720 |
|
721 XA_API extern const XAInterfaceID XA_IID_PLAY; |
|
722 |
|
723 struct XAPlayItf_; |
|
724 typedef const struct XAPlayItf_ * const * XAPlayItf; |
|
725 |
|
726 typedef void (XAAPIENTRY * xaPlayCallback) ( |
|
727 XAPlayItf caller, |
|
728 void * pContext, |
|
729 XAuint32 event |
|
730 ); |
|
731 |
|
732 struct XAPlayItf_ { |
|
733 XAresult (*SetPlayState) ( |
|
734 XAPlayItf self, |
|
735 XAuint32 state |
|
736 ); |
|
737 XAresult (*GetPlayState) ( |
|
738 XAPlayItf self, |
|
739 XAuint32 * pState |
|
740 ); |
|
741 XAresult (*GetDuration) ( |
|
742 XAPlayItf self, |
|
743 XAmillisecond * pMsec |
|
744 ); |
|
745 XAresult (*GetPosition) ( |
|
746 XAPlayItf self, |
|
747 XAmillisecond * pMsec |
|
748 ); |
|
749 XAresult (*RegisterCallback) ( |
|
750 XAPlayItf self, |
|
751 xaPlayCallback callback, |
|
752 void * pContext |
|
753 ); |
|
754 XAresult (*SetCallbackEventsMask) ( |
|
755 XAPlayItf self, |
|
756 XAuint32 eventFlags |
|
757 ); |
|
758 XAresult (*GetCallbackEventsMask) ( |
|
759 XAPlayItf self, |
|
760 XAuint32 * pEventFlags |
|
761 ); |
|
762 XAresult (*SetMarkerPosition) ( |
|
763 XAPlayItf self, |
|
764 XAmillisecond mSec |
|
765 ); |
|
766 XAresult (*ClearMarkerPosition) ( |
|
767 XAPlayItf self |
|
768 ); |
|
769 XAresult (*GetMarkerPosition) ( |
|
770 XAPlayItf self, |
|
771 XAmillisecond * pMsec |
|
772 ); |
|
773 XAresult (*SetPositionUpdatePeriod) ( |
|
774 XAPlayItf self, |
|
775 XAmillisecond mSec |
|
776 ); |
|
777 XAresult (*GetPositionUpdatePeriod) ( |
|
778 XAPlayItf self, |
|
779 XAmillisecond * pMsec |
|
780 ); |
|
781 }; |
|
782 |
|
783 /* PLAYBACK RATE */ |
|
784 |
|
785 #define XA_RATEPROP_STAGGEREDVIDEO ((XAuint32) 0x00000001) |
|
786 #define XA_RATEPROP_SMOOTHVIDEO ((XAuint32) 0x00000002) |
|
787 #define XA_RATEPROP_SILENTAUDIO ((XAuint32) 0x00000100) |
|
788 #define XA_RATEPROP_STAGGEREDAUDIO ((XAuint32) 0x00000200) |
|
789 #define XA_RATEPROP_NOPITCHCORAUDIO ((XAuint32) 0x00000400) |
|
790 #define XA_RATEPROP_PITCHCORAUDIO ((XAuint32) 0x00000800) |
|
791 |
|
792 XA_API extern const XAInterfaceID XA_IID_PLAYBACKRATE; |
|
793 |
|
794 struct XAPlaybackRateItf_; |
|
795 typedef const struct XAPlaybackRateItf_ * const * XAPlaybackRateItf; |
|
796 |
|
797 struct XAPlaybackRateItf_ { |
|
798 XAresult (*SetRate) ( |
|
799 XAPlaybackRateItf self, |
|
800 XApermille rate |
|
801 ); |
|
802 XAresult (*GetRate) ( |
|
803 XAPlaybackRateItf self, |
|
804 XApermille * pRate |
|
805 ); |
|
806 XAresult (*SetPropertyConstraints) ( |
|
807 XAPlaybackRateItf self, |
|
808 XAuint32 constraints |
|
809 ); |
|
810 XAresult (*GetProperties) ( |
|
811 XAPlaybackRateItf self, |
|
812 XAuint32 * pProperties |
|
813 ); |
|
814 XAresult (*GetCapabilitiesOfRate) ( |
|
815 XAPlaybackRateItf self, |
|
816 XApermille rate, |
|
817 XAuint32 * pCapabilities |
|
818 ); |
|
819 XAresult (*GetRateRange) ( |
|
820 XAPlaybackRateItf self, |
|
821 XAuint8 index, |
|
822 XApermille * pMinRate, |
|
823 XApermille * pMaxRate, |
|
824 XApermille * pStepSize, |
|
825 XAuint32 * pCapabilities |
|
826 ); |
|
827 }; |
|
828 |
|
829 /* PREFETCH STATUS */ |
|
830 |
|
831 XA_API extern const XAInterfaceID XA_IID_PREFETCHSTATUS; |
|
832 |
|
833 struct XAPrefetchStatusItf_; |
|
834 typedef const struct XAPrefetchStatusItf_ |
|
835 * const * XAPrefetchStatusItf; |
|
836 |
|
837 typedef void (XAAPIENTRY * xaPrefetchCallback) ( |
|
838 XAPrefetchStatusItf caller, |
|
839 void * pContext, |
|
840 XAuint32 event |
|
841 ); |
|
842 |
|
843 struct XAPrefetchStatusItf_ { |
|
844 XAresult (*GetPrefetchStatus) ( |
|
845 XAPrefetchStatusItf self, |
|
846 XAuint32 * pStatus |
|
847 ); |
|
848 XAresult (*GetFillLevel) ( |
|
849 XAPrefetchStatusItf self, |
|
850 XApermille * pLevel |
|
851 ); |
|
852 XAresult (*RegisterCallback) ( |
|
853 XAPrefetchStatusItf self, |
|
854 xaPrefetchCallback callback, |
|
855 void * pContext |
|
856 ); |
|
857 XAresult (*SetCallbackEventsMask) ( |
|
858 XAPrefetchStatusItf self, |
|
859 XAuint32 eventFlags |
|
860 ); |
|
861 XAresult (*GetCallbackEventsMask) ( |
|
862 XAPrefetchStatusItf self, |
|
863 XAuint32 * pEventFlags |
|
864 ); |
|
865 XAresult (*SetFillUpdatePeriod) ( |
|
866 XAPrefetchStatusItf self, |
|
867 XApermille period |
|
868 ); |
|
869 XAresult (*GetFillUpdatePeriod) ( |
|
870 XAPrefetchStatusItf self, |
|
871 XApermille * pPeriod |
|
872 ); |
|
873 }; |
|
874 |
|
875 /* SEEK */ |
|
876 |
|
877 XA_API extern const XAInterfaceID XA_IID_SEEK; |
|
878 |
|
879 struct XASeekItf_; |
|
880 typedef const struct XASeekItf_ * const * XASeekItf; |
|
881 |
|
882 struct XASeekItf_ { |
|
883 XAresult (*SetPosition) ( |
|
884 XASeekItf self, |
|
885 XAmillisecond pos, |
|
886 XAuint32 seekMode |
|
887 ); |
|
888 XAresult (*SetLoop) ( |
|
889 XASeekItf self, |
|
890 XAboolean loopEnable, |
|
891 XAmillisecond startPos, |
|
892 XAmillisecond endPos |
|
893 ); |
|
894 XAresult (*GetLoop) ( |
|
895 XASeekItf self, |
|
896 XAboolean * pLoopEnabled, |
|
897 XAmillisecond * pStartPos, |
|
898 XAmillisecond * pEndPos |
|
899 ); |
|
900 }; |
|
901 |
|
902 /* VOLUME */ |
|
903 |
|
904 XA_API extern const XAInterfaceID XA_IID_VOLUME; |
|
905 |
|
906 struct XAVolumeItf_; |
|
907 typedef const struct XAVolumeItf_ * const * XAVolumeItf; |
|
908 |
|
909 struct XAVolumeItf_ { |
|
910 XAresult (*SetVolumeLevel) ( |
|
911 XAVolumeItf self, |
|
912 XAmillibel level |
|
913 ); |
|
914 XAresult (*GetVolumeLevel) ( |
|
915 XAVolumeItf self, |
|
916 XAmillibel * pLevel |
|
917 ); |
|
918 XAresult (*GetMaxVolumeLevel) ( |
|
919 XAVolumeItf self, |
|
920 XAmillibel * pMaxLevel |
|
921 ); |
|
922 XAresult (*SetMute) ( |
|
923 XAVolumeItf self, |
|
924 XAboolean mute |
|
925 ); |
|
926 XAresult (*GetMute) ( |
|
927 XAVolumeItf self, |
|
928 XAboolean * pMute |
|
929 ); |
|
930 XAresult (*EnableStereoPosition) ( |
|
931 XAVolumeItf self, |
|
932 XAboolean enable |
|
933 ); |
|
934 XAresult (*IsEnabledStereoPosition) ( |
|
935 XAVolumeItf self, |
|
936 XAboolean * pEnable |
|
937 ); |
|
938 XAresult (*SetStereoPosition) ( |
|
939 XAVolumeItf self, |
|
940 XApermille stereoPosition |
|
941 ); |
|
942 XAresult (*GetStereoPosition) ( |
|
943 XAVolumeItf self, |
|
944 XApermille * pStereoPosition |
|
945 ); |
|
946 }; |
|
947 |
|
948 /* IMAGE CONTROL */ |
|
949 |
|
950 XA_API extern const XAInterfaceID XA_IID_IMAGECONTROLS; |
|
951 |
|
952 struct XAImageControlsItf_; |
|
953 typedef const struct XAImageControlsItf_ * const * XAImageControlsItf; |
|
954 |
|
955 struct XAImageControlsItf_ { |
|
956 XAresult (*SetBrightness) ( |
|
957 XAImageControlsItf self, |
|
958 XAuint32 brightness |
|
959 ); |
|
960 XAresult (*GetBrightness) ( |
|
961 XAImageControlsItf self, |
|
962 XAuint32 * pBrightness |
|
963 ); |
|
964 XAresult (*SetContrast) ( |
|
965 XAImageControlsItf self, |
|
966 XAint32 contrast |
|
967 ); |
|
968 XAresult (*GetContrast) ( |
|
969 XAImageControlsItf self, |
|
970 XAint32 * pContrast |
|
971 ); |
|
972 XAresult (*SetGamma) ( |
|
973 XAImageControlsItf self, |
|
974 XApermille gamma |
|
975 ); |
|
976 XAresult (*GetGamma) ( |
|
977 XAImageControlsItf self, |
|
978 XApermille * pGamma |
|
979 ); |
|
980 XAresult (*GetSupportedGammaSettings) ( |
|
981 XAImageControlsItf self, |
|
982 XApermille * pMinValue, |
|
983 XApermille * pMaxValue, |
|
984 XAuint32 * pNumSettings, |
|
985 XApermille ** ppSettings |
|
986 ); |
|
987 }; |
|
988 |
|
989 /* IMAGE EFFECT */ |
|
990 |
|
991 #define XA_IMAGEEFFECT_MONOCHROME ((XAuint32) 0x00000001) |
|
992 #define XA_IMAGEEFFECT_NEGATIVE ((XAuint32) 0x00000002) |
|
993 #define XA_IMAGEEFFECT_SEPIA ((XAuint32) 0x00000003) |
|
994 #define XA_IMAGEEFFECT_EMBOSS ((XAuint32) 0x00000004) |
|
995 #define XA_IMAGEEFFECT_PAINTBRUSH ((XAuint32) 0x00000005) |
|
996 #define XA_IMAGEEFFECT_SOLARIZE ((XAuint32) 0x00000006) |
|
997 #define XA_IMAGEEFFECT_CARTOON ((XAuint32) 0x00000007) |
|
998 |
|
999 XA_API extern const XAInterfaceID XA_IID_IMAGEEFFECTS; |
|
1000 |
|
1001 struct XAImageEffectsItf_; |
|
1002 typedef const struct XAImageEffectsItf_ * const * XAImageEffectsItf; |
|
1003 |
|
1004 struct XAImageEffectsItf_ { |
|
1005 XAresult (*QuerySupportedImageEffects) ( |
|
1006 XAImageEffectsItf self, |
|
1007 XAuint32 index, |
|
1008 XAuint32 * pImageEffectId |
|
1009 ); |
|
1010 XAresult (*EnableImageEffect) ( |
|
1011 XAImageEffectsItf self, |
|
1012 XAuint32 imageEffectID |
|
1013 ); |
|
1014 XAresult (*DisableImageEffect) ( |
|
1015 XAImageEffectsItf self, |
|
1016 XAuint32 imageEffectID |
|
1017 ); |
|
1018 XAresult (*IsImageEffectEnabled) ( |
|
1019 XAImageEffectsItf self, |
|
1020 XAuint32 imageEffectID, |
|
1021 XAboolean * pEnabled |
|
1022 ); |
|
1023 }; |
|
1024 |
|
1025 /* VIDEO POST PROCESSING */ |
|
1026 |
|
1027 #define XA_VIDEOMIRROR_NONE ((XAuint32) 0x00000001) |
|
1028 #define XA_VIDEOMIRROR_VERTICAL ((XAuint32) 0x00000002) |
|
1029 #define XA_VIDEOMIRROR_HORIZONTAL ((XAuint32) 0x00000003) |
|
1030 #define XA_VIDEOMIRROR_BOTH ((XAuint32) 0x00000004) |
|
1031 |
|
1032 #define XA_VIDEOSCALE_STRETCH ((XAuint32) 0x00000001) |
|
1033 #define XA_VIDEOSCALE_FIT ((XAuint32) 0x00000002) |
|
1034 #define XA_VIDEOSCALE_CROP ((XAuint32) 0x00000003) |
|
1035 |
|
1036 #define XA_RENDERINGHINT_NONE ((XAuint32) 0x00000000) |
|
1037 #define XA_RENDERINGHINT_ANTIALIASING ((XAuint32) 0x00000001) |
|
1038 |
|
1039 typedef struct XARectangle_ { |
|
1040 XAuint32 left; |
|
1041 XAuint32 top; |
|
1042 XAuint32 width; |
|
1043 XAuint32 height; |
|
1044 } XARectangle; |
|
1045 |
|
1046 XA_API extern const XAInterfaceID XA_IID_VIDEOPOSTPROCESSING; |
|
1047 |
|
1048 struct XAVideoPostProcessingItf_; |
|
1049 typedef const struct XAVideoPostProcessingItf_ * const * XAVideoPostProcessingItf; |
|
1050 |
|
1051 struct XAVideoPostProcessingItf_ { |
|
1052 XAresult (*SetRotation) ( |
|
1053 XAVideoPostProcessingItf self, |
|
1054 XAmillidegree rotation |
|
1055 ); |
|
1056 XAresult (*IsArbitraryRotationSupported) ( |
|
1057 XAVideoPostProcessingItf self, |
|
1058 XAboolean *pSupported |
|
1059 ); |
|
1060 XAresult (*SetScaleOptions) ( |
|
1061 XAVideoPostProcessingItf self, |
|
1062 XAuint32 scaleOptions, |
|
1063 XAuint32 backgroundColor, |
|
1064 XAuint32 renderingHints |
|
1065 ); |
|
1066 XAresult (*SetSourceRectangle) ( |
|
1067 XAVideoPostProcessingItf self, |
|
1068 const XARectangle *pSrcRect |
|
1069 ); |
|
1070 XAresult (*SetDestinationRectangle) ( |
|
1071 XAVideoPostProcessingItf self, |
|
1072 const XARectangle *pDestRect |
|
1073 ); |
|
1074 XAresult (*SetMirror) ( |
|
1075 XAVideoPostProcessingItf self, |
|
1076 XAuint32 mirror |
|
1077 ); |
|
1078 XAresult (*Commit) ( |
|
1079 XAVideoPostProcessingItf self |
|
1080 ); |
|
1081 }; |
|
1082 |
|
1083 |
|
1084 |
|
1085 /*****************************************************************/ |
|
1086 /* CAPTURING INTERFACES, STRUCTS AND DEFINES */ |
|
1087 /*****************************************************************/ |
|
1088 |
|
1089 /* RECORD */ |
|
1090 |
|
1091 #define XA_RECORDEVENT_HEADATLIMIT ((XAuint32) 0x00000001) |
|
1092 #define XA_RECORDEVENT_HEADATMARKER ((XAuint32) 0x00000002) |
|
1093 #define XA_RECORDEVENT_HEADATNEWPOS ((XAuint32) 0x00000004) |
|
1094 #define XA_RECORDEVENT_HEADMOVING ((XAuint32) 0x00000008) |
|
1095 #define XA_RECORDEVENT_HEADSTALLED ((XAuint32) 0x00000010) |
|
1096 #define XA_RECORDEVENT_BUFFER_FULL ((XAuint32) 0x00000020) |
|
1097 |
|
1098 #define XA_RECORDSTATE_STOPPED ((XAuint32) 0x00000001) |
|
1099 #define XA_RECORDSTATE_PAUSED ((XAuint32) 0x00000002) |
|
1100 #define XA_RECORDSTATE_RECORDING ((XAuint32) 0x00000003) |
|
1101 |
|
1102 XA_API extern const XAInterfaceID XA_IID_RECORD; |
|
1103 |
|
1104 struct XARecordItf_; |
|
1105 typedef const struct XARecordItf_ * const * XARecordItf; |
|
1106 |
|
1107 typedef void (XAAPIENTRY * xaRecordCallback) ( |
|
1108 XARecordItf caller, |
|
1109 void * pContext, |
|
1110 XAuint32 event |
|
1111 ); |
|
1112 |
|
1113 struct XARecordItf_ { |
|
1114 XAresult (*SetRecordState) ( |
|
1115 XARecordItf self, |
|
1116 XAuint32 state |
|
1117 ); |
|
1118 XAresult (*GetRecordState) ( |
|
1119 XARecordItf self, |
|
1120 XAuint32 * pState |
|
1121 ); |
|
1122 XAresult (*SetDurationLimit) ( |
|
1123 XARecordItf self, |
|
1124 XAmillisecond msec |
|
1125 ); |
|
1126 XAresult (*GetPosition) ( |
|
1127 XARecordItf self, |
|
1128 XAmillisecond * pMsec |
|
1129 ); |
|
1130 XAresult (*RegisterCallback) ( |
|
1131 XARecordItf self, |
|
1132 xaRecordCallback callback, |
|
1133 void * pContext |
|
1134 ); |
|
1135 XAresult (*SetCallbackEventsMask) ( |
|
1136 XARecordItf self, |
|
1137 XAuint32 eventFlags |
|
1138 ); |
|
1139 XAresult (*GetCallbackEventsMask) ( |
|
1140 XARecordItf self, |
|
1141 XAuint32 * pEventFlags |
|
1142 ); |
|
1143 XAresult (*SetMarkerPosition) ( |
|
1144 XARecordItf self, |
|
1145 XAmillisecond mSec |
|
1146 ); |
|
1147 XAresult (*ClearMarkerPosition) ( |
|
1148 XARecordItf self |
|
1149 ); |
|
1150 XAresult (*GetMarkerPosition) ( |
|
1151 XARecordItf self, |
|
1152 XAmillisecond * pMsec |
|
1153 ); |
|
1154 XAresult (*SetPositionUpdatePeriod) ( |
|
1155 XARecordItf self, |
|
1156 XAmillisecond mSec |
|
1157 ); |
|
1158 XAresult (*GetPositionUpdatePeriod) ( |
|
1159 XARecordItf self, |
|
1160 XAmillisecond * pMsec |
|
1161 ); |
|
1162 }; |
|
1163 |
|
1164 /* SNAPSHOT */ |
|
1165 |
|
1166 XA_API extern const XAInterfaceID XA_IID_SNAPSHOT; |
|
1167 |
|
1168 struct XASnapshotItf_; |
|
1169 typedef const struct XASnapshotItf_ * const * XASnapshotItf; |
|
1170 |
|
1171 typedef void (XAAPIENTRY * xaSnapshotInitiatedCallback) ( |
|
1172 XASnapshotItf caller, |
|
1173 void * context |
|
1174 ); |
|
1175 |
|
1176 typedef void (XAAPIENTRY * xaSnapshotTakenCallback) ( |
|
1177 XASnapshotItf caller, |
|
1178 void * context, |
|
1179 XAuint32 numberOfPicsTaken, |
|
1180 const XADataSink * image |
|
1181 ); |
|
1182 |
|
1183 struct XASnapshotItf_ { |
|
1184 XAresult (*InitiateSnapshot) ( |
|
1185 XASnapshotItf self, |
|
1186 XAuint32 numberOfPictures, |
|
1187 XAuint32 fps, |
|
1188 XAboolean freezeViewFinder, |
|
1189 XADataSink sink, |
|
1190 xaSnapshotInitiatedCallback initiatedCallback, |
|
1191 xaSnapshotTakenCallback takenCallback, |
|
1192 void * pContext |
|
1193 ); |
|
1194 XAresult (*TakeSnapshot) ( |
|
1195 XASnapshotItf self |
|
1196 ); |
|
1197 XAresult (*CancelSnapshot) ( |
|
1198 XASnapshotItf self |
|
1199 ); |
|
1200 XAresult (*ReleaseBuffers) ( |
|
1201 XASnapshotItf self, |
|
1202 XADataSink * image |
|
1203 ); |
|
1204 XAresult (*GetMaxPicsPerBurst) ( |
|
1205 XASnapshotItf self, |
|
1206 XAuint32 * maxNumberOfPictures |
|
1207 ); |
|
1208 XAresult (*GetBurstFPSRange) ( |
|
1209 XASnapshotItf self, |
|
1210 XAuint32 * minFPS, |
|
1211 XAuint32 * maxFPS |
|
1212 ); |
|
1213 XAresult (*SetShutterFeedback) ( |
|
1214 XASnapshotItf self, |
|
1215 XAboolean enabled |
|
1216 ); |
|
1217 XAresult (*GetShutterFeedback) ( |
|
1218 XASnapshotItf self, |
|
1219 XAboolean * enabled |
|
1220 ); |
|
1221 }; |
|
1222 |
|
1223 |
|
1224 |
|
1225 /*****************************************************************/ |
|
1226 /* METADATA RELATED INTERFACES, STRUCTS AND DEFINES */ |
|
1227 /*****************************************************************/ |
|
1228 |
|
1229 /* METADATA (EXTRACTION, INSERTION, TRAVERSAL) */ |
|
1230 |
|
1231 #define XA_NODE_PARENT ((XAuint32) 0xFFFFFFFF) |
|
1232 |
|
1233 #define XA_ROOT_NODE_ID ((XAint32) 0x7FFFFFFF) |
|
1234 |
|
1235 #define XA_NODETYPE_UNSPECIFIED ((XAuint32) 0x00000001) |
|
1236 #define XA_NODETYPE_AUDIO ((XAuint32) 0x00000002) |
|
1237 #define XA_NODETYPE_VIDEO ((XAuint32) 0x00000003) |
|
1238 #define XA_NODETYPE_IMAGE ((XAuint32) 0x00000004) |
|
1239 |
|
1240 #define XA_CHARACTERENCODING_UNKNOWN ((XAuint32) 0x00000000) |
|
1241 #define XA_CHARACTERENCODING_BINARY ((XAuint32) 0x00000001) |
|
1242 #define XA_CHARACTERENCODING_ASCII ((XAuint32) 0x00000002) |
|
1243 #define XA_CHARACTERENCODING_BIG5 ((XAuint32) 0x00000003) |
|
1244 #define XA_CHARACTERENCODING_CODEPAGE1252 ((XAuint32) 0x00000004) |
|
1245 #define XA_CHARACTERENCODING_GB2312 ((XAuint32) 0x00000005) |
|
1246 #define XA_CHARACTERENCODING_HZGB2312 ((XAuint32) 0x00000006) |
|
1247 #define XA_CHARACTERENCODING_GB12345 ((XAuint32) 0x00000007) |
|
1248 #define XA_CHARACTERENCODING_GB18030 ((XAuint32) 0x00000008) |
|
1249 #define XA_CHARACTERENCODING_GBK ((XAuint32) 0x00000009) |
|
1250 #define XA_CHARACTERENCODING_IMAPUTF7 ((XAuint32) 0x0000000A) |
|
1251 #define XA_CHARACTERENCODING_ISO2022JP ((XAuint32) 0x0000000B) |
|
1252 #define XA_CHARACTERENCODING_ISO2022JP1 ((XAuint32) 0x0000000B) |
|
1253 #define XA_CHARACTERENCODING_ISO88591 ((XAuint32) 0x0000000C) |
|
1254 #define XA_CHARACTERENCODING_ISO885910 ((XAuint32) 0x0000000D) |
|
1255 #define XA_CHARACTERENCODING_ISO885913 ((XAuint32) 0x0000000E) |
|
1256 #define XA_CHARACTERENCODING_ISO885914 ((XAuint32) 0x0000000F) |
|
1257 #define XA_CHARACTERENCODING_ISO885915 ((XAuint32) 0x00000010) |
|
1258 #define XA_CHARACTERENCODING_ISO88592 ((XAuint32) 0x00000011) |
|
1259 #define XA_CHARACTERENCODING_ISO88593 ((XAuint32) 0x00000012) |
|
1260 #define XA_CHARACTERENCODING_ISO88594 ((XAuint32) 0x00000013) |
|
1261 #define XA_CHARACTERENCODING_ISO88595 ((XAuint32) 0x00000014) |
|
1262 #define XA_CHARACTERENCODING_ISO88596 ((XAuint32) 0x00000015) |
|
1263 #define XA_CHARACTERENCODING_ISO88597 ((XAuint32) 0x00000016) |
|
1264 #define XA_CHARACTERENCODING_ISO88598 ((XAuint32) 0x00000017) |
|
1265 #define XA_CHARACTERENCODING_ISO88599 ((XAuint32) 0x00000018) |
|
1266 #define XA_CHARACTERENCODING_ISOEUCJP ((XAuint32) 0x00000019) |
|
1267 #define XA_CHARACTERENCODING_SHIFTJIS ((XAuint32) 0x0000001A) |
|
1268 #define XA_CHARACTERENCODING_SMS7BIT ((XAuint32) 0x0000001B) |
|
1269 #define XA_CHARACTERENCODING_UTF7 ((XAuint32) 0x0000001C) |
|
1270 #define XA_CHARACTERENCODING_UTF8 ((XAuint32) 0x0000001D) |
|
1271 #define XA_CHARACTERENCODING_JAVACONFORMANTUTF8 ((XAuint32) 0x0000001E) |
|
1272 #define XA_CHARACTERENCODING_UTF16BE ((XAuint32) 0x0000001F) |
|
1273 #define XA_CHARACTERENCODING_UTF16LE ((XAuint32) 0x00000020) |
|
1274 |
|
1275 #define XA_METADATA_FILTER_KEY ((XAuint8) 0x01) |
|
1276 #define XA_METADATA_FILTER_LANG ((XAuint8) 0x02) |
|
1277 #define XA_METADATA_FILTER_ENCODING ((XAuint8) 0x04) |
|
1278 |
|
1279 #define XA_METADATATRAVERSALMODE_ALL ((XAuint32) 0x00000001) |
|
1280 #define XA_METADATATRAVERSALMODE_NODE ((XAuint32) 0x00000002) |
|
1281 |
|
1282 #ifndef _KHRONOS_KEYS_ |
|
1283 #define _KHRONOS_KEYS_ |
|
1284 #define KHRONOS_TITLE "KhronosTitle" |
|
1285 #define KHRONOS_ALBUM "KhronosAlbum" |
|
1286 #define KHRONOS_TRACK_NUMBER "KhronosTrackNumber" |
|
1287 #define KHRONOS_ARTIST "KhronosArtist" |
|
1288 #define KHRONOS_GENRE "KhronosGenre" |
|
1289 #define KHRONOS_YEAR "KhronosYear" |
|
1290 #define KHRONOS_COMMENT "KhronosComment" |
|
1291 #define KHRONOS_ARTIST_URL "KhronosArtistURL" |
|
1292 #define KHRONOS_CONTENT_URL "KhronosContentURL" |
|
1293 #define KHRONOS_RATING "KhronosRating" |
|
1294 #define KHRONOS_ALBUM_ART "KhronosAlbumArt" |
|
1295 #define KHRONOS_COPYRIGHT "KhronosCopyright" |
|
1296 #endif /* _KHRONOS_KEYS_ */ |
|
1297 |
|
1298 |
|
1299 typedef struct XAMetadataInfo_ { |
|
1300 XAuint32 size; |
|
1301 XAuint32 encoding; |
|
1302 const XAchar langCountry[16]; |
|
1303 XAuint8 data[1]; |
|
1304 } XAMetadataInfo; |
|
1305 |
|
1306 XA_API extern const XAInterfaceID XA_IID_METADATAEXTRACTION; |
|
1307 |
|
1308 struct XAMetadataExtractionItf_; |
|
1309 typedef const struct XAMetadataExtractionItf_ |
|
1310 * const * XAMetadataExtractionItf; |
|
1311 |
|
1312 struct XAMetadataExtractionItf_ { |
|
1313 XAresult (*GetItemCount) ( |
|
1314 XAMetadataExtractionItf self, |
|
1315 XAuint32 * pItemCount |
|
1316 ); |
|
1317 XAresult (*GetKeySize) ( |
|
1318 XAMetadataExtractionItf self, |
|
1319 XAuint32 index, |
|
1320 XAuint32 * pKeySize |
|
1321 ); |
|
1322 XAresult (*GetKey) ( |
|
1323 XAMetadataExtractionItf self, |
|
1324 XAuint32 index, |
|
1325 XAuint32 keySize, |
|
1326 XAMetadataInfo * pKey |
|
1327 ); |
|
1328 XAresult (*GetValueSize) ( |
|
1329 XAMetadataExtractionItf self, |
|
1330 XAuint32 index, |
|
1331 XAuint32 * pValueSize |
|
1332 ); |
|
1333 XAresult (*GetValue) ( |
|
1334 XAMetadataExtractionItf self, |
|
1335 XAuint32 index, |
|
1336 XAuint32 valueSize, |
|
1337 XAMetadataInfo * pValue |
|
1338 ); |
|
1339 XAresult (*AddKeyFilter) ( |
|
1340 XAMetadataExtractionItf self, |
|
1341 XAuint32 keySize, |
|
1342 const void * pKey, |
|
1343 XAuint32 keyEncoding, |
|
1344 const XAchar * pValueLangCountry, |
|
1345 XAuint32 valueEncoding, |
|
1346 XAuint8 filterMask |
|
1347 ); |
|
1348 XAresult (*ClearKeyFilter) ( |
|
1349 XAMetadataExtractionItf self |
|
1350 ); |
|
1351 }; |
|
1352 |
|
1353 |
|
1354 XA_API extern const XAInterfaceID XA_IID_METADATAINSERTION; |
|
1355 |
|
1356 struct XAMetadataInsertionItf_; |
|
1357 typedef const struct XAMetadataInsertionItf_ |
|
1358 * const * XAMetadataInsertionItf; |
|
1359 |
|
1360 typedef void (XAAPIENTRY * xaMetadataInsertionCallback) ( |
|
1361 XAMetadataInsertionItf caller, |
|
1362 void * pContext, |
|
1363 XAMetadataInfo * pKey, |
|
1364 XAMetadataInfo * pValue, |
|
1365 XAint32 nodeID, |
|
1366 XAboolean result |
|
1367 ); |
|
1368 |
|
1369 struct XAMetadataInsertionItf_ { |
|
1370 XAresult (*CreateChildNode) ( |
|
1371 XAMetadataInsertionItf self, |
|
1372 XAint32 parentNodeID, |
|
1373 XAuint32 type, |
|
1374 XAchar * mimeType, |
|
1375 XAint32 * pChildNodeID |
|
1376 ); |
|
1377 XAresult (*GetSupportedKeysCount) ( |
|
1378 XAMetadataInsertionItf self, |
|
1379 XAint32 nodeID, |
|
1380 XAboolean * pFreeKeys, |
|
1381 XAuint32 * pKeyCount, |
|
1382 XAuint32 * pEncodingCount |
|
1383 ); |
|
1384 XAresult (*GetKeySize) ( |
|
1385 XAMetadataInsertionItf self, |
|
1386 XAint32 nodeID, |
|
1387 XAuint32 keyIndex, |
|
1388 XAuint32 * pKeySize |
|
1389 ); |
|
1390 XAresult (*GetKey) ( |
|
1391 XAMetadataInsertionItf self, |
|
1392 XAint32 nodeID, |
|
1393 XAuint32 keyIndex, |
|
1394 XAuint32 keySize, |
|
1395 XAMetadataInfo * pKey |
|
1396 ); |
|
1397 XAresult (*GetFreeKeysEncoding) ( |
|
1398 XAMetadataInsertionItf self, |
|
1399 XAint32 nodeID, |
|
1400 XAuint32 encodingIndex, |
|
1401 XAuint32 * pEncoding |
|
1402 ); |
|
1403 XAresult (*InsertMetadataItem) ( |
|
1404 XAMetadataInsertionItf self, |
|
1405 XAint32 nodeID, |
|
1406 XAMetadataInfo * pKey, |
|
1407 XAMetadataInfo * pValue, |
|
1408 XAboolean overwrite |
|
1409 ); |
|
1410 XAresult (*RegisterCallback) ( |
|
1411 XAMetadataInsertionItf self, |
|
1412 xaMetadataInsertionCallback callback, |
|
1413 void * pContext |
|
1414 ); |
|
1415 }; |
|
1416 |
|
1417 |
|
1418 XA_API extern const XAInterfaceID XA_IID_METADATATRAVERSAL; |
|
1419 |
|
1420 struct XAMetadataTraversalItf_; |
|
1421 typedef const struct XAMetadataTraversalItf_ |
|
1422 * const * XAMetadataTraversalItf; |
|
1423 |
|
1424 struct XAMetadataTraversalItf_ { |
|
1425 XAresult (*SetMode) ( |
|
1426 XAMetadataTraversalItf self, |
|
1427 XAuint32 mode |
|
1428 ); |
|
1429 XAresult (*GetChildCount) ( |
|
1430 XAMetadataTraversalItf self, |
|
1431 XAuint32 * pCount |
|
1432 ); |
|
1433 XAresult (*GetChildMIMETypeSize) ( |
|
1434 XAMetadataTraversalItf self, |
|
1435 XAuint32 index, |
|
1436 XAuint32 * pSize |
|
1437 ); |
|
1438 XAresult (*GetChildInfo) ( |
|
1439 XAMetadataTraversalItf self, |
|
1440 XAuint32 index, |
|
1441 XAint32 * pNodeID, |
|
1442 XAuint32 * pType, |
|
1443 XAuint32 size, |
|
1444 XAchar * pMimeType |
|
1445 ); |
|
1446 XAresult (*SetActiveNode) ( |
|
1447 XAMetadataTraversalItf self, |
|
1448 XAuint32 index |
|
1449 ); |
|
1450 }; |
|
1451 |
|
1452 /* DYNAMIC SOURCE */ |
|
1453 |
|
1454 XA_API extern const XAInterfaceID XA_IID_DYNAMICSOURCE; |
|
1455 |
|
1456 struct XADynamicSourceItf_; |
|
1457 typedef const struct XADynamicSourceItf_ * const * XADynamicSourceItf; |
|
1458 |
|
1459 struct XADynamicSourceItf_ { |
|
1460 XAresult (*SetSource) ( |
|
1461 XADynamicSourceItf self, |
|
1462 XADataSource * pDataSource |
|
1463 ); |
|
1464 }; |
|
1465 |
|
1466 |
|
1467 |
|
1468 /*****************************************************************/ |
|
1469 /* I/O DEVICES RELATED INTERFACES, STRUCTS AND DEFINES */ |
|
1470 /*****************************************************************/ |
|
1471 |
|
1472 /* CAMERA AND CAMERA CAPABILITIES */ |
|
1473 |
|
1474 #define XA_CAMERA_APERTUREMODE_MANUAL ((XAuint32) 0x00000001) |
|
1475 #define XA_CAMERA_APERTUREMODE_AUTO ((XAuint32) 0x00000002) |
|
1476 |
|
1477 #define XA_CAMERA_AUTOEXPOSURESTATUS_SUCCESS ((XAuint32) 0x00000001) |
|
1478 #define XA_CAMERA_AUTOEXPOSURESTATUS_UNDEREXPOSURE ((XAuint32) 0x00000002) |
|
1479 #define XA_CAMERA_AUTOEXPOSURESTATUS_OVEREXPOSURE ((XAuint32) 0x00000003) |
|
1480 |
|
1481 #define XA_CAMERACBEVENT_ROTATION ((XAuint32) 0x00000001) |
|
1482 #define XA_CAMERACBEVENT_FLASHREADY ((XAuint32) 0x00000002) |
|
1483 #define XA_CAMERACBEVENT_FOCUSSTATUS ((XAuint32) 0x00000003) |
|
1484 #define XA_CAMERACBEVENT_EXPOSURESTATUS ((XAuint32) 0x00000004) |
|
1485 #define XA_CAMERACBEVENT_WHITEBALANCELOCKED ((XAuint32) 0x00000005) |
|
1486 #define XA_CAMERACBEVENT_ZOOMSTATUS ((XAuint32) 0x00000006) |
|
1487 |
|
1488 #define XA_CAMERACAP_FLASH ((XAuint32) 0x00000001) |
|
1489 #define XA_CAMERACAP_AUTOFOCUS ((XAuint32) 0x00000002) |
|
1490 #define XA_CAMERACAP_CONTINUOUSAUTOFOCUS ((XAuint32) 0x00000004) |
|
1491 #define XA_CAMERACAP_MANUALFOCUS ((XAuint32) 0x00000008) |
|
1492 #define XA_CAMERACAP_AUTOEXPOSURE ((XAuint32) 0x00000010) |
|
1493 #define XA_CAMERACAP_MANUALEXPOSURE ((XAuint32) 0x00000020) |
|
1494 #define XA_CAMERACAP_AUTOISOSENSITIVITY ((XAuint32) 0x00000040) |
|
1495 #define XA_CAMERACAP_MANUALISOSENSITIVITY ((XAuint32) 0x00000080) |
|
1496 #define XA_CAMERACAP_AUTOAPERTURE ((XAuint32) 0x00000100) |
|
1497 #define XA_CAMERACAP_MANUALAPERTURE ((XAuint32) 0x00000200) |
|
1498 #define XA_CAMERACAP_AUTOSHUTTERSPEED ((XAuint32) 0x00000400) |
|
1499 #define XA_CAMERACAP_MANUALSHUTTERSPEED ((XAuint32) 0x00000800) |
|
1500 #define XA_CAMERACAP_AUTOWHITEBALANCE ((XAuint32) 0x00001000) |
|
1501 #define XA_CAMERACAP_MANUALWHITEBALANCE ((XAuint32) 0x00002000) |
|
1502 #define XA_CAMERACAP_OPTICALZOOM ((XAuint32) 0x00004000) |
|
1503 #define XA_CAMERACAP_DIGITALZOOM ((XAuint32) 0x00008000) |
|
1504 #define XA_CAMERACAP_METERING ((XAuint32) 0x00010000) |
|
1505 #define XA_CAMERACAP_BRIGHTNESS ((XAuint32) 0x00020000) |
|
1506 #define XA_CAMERACAP_CONTRAST ((XAuint32) 0x00040000) |
|
1507 #define XA_CAMERACAP_GAMMA ((XAuint32) 0x00080000) |
|
1508 |
|
1509 |
|
1510 #define XA_CAMERA_EXPOSUREMODE_MANUAL ((XAuint32) 0x00000001) |
|
1511 #define XA_CAMERA_EXPOSUREMODE_AUTO ((XAuint32) 0x00000002) |
|
1512 #define XA_CAMERA_EXPOSUREMODE_NIGHT ((XAuint32) 0x00000004) |
|
1513 #define XA_CAMERA_EXPOSUREMODE_BACKLIGHT ((XAuint32) 0x00000008) |
|
1514 #define XA_CAMERA_EXPOSUREMODE_SPOTLIGHT ((XAuint32) 0x00000010) |
|
1515 #define XA_CAMERA_EXPOSUREMODE_SPORTS ((XAuint32) 0x00000020) |
|
1516 #define XA_CAMERA_EXPOSUREMODE_SNOW ((XAuint32) 0x00000040) |
|
1517 #define XA_CAMERA_EXPOSUREMODE_BEACH ((XAuint32) 0x00000080) |
|
1518 #define XA_CAMERA_EXPOSUREMODE_LARGEAPERTURE ((XAuint32) 0x00000100) |
|
1519 #define XA_CAMERA_EXPOSUREMODE_SMALLAPERTURE ((XAuint32) 0x00000200) |
|
1520 #define XA_CAMERA_EXPOSUREMODE_PORTRAIT ((XAuint32) 0x0000400) |
|
1521 #define XA_CAMERA_EXPOSUREMODE_NIGHTPORTRAIT ((XAuint32) 0x00000800) |
|
1522 |
|
1523 #define XA_CAMERA_FLASHMODE_OFF ((XAuint32) 0x00000001) |
|
1524 #define XA_CAMERA_FLASHMODE_ON ((XAuint32) 0x00000002) |
|
1525 #define XA_CAMERA_FLASHMODE_AUTO ((XAuint32) 0x00000004) |
|
1526 #define XA_CAMERA_FLASHMODE_REDEYEREDUCTION ((XAuint32) 0x00000008) |
|
1527 #define XA_CAMERA_FLASHMODE_REDEYEREDUCTION_AUTO ((XAuint32) 0x00000010) |
|
1528 #define XA_CAMERA_FLASHMODE_FILLIN ((XAuint32) 0x00000020) |
|
1529 #define XA_CAMERA_FLASHMODE_TORCH ((XAuint32) 0x00000040) |
|
1530 |
|
1531 #define XA_CAMERA_FOCUSMODE_MANUAL ((XAuint32) 0x00000001) |
|
1532 #define XA_CAMERA_FOCUSMODE_AUTO ((XAuint32) 0x00000002) |
|
1533 #define XA_CAMERA_FOCUSMODE_CENTROID ((XAuint32) 0x00000004) |
|
1534 #define XA_CAMERA_FOCUSMODE_CONTINUOUS_AUTO ((XAuint32) 0x00000008) |
|
1535 #define XA_CAMERA_FOCUSMODE_CONTINUOUS_CENTROID ((XAuint32) 0x00000010) |
|
1536 |
|
1537 #define XA_CAMERA_FOCUSMODESTATUS_OFF ((XAuint32) 0x00000001) |
|
1538 #define XA_CAMERA_FOCUSMODESTATUS_REQUEST ((XAuint32) 0x00000002) |
|
1539 #define XA_CAMERA_FOCUSMODESTATUS_REACHED ((XAuint32) 0x00000003) |
|
1540 #define XA_CAMERA_FOCUSMODESTATUS_UNABLETOREACH ((XAuint32) 0x00000004) |
|
1541 #define XA_CAMERA_FOCUSMODESTATUS_LOST ((XAuint32) 0x00000005) |
|
1542 |
|
1543 #define XA_CAMERA_ISOSENSITIVITYMODE_MANUAL ((XAuint32) 0x00000001) |
|
1544 #define XA_CAMERA_ISOSENSITIVITYMODE_AUTO ((XAuint32) 0x00000002) |
|
1545 |
|
1546 #define XA_CAMERA_LOCK_AUTOFOCUS ((XAuint32) 0x00000001) |
|
1547 #define XA_CAMERA_LOCK_AUTOEXPOSURE ((XAuint32) 0x00000002) |
|
1548 #define XA_CAMERA_LOCK_AUTOWHITEBALANCE ((XAuint32) 0x00000004) |
|
1549 |
|
1550 #define XA_CAMERA_METERINGMODE_AVERAGE ((XAuint32) 0x00000001) |
|
1551 #define XA_CAMERA_METERINGMODE_SPOT ((XAuint32) 0x00000002) |
|
1552 #define XA_CAMERA_METERINGMODE_MATRIX ((XAuint32) 0x00000004) |
|
1553 |
|
1554 #define XA_CAMERA_SHUTTERSPEEDMODE_MANUAL ((XAuint32) 0x00000001) |
|
1555 #define XA_CAMERA_SHUTTERSPEEDMODE_AUTO ((XAuint32) 0x00000002) |
|
1556 |
|
1557 #define XA_CAMERA_WHITEBALANCEMODE_MANUAL ((XAuint32) 0x00000001) |
|
1558 #define XA_CAMERA_WHITEBALANCEMODE_AUTO ((XAuint32) 0x00000002) |
|
1559 #define XA_CAMERA_WHITEBALANCEMODE_SUNLIGHT ((XAuint32) 0x00000004) |
|
1560 #define XA_CAMERA_WHITEBALANCEMODE_CLOUDY ((XAuint32) 0x00000008) |
|
1561 #define XA_CAMERA_WHITEBALANCEMODE_SHADE ((XAuint32) 0x00000010) |
|
1562 #define XA_CAMERA_WHITEBALANCEMODE_TUNGSTEN ((XAuint32) 0x00000020) |
|
1563 #define XA_CAMERA_WHITEBALANCEMODE_FLUORESCENT ((XAuint32) 0x00000040) |
|
1564 #define XA_CAMERA_WHITEBALANCEMODE_INCANDESCENT ((XAuint32) 0x00000080) |
|
1565 #define XA_CAMERA_WHITEBALANCEMODE_FLASH ((XAuint32) 0x00000100) |
|
1566 #define XA_CAMERA_WHITEBALANCEMODE_SUNSET ((XAuint32) 0x00000200) |
|
1567 |
|
1568 #define XA_CAMERA_ZOOM_SLOW ((XAuint32) 50) |
|
1569 #define XA_CAMERA_ZOOM_NORMAL ((XAuint32) 100) |
|
1570 #define XA_CAMERA_ZOOM_FAST ((XAuint32) 200) |
|
1571 #define XA_CAMERA_ZOOM_FASTEST ((XAuint32) 0xFFFFFFFF) |
|
1572 |
|
1573 #define XA_FOCUSPOINTS_ONE ((XAuint32) 0x00000001) |
|
1574 #define XA_FOCUSPOINTS_THREE_3X1 ((XAuint32) 0x00000002) |
|
1575 #define XA_FOCUSPOINTS_FIVE_CROSS ((XAuint32) 0x00000003) |
|
1576 #define XA_FOCUSPOINTS_SEVEN_CROSS ((XAuint32) 0x00000004) |
|
1577 #define XA_FOCUSPOINTS_NINE_SQUARE ((XAuint32) 0x00000005) |
|
1578 #define XA_FOCUSPOINTS_ELEVEN_CROSS ((XAuint32) 0x00000006) |
|
1579 #define XA_FOCUSPOINTS_TWELVE_3X4 ((XAuint32) 0x00000007) |
|
1580 #define XA_FOCUSPOINTS_TWELVE_4X3 ((XAuint32) 0x00000008) |
|
1581 #define XA_FOCUSPOINTS_SIXTEEN_SQUARE ((XAuint32) 0x00000009) |
|
1582 #define XA_FOCUSPOINTS_CUSTOM ((XAuint32) 0x0000000A) |
|
1583 |
|
1584 typedef struct XAFocusPointPosition_ { |
|
1585 XAuint32 left; |
|
1586 XAuint32 top; |
|
1587 XAuint32 width; |
|
1588 XAuint32 height; |
|
1589 } XAFocusPointPosition; |
|
1590 |
|
1591 #define XA_ORIENTATION_UNKNOWN ((XAuint32) 0x00000001) |
|
1592 #define XA_ORIENTATION_OUTWARDS ((XAuint32) 0x00000002) |
|
1593 #define XA_ORIENTATION_INWARDS ((XAuint32) 0x00000003) |
|
1594 |
|
1595 typedef struct XACameraDescriptor_ { |
|
1596 XAchar * name; |
|
1597 XAuint32 maxWidth; |
|
1598 XAuint32 maxHeight; |
|
1599 XAuint32 orientation; |
|
1600 XAuint32 featuresSupported; |
|
1601 XAuint32 exposureModesSupported; |
|
1602 XAuint32 flashModesSupported; |
|
1603 XAuint32 focusModesSupported; |
|
1604 XAuint32 meteringModesSupported; |
|
1605 XAuint32 whiteBalanceModesSupported; |
|
1606 } XACameraDescriptor; |
|
1607 |
|
1608 XA_API extern const XAInterfaceID XA_IID_CAMERACAPABILITIES; |
|
1609 |
|
1610 struct XACameraCapabilitiesItf_; |
|
1611 typedef const struct XACameraCapabilitiesItf_ |
|
1612 * const * XACameraCapabilitiesItf; |
|
1613 |
|
1614 struct XACameraCapabilitiesItf_ { |
|
1615 XAresult (*GetCameraCapabilities) ( |
|
1616 XACameraCapabilitiesItf self, |
|
1617 XAuint32 *pIndex, |
|
1618 XAuint32 * pCameraDeviceID, |
|
1619 XACameraDescriptor * pDescriptor |
|
1620 ); |
|
1621 XAresult (*QueryFocusRegionPatterns) ( |
|
1622 XACameraCapabilitiesItf self, |
|
1623 XAuint32 cameraDeviceID, |
|
1624 XAuint32 * pPatternID, |
|
1625 XAuint32 * pFocusPattern, |
|
1626 XAuint32 * pCustomPoints1, |
|
1627 XAuint32 * pCustomPoints2 |
|
1628 ); |
|
1629 XAresult (*GetSupportedAutoLocks) ( |
|
1630 XACameraCapabilitiesItf self, |
|
1631 XAuint32 cameraDeviceID, |
|
1632 XAuint32 * pNumCombinations, |
|
1633 XAuint32 ** ppLocks |
|
1634 ); |
|
1635 XAresult (*GetSupportedFocusManualSettings) ( |
|
1636 XACameraCapabilitiesItf self, |
|
1637 XAuint32 cameraDeviceID, |
|
1638 XAboolean macroEnabled, |
|
1639 XAmillimeter * pMinValue, |
|
1640 XAmillimeter * pMaxValue, |
|
1641 XAuint32 * pNumSettings, |
|
1642 XAmillimeter ** ppSettings |
|
1643 ); |
|
1644 XAresult (*GetSupportedISOSensitivitySettings) ( |
|
1645 XACameraCapabilitiesItf self, |
|
1646 XAuint32 cameraDeviceID, |
|
1647 XAuint32 * pMinValue, |
|
1648 XAuint32 * pMaxValue, |
|
1649 XAuint32 * pNumSettings, |
|
1650 XAuint32 ** ppSettings |
|
1651 ); |
|
1652 XAresult (*GetSupportedApertureManualSettings) ( |
|
1653 XACameraCapabilitiesItf self, |
|
1654 XAuint32 cameraDeviceID, |
|
1655 XAuint32 * pMinValue, |
|
1656 XAuint32 * pMaxValue, |
|
1657 XAuint32 * pNumSettings, |
|
1658 XAuint32 ** ppSettings |
|
1659 ); |
|
1660 XAresult (*GetSupportedShutterSpeedManualSettings) ( |
|
1661 XACameraCapabilitiesItf self, |
|
1662 XAuint32 cameraDeviceID, |
|
1663 XAmicrosecond * pMinValue, |
|
1664 XAmicrosecond * pMaxValue, |
|
1665 XAuint32 * pNumSettings, |
|
1666 XAmicrosecond ** ppSettings |
|
1667 ); |
|
1668 XAresult (*GetSupportedWhiteBalanceManualSettings) ( |
|
1669 XACameraCapabilitiesItf self, |
|
1670 XAuint32 cameraDeviceID, |
|
1671 XAuint32 * pMinValue, |
|
1672 XAuint32 * pMaxValue, |
|
1673 XAuint32 * pNumSettings, |
|
1674 XAuint32 ** ppSettings |
|
1675 ); |
|
1676 XAresult (*GetSupportedZoomSettings) ( |
|
1677 XACameraCapabilitiesItf self, |
|
1678 XAuint32 cameraDeviceID, |
|
1679 XAboolean digitalEnabled, |
|
1680 XAboolean macroEnabled, |
|
1681 XApermille * pMaxValue, |
|
1682 XAuint32 * pNumSettings, |
|
1683 XApermille ** ppSettings, |
|
1684 XAboolean * pSpeedSupported |
|
1685 |
|
1686 ); |
|
1687 }; |
|
1688 |
|
1689 XA_API extern const XAInterfaceID XA_IID_CAMERA; |
|
1690 |
|
1691 struct XACameraItf_; |
|
1692 typedef const struct XACameraItf_ * const * XACameraItf; |
|
1693 |
|
1694 typedef void (XAAPIENTRY * xaCameraCallback) ( |
|
1695 XACameraItf caller, |
|
1696 void * pContext, |
|
1697 XAuint32 eventId, |
|
1698 XAuint32 eventData |
|
1699 ); |
|
1700 |
|
1701 struct XACameraItf_ { |
|
1702 XAresult (*RegisterCallback) ( |
|
1703 XACameraItf self, |
|
1704 xaCameraCallback callback, |
|
1705 void * pContext |
|
1706 ); |
|
1707 XAresult (*SetFlashMode) ( |
|
1708 XACameraItf self, |
|
1709 XAuint32 flashMode |
|
1710 ); |
|
1711 XAresult (*GetFlashMode) ( |
|
1712 XACameraItf self, |
|
1713 XAuint32 * pFlashMode |
|
1714 ); |
|
1715 XAresult (*IsFlashReady) ( |
|
1716 XACameraItf self, |
|
1717 XAboolean * pReady |
|
1718 ); |
|
1719 XAresult (*SetFocusMode) ( |
|
1720 XACameraItf self, |
|
1721 XAuint32 focusMode, |
|
1722 XAmillimeter manualSetting, |
|
1723 XAboolean macroEnabled |
|
1724 ); |
|
1725 XAresult (*GetFocusMode) ( |
|
1726 XACameraItf self, |
|
1727 XAuint32 * pFocusMode, |
|
1728 XAmillimeter * pManualSetting, |
|
1729 XAboolean * pMacroEnabled |
|
1730 ); |
|
1731 XAresult (*SetFocusRegionPattern) ( |
|
1732 XACameraItf self, |
|
1733 XAuint32 focusPattern, |
|
1734 XAuint32 activePoints1, |
|
1735 XAuint32 activePoints2 |
|
1736 ); |
|
1737 XAresult (*GetFocusRegionPattern) ( |
|
1738 XACameraItf self, |
|
1739 XAuint32 * pFocusPattern, |
|
1740 XAuint32 * pActivePoints1, |
|
1741 XAuint32 * pActivePoints2 |
|
1742 ); |
|
1743 XAresult (*GetFocusRegionPositions) ( |
|
1744 XACameraItf self, |
|
1745 XAuint32 * pNumPositionEntries, |
|
1746 XAFocusPointPosition * pFocusPosition |
|
1747 ); |
|
1748 XAresult (*GetFocusModeStatus) ( |
|
1749 XACameraItf self, |
|
1750 XAuint32 * pFocusStatus, |
|
1751 XAuint32 * pRegionStatus1, |
|
1752 XAuint32 * pRegionStatus2 |
|
1753 ); |
|
1754 XAresult (*SetMeteringMode) ( |
|
1755 XACameraItf self, |
|
1756 XAuint32 meteringMode |
|
1757 ); |
|
1758 XAresult (*GetMeteringMode) ( |
|
1759 XACameraItf self, |
|
1760 XAuint32 * pMeteringMode |
|
1761 ); |
|
1762 XAresult (*SetExposureMode) ( |
|
1763 XACameraItf self, |
|
1764 XAuint32 exposure, |
|
1765 XAuint32 compensation |
|
1766 ); |
|
1767 XAresult (*GetExposureMode) ( |
|
1768 XACameraItf self, |
|
1769 XAuint32 * pExposure, |
|
1770 XAuint32 * pCompensation |
|
1771 ); |
|
1772 XAresult (*SetISOSensitivity) ( |
|
1773 XACameraItf self, |
|
1774 XAuint32 isoSensitivity, |
|
1775 XAuint32 manualSetting |
|
1776 ); |
|
1777 XAresult (*GetISOSensitivity) ( |
|
1778 XACameraItf self, |
|
1779 XAuint32 * pIsoSensitivity, |
|
1780 XAuint32 * pManualSetting |
|
1781 ); |
|
1782 XAresult (*SetAperture) ( |
|
1783 XACameraItf self, |
|
1784 XAuint32 aperture, |
|
1785 XAuint32 manualSetting |
|
1786 ); |
|
1787 XAresult (*GetAperture) ( |
|
1788 XACameraItf self, |
|
1789 XAuint32 * pAperture, |
|
1790 XAuint32 * pManualSetting |
|
1791 ); |
|
1792 XAresult (*SetShutterSpeed) ( |
|
1793 XACameraItf self, |
|
1794 XAuint32 shutterSpeed, |
|
1795 XAmicrosecond manualSetting |
|
1796 ); |
|
1797 XAresult (*GetShutterSpeed) ( |
|
1798 XACameraItf self, |
|
1799 XAuint32 * pShutterSpeed, |
|
1800 XAmicrosecond * pManualSetting |
|
1801 ); |
|
1802 XAresult (*SetWhiteBalance) ( |
|
1803 XACameraItf self, |
|
1804 XAuint32 whiteBalance, |
|
1805 XAuint32 manualSetting |
|
1806 ); |
|
1807 XAresult (*GetWhiteBalance) ( |
|
1808 XACameraItf self, |
|
1809 XAuint32 * pWhiteBalance, |
|
1810 XAuint32 * pManualSetting |
|
1811 ); |
|
1812 XAresult (*SetAutoLocks) ( |
|
1813 XACameraItf self, |
|
1814 XAuint32 locks |
|
1815 ); |
|
1816 XAresult (*GetAutoLocks) ( |
|
1817 XACameraItf self, |
|
1818 XAuint32 * locks |
|
1819 ); |
|
1820 XAresult (*SetZoom) ( |
|
1821 XACameraItf self, |
|
1822 XApermille zoom, |
|
1823 XAboolean digitalEnabled, |
|
1824 XAuint32 speed, |
|
1825 XAboolean async |
|
1826 ); |
|
1827 XAresult (*GetZoom) ( |
|
1828 XACameraItf self, |
|
1829 XApermille * pZoom, |
|
1830 XAboolean * pDigital |
|
1831 ); |
|
1832 }; |
|
1833 |
|
1834 /* AUDIO I/O DEVICE CAPABILITIES */ |
|
1835 |
|
1836 #define XA_DEVCONNECTION_INTEGRATED ((XAint16) 0x0001) |
|
1837 #define XA_DEVCONNECTION_ATTACHED_WIRED ((XAint16) 0x0100) |
|
1838 #define XA_DEVCONNECTION_ATTACHED_WIRELESS ((XAint16) 0x0200) |
|
1839 #define XA_DEVCONNECTION_NETWORK ((XAint16) 0x0400) |
|
1840 |
|
1841 #define XA_DEVLOCATION_HANDSET ((XAint16) 0x0001) |
|
1842 #define XA_DEVLOCATION_HEADSET ((XAint16) 0x0002) |
|
1843 #define XA_DEVLOCATION_CARKIT ((XAint16) 0x0003) |
|
1844 #define XA_DEVLOCATION_DOCK ((XAint16) 0x0004) |
|
1845 #define XA_DEVLOCATION_REMOTE ((XAint16) 0x0005) |
|
1846 |
|
1847 #define XA_DEVSCOPE_UNKNOWN ((XAint16) 0x0001) |
|
1848 #define XA_DEVSCOPE_ENVIRONMENT ((XAint16) 0x0002) |
|
1849 #define XA_DEVSCOPE_USER ((XAint16) 0x0003) |
|
1850 |
|
1851 typedef struct XAAudioInputDescriptor_ { |
|
1852 XAchar * deviceName; |
|
1853 XAint16 deviceConnection; |
|
1854 XAint16 deviceScope; |
|
1855 XAint16 deviceLocation; |
|
1856 XAboolean isForTelephony; |
|
1857 XAmilliHertz minSampleRate; |
|
1858 XAmilliHertz maxSampleRate; |
|
1859 XAboolean isFreqRangeContinuous; |
|
1860 XAmilliHertz * samplingRatesSupported; |
|
1861 XAint16 numOfSamplingRatesSupported; |
|
1862 XAint16 maxChannels; |
|
1863 } XAAudioInputDescriptor; |
|
1864 |
|
1865 typedef struct XAAudioOutputDescriptor_ { |
|
1866 XAchar *pDeviceName; |
|
1867 XAint16 deviceConnection; |
|
1868 XAint16 deviceScope; |
|
1869 XAint16 deviceLocation; |
|
1870 XAboolean isForTelephony; |
|
1871 XAmilliHertz minSampleRate; |
|
1872 XAmilliHertz maxSampleRate; |
|
1873 XAboolean isFreqRangeContinuous; |
|
1874 XAmilliHertz *samplingRatesSupported; |
|
1875 XAint16 numOfSamplingRatesSupported; |
|
1876 XAint16 maxChannels; |
|
1877 } XAAudioOutputDescriptor; |
|
1878 |
|
1879 XA_API extern const XAInterfaceID XA_IID_AUDIOIODEVICECAPABILITIES; |
|
1880 |
|
1881 struct XAAudioIODeviceCapabilitiesItf_; |
|
1882 typedef const struct XAAudioIODeviceCapabilitiesItf_ |
|
1883 * const * XAAudioIODeviceCapabilitiesItf; |
|
1884 |
|
1885 typedef void (XAAPIENTRY * xaAvailableAudioInputsChangedCallback) ( |
|
1886 XAAudioIODeviceCapabilitiesItf caller, |
|
1887 void * pContext, |
|
1888 XAuint32 deviceID, |
|
1889 XAint32 numInputs, |
|
1890 XAboolean isNew |
|
1891 ); |
|
1892 |
|
1893 typedef void (XAAPIENTRY * xaAvailableAudioOutputsChangedCallback) ( |
|
1894 XAAudioIODeviceCapabilitiesItf caller, |
|
1895 void * pContext, |
|
1896 XAuint32 deviceID, |
|
1897 XAint32 numOutputs, |
|
1898 XAboolean isNew |
|
1899 ); |
|
1900 |
|
1901 typedef void (XAAPIENTRY * xaDefaultDeviceIDMapChangedCallback) ( |
|
1902 XAAudioIODeviceCapabilitiesItf caller, |
|
1903 void * pContext, |
|
1904 XAboolean isOutput, |
|
1905 XAint32 numDevices |
|
1906 ); |
|
1907 |
|
1908 struct XAAudioIODeviceCapabilitiesItf_ { |
|
1909 XAresult (*GetAvailableAudioInputs) ( |
|
1910 XAAudioIODeviceCapabilitiesItf self, |
|
1911 XAint32 * pNumInputs, |
|
1912 XAuint32 * pInputDeviceIDs |
|
1913 ); |
|
1914 XAresult (*QueryAudioInputCapabilities) ( |
|
1915 XAAudioIODeviceCapabilitiesItf self, |
|
1916 XAuint32 deviceID, |
|
1917 XAAudioInputDescriptor * pDescriptor |
|
1918 ); |
|
1919 XAresult (*RegisterAvailableAudioInputsChangedCallback) ( |
|
1920 XAAudioIODeviceCapabilitiesItf self, |
|
1921 xaAvailableAudioInputsChangedCallback callback, |
|
1922 void * pContext |
|
1923 ); |
|
1924 XAresult (*GetAvailableAudioOutputs) ( |
|
1925 XAAudioIODeviceCapabilitiesItf self, |
|
1926 XAint32 * pNumOutputs, |
|
1927 XAuint32 * pOutputDeviceIDs |
|
1928 ); |
|
1929 XAresult (*QueryAudioOutputCapabilities) ( |
|
1930 XAAudioIODeviceCapabilitiesItf self, |
|
1931 XAuint32 deviceID, |
|
1932 XAAudioOutputDescriptor * pDescriptor |
|
1933 ); |
|
1934 XAresult (*RegisterAvailableAudioOutputsChangedCallback) ( |
|
1935 XAAudioIODeviceCapabilitiesItf self, |
|
1936 xaAvailableAudioOutputsChangedCallback callback, |
|
1937 void * pContext |
|
1938 ); |
|
1939 XAresult (*RegisterDefaultDeviceIDMapChangedCallback) ( |
|
1940 XAAudioIODeviceCapabilitiesItf self, |
|
1941 xaDefaultDeviceIDMapChangedCallback callback, |
|
1942 void * pContext |
|
1943 ); |
|
1944 XAresult (*GetAssociatedAudioInputs) ( |
|
1945 XAAudioIODeviceCapabilitiesItf self, |
|
1946 XAuint32 deviceID, |
|
1947 XAint32 * pNumAudioInputs, |
|
1948 XAuint32 * pAudioInputDeviceIDs |
|
1949 ); |
|
1950 XAresult (*GetAssociatedAudioOutputs) ( |
|
1951 XAAudioIODeviceCapabilitiesItf self, |
|
1952 XAuint32 deviceID, |
|
1953 XAint32 * pNumAudioOutputs, |
|
1954 XAuint32 * pAudioOutputDeviceIDs |
|
1955 ); |
|
1956 XAresult (*GetDefaultAudioDevices) ( |
|
1957 XAAudioIODeviceCapabilitiesItf self, |
|
1958 XAuint32 defaultDeviceID, |
|
1959 XAint32 *pNumAudioDevices, |
|
1960 XAuint32 *pAudioDeviceIDs |
|
1961 ); |
|
1962 XAresult (*QuerySampleFormatsSupported) ( |
|
1963 XAAudioIODeviceCapabilitiesItf self, |
|
1964 XAuint32 deviceID, |
|
1965 XAmilliHertz samplingRate, |
|
1966 XAint32 *pSampleFormats, |
|
1967 XAint32 *pNumOfSampleFormats |
|
1968 ); |
|
1969 }; |
|
1970 |
|
1971 /* DEVICE VOLUME */ |
|
1972 |
|
1973 XA_API extern const XAInterfaceID XA_IID_DEVICEVOLUME; |
|
1974 |
|
1975 struct XADeviceVolumeItf_; |
|
1976 typedef const struct XADeviceVolumeItf_ * const * XADeviceVolumeItf; |
|
1977 |
|
1978 struct XADeviceVolumeItf_ { |
|
1979 XAresult (*GetVolumeScale) ( |
|
1980 XADeviceVolumeItf self, |
|
1981 XAuint32 deviceID, |
|
1982 XAint32 * pMinValue, |
|
1983 XAint32 * pMaxValue, |
|
1984 XAboolean * pIsMillibelScale |
|
1985 ); |
|
1986 XAresult (*SetVolume) ( |
|
1987 XADeviceVolumeItf self, |
|
1988 XAuint32 deviceID, |
|
1989 XAint32 volume |
|
1990 ); |
|
1991 XAresult (*GetVolume) ( |
|
1992 XADeviceVolumeItf self, |
|
1993 XAuint32 deviceID, |
|
1994 XAint32 * pVolume |
|
1995 ); |
|
1996 }; |
|
1997 |
|
1998 /* EQUALIZER */ |
|
1999 |
|
2000 #define XA_EQUALIZER_UNDEFINED ((XAuint16) 0xFFFF) |
|
2001 |
|
2002 XA_API extern const XAInterfaceID XA_IID_EQUALIZER; |
|
2003 |
|
2004 struct XAEqualizerItf_; |
|
2005 typedef const struct XAEqualizerItf_ * const * XAEqualizerItf; |
|
2006 |
|
2007 struct XAEqualizerItf_ { |
|
2008 XAresult (*SetEnabled) ( |
|
2009 XAEqualizerItf self, |
|
2010 XAboolean enabled |
|
2011 ); |
|
2012 XAresult (*IsEnabled) ( |
|
2013 XAEqualizerItf self, |
|
2014 XAboolean * pEnabled |
|
2015 ); |
|
2016 XAresult (*GetNumberOfBands) ( |
|
2017 XAEqualizerItf self, |
|
2018 XAuint16 * pNumBands |
|
2019 ); |
|
2020 XAresult (*GetBandLevelRange) ( |
|
2021 XAEqualizerItf self, |
|
2022 XAmillibel * pMin, |
|
2023 XAmillibel * pMax |
|
2024 ); |
|
2025 XAresult (*SetBandLevel) ( |
|
2026 XAEqualizerItf self, |
|
2027 XAuint16 band, |
|
2028 XAmillibel level |
|
2029 ); |
|
2030 XAresult (*GetBandLevel) ( |
|
2031 XAEqualizerItf self, |
|
2032 XAuint16 band, |
|
2033 XAmillibel * pLevel |
|
2034 ); |
|
2035 XAresult (*GetCenterFreq) ( |
|
2036 XAEqualizerItf self, |
|
2037 XAuint16 band, |
|
2038 XAmilliHertz * pCenter |
|
2039 ); |
|
2040 XAresult (*GetBandFreqRange) ( |
|
2041 XAEqualizerItf self, |
|
2042 XAuint16 band, |
|
2043 XAmilliHertz * pMin, |
|
2044 XAmilliHertz * pMax |
|
2045 ); |
|
2046 XAresult (*GetBand) ( |
|
2047 XAEqualizerItf self, |
|
2048 XAmilliHertz frequency, |
|
2049 XAuint16 * pBand |
|
2050 ); |
|
2051 XAresult (*GetCurrentPreset) ( |
|
2052 XAEqualizerItf self, |
|
2053 XAuint16 * pPreset |
|
2054 ); |
|
2055 XAresult (*UsePreset) ( |
|
2056 XAEqualizerItf self, |
|
2057 XAuint16 index |
|
2058 ); |
|
2059 XAresult (*GetNumberOfPresets) ( |
|
2060 XAEqualizerItf self, |
|
2061 XAuint16 * pNumPresets |
|
2062 ); |
|
2063 XAresult (*GetPresetName) ( |
|
2064 XAEqualizerItf self, |
|
2065 XAuint16 index, |
|
2066 const XAchar ** ppName |
|
2067 ); |
|
2068 }; |
|
2069 |
|
2070 /* OUTPUT MIX */ |
|
2071 |
|
2072 XA_API extern const XAInterfaceID XA_IID_OUTPUTMIX; |
|
2073 |
|
2074 struct XAOutputMixItf_; |
|
2075 typedef const struct XAOutputMixItf_ * const * XAOutputMixItf; |
|
2076 |
|
2077 typedef void (XAAPIENTRY * xaMixDeviceChangeCallback) ( |
|
2078 XAOutputMixItf caller, |
|
2079 void * pContext |
|
2080 ); |
|
2081 |
|
2082 struct XAOutputMixItf_ { |
|
2083 XAresult (*GetDestinationOutputDeviceIDs) ( |
|
2084 XAOutputMixItf self, |
|
2085 XAint32 * pNumDevices, |
|
2086 XAuint32 * pDeviceIDs |
|
2087 ); |
|
2088 XAresult (*RegisterDeviceChangeCallback) ( |
|
2089 XAOutputMixItf self, |
|
2090 xaMixDeviceChangeCallback callback, |
|
2091 void * pContext |
|
2092 ); |
|
2093 XAresult (*ReRoute) ( |
|
2094 XAOutputMixItf self, |
|
2095 XAint32 numOutputDevices, |
|
2096 XAuint32 * pOutputDeviceIDs |
|
2097 ); |
|
2098 }; |
|
2099 |
|
2100 /* RADIO */ |
|
2101 |
|
2102 #define XA_FREQRANGE_FMEUROAMERICA ((XAuint8) 0x01) |
|
2103 #define XA_FREQRANGE_FMJAPAN ((XAuint8) 0x02) |
|
2104 #define XA_FREQRANGE_AMLW ((XAuint8) 0x03) |
|
2105 #define XA_FREQRANGE_AMMW ((XAuint8) 0x04) |
|
2106 #define XA_FREQRANGE_AMSW ((XAuint8) 0x05) |
|
2107 |
|
2108 #define XA_RADIO_EVENT_ANTENNA_STATUS_CHANGED ((XAuint32) 0x00000001) |
|
2109 #define XA_RADIO_EVENT_FREQUENCY_CHANGED ((XAuint32) 0x00000002) |
|
2110 #define XA_RADIO_EVENT_FREQUENCY_RANGE_CHANGED ((XAuint32) 0x00000003) |
|
2111 #define XA_RADIO_EVENT_PRESET_CHANGED ((XAuint32) 0x00000004) |
|
2112 #define XA_RADIO_EVENT_SEEK_COMPLETED ((XAuint32) 0x00000005) |
|
2113 |
|
2114 #define XA_STEREOMODE_MONO ((XAuint32) 0x00000000) |
|
2115 #define XA_STEREOMODE_STEREO ((XAuint32) 0x00000001) |
|
2116 #define XA_STEREOMODE_AUTO ((XAuint32) 0x00000002) |
|
2117 |
|
2118 XA_API extern const XAInterfaceID XA_IID_RADIO; |
|
2119 |
|
2120 struct XARadioItf_; |
|
2121 typedef const struct XARadioItf_ * const * XARadioItf; |
|
2122 |
|
2123 typedef void (XAAPIENTRY * xaRadioCallback) ( |
|
2124 XARadioItf caller, |
|
2125 void * pContext, |
|
2126 XAuint32 event, |
|
2127 XAuint32 eventIntData, |
|
2128 XAboolean eventBooleanData |
|
2129 ); |
|
2130 |
|
2131 struct XARadioItf_ { |
|
2132 XAresult (*SetFreqRange) ( |
|
2133 XARadioItf self, |
|
2134 XAuint8 range |
|
2135 ); |
|
2136 XAresult (*GetFreqRange) ( |
|
2137 XARadioItf self, |
|
2138 XAuint8 * pRange |
|
2139 ); |
|
2140 XAresult (*IsFreqRangeSupported) ( |
|
2141 XARadioItf self, |
|
2142 XAuint8 range, |
|
2143 XAboolean * pSupported |
|
2144 ); |
|
2145 XAresult (*GetFreqRangeProperties) ( |
|
2146 XARadioItf self, |
|
2147 XAuint8 range, |
|
2148 XAuint32 * pMinFreq, |
|
2149 XAuint32 * pMaxFreq, |
|
2150 XAuint32 * pFreqInterval |
|
2151 ); |
|
2152 XAresult (*SetFrequency) ( |
|
2153 XARadioItf self, |
|
2154 XAuint32 freq |
|
2155 ); |
|
2156 XAresult (*CancelSetFrequency) ( |
|
2157 XARadioItf self |
|
2158 ); |
|
2159 XAresult (*GetFrequency) ( |
|
2160 XARadioItf self, |
|
2161 XAuint32 * pFreq |
|
2162 ); |
|
2163 XAresult (*SetSquelch) ( |
|
2164 XARadioItf self, |
|
2165 XAboolean squelch |
|
2166 ); |
|
2167 XAresult (*GetSquelch) ( |
|
2168 XARadioItf self, |
|
2169 XAboolean * pSquelch |
|
2170 ); |
|
2171 XAresult (*SetStereoMode) ( |
|
2172 XARadioItf self, |
|
2173 XAuint32 mode |
|
2174 ); |
|
2175 XAresult (*GetStereoMode) ( |
|
2176 XARadioItf self, |
|
2177 XAuint32 * pMode |
|
2178 ); |
|
2179 XAresult (*GetSignalStrength) ( |
|
2180 XARadioItf self, |
|
2181 XAuint32 * pStrength |
|
2182 ); |
|
2183 XAresult (*Seek) ( |
|
2184 XARadioItf self, |
|
2185 XAboolean upwards |
|
2186 ); |
|
2187 XAresult (*StopSeeking) ( |
|
2188 XARadioItf self |
|
2189 ); |
|
2190 XAresult (*GetNumberOfPresets) ( |
|
2191 XARadioItf self, |
|
2192 XAuint32 * pNumPresets |
|
2193 ); |
|
2194 XAresult (*SetPreset) ( |
|
2195 XARadioItf self, |
|
2196 XAuint32 preset, |
|
2197 XAuint32 freq, |
|
2198 XAuint8 range, |
|
2199 XAuint32 mode, |
|
2200 const XAchar * pName |
|
2201 ); |
|
2202 XAresult (*GetPreset) ( |
|
2203 XARadioItf self, |
|
2204 XAuint32 preset, |
|
2205 XAuint32 * pFreq, |
|
2206 XAuint8 * pRange, |
|
2207 XAuint32 * pMode, |
|
2208 XAchar * pName, |
|
2209 XAuint16 * pNameLength |
|
2210 ); |
|
2211 XAresult (*RegisterRadioCallback) ( |
|
2212 XARadioItf self, |
|
2213 xaRadioCallback callback, |
|
2214 void * pContext |
|
2215 ); |
|
2216 }; |
|
2217 |
|
2218 /* RDS */ |
|
2219 |
|
2220 #define XA_RDS_EVENT_NEW_PI ((XAuint16) 0x0001) |
|
2221 #define XA_RDS_EVENT_NEW_PTY ((XAuint16) 0x0002) |
|
2222 #define XA_RDS_EVENT_NEW_PS ((XAuint16) 0x0004) |
|
2223 #define XA_RDS_EVENT_NEW_RT ((XAuint16) 0x0008) |
|
2224 #define XA_RDS_EVENT_NEW_RT_PLUS ((XAuint16) 0x0010) |
|
2225 #define XA_RDS_EVENT_NEW_CT ((XAuint16) 0x0020) |
|
2226 #define XA_RDS_EVENT_NEW_TA ((XAuint16) 0x0040) |
|
2227 #define XA_RDS_EVENT_NEW_TP ((XAuint16) 0x0080) |
|
2228 #define XA_RDS_EVENT_NEW_ALARM ((XAuint16) 0x0100) |
|
2229 |
|
2230 #define XA_RDSPROGRAMMETYPE_RDSPTY_NONE \ |
|
2231 ((XAuint32) 0x00000000) |
|
2232 #define XA_RDSPROGRAMMETYPE_RDSPTY_NEWS \ |
|
2233 ((XAuint32) 0x00000001) |
|
2234 #define XA_RDSPROGRAMMETYPE_RDSPTY_CURRENTAFFAIRS \ |
|
2235 ((XAuint32) 0x00000002) |
|
2236 #define XA_RDSPROGRAMMETYPE_RDSPTY_INFORMATION \ |
|
2237 ((XAuint32) 0x00000003) |
|
2238 #define XA_RDSPROGRAMMETYPE_RDSPTY_SPORT \ |
|
2239 ((XAuint32) 0x00000004) |
|
2240 #define XA_RDSPROGRAMMETYPE_RDSPTY_EDUCATION \ |
|
2241 ((XAuint32) 0x00000005) |
|
2242 #define XA_RDSPROGRAMMETYPE_RDSPTY_DRAMA \ |
|
2243 ((XAuint32) 0x00000006) |
|
2244 #define XA_RDSPROGRAMMETYPE_RDSPTY_CULTURE \ |
|
2245 ((XAuint32) 0x00000007) |
|
2246 #define XA_RDSPROGRAMMETYPE_RDSPTY_SCIENCE \ |
|
2247 ((XAuint32) 0x00000008) |
|
2248 #define XA_RDSPROGRAMMETYPE_RDSPTY_VARIEDSPEECH \ |
|
2249 ((XAuint32) 0x00000009) |
|
2250 #define XA_RDSPROGRAMMETYPE_RDSPTY_POPMUSIC \ |
|
2251 ((XAuint32) 0x0000000A) |
|
2252 #define XA_RDSPROGRAMMETYPE_RDSPTY_ROCKMUSIC \ |
|
2253 ((XAuint32) 0x0000000B) |
|
2254 #define XA_RDSPROGRAMMETYPE_RDSPTY_EASYLISTENING \ |
|
2255 ((XAuint32) 0x0000000C) |
|
2256 #define XA_RDSPROGRAMMETYPE_RDSPTY_LIGHTCLASSICAL \ |
|
2257 ((XAuint32) 0x0000000D) |
|
2258 #define XA_RDSPROGRAMMETYPE_RDSPTY_SERIOUSCLASSICAL \ |
|
2259 ((XAuint32) 0x0000000E) |
|
2260 #define XA_RDSPROGRAMMETYPE_RDSPTY_OTHERMUSIC \ |
|
2261 ((XAuint32) 0x0000000F) |
|
2262 #define XA_RDSPROGRAMMETYPE_RDSPTY_WEATHER \ |
|
2263 ((XAuint32) 0x00000010) |
|
2264 #define XA_RDSPROGRAMMETYPE_RDSPTY_FINANCE \ |
|
2265 ((XAuint32) 0x00000011) |
|
2266 #define XA_RDSPROGRAMMETYPE_RDSPTY_CHILDRENSPROGRAMMES \ |
|
2267 ((XAuint32) 0x00000012) |
|
2268 #define XA_RDSPROGRAMMETYPE_RDSPTY_SOCIALAFFAIRS \ |
|
2269 ((XAuint32) 0x00000013) |
|
2270 #define XA_RDSPROGRAMMETYPE_RDSPTY_RELIGION \ |
|
2271 ((XAuint32) 0x00000014) |
|
2272 #define XA_RDSPROGRAMMETYPE_RDSPTY_PHONEIN \ |
|
2273 ((XAuint32) 0x00000015) |
|
2274 #define XA_RDSPROGRAMMETYPE_RDSPTY_TRAVEL \ |
|
2275 ((XAuint32) 0x00000016) |
|
2276 #define XA_RDSPROGRAMMETYPE_RDSPTY_LEISURE \ |
|
2277 ((XAuint32) 0x00000017) |
|
2278 #define XA_RDSPROGRAMMETYPE_RDSPTY_JAZZMUSIC \ |
|
2279 ((XAuint32) 0x00000018) |
|
2280 #define XA_RDSPROGRAMMETYPE_RDSPTY_COUNTRYMUSIC \ |
|
2281 ((XAuint32) 0x00000019) |
|
2282 #define XA_RDSPROGRAMMETYPE_RDSPTY_NATIONALMUSIC \ |
|
2283 ((XAuint32) 0x0000001A) |
|
2284 #define XA_RDSPROGRAMMETYPE_RDSPTY_OLDIESMUSIC \ |
|
2285 ((XAuint32) 0x0000001B) |
|
2286 #define XA_RDSPROGRAMMETYPE_RDSPTY_FOLKMUSIC \ |
|
2287 ((XAuint32) 0x0000001C) |
|
2288 #define XA_RDSPROGRAMMETYPE_RDSPTY_DOCUMENTARY \ |
|
2289 ((XAuint32) 0x0000001D) |
|
2290 #define XA_RDSPROGRAMMETYPE_RDSPTY_ALARMTEST \ |
|
2291 ((XAuint32) 0x0000001E) |
|
2292 #define XA_RDSPROGRAMMETYPE_RDSPTY_ALARM \ |
|
2293 ((XAuint32) 0x0000001F) |
|
2294 |
|
2295 #define XA_RDSPROGRAMMETYPE_RBDSPTY_NONE \ |
|
2296 ((XAuint32) 0x00000000) |
|
2297 #define XA_RDSPROGRAMMETYPE_RBDSPTY_NEWS \ |
|
2298 ((XAuint32) 0x00000001) |
|
2299 #define XA_RDSPROGRAMMETYPE_RBDSPTY_INFORMATION \ |
|
2300 ((XAuint32) 0x00000002) |
|
2301 #define XA_RDSPROGRAMMETYPE_RBDSPTY_SPORTS \ |
|
2302 ((XAuint32) 0x00000003) |
|
2303 #define XA_RDSPROGRAMMETYPE_RBDSPTY_TALK \ |
|
2304 ((XAuint32) 0x00000004) |
|
2305 #define XA_RDSPROGRAMMETYPE_RBDSPTY_ROCK \ |
|
2306 ((XAuint32) 0x00000005) |
|
2307 #define XA_RDSPROGRAMMETYPE_RBDSPTY_CLASSICROCK \ |
|
2308 ((XAuint32) 0x00000006) |
|
2309 #define XA_RDSPROGRAMMETYPE_RBDSPTY_ADULTHITS \ |
|
2310 ((XAuint32) 0x00000007) |
|
2311 #define XA_RDSPROGRAMMETYPE_RBDSPTY_SOFTROCK \ |
|
2312 ((XAuint32) 0x00000008) |
|
2313 #define XA_RDSPROGRAMMETYPE_RBDSPTY_TOP40 \ |
|
2314 ((XAuint32) 0x00000009) |
|
2315 #define XA_RDSPROGRAMMETYPE_RBDSPTY_COUNTRY \ |
|
2316 ((XAuint32) 0x0000000A) |
|
2317 #define XA_RDSPROGRAMMETYPE_RBDSPTY_OLDIES \ |
|
2318 ((XAuint32) 0x0000000B) |
|
2319 #define XA_RDSPROGRAMMETYPE_RBDSPTY_SOFT \ |
|
2320 ((XAuint32) 0x0000000C) |
|
2321 #define XA_RDSPROGRAMMETYPE_RBDSPTY_NOSTALGIA \ |
|
2322 ((XAuint32) 0x0000000D) |
|
2323 #define XA_RDSPROGRAMMETYPE_RBDSPTY_JAZZ \ |
|
2324 ((XAuint32) 0x0000000E) |
|
2325 #define XA_RDSPROGRAMMETYPE_RBDSPTY_CLASSICAL \ |
|
2326 ((XAuint32) 0x0000000F) |
|
2327 #define XA_RDSPROGRAMMETYPE_RBDSPTY_RHYTHMANDBLUES \ |
|
2328 ((XAuint32) 0x00000010) |
|
2329 #define XA_RDSPROGRAMMETYPE_RBDSPTY_SOFTRHYTHMANDBLUES \ |
|
2330 ((XAuint32) 0x00000011) |
|
2331 #define XA_RDSPROGRAMMETYPE_RBDSPTY_LANGUAGE \ |
|
2332 ((XAuint32) 0x00000012) |
|
2333 #define XA_RDSPROGRAMMETYPE_RBDSPTY_RELIGIOUSMUSIC \ |
|
2334 ((XAuint32) 0x00000013) |
|
2335 #define XA_RDSPROGRAMMETYPE_RBDSPTY_RELIGIOUSTALK \ |
|
2336 ((XAuint32) 0x00000014) |
|
2337 #define XA_RDSPROGRAMMETYPE_RBDSPTY_PERSONALITY \ |
|
2338 ((XAuint32) 0x00000015) |
|
2339 #define XA_RDSPROGRAMMETYPE_RBDSPTY_PUBLIC \ |
|
2340 ((XAuint32) 0x00000016) |
|
2341 #define XA_RDSPROGRAMMETYPE_RBDSPTY_COLLEGE \ |
|
2342 ((XAuint32) 0x00000017) |
|
2343 #define XA_RDSPROGRAMMETYPE_RBDSPTY_UNASSIGNED1 \ |
|
2344 ((XAuint32) 0x00000018) |
|
2345 #define XA_RDSPROGRAMMETYPE_RBDSPTY_UNASSIGNED2 \ |
|
2346 ((XAuint32) 0x00000019) |
|
2347 #define XA_RDSPROGRAMMETYPE_RBDSPTY_UNASSIGNED3 \ |
|
2348 ((XAuint32) 0x0000001A) |
|
2349 #define XA_RDSPROGRAMMETYPE_RBDSPTY_UNASSIGNED4 \ |
|
2350 ((XAuint32) 0x0000001B) |
|
2351 #define XA_RDSPROGRAMMETYPE_RBDSPTY_UNASSIGNED5 \ |
|
2352 ((XAuint32) 0x0000001C) |
|
2353 #define XA_RDSPROGRAMMETYPE_RBDSPTY_WEATHER \ |
|
2354 ((XAuint32) 0x0000001D) |
|
2355 #define XA_RDSPROGRAMMETYPE_RBDSPTY_EMERGENCYTEST \ |
|
2356 ((XAuint32) 0x0000001E) |
|
2357 #define XA_RDSPROGRAMMETYPE_RBDSPTY_EMERGENCY \ |
|
2358 ((XAuint32) 0x0000001F) |
|
2359 |
|
2360 #define XA_RDSRTPLUS_ITEMTITLE ((XAuint8) 0x01) |
|
2361 #define XA_RDSRTPLUS_ITEMALBUM ((XAuint8) 0x02) |
|
2362 #define XA_RDSRTPLUS_ITEMTRACKNUMBER ((XAuint8) 0x03) |
|
2363 #define XA_RDSRTPLUS_ITEMARTIST ((XAuint8) 0x04) |
|
2364 #define XA_RDSRTPLUS_ITEMCOMPOSITION ((XAuint8) 0x05) |
|
2365 #define XA_RDSRTPLUS_ITEMMOVEMENT ((XAuint8) 0x06) |
|
2366 #define XA_RDSRTPLUS_ITEMCONDUCTOR ((XAuint8) 0x07) |
|
2367 #define XA_RDSRTPLUS_ITEMCOMPOSER ((XAuint8) 0x08) |
|
2368 #define XA_RDSRTPLUS_ITEMBAND ((XAuint8) 0x09) |
|
2369 #define XA_RDSRTPLUS_ITEMCOMMENT ((XAuint8) 0x0A) |
|
2370 #define XA_RDSRTPLUS_ITEMGENRE ((XAuint8) 0x0B) |
|
2371 #define XA_RDSRTPLUS_INFONEWS ((XAuint8) 0x0C) |
|
2372 #define XA_RDSRTPLUS_INFONEWSLOCAL ((XAuint8) 0x0D) |
|
2373 #define XA_RDSRTPLUS_INFOSTOCKMARKET ((XAuint8) 0x0E) |
|
2374 #define XA_RDSRTPLUS_INFOSPORT ((XAuint8) 0x0F) |
|
2375 #define XA_RDSRTPLUS_INFOLOTTERY ((XAuint8) 0x10) |
|
2376 #define XA_RDSRTPLUS_INFOHOROSCOPE ((XAuint8) 0x11) |
|
2377 #define XA_RDSRTPLUS_INFODAILYDIVERSION ((XAuint8) 0x12) |
|
2378 #define XA_RDSRTPLUS_INFOHEALTH ((XAuint8) 0x13) |
|
2379 #define XA_RDSRTPLUS_INFOEVENT ((XAuint8) 0x14) |
|
2380 #define XA_RDSRTPLUS_INFOSZENE ((XAuint8) 0x15) |
|
2381 #define XA_RDSRTPLUS_INFOCINEMA ((XAuint8) 0x16) |
|
2382 #define XA_RDSRTPLUS_INFOTV ((XAuint8) 0x17) |
|
2383 #define XA_RDSRTPLUS_INFODATETIME ((XAuint8) 0x18) |
|
2384 #define XA_RDSRTPLUS_INFOWEATHER ((XAuint8) 0x19) |
|
2385 #define XA_RDSRTPLUS_INFOTRAFFIC ((XAuint8) 0x1A) |
|
2386 #define XA_RDSRTPLUS_INFOALARM ((XAuint8) 0x1B) |
|
2387 #define XA_RDSRTPLUS_INFOADVISERTISEMENT ((XAuint8) 0x1C) |
|
2388 #define XA_RDSRTPLUS_INFOURL ((XAuint8) 0x1D) |
|
2389 #define XA_RDSRTPLUS_INFOOTHER ((XAuint8) 0x1E) |
|
2390 #define XA_RDSRTPLUS_STATIONNAMESHORT ((XAuint8) 0x1F) |
|
2391 #define XA_RDSRTPLUS_STATIONNAMELONG ((XAuint8) 0x20) |
|
2392 #define XA_RDSRTPLUS_PROGRAMNOW ((XAuint8) 0x21) |
|
2393 #define XA_RDSRTPLUS_PROGRAMNEXT ((XAuint8) 0x22) |
|
2394 #define XA_RDSRTPLUS_PROGRAMPART ((XAuint8) 0x23) |
|
2395 #define XA_RDSRTPLUS_PROGRAMHOST ((XAuint8) 0x24) |
|
2396 #define XA_RDSRTPLUS_PROFRAMEDITORIALSTAFF ((XAuint8) 0x25) |
|
2397 #define XA_RDSRTPLUS_PROGRAMFREQUENCY ((XAuint8) 0x26) |
|
2398 #define XA_RDSRTPLUS_PROGRAMHOMEPAGE ((XAuint8) 0x27) |
|
2399 #define XA_RDSRTPLUS_PROGRAMSUBCHANNEL ((XAuint8) 0x28) |
|
2400 #define XA_RDSRTPLUS_PHONEHOTLINE ((XAuint8) 0x29) |
|
2401 #define XA_RDSRTPLUS_PHONESTUDIO ((XAuint8) 0x2A) |
|
2402 #define XA_RDSRTPLUS_PHONEOTHER ((XAuint8) 0x2B) |
|
2403 #define XA_RDSRTPLUS_SMSSTUDIO ((XAuint8) 0x2C) |
|
2404 #define XA_RDSRTPLUS_SMSOTHER ((XAuint8) 0x2D) |
|
2405 #define XA_RDSRTPLUS_EMAILHOTLINE ((XAuint8) 0x2E) |
|
2406 #define XA_RDSRTPLUS_EMAILSTUDIO ((XAuint8) 0x2F) |
|
2407 #define XA_RDSRTPLUS_EMAILOTHER ((XAuint8) 0x30) |
|
2408 #define XA_RDSRTPLUS_MMSOTHER ((XAuint8) 0x31) |
|
2409 #define XA_RDSRTPLUS_CHAT ((XAuint8) 0x32) |
|
2410 #define XA_RDSRTPLUS_CHATCENTER ((XAuint8) 0x33) |
|
2411 #define XA_RDSRTPLUS_VOTEQUESTION ((XAuint8) 0x34) |
|
2412 #define XA_RDSRTPLUS_VOTECENTER ((XAuint8) 0x35) |
|
2413 #define XA_RDSRTPLUS_OPENCLASS45 ((XAuint8) 0x36) |
|
2414 #define XA_RDSRTPLUS_OPENCLASS55 ((XAuint8) 0x37) |
|
2415 #define XA_RDSRTPLUS_OPENCLASS56 ((XAuint8) 0x38) |
|
2416 #define XA_RDSRTPLUS_OPENCLASS57 ((XAuint8) 0x39) |
|
2417 #define XA_RDSRTPLUS_OPENCLASS58 ((XAuint8) 0x3A) |
|
2418 #define XA_RDSRTPLUS_PLACE ((XAuint8) 0x3B) |
|
2419 #define XA_RDSRTPLUS_APPOINTMENT ((XAuint8) 0x3C) |
|
2420 #define XA_RDSRTPLUS_IDENTIFIER ((XAuint8) 0x3D) |
|
2421 #define XA_RDSRTPLUS_PURCHASE ((XAuint8) 0x3E) |
|
2422 #define XA_RDSRTPLUS_GETDATA ((XAuint8) 0x3F) |
|
2423 |
|
2424 XA_API extern const XAInterfaceID XA_IID_RDS; |
|
2425 |
|
2426 struct XARDSItf_; |
|
2427 typedef const struct XARDSItf_ * const * XARDSItf; |
|
2428 |
|
2429 typedef void (XAAPIENTRY * xaGetODAGroupCallback) ( |
|
2430 XARadioItf caller, |
|
2431 void * pContext, |
|
2432 XAboolean success, |
|
2433 XAint16 group, |
|
2434 XAuint16 message |
|
2435 ); |
|
2436 |
|
2437 typedef void (XAAPIENTRY * xaNewODADataCallback) ( |
|
2438 XARDSItf caller, |
|
2439 void * pContext, |
|
2440 XAint16 group, |
|
2441 XAuint64 data |
|
2442 ); |
|
2443 |
|
2444 typedef void (XAAPIENTRY * xaRDSCallback) ( |
|
2445 XARDSItf caller, |
|
2446 void * pContext, |
|
2447 XAuint16 event, |
|
2448 XAuint8 eventData |
|
2449 ); |
|
2450 |
|
2451 struct XARDSItf_ { |
|
2452 XAresult (*QueryRDSSignal) ( |
|
2453 XARDSItf self, |
|
2454 XAboolean * isSignal |
|
2455 ); |
|
2456 XAresult (*GetProgrammeServiceName) ( |
|
2457 XARDSItf self, |
|
2458 XAchar * ps |
|
2459 ); |
|
2460 XAresult (*GetRadioText) ( |
|
2461 XARDSItf self, |
|
2462 XAchar * rt |
|
2463 ); |
|
2464 XAresult (*GetRadioTextPlus) ( |
|
2465 XARDSItf self, |
|
2466 XAuint8 contentType, |
|
2467 XAchar * informationElement, |
|
2468 XAchar * descriptor, |
|
2469 XAuint8 * descriptorContentType |
|
2470 ); |
|
2471 XAresult (*GetProgrammeType) ( |
|
2472 XARDSItf self, |
|
2473 XAuint32 * pty |
|
2474 ); |
|
2475 XAresult (*GetProgrammeTypeString) ( |
|
2476 XARDSItf self, |
|
2477 XAboolean isLengthMax16, |
|
2478 XAchar * pty |
|
2479 ); |
|
2480 XAresult (*GetProgrammeIdentificationCode) ( |
|
2481 XARDSItf self, |
|
2482 XAint16 * pi |
|
2483 ); |
|
2484 XAresult (*GetClockTime) ( |
|
2485 XARDSItf self, |
|
2486 XAtime * dateAndTime |
|
2487 ); |
|
2488 XAresult (*GetTrafficAnnouncement) ( |
|
2489 XARDSItf self, |
|
2490 XAboolean * ta |
|
2491 ); |
|
2492 XAresult (*GetTrafficProgramme) ( |
|
2493 XARDSItf self, |
|
2494 XAboolean * tp |
|
2495 ); |
|
2496 XAresult (*SeekByProgrammeType) ( |
|
2497 XARDSItf self, |
|
2498 XAuint32 pty, |
|
2499 XAboolean upwards |
|
2500 ); |
|
2501 XAresult (*SeekTrafficAnnouncement) ( |
|
2502 XARDSItf self, |
|
2503 XAboolean upwards |
|
2504 ); |
|
2505 XAresult (*SeekTrafficProgramme) ( |
|
2506 XARDSItf self, |
|
2507 XAboolean upwards |
|
2508 ); |
|
2509 XAresult (*SetAutomaticSwitching) ( |
|
2510 XARDSItf self, |
|
2511 XAboolean automatic |
|
2512 ); |
|
2513 XAresult (*GetAutomaticSwitching) ( |
|
2514 XARDSItf self, |
|
2515 XAboolean * automatic |
|
2516 ); |
|
2517 XAresult (*SetAutomaticTrafficAnnouncement) ( |
|
2518 XARDSItf self, |
|
2519 XAboolean automatic |
|
2520 ); |
|
2521 XAresult (*GetAutomaticTrafficAnnouncement) ( |
|
2522 XARDSItf self, |
|
2523 XAboolean * automatic |
|
2524 ); |
|
2525 XAresult (*GetODAGroup) ( |
|
2526 XARDSItf self, |
|
2527 XAuint16 AID, |
|
2528 xaGetODAGroupCallback callback, |
|
2529 void * pContext |
|
2530 ); |
|
2531 XAresult (*SubscribeODAGroup) ( |
|
2532 XARDSItf self, |
|
2533 XAint16 group, |
|
2534 XAboolean useErrorCorrection |
|
2535 ); |
|
2536 XAresult (*UnsubscribeODAGroup) ( |
|
2537 XARDSItf self, |
|
2538 XAint16 group |
|
2539 ); |
|
2540 XAresult (*ListODAGroupSubscriptions) ( |
|
2541 XARDSItf self, |
|
2542 XAint16* pGroups, |
|
2543 XAuint32* pLength |
|
2544 ); |
|
2545 XAresult (*RegisterRDSCallback) ( |
|
2546 XARDSItf self, |
|
2547 xaRDSCallback callback, |
|
2548 void * pContext |
|
2549 ); |
|
2550 XAresult (*RegisterODADataCallback) ( |
|
2551 XARDSItf self, |
|
2552 xaNewODADataCallback callback, |
|
2553 void * pContext |
|
2554 ); |
|
2555 }; |
|
2556 |
|
2557 /* VIBRA */ |
|
2558 |
|
2559 XA_API extern const XAInterfaceID XA_IID_VIBRA; |
|
2560 |
|
2561 struct XAVibraItf_; |
|
2562 typedef const struct XAVibraItf_ * const * XAVibraItf; |
|
2563 |
|
2564 struct XAVibraItf_ { |
|
2565 XAresult (*Vibrate) ( |
|
2566 XAVibraItf self, |
|
2567 XAboolean vibrate |
|
2568 ); |
|
2569 XAresult (*IsVibrating) ( |
|
2570 XAVibraItf self, |
|
2571 XAboolean * pVibrating |
|
2572 ); |
|
2573 XAresult (*SetFrequency) ( |
|
2574 XAVibraItf self, |
|
2575 XAmilliHertz frequency |
|
2576 ); |
|
2577 XAresult (*GetFrequency) ( |
|
2578 XAVibraItf self, |
|
2579 XAmilliHertz * pFrequency |
|
2580 ); |
|
2581 XAresult (*SetIntensity) ( |
|
2582 XAVibraItf self, |
|
2583 XApermille intensity |
|
2584 ); |
|
2585 XAresult (*GetIntensity) ( |
|
2586 XAVibraItf self, |
|
2587 XApermille * pIntensity |
|
2588 ); |
|
2589 }; |
|
2590 |
|
2591 /* LED ARRAY */ |
|
2592 |
|
2593 typedef struct XAHSL_ { |
|
2594 XAmillidegree hue; |
|
2595 XApermille saturation; |
|
2596 XApermille lightness; |
|
2597 } XAHSL; |
|
2598 |
|
2599 XA_API extern const XAInterfaceID XA_IID_LED; |
|
2600 |
|
2601 struct XALEDArrayItf_; |
|
2602 typedef const struct XALEDArrayItf_ * const * XALEDArrayItf; |
|
2603 |
|
2604 struct XALEDArrayItf_ { |
|
2605 XAresult (*ActivateLEDArray) ( |
|
2606 XALEDArrayItf self, |
|
2607 XAuint32 lightMask |
|
2608 ); |
|
2609 XAresult (*IsLEDArrayActivated) ( |
|
2610 XALEDArrayItf self, |
|
2611 XAuint32 * pLightMask |
|
2612 ); |
|
2613 XAresult (*SetColor) ( |
|
2614 XALEDArrayItf self, |
|
2615 XAuint8 index, |
|
2616 const XAHSL * pColor |
|
2617 ); |
|
2618 XAresult (*GetColor) ( |
|
2619 XALEDArrayItf self, |
|
2620 XAuint8 index, |
|
2621 XAHSL * pColor |
|
2622 ); |
|
2623 }; |
|
2624 |
|
2625 |
|
2626 |
|
2627 /*****************************************************************/ |
|
2628 /* CODEC RELATED INTERFACES, STRUCTS AND DEFINES */ |
|
2629 /*****************************************************************/ |
|
2630 |
|
2631 /* AUDIO ENCODER AND AUDIO ENCODER/DECODER CAPABILITIES */ |
|
2632 |
|
2633 #define XA_RATECONTROLMODE_CONSTANTBITRATE ((XAuint32) 0x00000001) |
|
2634 #define XA_RATECONTROLMODE_VARIABLEBITRATE ((XAuint32) 0x00000002) |
|
2635 |
|
2636 #define XA_AUDIOCODEC_PCM ((XAuint32) 0x00000001) |
|
2637 #define XA_AUDIOCODEC_MP3 ((XAuint32) 0x00000002) |
|
2638 #define XA_AUDIOCODEC_AMR ((XAuint32) 0x00000003) |
|
2639 #define XA_AUDIOCODEC_AMRWB ((XAuint32) 0x00000004) |
|
2640 #define XA_AUDIOCODEC_AMRWBPLUS ((XAuint32) 0x00000005) |
|
2641 #define XA_AUDIOCODEC_AAC ((XAuint32) 0x00000006) |
|
2642 #define XA_AUDIOCODEC_WMA ((XAuint32) 0x00000007) |
|
2643 #define XA_AUDIOCODEC_REAL ((XAuint32) 0x00000008) |
|
2644 #define XA_AUDIOCODEC_VORBIS ((XAuint32) 0x00000009) |
|
2645 |
|
2646 #define XA_AUDIOPROFILE_PCM ((XAuint32) 0x00000001) |
|
2647 |
|
2648 #define XA_AUDIOPROFILE_MPEG1_L3 ((XAuint32) 0x00000001) |
|
2649 #define XA_AUDIOPROFILE_MPEG2_L3 ((XAuint32) 0x00000002) |
|
2650 #define XA_AUDIOPROFILE_MPEG25_L3 ((XAuint32) 0x00000003) |
|
2651 |
|
2652 #define XA_AUDIOCHANMODE_MP3_MONO ((XAuint32) 0x00000001) |
|
2653 #define XA_AUDIOCHANMODE_MP3_STEREO ((XAuint32) 0x00000002) |
|
2654 #define XA_AUDIOCHANMODE_MP3_JOINTSTEREO ((XAuint32) 0x00000003) |
|
2655 #define XA_AUDIOCHANMODE_MP3_DUAL ((XAuint32) 0x00000004) |
|
2656 |
|
2657 #define XA_AUDIOPROFILE_AMR ((XAuint32) 0x00000001) |
|
2658 |
|
2659 #define XA_AUDIOSTREAMFORMAT_CONFORMANCE ((XAuint32) 0x00000001) |
|
2660 #define XA_AUDIOSTREAMFORMAT_IF1 ((XAuint32) 0x00000002) |
|
2661 #define XA_AUDIOSTREAMFORMAT_IF2 ((XAuint32) 0x00000003) |
|
2662 #define XA_AUDIOSTREAMFORMAT_FSF ((XAuint32) 0x00000004) |
|
2663 #define XA_AUDIOSTREAMFORMAT_RTPPAYLOAD ((XAuint32) 0x00000005) |
|
2664 #define XA_AUDIOSTREAMFORMAT_ITU ((XAuint32) 0x00000006) |
|
2665 |
|
2666 #define XA_AUDIOPROFILE_AMRWB ((XAuint32) 0x00000001) |
|
2667 |
|
2668 #define XA_AUDIOPROFILE_AMRWBPLUS ((XAuint32) 0x00000001) |
|
2669 |
|
2670 #define XA_AUDIOPROFILE_AAC_AAC ((XAuint32) 0x00000001) |
|
2671 |
|
2672 #define XA_AUDIOMODE_AAC_MAIN ((XAuint32) 0x00000001) |
|
2673 #define XA_AUDIOMODE_AAC_LC ((XAuint32) 0x00000002) |
|
2674 #define XA_AUDIOMODE_AAC_SSR ((XAuint32) 0x00000003) |
|
2675 #define XA_AUDIOMODE_AAC_LTP ((XAuint32) 0x00000004) |
|
2676 #define XA_AUDIOMODE_AAC_HE ((XAuint32) 0x00000005) |
|
2677 #define XA_AUDIOMODE_AAC_SCALABLE ((XAuint32) 0x00000006) |
|
2678 #define XA_AUDIOMODE_AAC_ERLC ((XAuint32) 0x00000007) |
|
2679 #define XA_AUDIOMODE_AAC_LD ((XAuint32) 0x00000008) |
|
2680 #define XA_AUDIOMODE_AAC_HE_PS ((XAuint32) 0x00000009) |
|
2681 #define XA_AUDIOMODE_AAC_HE_MPS ((XAuint32) 0x0000000A) |
|
2682 |
|
2683 #define XA_AUDIOSTREAMFORMAT_MP2ADTS ((XAuint32) 0x00000001) |
|
2684 #define XA_AUDIOSTREAMFORMAT_MP4ADTS ((XAuint32) 0x00000002) |
|
2685 #define XA_AUDIOSTREAMFORMAT_MP4LOAS ((XAuint32) 0x00000003) |
|
2686 #define XA_AUDIOSTREAMFORMAT_MP4LATM ((XAuint32) 0x00000004) |
|
2687 #define XA_AUDIOSTREAMFORMAT_ADIF ((XAuint32) 0x00000005) |
|
2688 #define XA_AUDIOSTREAMFORMAT_MP4FF ((XAuint32) 0x00000006) |
|
2689 #define XA_AUDIOSTREAMFORMAT_RAW ((XAuint32) 0x00000007) |
|
2690 |
|
2691 #define XA_AUDIOPROFILE_WMA7 ((XAuint32) 0x00000001) |
|
2692 #define XA_AUDIOPROFILE_WMA8 ((XAuint32) 0x00000002) |
|
2693 #define XA_AUDIOPROFILE_WMA9 ((XAuint32) 0x00000003) |
|
2694 #define XA_AUDIOPROFILE_WMA10 ((XAuint32) 0x00000004) |
|
2695 |
|
2696 #define XA_AUDIOMODE_WMA_LEVEL1 ((XAuint32) 0x00000001) |
|
2697 #define XA_AUDIOMODE_WMA_LEVEL2 ((XAuint32) 0x00000002) |
|
2698 #define XA_AUDIOMODE_WMA_LEVEL3 ((XAuint32) 0x00000003) |
|
2699 #define XA_AUDIOMODE_WMA_LEVEL4 ((XAuint32) 0x00000004) |
|
2700 #define XA_AUDIOMODE_WMAPRO_LEVELM0 ((XAuint32) 0x00000005) |
|
2701 #define XA_AUDIOMODE_WMAPRO_LEVELM1 ((XAuint32) 0x00000006) |
|
2702 #define XA_AUDIOMODE_WMAPRO_LEVELM2 ((XAuint32) 0x00000007) |
|
2703 #define XA_AUDIOMODE_WMAPRO_LEVELM3 ((XAuint32) 0x00000008) |
|
2704 |
|
2705 #define XA_AUDIOPROFILE_REALAUDIO ((XAuint32) 0x00000001) |
|
2706 |
|
2707 #define XA_AUDIOMODE_REALAUDIO_G2 ((XAuint32) 0x00000001) |
|
2708 #define XA_AUDIOMODE_REALAUDIO_8 ((XAuint32) 0x00000002) |
|
2709 #define XA_AUDIOMODE_REALAUDIO_10 ((XAuint32) 0x00000003) |
|
2710 #define XA_AUDIOMODE_REALAUDIO_SURROUND ((XAuint32) 0x00000004) |
|
2711 |
|
2712 #define XA_AUDIOPROFILE_VORBIS ((XAuint32) 0x00000001) |
|
2713 |
|
2714 #define XA_AUDIOMODE_VORBIS ((XAuint32) 0x00000001) |
|
2715 |
|
2716 |
|
2717 typedef struct XAAudioCodecDescriptor_ { |
|
2718 XAuint32 maxChannels; |
|
2719 XAuint32 minBitsPerSample; |
|
2720 XAuint32 maxBitsPerSample; |
|
2721 XAmilliHertz minSampleRate; |
|
2722 XAmilliHertz maxSampleRate; |
|
2723 XAboolean isFreqRangeContinuous; |
|
2724 XAmilliHertz * pSampleRatesSupported; |
|
2725 XAuint32 numSampleRatesSupported; |
|
2726 XAuint32 minBitRate; |
|
2727 XAuint32 maxBitRate; |
|
2728 XAboolean isBitrateRangeContinuous; |
|
2729 XAuint32 * pBitratesSupported; |
|
2730 XAuint32 numBitratesSupported; |
|
2731 XAuint32 profileSetting; |
|
2732 XAuint32 modeSetting; |
|
2733 } XAAudioCodecDescriptor; |
|
2734 |
|
2735 typedef struct XAAudioEncoderSettings_ { |
|
2736 XAuint32 encoderId; |
|
2737 XAuint32 channelsIn; |
|
2738 XAuint32 channelsOut; |
|
2739 XAmilliHertz sampleRate; |
|
2740 XAuint32 bitRate; |
|
2741 XAuint32 bitsPerSample; |
|
2742 XAuint32 rateControl; |
|
2743 XAuint32 profileSetting; |
|
2744 XAuint32 levelSetting; |
|
2745 XAuint32 channelMode; |
|
2746 XAuint32 streamFormat; |
|
2747 XAuint32 encodeOptions; |
|
2748 XAuint32 blockAlignment; |
|
2749 } XAAudioEncoderSettings; |
|
2750 |
|
2751 XA_API extern const XAInterfaceID XA_IID_AUDIODECODERCAPABILITIES; |
|
2752 |
|
2753 struct XAAudioDecoderCapabilitiesItf_; |
|
2754 typedef const struct XAAudioDecoderCapabilitiesItf_ |
|
2755 * const * XAAudioDecoderCapabilitiesItf; |
|
2756 |
|
2757 struct XAAudioDecoderCapabilitiesItf_ { |
|
2758 XAresult (*GetAudioDecoders) ( |
|
2759 XAAudioDecoderCapabilitiesItf self, |
|
2760 XAuint32 * pNumDecoders, |
|
2761 XAuint32 * pDecoderIds |
|
2762 ); |
|
2763 XAresult (*GetAudioDecoderCapabilities) ( |
|
2764 XAAudioDecoderCapabilitiesItf self, |
|
2765 XAuint32 decoderId, |
|
2766 XAuint32 * pIndex, |
|
2767 XAAudioCodecDescriptor * pDescriptor |
|
2768 ); |
|
2769 }; |
|
2770 |
|
2771 XA_API extern const XAInterfaceID XA_IID_AUDIOENCODER; |
|
2772 |
|
2773 struct XAAudioEncoderItf_; |
|
2774 typedef const struct XAAudioEncoderItf_ * const * XAAudioEncoderItf; |
|
2775 |
|
2776 struct XAAudioEncoderItf_ { |
|
2777 XAresult (*SetEncoderSettings) ( |
|
2778 XAAudioEncoderItf self, |
|
2779 XAAudioEncoderSettings * pSettings |
|
2780 ); |
|
2781 XAresult (*GetEncoderSettings) ( |
|
2782 XAAudioEncoderItf self, |
|
2783 XAAudioEncoderSettings * pSettings |
|
2784 ); |
|
2785 }; |
|
2786 |
|
2787 XA_API extern const XAInterfaceID XA_IID_AUDIOENCODERCAPABILITIES; |
|
2788 |
|
2789 struct XAAudioEncoderCapabilitiesItf_; |
|
2790 typedef const struct XAAudioEncoderCapabilitiesItf_ |
|
2791 * const * XAAudioEncoderCapabilitiesItf; |
|
2792 |
|
2793 struct XAAudioEncoderCapabilitiesItf_ { |
|
2794 XAresult (*GetAudioEncoders) ( |
|
2795 XAAudioEncoderCapabilitiesItf self, |
|
2796 XAuint32 * pNumEncoders, |
|
2797 XAuint32 * pEncoderIds |
|
2798 ); |
|
2799 XAresult (*GetAudioEncoderCapabilities) ( |
|
2800 XAAudioEncoderCapabilitiesItf self, |
|
2801 XAuint32 encoderId, |
|
2802 XAuint32 * pIndex, |
|
2803 XAAudioCodecDescriptor * pDescriptor |
|
2804 ); |
|
2805 }; |
|
2806 |
|
2807 /* IMAGE ENCODER AND IMAGE ENCODER/DECODER CAPABILITIES */ |
|
2808 |
|
2809 #define XA_IMAGECODEC_JPEG ((XAuint32) 0x00000001) |
|
2810 #define XA_IMAGECODEC_GIF ((XAuint32) 0x00000002) |
|
2811 #define XA_IMAGECODEC_BMP ((XAuint32) 0x00000003) |
|
2812 #define XA_IMAGECODEC_PNG ((XAuint32) 0x00000004) |
|
2813 #define XA_IMAGECODEC_TIFF ((XAuint32) 0x00000005) |
|
2814 #define XA_IMAGECODEC_RAW ((XAuint32) 0x00000006) |
|
2815 |
|
2816 typedef struct XAImageCodecDescriptor_ { |
|
2817 XAuint32 codecId; |
|
2818 XAuint32 maxWidth; |
|
2819 XAuint32 maxHeight; |
|
2820 } XAImageCodecDescriptor; |
|
2821 |
|
2822 typedef struct XAImageSettings_ { |
|
2823 XAuint32 encoderId; |
|
2824 XAuint32 width; |
|
2825 XAuint32 height; |
|
2826 XApermille compressionLevel; |
|
2827 XAuint32 colorFormat; |
|
2828 } XAImageSettings; |
|
2829 |
|
2830 XA_API extern const XAInterfaceID XA_IID_IMAGEENCODERCAPABILITIES; |
|
2831 |
|
2832 struct XAImageEncoderCapabilitiesItf_; |
|
2833 typedef const struct XAImageEncoderCapabilitiesItf_ |
|
2834 * const * XAImageEncoderCapabilitiesItf; |
|
2835 |
|
2836 struct XAImageEncoderCapabilitiesItf_ { |
|
2837 XAresult (*GetImageEncoderCapabilities) ( |
|
2838 XAImageEncoderCapabilitiesItf self, |
|
2839 XAuint32 * pEncoderId, |
|
2840 XAImageCodecDescriptor * pDescriptor |
|
2841 ); |
|
2842 XAresult (*QueryColorFormats) ( |
|
2843 const XAImageEncoderCapabilitiesItf self, |
|
2844 XAuint32 * pIndex, |
|
2845 XAuint32 * pColorFormat |
|
2846 ); |
|
2847 }; |
|
2848 |
|
2849 XA_API extern const XAInterfaceID XA_IID_IMAGEDECODERCAPABILITIES; |
|
2850 |
|
2851 struct XAImageDecoderCapabilitiesItf_; |
|
2852 typedef const struct XAImageDecoderCapabilitiesItf_ |
|
2853 * const * XAImageDecoderCapabilitiesItf; |
|
2854 |
|
2855 struct XAImageDecoderCapabilitiesItf_ { |
|
2856 XAresult (*GetImageDecoderCapabilities) ( |
|
2857 XAImageDecoderCapabilitiesItf self, |
|
2858 XAuint32 * pDecoderId, |
|
2859 XAImageCodecDescriptor * pDescriptor |
|
2860 ); |
|
2861 XAresult (*QueryColorFormats) ( |
|
2862 const XAImageDecoderCapabilitiesItf self, |
|
2863 XAuint32 * pIndex, |
|
2864 XAuint32 * pColorFormat |
|
2865 ); |
|
2866 }; |
|
2867 |
|
2868 XA_API extern const XAInterfaceID XA_IID_IMAGEENCODER; |
|
2869 |
|
2870 struct XAImageEncoderItf_; |
|
2871 typedef const struct XAImageEncoderItf_ * const * XAImageEncoderItf; |
|
2872 |
|
2873 struct XAImageEncoderItf_ { |
|
2874 XAresult (*SetImageSettings) ( |
|
2875 XAImageEncoderItf self, |
|
2876 const XAImageSettings * pSettings |
|
2877 ); |
|
2878 XAresult (*GetImageSettings) ( |
|
2879 XAImageEncoderItf self, |
|
2880 XAImageSettings * pSettings |
|
2881 ); |
|
2882 XAresult (*GetSizeEstimate) ( |
|
2883 XAImageEncoderItf self, |
|
2884 XAuint32 * pSize |
|
2885 ); |
|
2886 }; |
|
2887 |
|
2888 /* VIDEO ENCODER AND VIDEO ENCODER/DECODER CAPABILITIES */ |
|
2889 |
|
2890 #define XA_VIDEOCODEC_MPEG2 ((XAuint32) 0x00000001) |
|
2891 #define XA_VIDEOCODEC_H263 ((XAuint32) 0x00000002) |
|
2892 #define XA_VIDEOCODEC_MPEG4 ((XAuint32) 0x00000003) |
|
2893 #define XA_VIDEOCODEC_AVC ((XAuint32) 0x00000004) |
|
2894 #define XA_VIDEOCODEC_VC1 ((XAuint32) 0x00000005) |
|
2895 |
|
2896 #define XA_VIDEOPROFILE_MPEG2_SIMPLE ((XAuint32) 0x00000001) |
|
2897 #define XA_VIDEOPROFILE_MPEG2_MAIN ((XAuint32) 0x00000002) |
|
2898 #define XA_VIDEOPROFILE_MPEG2_422 ((XAuint32) 0x00000003) |
|
2899 #define XA_VIDEOPROFILE_MPEG2_SNR ((XAuint32) 0x00000004) |
|
2900 #define XA_VIDEOPROFILE_MPEG2_SPATIAL ((XAuint32) 0x00000005) |
|
2901 #define XA_VIDEOPROFILE_MPEG2_HIGH ((XAuint32) 0x00000006) |
|
2902 |
|
2903 #define XA_VIDEOLEVEL_MPEG2_LL ((XAuint32) 0x00000001) |
|
2904 #define XA_VIDEOLEVEL_MPEG2_ML ((XAuint32) 0x00000002) |
|
2905 #define XA_VIDEOLEVEL_MPEG2_H14 ((XAuint32) 0x00000003) |
|
2906 #define XA_VIDEOLEVEL_MPEG2_HL ((XAuint32) 0x00000004) |
|
2907 |
|
2908 #define XA_VIDEOPROFILE_H263_BASELINE ((XAuint32) 0x00000001) |
|
2909 #define XA_VIDEOPROFILE_H263_H320CODING ((XAuint32) 0x00000002) |
|
2910 #define XA_VIDEOPROFILE_H263_BACKWARDCOMPATIBLE ((XAuint32) 0x00000003) |
|
2911 #define XA_VIDEOPROFILE_H263_ISWV2 ((XAuint32) 0x00000004) |
|
2912 #define XA_VIDEOPROFILE_H263_ISWV3 ((XAuint32) 0x00000005) |
|
2913 #define XA_VIDEOPROFILE_H263_HIGHCOMPRESSION ((XAuint32) 0x00000006) |
|
2914 #define XA_VIDEOPROFILE_H263_INTERNET ((XAuint32) 0x00000007) |
|
2915 #define XA_VIDEOPROFILE_H263_INTERLACE ((XAuint32) 0x00000008) |
|
2916 #define XA_VIDEOPROFILE_H263_HIGHLATENCY ((XAuint32) 0x00000009) |
|
2917 |
|
2918 #define XA_VIDEOLEVEL_H263_10 ((XAuint32) 0x00000001) |
|
2919 #define XA_VIDEOLEVEL_H263_20 ((XAuint32) 0x00000002) |
|
2920 #define XA_VIDEOLEVEL_H263_30 ((XAuint32) 0x00000003) |
|
2921 #define XA_VIDEOLEVEL_H263_40 ((XAuint32) 0x00000004) |
|
2922 #define XA_VIDEOLEVEL_H263_45 ((XAuint32) 0x00000005) |
|
2923 #define XA_VIDEOLEVEL_H263_50 ((XAuint32) 0x00000006) |
|
2924 #define XA_VIDEOLEVEL_H263_60 ((XAuint32) 0x00000007) |
|
2925 #define XA_VIDEOLEVEL_H263_70 ((XAuint32) 0x00000008) |
|
2926 |
|
2927 #define XA_VIDEOPROFILE_MPEG4_SIMPLE ((XAuint32) 0x00000001) |
|
2928 #define XA_VIDEOPROFILE_MPEG4_SIMPLESCALABLE ((XAuint32) 0x00000002) |
|
2929 #define XA_VIDEOPROFILE_MPEG4_CORE ((XAuint32) 0x00000003) |
|
2930 #define XA_VIDEOPROFILE_MPEG4_MAIN ((XAuint32) 0x00000004) |
|
2931 #define XA_VIDEOPROFILE_MPEG4_NBIT ((XAuint32) 0x00000005) |
|
2932 #define XA_VIDEOPROFILE_MPEG4_SCALABLETEXTURE ((XAuint32) 0x00000006) |
|
2933 #define XA_VIDEOPROFILE_MPEG4_SIMPLEFACE ((XAuint32) 0x00000007) |
|
2934 #define XA_VIDEOPROFILE_MPEG4_SIMPLEFBA ((XAuint32) 0x00000008) |
|
2935 #define XA_VIDEOPROFILE_MPEG4_BASICANIMATED ((XAuint32) 0x00000009) |
|
2936 #define XA_VIDEOPROFILE_MPEG4_HYBRID ((XAuint32) 0x0000000A) |
|
2937 #define XA_VIDEOPROFILE_MPEG4_ADVANCEDREALTIME ((XAuint32) 0x0000000B) |
|
2938 #define XA_VIDEOPROFILE_MPEG4_CORESCALABLE ((XAuint32) 0x0000000C) |
|
2939 #define XA_VIDEOPROFILE_MPEG4_ADVANCEDCODING ((XAuint32) 0x0000000D) |
|
2940 #define XA_VIDEOPROFILE_MPEG4_ADVANCEDCORE ((XAuint32) 0x0000000E) |
|
2941 #define XA_VIDEOPROFILE_MPEG4_ADVANCEDSCALABLE ((XAuint32) 0x0000000F) |
|
2942 |
|
2943 #define XA_VIDEOLEVEL_MPEG4_0 ((XAuint32) 0x00000001) |
|
2944 #define XA_VIDEOLEVEL_MPEG4_0b ((XAuint32) 0x00000002) |
|
2945 #define XA_VIDEOLEVEL_MPEG4_1 ((XAuint32) 0x00000003) |
|
2946 #define XA_VIDEOLEVEL_MPEG4_2 ((XAuint32) 0x00000004) |
|
2947 #define XA_VIDEOLEVEL_MPEG4_3 ((XAuint32) 0x00000005) |
|
2948 #define XA_VIDEOLEVEL_MPEG4_4 ((XAuint32) 0x00000006) |
|
2949 #define XA_VIDEOLEVEL_MPEG4_4a ((XAuint32) 0x00000007) |
|
2950 #define XA_VIDEOLEVEL_MPEG4_5 ((XAuint32) 0x00000008) |
|
2951 |
|
2952 #define XA_VIDEOPROFILE_AVC_BASELINE ((XAuint32) 0x00000001) |
|
2953 #define XA_VIDEOPROFILE_AVC_MAIN ((XAuint32) 0x00000002) |
|
2954 #define XA_VIDEOPROFILE_AVC_EXTENDED ((XAuint32) 0x00000003) |
|
2955 #define XA_VIDEOPROFILE_AVC_HIGH ((XAuint32) 0x00000004) |
|
2956 #define XA_VIDEOPROFILE_AVC_HIGH10 ((XAuint32) 0x00000005) |
|
2957 #define XA_VIDEOPROFILE_AVC_HIGH422 ((XAuint32) 0x00000006) |
|
2958 #define XA_VIDEOPROFILE_AVC_HIGH444 ((XAuint32) 0x00000007) |
|
2959 |
|
2960 #define XA_VIDEOLEVEL_AVC_1 ((XAuint32) 0x00000001) |
|
2961 #define XA_VIDEOLEVEL_AVC_1B ((XAuint32) 0x00000002) |
|
2962 #define XA_VIDEOLEVEL_AVC_11 ((XAuint32) 0x00000003) |
|
2963 #define XA_VIDEOLEVEL_AVC_12 ((XAuint32) 0x00000004) |
|
2964 #define XA_VIDEOLEVEL_AVC_13 ((XAuint32) 0x00000005) |
|
2965 #define XA_VIDEOLEVEL_AVC_2 ((XAuint32) 0x00000006) |
|
2966 #define XA_VIDEOLEVEL_AVC_21 ((XAuint32) 0x00000007) |
|
2967 #define XA_VIDEOLEVEL_AVC_22 ((XAuint32) 0x00000008) |
|
2968 #define XA_VIDEOLEVEL_AVC_3 ((XAuint32) 0x00000009) |
|
2969 #define XA_VIDEOLEVEL_AVC_31 ((XAuint32) 0x0000000A) |
|
2970 #define XA_VIDEOLEVEL_AVC_32 ((XAuint32) 0x0000000B) |
|
2971 #define XA_VIDEOLEVEL_AVC_4 ((XAuint32) 0x0000000C) |
|
2972 #define XA_VIDEOLEVEL_AVC_41 ((XAuint32) 0x0000000D) |
|
2973 #define XA_VIDEOLEVEL_AVC_42 ((XAuint32) 0x0000000E) |
|
2974 #define XA_VIDEOLEVEL_AVC_5 ((XAuint32) 0x0000000F) |
|
2975 #define XA_VIDEOLEVEL_AVC_51 ((XAuint32) 0x00000010) |
|
2976 |
|
2977 #define XA_VIDEOLEVEL_VC1_SIMPLE ((XAuint32) 0x00000001) |
|
2978 #define XA_VIDEOLEVEL_VC1_MAIN ((XAuint32) 0x00000002) |
|
2979 #define XA_VIDEOLEVEL_VC1_ADVANCED ((XAuint32) 0x00000003) |
|
2980 |
|
2981 #define XA_VIDEOLEVEL_VC1_LOW ((XAuint32) 0x00000001) |
|
2982 #define XA_VIDEOLEVEL_VC1_MEDIUM ((XAuint32) 0x00000002) |
|
2983 #define XA_VIDEOLEVEL_VC1_HIGH ((XAuint32) 0x00000003) |
|
2984 #define XA_VIDEOLEVEL_VC1_L0 ((XAuint32) 0x00000004) |
|
2985 #define XA_VIDEOLEVEL_VC1_L1 ((XAuint32) 0x00000005) |
|
2986 #define XA_VIDEOLEVEL_VC1_L2 ((XAuint32) 0x00000006) |
|
2987 #define XA_VIDEOLEVEL_VC1_L3 ((XAuint32) 0x00000007) |
|
2988 #define XA_VIDEOLEVEL_VC1_L4 ((XAuint32) 0x00000008) |
|
2989 |
|
2990 typedef struct XAVideoCodecDescriptor_ { |
|
2991 XAuint32 codecId; |
|
2992 XAuint32 maxWidth; |
|
2993 XAuint32 maxHeight; |
|
2994 XAuint32 maxFrameRate; |
|
2995 XAuint32 maxBitRate; |
|
2996 XAuint32 rateControlSupported; |
|
2997 XAuint32 profileSetting; |
|
2998 XAuint32 levelSetting; |
|
2999 } XAVideoCodecDescriptor; |
|
3000 |
|
3001 typedef struct XAVideoSettings_ { |
|
3002 XAuint32 encoderId; |
|
3003 XAuint32 width; |
|
3004 XAuint32 height; |
|
3005 XAuint32 frameRate; |
|
3006 XAuint32 bitRate; |
|
3007 XAuint32 rateControl; |
|
3008 XAuint32 profileSetting; |
|
3009 XAuint32 levelSetting; |
|
3010 XAuint32 keyFrameInterval; |
|
3011 } XAVideoSettings; |
|
3012 |
|
3013 XA_API extern const XAInterfaceID XA_IID_VIDEODECODERCAPABILITIES; |
|
3014 |
|
3015 struct XAVideoDecoderCapabilitiesItf_; |
|
3016 typedef const struct XAVideoDecoderCapabilitiesItf_ |
|
3017 * const * XAVideoDecoderCapabilitiesItf; |
|
3018 |
|
3019 struct XAVideoDecoderCapabilitiesItf_ { |
|
3020 XAresult (*GetVideoDecoders) ( |
|
3021 XAVideoDecoderCapabilitiesItf self, |
|
3022 XAuint32 * pNumDecoders, |
|
3023 XAuint32 * pDecoderIds |
|
3024 ); |
|
3025 XAresult (*GetVideoDecoderCapabilities) ( |
|
3026 XAVideoDecoderCapabilitiesItf self, |
|
3027 XAuint32 decoderId, |
|
3028 XAuint32 * pIndex, |
|
3029 XAVideoCodecDescriptor * pDescriptor |
|
3030 ); |
|
3031 }; |
|
3032 |
|
3033 XA_API extern const XAInterfaceID XA_IID_VIDEOENCODER; |
|
3034 |
|
3035 XA_API extern const XAInterfaceID XA_IID_VIDEOENCODERCAPABILITIES; |
|
3036 |
|
3037 struct XAVideoEncoderCapabilitiesItf_; |
|
3038 typedef const struct XAVideoEncoderCapabilitiesItf_ |
|
3039 * const * XAVideoEncoderCapabilitiesItf; |
|
3040 |
|
3041 struct XAVideoEncoderCapabilitiesItf_ { |
|
3042 XAresult (*GetVideoEncoders) ( |
|
3043 XAVideoEncoderCapabilitiesItf self, |
|
3044 XAuint32 * pNumEncoders, |
|
3045 XAuint32 * pEncoderIds |
|
3046 ); |
|
3047 XAresult (*GetVideoEncoderCapabilities) ( |
|
3048 XAVideoEncoderCapabilitiesItf self, |
|
3049 XAuint32 encoderId, |
|
3050 XAuint32 * pIndex, |
|
3051 XAVideoCodecDescriptor * pDescriptor |
|
3052 ); |
|
3053 }; |
|
3054 |
|
3055 struct XAVideoEncoderItf_; |
|
3056 typedef const struct XAVideoEncoderItf_ * const * XAVideoEncoderItf; |
|
3057 |
|
3058 struct XAVideoEncoderItf_ { |
|
3059 XAresult (*SetVideoSettings) ( |
|
3060 XAVideoEncoderItf self, |
|
3061 XAVideoSettings * pSettings |
|
3062 ); |
|
3063 XAresult (*GetVideoSettings) ( |
|
3064 XAVideoEncoderItf self, |
|
3065 XAVideoSettings * pSettings |
|
3066 ); |
|
3067 }; |
|
3068 |
|
3069 /* STREAM INFORMATION */ |
|
3070 |
|
3071 #define XA_DOMAINTYPE_AUDIO 0x00000001 |
|
3072 #define XA_DOMAINTYPE_VIDEO 0x00000002 |
|
3073 #define XA_DOMAINTYPE_IMAGE 0x00000003 |
|
3074 #define XA_DOMAINTYPE_TIMEDTEXT 0x00000004 |
|
3075 #define XA_DOMAINTYPE_MIDI 0x00000005 |
|
3076 #define XA_DOMAINTYPE_VENDOR 0xFFFFFFFE |
|
3077 #define XA_DOMAINTYPE_UNKNOWN 0xFFFFFFFF |
|
3078 |
|
3079 #define XA_MIDIBANK_DEVICE 0x00000001 |
|
3080 #define XA_MIDIBANK_CUSTOM 0x00000002 |
|
3081 |
|
3082 #define XA_MIDI_UNKNOWN 0xFFFFFFFF |
|
3083 |
|
3084 #define XA_STREAMCBEVENT_PROPERTYCHANGE ((XAuint32) 0x00000001) |
|
3085 |
|
3086 typedef struct XAMediaContainerInformation_ { |
|
3087 XAuint32 containerType; |
|
3088 XAmillisecond mediaDuration; |
|
3089 XAuint32 numStreams; |
|
3090 } XAMediaContainerInformation; |
|
3091 |
|
3092 typedef struct XAVideoStreamInformation_ { |
|
3093 XAuint32 codecId; |
|
3094 XAuint32 width; |
|
3095 XAuint32 height; |
|
3096 XAuint32 frameRate; |
|
3097 XAuint32 bitRate; |
|
3098 XAmillisecond duration; |
|
3099 } XAVideoStreamInformation; |
|
3100 |
|
3101 typedef struct XAAudioStreamInformation_ { |
|
3102 XAuint32 codecId; |
|
3103 XAuint32 channels; |
|
3104 XAmilliHertz sampleRate; |
|
3105 XAuint32 bitRate; |
|
3106 XAchar langCountry[16]; |
|
3107 XAmillisecond duration; |
|
3108 } XAAudioStreamInformation; |
|
3109 |
|
3110 typedef struct XAImageStreamInformation_ { |
|
3111 XAuint32 codecId; |
|
3112 XAuint32 width; |
|
3113 XAuint32 height; |
|
3114 XAmillisecond presentationDuration; |
|
3115 } XAImageStreamInformation; |
|
3116 |
|
3117 typedef struct XATimedTextStreamInformation_ { |
|
3118 XAuint16 layer; |
|
3119 XAuint32 width; |
|
3120 XAuint32 height; |
|
3121 XAuint16 tx; |
|
3122 XAuint16 ty; |
|
3123 XAuint32 bitrate; |
|
3124 XAchar langCountry[16]; |
|
3125 XAmillisecond duration; |
|
3126 } XATimedTextStreamInformation; |
|
3127 |
|
3128 typedef struct XAMIDIStreamInformation_ { |
|
3129 XAuint32 channels; |
|
3130 XAuint32 tracks; |
|
3131 XAuint32 bankType; |
|
3132 XAchar langCountry[16]; |
|
3133 XAmillisecond duration; |
|
3134 } XAMIDIStreamInformation; |
|
3135 |
|
3136 typedef struct XAVendorStreamInformation_ { |
|
3137 void *VendorStreamInfo; |
|
3138 } XAVendorStreamInformation; |
|
3139 |
|
3140 XA_API extern const XAInterfaceID XA_IID_STREAMINFORMATION; |
|
3141 |
|
3142 struct XAStreamInformationItf_; |
|
3143 typedef const struct XAStreamInformationItf_ * const * XAStreamInformationItf; |
|
3144 |
|
3145 typedef void (XAAPIENTRY * xaStreamEventChangeCallback) ( |
|
3146 XAStreamInformationItf caller, |
|
3147 XAuint32 eventId, |
|
3148 XAuint32 streamIndex, |
|
3149 void * pEventData, |
|
3150 void * pContext |
|
3151 ); |
|
3152 |
|
3153 struct XAStreamInformationItf_ { |
|
3154 XAresult (*QueryMediaContainerInformation) ( |
|
3155 XAStreamInformationItf self, |
|
3156 XAMediaContainerInformation * info |
|
3157 ); |
|
3158 XAresult (*QueryStreamType) ( |
|
3159 XAStreamInformationItf self, |
|
3160 XAuint32 streamIndex, |
|
3161 XAuint32 *domain |
|
3162 ); |
|
3163 XAresult (*QueryStreamInformation) ( |
|
3164 XAStreamInformationItf self, |
|
3165 XAuint32 streamIndex, |
|
3166 void * info |
|
3167 ); |
|
3168 XAresult (*QueryStreamName) ( |
|
3169 XAStreamInformationItf self, |
|
3170 XAuint32 streamIndex, |
|
3171 XAuint16 * pNameSize, |
|
3172 XAchar * pName |
|
3173 ); |
|
3174 XAresult (*RegisterStreamChangeCallback) ( |
|
3175 XAStreamInformationItf self, |
|
3176 xaStreamEventChangeCallback callback, |
|
3177 void * pContext |
|
3178 ); |
|
3179 XAresult (*QueryActiveStreams) ( |
|
3180 XAStreamInformationItf self, |
|
3181 XAuint32 *numStreams, |
|
3182 XAboolean *activeStreams |
|
3183 ); |
|
3184 XAresult (*SetActiveStream) ( |
|
3185 XAStreamInformationItf self, |
|
3186 XAuint32 streamNum, |
|
3187 XAboolean active, |
|
3188 XAboolean commitNow |
|
3189 ); |
|
3190 }; |
|
3191 |
|
3192 #ifdef __cplusplus |
|
3193 } /* extern "C" */ |
|
3194 #endif |
|
3195 |
|
3196 #endif /* _OPENMAXAL_H_ */ |