18db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/*
28db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten * Copyright (c) 2007-2010 The Khronos Group Inc.
38db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten *
48db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten * Permission is hereby granted, free of charge, to any person obtaining
58db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten * a copy of this software and/or associated documentation files (the
68db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten * "Materials "), to deal in the Materials without restriction, including
78db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten * without limitation the rights to use, copy, modify, merge, publish,
88db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten * distribute, sublicense, and/or sell copies of the Materials, and to
9eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi * permit persons to whom the Materials are furnished to do so, subject to
10eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi * the following conditions:
118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten *
12eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi * The above copyright notice and this permission notice shall be included
13eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi * in all copies or substantial portions of the Materials.
148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten *
158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
178db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
188db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
218db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten *
238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten * OpenMAXAL.h - OpenMAX AL version 1.0.1
248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten *
258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten */
268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/****************************************************************************/
288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* NOTE: This file is a standard OpenMAX AL header file and should not be   */
298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* modified in any way.                                                     */
308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/****************************************************************************/
318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#ifndef _OPENMAXAL_H_
338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define _OPENMAXAL_H_
348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#ifdef __cplusplus
368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenextern "C" {
378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#endif
388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
39eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi#include "OpenMAXAL_Platform.h"
408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /*****************************************************************/
438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /* TYPES                                                         */
448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /*****************************************************************/
458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* remap common types to XA types for clarity */
478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef xa_int8_t   XAint8;   /* 8 bit signed integer    */
488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef xa_uint8_t  XAuint8;  /* 8 bit unsigned integer  */
498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef xa_int16_t  XAint16;  /* 16 bit signed integer   */
508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef xa_uint16_t XAuint16; /* 16 bit unsigned integer */
518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef xa_int32_t  XAint32;  /* 32 bit signed integer   */
528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef xa_uint32_t XAuint32; /* 32 bit unsigned integer */
538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef xa_uint64_t XAuint64; /* 64 bit unsigned integer */
548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef XAuint32    XAboolean;
568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef XAuint8     XAchar;
578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef XAint16     XAmillibel;
588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef XAuint32    XAmillisecond;
598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef XAuint32    XAmilliHertz;
608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef XAint32     XAmillimeter;
618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef XAint32     XAmillidegree;
628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef XAint16     XApermille;
638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef XAuint32    XAmicrosecond;
648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef XAuint64    XAtime;
658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef XAuint32    XAresult;
668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_BOOLEAN_FALSE                    ((XAuint32) 0x00000000)
688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_BOOLEAN_TRUE                     ((XAuint32) 0x00000001)
698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_MILLIBEL_MAX                     ((XAmillibel) 0x7FFF)
718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_MILLIBEL_MIN                     ((XAmillibel) (-XA_MILLIBEL_MAX-1))
728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_MILLIHERTZ_MAX                   ((XAmilliHertz) 0xFFFFFFFF)
748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_MILLIMETER_MAX                   ((XAmillimeter) 0x7FFFFFFF)
768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
778db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /*****************************************************************/
808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /* RESULT CODES                                                  */
818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /*****************************************************************/
828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RESULT_SUCCESS                   ((XAuint32) 0x00000000)
848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RESULT_PRECONDITIONS_VIOLATED    ((XAuint32) 0x00000001)
858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RESULT_PARAMETER_INVALID         ((XAuint32) 0x00000002)
868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RESULT_MEMORY_FAILURE            ((XAuint32) 0x00000003)
878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RESULT_RESOURCE_ERROR            ((XAuint32) 0x00000004)
888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RESULT_RESOURCE_LOST             ((XAuint32) 0x00000005)
898db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RESULT_IO_ERROR                  ((XAuint32) 0x00000006)
908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RESULT_BUFFER_INSUFFICIENT       ((XAuint32) 0x00000007)
918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RESULT_CONTENT_CORRUPTED         ((XAuint32) 0x00000008)
928db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RESULT_CONTENT_UNSUPPORTED       ((XAuint32) 0x00000009)
938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RESULT_CONTENT_NOT_FOUND         ((XAuint32) 0x0000000A)
948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RESULT_PERMISSION_DENIED         ((XAuint32) 0x0000000B)
958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RESULT_FEATURE_UNSUPPORTED       ((XAuint32) 0x0000000C)
968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RESULT_INTERNAL_ERROR            ((XAuint32) 0x0000000D)
978db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RESULT_UNKNOWN_ERROR             ((XAuint32) 0x0000000E)
988db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RESULT_OPERATION_ABORTED         ((XAuint32) 0x0000000F)
998db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RESULT_CONTROL_LOST              ((XAuint32) 0x00000010)
1008db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
1018db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
1028db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
1038db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /*****************************************************************/
1048db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /* INTERFACE ID DEFINITION                                       */
1058db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /*****************************************************************/
1068db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
1078db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* Interface ID defined as a UUID */
1088db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XAInterfaceID_ {
1098db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 time_low;
1108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint16 time_mid;
1118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint16 time_hi_and_version;
1128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint16 clock_seq;
1138db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint8  node[6];
1148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} * XAInterfaceID;
1158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
1168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* NULL Interface */
1178db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_NULL;
1188db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
1198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
1208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
1218db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /*****************************************************************/
1228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /* GENERAL INTERFACES, STRUCTS AND DEFINES                       */
1238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /*****************************************************************/
1248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
1258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* OBJECT */
1268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
1278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PRIORITY_LOWEST                      ((XAint32) (-0x7FFFFFFF-1))
1288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PRIORITY_VERYLOW                     ((XAint32) -0x60000000)
1298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PRIORITY_LOW                         ((XAint32) -0x40000000)
1308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PRIORITY_BELOWNORMAL                 ((XAint32) -0x20000000)
1318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PRIORITY_NORMAL                      ((XAint32) 0x00000000)
1328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PRIORITY_ABOVENORMAL                 ((XAint32) 0x20000000)
1338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PRIORITY_HIGH                        ((XAint32) 0x40000000)
1348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PRIORITY_VERYHIGH                    ((XAint32) 0x60000000)
1358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PRIORITY_HIGHEST                     ((XAint32) 0x7FFFFFFF)
1368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
1378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_OBJECT_EVENT_RUNTIME_ERROR           ((XAuint32) 0x00000001)
1388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_OBJECT_EVENT_ASYNC_TERMINATION       ((XAuint32) 0x00000002)
1398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_OBJECT_EVENT_RESOURCES_LOST          ((XAuint32) 0x00000003)
1408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_OBJECT_EVENT_RESOURCES_AVAILABLE     ((XAuint32) 0x00000004)
1418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_OBJECT_EVENT_ITF_CONTROL_TAKEN       ((XAuint32) 0x00000005)
1428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_OBJECT_EVENT_ITF_CONTROL_RETURNED    ((XAuint32) 0x00000006)
1438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_OBJECT_EVENT_ITF_PARAMETERS_CHANGED  ((XAuint32) 0x00000007)
1448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
1458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_OBJECT_STATE_UNREALIZED              ((XAuint32) 0x00000001)
1468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_OBJECT_STATE_REALIZED                ((XAuint32) 0x00000002)
1478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_OBJECT_STATE_SUSPENDED               ((XAuint32) 0x00000003)
1488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
1498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
1508db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_OBJECT;
1518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
1528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAObjectItf_;
1538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XAObjectItf_ * const * XAObjectItf;
1548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
1558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef void (XAAPIENTRY * xaObjectCallback) (
1568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAObjectItf caller,
1578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    const void * pContext,
1588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 event,
1598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult result,
1608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 param,
1618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void * pInterface
1628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten);
1638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
1648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAObjectItf_ {
1658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*Realize) (
1668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAObjectItf self,
1678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean async
1688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
1698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*Resume) (
1708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAObjectItf self,
1718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean async
1728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
1738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetState) (
1748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAObjectItf self,
1758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pState
1768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
1778db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetInterface) (
1788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAObjectItf self,
1798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAInterfaceID iid,
1808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        void * pInterface
1818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
1828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*RegisterCallback) (
1838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAObjectItf self,
1848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        xaObjectCallback callback,
1858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        void * pContext
1868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
1878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void (*AbortAsyncOperation) (
1888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAObjectItf self
1898db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
1908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void (*Destroy) (
1918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAObjectItf self
1928db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
1938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetPriority) (
1948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAObjectItf self,
1958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAint32 priority,
1968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean preemptable
1978db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
1988db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetPriority) (
1998db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAObjectItf self,
2008db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAint32 * pPriority,
2018db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean * pPreemptable
2028db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
2038db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetLossOfControlInterfaces) (
2048db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAObjectItf self,
2058db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAint16 numInterfaces,
2068db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAInterfaceID * pInterfaceIDs,
2078db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean enabled
2088db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
2098db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
2108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
2118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* CONFIG EXTENSION */
2128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
2138db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_CONFIGEXTENSION;
2148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
2158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAConfigExtensionsItf_;
216eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivitypedef const struct XAConfigExtensionsItf_
2178db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    * const * XAConfigExtensionsItf;
2188db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
2198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAConfigExtensionsItf_ {
2208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetConfiguration) (
221eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi        XAConfigExtensionsItf self,
2228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAchar * configKey,
223eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi        XAuint32 valueSize,
2248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const void * pConfigValue
2258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
2268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetConfiguration) (
227eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi        XAConfigExtensionsItf self,
228eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi        const XAchar * configKey,
2298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pValueSize,
2308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        void * pConfigValue
2318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
2328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
2338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
2348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* DYNAMIC INTERFACE MANAGEMENT */
2358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
2368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DYNAMIC_ITF_EVENT_RUNTIME_ERROR              ((XAuint32) 0x00000001)
2378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DYNAMIC_ITF_EVENT_ASYNC_TERMINATION          ((XAuint32) 0x00000002)
2388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DYNAMIC_ITF_EVENT_RESOURCES_LOST             ((XAuint32) 0x00000003)
2398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DYNAMIC_ITF_EVENT_RESOURCES_LOST_PERMANENTLY ((XAuint32) 0x00000004)
2408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DYNAMIC_ITF_EVENT_RESOURCES_AVAILABLE        ((XAuint32) 0x00000005)
2418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
2428db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_DYNAMICINTERFACEMANAGEMENT;
2438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
2448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XADynamicInterfaceManagementItf_;
2458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XADynamicInterfaceManagementItf_
2468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    * const * XADynamicInterfaceManagementItf;
2478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
2488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef void (XAAPIENTRY * xaDynamicInterfaceManagementCallback) (
2498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XADynamicInterfaceManagementItf caller,
2508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void * pContext,
2518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 event,
2528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult result,
2538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    const XAInterfaceID iid
2548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten);
2558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
2568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XADynamicInterfaceManagementItf_ {
2578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*AddInterface) (
2588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XADynamicInterfaceManagementItf self,
2598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAInterfaceID iid,
2608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean aysnc
2618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
2628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*RemoveInterface) (
2638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XADynamicInterfaceManagementItf self,
2648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAInterfaceID iid
2658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
2668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*ResumeInterface) (
2678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XADynamicInterfaceManagementItf self,
2688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAInterfaceID iid,
2698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean aysnc
2708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
2718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*RegisterCallback) (
2728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XADynamicInterfaceManagementItf self,
2738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        xaDynamicInterfaceManagementCallback callback,
2748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        void * pContext
2758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
2768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
2778db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
2788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* DATA SOURCES/SINKS */
2798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
2808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DATAFORMAT_MIME              ((XAuint32) 0x00000001)
2818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DATAFORMAT_PCM               ((XAuint32) 0x00000002)
2828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DATAFORMAT_RAWIMAGE          ((XAuint32) 0x00000003)
2838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
2848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DATALOCATOR_URI              ((XAuint32) 0x00000001)
2858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DATALOCATOR_ADDRESS          ((XAuint32) 0x00000002)
2868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DATALOCATOR_IODEVICE         ((XAuint32) 0x00000003)
2878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DATALOCATOR_OUTPUTMIX        ((XAuint32) 0x00000004)
2888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DATALOCATOR_NATIVEDISPLAY    ((XAuint32) 0x00000005)
2898db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DATALOCATOR_RESERVED6        ((XAuint32) 0x00000006)
2908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DATALOCATOR_RESERVED7        ((XAuint32) 0x00000007)
2918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
2928db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XADataSink_ {
2938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void * pLocator;
2948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void * pFormat;
2958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XADataSink;
2968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
2978db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XADataSource_ {
2988db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void * pLocator;
2998db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void * pFormat;
3008db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XADataSource;
3018db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
3028db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_UNSPECIFIED    ((XAuint32) 0x00000001)
3038db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_RAW            ((XAuint32) 0x00000002)
3048db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_ASF            ((XAuint32) 0x00000003)
3058db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_AVI            ((XAuint32) 0x00000004)
3068db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_BMP            ((XAuint32) 0x00000005)
3078db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_JPG            ((XAuint32) 0x00000006)
3088db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_JPG2000        ((XAuint32) 0x00000007)
3098db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_M4A            ((XAuint32) 0x00000008)
3108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_MP3            ((XAuint32) 0x00000009)
3118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_MP4            ((XAuint32) 0x0000000A)
3128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_MPEG_ES        ((XAuint32) 0x0000000B)
3138db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_MPEG_PS        ((XAuint32) 0x0000000C)
3148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_MPEG_TS        ((XAuint32) 0x0000000D)
3158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_QT             ((XAuint32) 0x0000000E)
3168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_WAV            ((XAuint32) 0x0000000F)
3178db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_XMF_0          ((XAuint32) 0x00000010)
3188db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_XMF_1          ((XAuint32) 0x00000011)
3198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_XMF_2          ((XAuint32) 0x00000012)
3208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_XMF_3          ((XAuint32) 0x00000013)
3218db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_XMF_GENERIC    ((XAuint32) 0x00000014)
3228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_AMR            ((XAuint32) 0x00000015)
3238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_AAC            ((XAuint32) 0x00000016)
3248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_3GPP           ((XAuint32) 0x00000017)
3258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_3GA            ((XAuint32) 0x00000018)
3268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_RM             ((XAuint32) 0x00000019)
3278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_DMF            ((XAuint32) 0x0000001A)
3288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_SMF            ((XAuint32) 0x0000001B)
3298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_MOBILE_DLS     ((XAuint32) 0x0000001C)
3308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_OGG            ((XAuint32) 0x0000001D)
3318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
3328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XADataFormat_MIME_ {
3338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 formatType;
3348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAchar * mimeType;
3358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 containerType;
3368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XADataFormat_MIME;
3378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
3388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_BYTEORDER_BIGENDIAN          ((XAuint32) 0x00000001)
3398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_BYTEORDER_LITTLEENDIAN       ((XAuint32) 0x00000002)
3408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
3418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SAMPLINGRATE_8               ((XAuint32)   8000000)
3428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SAMPLINGRATE_11_025          ((XAuint32)  11025000)
3438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SAMPLINGRATE_12              ((XAuint32)  12000000)
3448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SAMPLINGRATE_16              ((XAuint32)  16000000)
3458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SAMPLINGRATE_22_05           ((XAuint32)  22050000)
3468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SAMPLINGRATE_24              ((XAuint32)  24000000)
3478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SAMPLINGRATE_32              ((XAuint32)  32000000)
3488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SAMPLINGRATE_44_1            ((XAuint32)  44100000)
3498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SAMPLINGRATE_48              ((XAuint32)  48000000)
3508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SAMPLINGRATE_64              ((XAuint32)  64000000)
3518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SAMPLINGRATE_88_2            ((XAuint32)  88200000)
3528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SAMPLINGRATE_96              ((XAuint32)  96000000)
3538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SAMPLINGRATE_192             ((XAuint32) 192000000)
3548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
3558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_FRONT_LEFT               ((XAuint32) 0x00000001)
3568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_FRONT_RIGHT              ((XAuint32) 0x00000002)
3578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_FRONT_CENTER             ((XAuint32) 0x00000004)
3588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_LOW_FREQUENCY            ((XAuint32) 0x00000008)
3598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_BACK_LEFT                ((XAuint32) 0x00000010)
3608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_BACK_RIGHT               ((XAuint32) 0x00000020)
3618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_FRONT_LEFT_OF_CENTER     ((XAuint32) 0x00000040)
3628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_FRONT_RIGHT_OF_CENTER    ((XAuint32) 0x00000080)
3638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_BACK_CENTER              ((XAuint32) 0x00000100)
3648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_SIDE_LEFT                ((XAuint32) 0x00000200)
3658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_SIDE_RIGHT               ((XAuint32) 0x00000400)
3668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_TOP_CENTER               ((XAuint32) 0x00000800)
3678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_TOP_FRONT_LEFT           ((XAuint32) 0x00001000)
3688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_TOP_FRONT_CENTER         ((XAuint32) 0x00002000)
3698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_TOP_FRONT_RIGHT          ((XAuint32) 0x00004000)
3708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_TOP_BACK_LEFT            ((XAuint32) 0x00008000)
3718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_TOP_BACK_CENTER          ((XAuint32) 0x00010000)
3728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_TOP_BACK_RIGHT           ((XAuint32) 0x00020000)
3738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
3748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PCMSAMPLEFORMAT_FIXED_8          ((XAuint16) 0x0008)
3758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PCMSAMPLEFORMAT_FIXED_16         ((XAuint16) 0x0010)
3768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PCMSAMPLEFORMAT_FIXED_20         ((XAuint16) 0x0014)
3778db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PCMSAMPLEFORMAT_FIXED_24         ((XAuint16) 0x0018)
3788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PCMSAMPLEFORMAT_FIXED_28         ((XAuint16) 0x001C)
3798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PCMSAMPLEFORMAT_FIXED_32         ((XAuint16) 0x0020)
3808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
3818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XADataFormat_PCM_ {
3828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 formatType;
3838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 numChannels;
3848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 samplesPerSec;
3858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 bitsPerSample;
3868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 containerSize;
3878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 channelMask;
3888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 endianness;
3898db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XADataFormat_PCM;
3908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
3918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_UNUSED                   ((XAuint32) 0x00000000)
3928db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_MONOCHROME               ((XAuint32) 0x00000001)
3938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_8BITRGB332               ((XAuint32) 0x00000002)
3948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_12BITRGB444              ((XAuint32) 0x00000003)
3958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_16BITARGB4444            ((XAuint32) 0x00000004)
3968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_16BITARGB1555            ((XAuint32) 0x00000005)
3978db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_16BITRGB565              ((XAuint32) 0x00000006)
3988db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_16BITBGR565              ((XAuint32) 0x00000007)
3998db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_18BITRGB666              ((XAuint32) 0x00000008)
4008db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_18BITARGB1665            ((XAuint32) 0x00000009)
4018db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_19BITARGB1666            ((XAuint32) 0x0000000A)
4028db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_24BITRGB888              ((XAuint32) 0x0000000B)
4038db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_24BITBGR888              ((XAuint32) 0x0000000C)
4048db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_24BITARGB1887            ((XAuint32) 0x0000000D)
4058db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_25BITARGB1888            ((XAuint32) 0x0000000E)
4068db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_32BITBGRA8888            ((XAuint32) 0x0000000F)
4078db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_32BITARGB8888            ((XAuint32) 0x00000010)
4088db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_YUV411PLANAR             ((XAuint32) 0x00000011)
4098db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_YUV420PLANAR             ((XAuint32) 0x00000013)
4108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_YUV420SEMIPLANAR         ((XAuint32) 0x00000015)
4118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_YUV422PLANAR             ((XAuint32) 0x00000016)
4128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_YUV422SEMIPLANAR         ((XAuint32) 0x00000018)
4138db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_YCBYCR                   ((XAuint32) 0x00000019)
4148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_YCRYCB                   ((XAuint32) 0x0000001A)
4158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_CBYCRY                   ((XAuint32) 0x0000001B)
4168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_CRYCBY                   ((XAuint32) 0x0000001C)
4178db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_YUV444INTERLEAVED        ((XAuint32) 0x0000001D)
4188db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_RAWBAYER8BIT             ((XAuint32) 0x0000001E)
4198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_RAWBAYER10BIT            ((XAuint32) 0x0000001F)
4208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_RAWBAYER8BITCOMPRESSED   ((XAuint32) 0x00000020)
4218db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_L2                       ((XAuint32) 0x00000021)
4228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_L4                       ((XAuint32) 0x00000022)
4238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_L8                       ((XAuint32) 0x00000023)
4248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_L16                      ((XAuint32) 0x00000024)
4258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_L24                      ((XAuint32) 0x00000025)
4268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_L32                      ((XAuint32) 0x00000026)
4278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_18BITBGR666              ((XAuint32) 0x00000029)
4288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_24BITARGB6666            ((XAuint32) 0x0000002A)
4298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_24BITABGR6666            ((XAuint32) 0x0000002B)
4308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
4318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XADataFormat_RawImage_ {
4328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 formatType;
4338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 colorFormat;
4348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 height;
4358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 width;
4368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 stride;
4378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XADataFormat_RawImage;
4388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
4398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XADataLocator_Address_ {
4408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 locatorType;
4418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void * pAddress;
4428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 length;
4438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XADataLocator_Address;
4448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
4458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_IODEVICE_AUDIOINPUT          ((XAuint32) 0x00000001)
4468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_IODEVICE_LEDARRAY            ((XAuint32) 0x00000002)
4478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_IODEVICE_VIBRA               ((XAuint32) 0x00000003)
4488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_IODEVICE_CAMERA              ((XAuint32) 0x00000004)
4498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_IODEVICE_RADIO               ((XAuint32) 0x00000005)
4508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
4518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XADataLocator_IODevice_ {
4528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 locatorType;
4538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 deviceType;
4548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 deviceID;
4558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAObjectItf device;
4568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XADataLocator_IODevice;
4578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
4588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef void * XANativeHandle;
4598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
4608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XADataLocator_NativeDisplay_{
4618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 locatorType;
4628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XANativeHandle hWindow;
4638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XANativeHandle hDisplay;
4648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XADataLocator_NativeDisplay;
4658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
4668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XADataLocator_OutputMix {
467