OpenMAXAL.h revision 8db0b106cdce5f5216b1535492de7930ad738aed
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
98db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten * permit persons to whom the Materials are furnished to do so, subject to
108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten * the following conditions:
118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten *
128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten * The above copyright notice and this permission notice shall be included
138db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten * 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#include "OpenMAXAL_Platform.h"
368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#ifdef __cplusplus
388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenextern "C" {
398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#endif
408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /*****************************************************************/
448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /* TYPES                                                         */
458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /*****************************************************************/
468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* remap common types to XA types for clarity */
488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef xa_int8_t   XAint8;   /* 8 bit signed integer    */
498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef xa_uint8_t  XAuint8;  /* 8 bit unsigned integer  */
508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef xa_int16_t  XAint16;  /* 16 bit signed integer   */
518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef xa_uint16_t XAuint16; /* 16 bit unsigned integer */
528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef xa_int32_t  XAint32;  /* 32 bit signed integer   */
538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef xa_uint32_t XAuint32; /* 32 bit unsigned integer */
548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef xa_uint64_t XAuint64; /* 64 bit unsigned integer */
558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef XAuint32    XAboolean;
578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef XAuint8     XAchar;
588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef XAint16     XAmillibel;
598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef XAuint32    XAmillisecond;
608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef XAuint32    XAmilliHertz;
618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef XAint32     XAmillimeter;
628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef XAint32     XAmillidegree;
638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef XAint16     XApermille;
648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef XAuint32    XAmicrosecond;
658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef XAuint64    XAtime;
668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef XAuint32    XAresult;
678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_BOOLEAN_FALSE                    ((XAuint32) 0x00000000)
698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_BOOLEAN_TRUE                     ((XAuint32) 0x00000001)
708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_MILLIBEL_MAX                     ((XAmillibel) 0x7FFF)
728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_MILLIBEL_MIN                     ((XAmillibel) (-XA_MILLIBEL_MAX-1))
738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_MILLIHERTZ_MAX                   ((XAmilliHertz) 0xFFFFFFFF)
758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_MILLIMETER_MAX                   ((XAmillimeter) 0x7FFFFFFF)
778db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /*****************************************************************/
818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /* RESULT CODES                                                  */
828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /*****************************************************************/
838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RESULT_SUCCESS                   ((XAuint32) 0x00000000)
858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RESULT_PRECONDITIONS_VIOLATED    ((XAuint32) 0x00000001)
868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RESULT_PARAMETER_INVALID         ((XAuint32) 0x00000002)
878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RESULT_MEMORY_FAILURE            ((XAuint32) 0x00000003)
888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RESULT_RESOURCE_ERROR            ((XAuint32) 0x00000004)
898db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RESULT_RESOURCE_LOST             ((XAuint32) 0x00000005)
908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RESULT_IO_ERROR                  ((XAuint32) 0x00000006)
918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RESULT_BUFFER_INSUFFICIENT       ((XAuint32) 0x00000007)
928db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RESULT_CONTENT_CORRUPTED         ((XAuint32) 0x00000008)
938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RESULT_CONTENT_UNSUPPORTED       ((XAuint32) 0x00000009)
948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RESULT_CONTENT_NOT_FOUND         ((XAuint32) 0x0000000A)
958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RESULT_PERMISSION_DENIED         ((XAuint32) 0x0000000B)
968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RESULT_FEATURE_UNSUPPORTED       ((XAuint32) 0x0000000C)
978db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RESULT_INTERNAL_ERROR            ((XAuint32) 0x0000000D)
988db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RESULT_UNKNOWN_ERROR             ((XAuint32) 0x0000000E)
998db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RESULT_OPERATION_ABORTED         ((XAuint32) 0x0000000F)
1008db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RESULT_CONTROL_LOST              ((XAuint32) 0x00000010)
1018db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
1028db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
1038db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
1048db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /*****************************************************************/
1058db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /* INTERFACE ID DEFINITION                                       */
1068db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /*****************************************************************/
1078db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
1088db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* Interface ID defined as a UUID */
1098db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XAInterfaceID_ {
1108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 time_low;
1118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint16 time_mid;
1128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint16 time_hi_and_version;
1138db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint16 clock_seq;
1148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint8  node[6];
1158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} * XAInterfaceID;
1168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
1178db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* NULL Interface */
1188db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_NULL;
1198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
1208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
1218db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
1228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /*****************************************************************/
1238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /* GENERAL INTERFACES, STRUCTS AND DEFINES                       */
1248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /*****************************************************************/
1258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
1268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* OBJECT */
1278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
1288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PRIORITY_LOWEST                      ((XAint32) (-0x7FFFFFFF-1))
1298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PRIORITY_VERYLOW                     ((XAint32) -0x60000000)
1308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PRIORITY_LOW                         ((XAint32) -0x40000000)
1318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PRIORITY_BELOWNORMAL                 ((XAint32) -0x20000000)
1328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PRIORITY_NORMAL                      ((XAint32) 0x00000000)
1338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PRIORITY_ABOVENORMAL                 ((XAint32) 0x20000000)
1348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PRIORITY_HIGH                        ((XAint32) 0x40000000)
1358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PRIORITY_VERYHIGH                    ((XAint32) 0x60000000)
1368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PRIORITY_HIGHEST                     ((XAint32) 0x7FFFFFFF)
1378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
1388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_OBJECT_EVENT_RUNTIME_ERROR           ((XAuint32) 0x00000001)
1398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_OBJECT_EVENT_ASYNC_TERMINATION       ((XAuint32) 0x00000002)
1408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_OBJECT_EVENT_RESOURCES_LOST          ((XAuint32) 0x00000003)
1418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_OBJECT_EVENT_RESOURCES_AVAILABLE     ((XAuint32) 0x00000004)
1428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_OBJECT_EVENT_ITF_CONTROL_TAKEN       ((XAuint32) 0x00000005)
1438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_OBJECT_EVENT_ITF_CONTROL_RETURNED    ((XAuint32) 0x00000006)
1448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_OBJECT_EVENT_ITF_PARAMETERS_CHANGED  ((XAuint32) 0x00000007)
1458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
1468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_OBJECT_STATE_UNREALIZED              ((XAuint32) 0x00000001)
1478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_OBJECT_STATE_REALIZED                ((XAuint32) 0x00000002)
1488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_OBJECT_STATE_SUSPENDED               ((XAuint32) 0x00000003)
1498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
1508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
1518db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_OBJECT;
1528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
1538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAObjectItf_;
1548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XAObjectItf_ * const * XAObjectItf;
1558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
1568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef void (XAAPIENTRY * xaObjectCallback) (
1578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAObjectItf caller,
1588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    const void * pContext,
1598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 event,
1608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult result,
1618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 param,
1628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void * pInterface
1638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten);
1648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
1658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAObjectItf_ {
1668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*Realize) (
1678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAObjectItf self,
1688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean async
1698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
1708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*Resume) (
1718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAObjectItf self,
1728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean async
1738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
1748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetState) (
1758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAObjectItf self,
1768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pState
1778db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
1788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetInterface) (
1798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAObjectItf self,
1808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAInterfaceID iid,
1818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        void * pInterface
1828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
1838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*RegisterCallback) (
1848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAObjectItf self,
1858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        xaObjectCallback callback,
1868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        void * pContext
1878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
1888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void (*AbortAsyncOperation) (
1898db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAObjectItf self
1908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
1918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void (*Destroy) (
1928db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAObjectItf self
1938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
1948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetPriority) (
1958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAObjectItf self,
1968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAint32 priority,
1978db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean preemptable
1988db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
1998db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetPriority) (
2008db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAObjectItf self,
2018db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAint32 * pPriority,
2028db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean * pPreemptable
2038db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
2048db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetLossOfControlInterfaces) (
2058db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAObjectItf self,
2068db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAint16 numInterfaces,
2078db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAInterfaceID * pInterfaceIDs,
2088db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean enabled
2098db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
2108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
2118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
2128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* CONFIG EXTENSION */
2138db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
2148db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_CONFIGEXTENSION;
2158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
2168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAConfigExtensionsItf_;
2178db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XAConfigExtensionsItf_
2188db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    * const * XAConfigExtensionsItf;
2198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
2208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAConfigExtensionsItf_ {
2218db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetConfiguration) (
2228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAConfigExtensionsItf self,
2238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAchar * configKey,
2248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 valueSize,
2258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const void * pConfigValue
2268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
2278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetConfiguration) (
2288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAConfigExtensionsItf self,
2298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAchar * configKey,
2308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pValueSize,
2318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        void * pConfigValue
2328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
2338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
2348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
2358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* DYNAMIC INTERFACE MANAGEMENT */
2368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
2378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DYNAMIC_ITF_EVENT_RUNTIME_ERROR              ((XAuint32) 0x00000001)
2388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DYNAMIC_ITF_EVENT_ASYNC_TERMINATION          ((XAuint32) 0x00000002)
2398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DYNAMIC_ITF_EVENT_RESOURCES_LOST             ((XAuint32) 0x00000003)
2408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DYNAMIC_ITF_EVENT_RESOURCES_LOST_PERMANENTLY ((XAuint32) 0x00000004)
2418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DYNAMIC_ITF_EVENT_RESOURCES_AVAILABLE        ((XAuint32) 0x00000005)
2428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
2438db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_DYNAMICINTERFACEMANAGEMENT;
2448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
2458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XADynamicInterfaceManagementItf_;
2468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XADynamicInterfaceManagementItf_
2478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    * const * XADynamicInterfaceManagementItf;
2488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
2498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef void (XAAPIENTRY * xaDynamicInterfaceManagementCallback) (
2508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XADynamicInterfaceManagementItf caller,
2518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void * pContext,
2528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 event,
2538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult result,
2548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    const XAInterfaceID iid
2558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten);
2568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
2578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XADynamicInterfaceManagementItf_ {
2588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*AddInterface) (
2598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XADynamicInterfaceManagementItf self,
2608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAInterfaceID iid,
2618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean aysnc
2628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
2638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*RemoveInterface) (
2648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XADynamicInterfaceManagementItf self,
2658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAInterfaceID iid
2668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
2678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*ResumeInterface) (
2688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XADynamicInterfaceManagementItf self,
2698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAInterfaceID iid,
2708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean aysnc
2718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
2728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*RegisterCallback) (
2738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XADynamicInterfaceManagementItf self,
2748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        xaDynamicInterfaceManagementCallback callback,
2758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        void * pContext
2768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
2778db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
2788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
2798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* DATA SOURCES/SINKS */
2808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
2818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DATAFORMAT_MIME              ((XAuint32) 0x00000001)
2828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DATAFORMAT_PCM               ((XAuint32) 0x00000002)
2838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DATAFORMAT_RAWIMAGE          ((XAuint32) 0x00000003)
2848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
2858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DATALOCATOR_URI              ((XAuint32) 0x00000001)
2868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DATALOCATOR_ADDRESS          ((XAuint32) 0x00000002)
2878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DATALOCATOR_IODEVICE         ((XAuint32) 0x00000003)
2888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DATALOCATOR_OUTPUTMIX        ((XAuint32) 0x00000004)
2898db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DATALOCATOR_NATIVEDISPLAY    ((XAuint32) 0x00000005)
2908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DATALOCATOR_RESERVED6        ((XAuint32) 0x00000006)
2918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DATALOCATOR_RESERVED7        ((XAuint32) 0x00000007)
2928db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
2938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XADataSink_ {
2948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void * pLocator;
2958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void * pFormat;
2968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XADataSink;
2978db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
2988db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XADataSource_ {
2998db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void * pLocator;
3008db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void * pFormat;
3018db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XADataSource;
3028db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
3038db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_UNSPECIFIED    ((XAuint32) 0x00000001)
3048db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_RAW            ((XAuint32) 0x00000002)
3058db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_ASF            ((XAuint32) 0x00000003)
3068db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_AVI            ((XAuint32) 0x00000004)
3078db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_BMP            ((XAuint32) 0x00000005)
3088db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_JPG            ((XAuint32) 0x00000006)
3098db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_JPG2000        ((XAuint32) 0x00000007)
3108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_M4A            ((XAuint32) 0x00000008)
3118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_MP3            ((XAuint32) 0x00000009)
3128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_MP4            ((XAuint32) 0x0000000A)
3138db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_MPEG_ES        ((XAuint32) 0x0000000B)
3148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_MPEG_PS        ((XAuint32) 0x0000000C)
3158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_MPEG_TS        ((XAuint32) 0x0000000D)
3168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_QT             ((XAuint32) 0x0000000E)
3178db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_WAV            ((XAuint32) 0x0000000F)
3188db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_XMF_0          ((XAuint32) 0x00000010)
3198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_XMF_1          ((XAuint32) 0x00000011)
3208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_XMF_2          ((XAuint32) 0x00000012)
3218db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_XMF_3          ((XAuint32) 0x00000013)
3228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_XMF_GENERIC    ((XAuint32) 0x00000014)
3238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_AMR            ((XAuint32) 0x00000015)
3248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_AAC            ((XAuint32) 0x00000016)
3258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_3GPP           ((XAuint32) 0x00000017)
3268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_3GA            ((XAuint32) 0x00000018)
3278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_RM             ((XAuint32) 0x00000019)
3288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_DMF            ((XAuint32) 0x0000001A)
3298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_SMF            ((XAuint32) 0x0000001B)
3308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_MOBILE_DLS     ((XAuint32) 0x0000001C)
3318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CONTAINERTYPE_OGG            ((XAuint32) 0x0000001D)
3328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
3338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XADataFormat_MIME_ {
3348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 formatType;
3358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAchar * mimeType;
3368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 containerType;
3378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XADataFormat_MIME;
3388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
3398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_BYTEORDER_BIGENDIAN          ((XAuint32) 0x00000001)
3408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_BYTEORDER_LITTLEENDIAN       ((XAuint32) 0x00000002)
3418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
3428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SAMPLINGRATE_8               ((XAuint32)   8000000)
3438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SAMPLINGRATE_11_025          ((XAuint32)  11025000)
3448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SAMPLINGRATE_12              ((XAuint32)  12000000)
3458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SAMPLINGRATE_16              ((XAuint32)  16000000)
3468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SAMPLINGRATE_22_05           ((XAuint32)  22050000)
3478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SAMPLINGRATE_24              ((XAuint32)  24000000)
3488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SAMPLINGRATE_32              ((XAuint32)  32000000)
3498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SAMPLINGRATE_44_1            ((XAuint32)  44100000)
3508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SAMPLINGRATE_48              ((XAuint32)  48000000)
3518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SAMPLINGRATE_64              ((XAuint32)  64000000)
3528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SAMPLINGRATE_88_2            ((XAuint32)  88200000)
3538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SAMPLINGRATE_96              ((XAuint32)  96000000)
3548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SAMPLINGRATE_192             ((XAuint32) 192000000)
3558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
3568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_FRONT_LEFT               ((XAuint32) 0x00000001)
3578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_FRONT_RIGHT              ((XAuint32) 0x00000002)
3588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_FRONT_CENTER             ((XAuint32) 0x00000004)
3598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_LOW_FREQUENCY            ((XAuint32) 0x00000008)
3608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_BACK_LEFT                ((XAuint32) 0x00000010)
3618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_BACK_RIGHT               ((XAuint32) 0x00000020)
3628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_FRONT_LEFT_OF_CENTER     ((XAuint32) 0x00000040)
3638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_FRONT_RIGHT_OF_CENTER    ((XAuint32) 0x00000080)
3648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_BACK_CENTER              ((XAuint32) 0x00000100)
3658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_SIDE_LEFT                ((XAuint32) 0x00000200)
3668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_SIDE_RIGHT               ((XAuint32) 0x00000400)
3678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_TOP_CENTER               ((XAuint32) 0x00000800)
3688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_TOP_FRONT_LEFT           ((XAuint32) 0x00001000)
3698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_TOP_FRONT_CENTER         ((XAuint32) 0x00002000)
3708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_TOP_FRONT_RIGHT          ((XAuint32) 0x00004000)
3718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_TOP_BACK_LEFT            ((XAuint32) 0x00008000)
3728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_TOP_BACK_CENTER          ((XAuint32) 0x00010000)
3738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SPEAKER_TOP_BACK_RIGHT           ((XAuint32) 0x00020000)
3748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
3758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PCMSAMPLEFORMAT_FIXED_8          ((XAuint16) 0x0008)
3768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PCMSAMPLEFORMAT_FIXED_16         ((XAuint16) 0x0010)
3778db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PCMSAMPLEFORMAT_FIXED_20         ((XAuint16) 0x0014)
3788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PCMSAMPLEFORMAT_FIXED_24         ((XAuint16) 0x0018)
3798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PCMSAMPLEFORMAT_FIXED_28         ((XAuint16) 0x001C)
3808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PCMSAMPLEFORMAT_FIXED_32         ((XAuint16) 0x0020)
3818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
3828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XADataFormat_PCM_ {
3838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 formatType;
3848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 numChannels;
3858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 samplesPerSec;
3868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 bitsPerSample;
3878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 containerSize;
3888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 channelMask;
3898db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 endianness;
3908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XADataFormat_PCM;
3918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
3928db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_UNUSED                   ((XAuint32) 0x00000000)
3938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_MONOCHROME               ((XAuint32) 0x00000001)
3948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_8BITRGB332               ((XAuint32) 0x00000002)
3958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_12BITRGB444              ((XAuint32) 0x00000003)
3968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_16BITARGB4444            ((XAuint32) 0x00000004)
3978db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_16BITARGB1555            ((XAuint32) 0x00000005)
3988db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_16BITRGB565              ((XAuint32) 0x00000006)
3998db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_16BITBGR565              ((XAuint32) 0x00000007)
4008db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_18BITRGB666              ((XAuint32) 0x00000008)
4018db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_18BITARGB1665            ((XAuint32) 0x00000009)
4028db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_19BITARGB1666            ((XAuint32) 0x0000000A)
4038db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_24BITRGB888              ((XAuint32) 0x0000000B)
4048db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_24BITBGR888              ((XAuint32) 0x0000000C)
4058db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_24BITARGB1887            ((XAuint32) 0x0000000D)
4068db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_25BITARGB1888            ((XAuint32) 0x0000000E)
4078db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_32BITBGRA8888            ((XAuint32) 0x0000000F)
4088db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_32BITARGB8888            ((XAuint32) 0x00000010)
4098db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_YUV411PLANAR             ((XAuint32) 0x00000011)
4108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_YUV420PLANAR             ((XAuint32) 0x00000013)
4118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_YUV420SEMIPLANAR         ((XAuint32) 0x00000015)
4128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_YUV422PLANAR             ((XAuint32) 0x00000016)
4138db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_YUV422SEMIPLANAR         ((XAuint32) 0x00000018)
4148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_YCBYCR                   ((XAuint32) 0x00000019)
4158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_YCRYCB                   ((XAuint32) 0x0000001A)
4168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_CBYCRY                   ((XAuint32) 0x0000001B)
4178db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_CRYCBY                   ((XAuint32) 0x0000001C)
4188db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_YUV444INTERLEAVED        ((XAuint32) 0x0000001D)
4198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_RAWBAYER8BIT             ((XAuint32) 0x0000001E)
4208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_RAWBAYER10BIT            ((XAuint32) 0x0000001F)
4218db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_RAWBAYER8BITCOMPRESSED   ((XAuint32) 0x00000020)
4228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_L2                       ((XAuint32) 0x00000021)
4238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_L4                       ((XAuint32) 0x00000022)
4248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_L8                       ((XAuint32) 0x00000023)
4258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_L16                      ((XAuint32) 0x00000024)
4268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_L24                      ((XAuint32) 0x00000025)
4278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_L32                      ((XAuint32) 0x00000026)
4288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_18BITBGR666              ((XAuint32) 0x00000029)
4298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_24BITARGB6666            ((XAuint32) 0x0000002A)
4308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_COLORFORMAT_24BITABGR6666            ((XAuint32) 0x0000002B)
4318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
4328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XADataFormat_RawImage_ {
4338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 formatType;
4348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 colorFormat;
4358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 height;
4368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 width;
4378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 stride;
4388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XADataFormat_RawImage;
4398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
4408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XADataLocator_Address_ {
4418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 locatorType;
4428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void * pAddress;
4438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 length;
4448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XADataLocator_Address;
4458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
4468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_IODEVICE_AUDIOINPUT          ((XAuint32) 0x00000001)
4478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_IODEVICE_LEDARRAY            ((XAuint32) 0x00000002)
4488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_IODEVICE_VIBRA               ((XAuint32) 0x00000003)
4498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_IODEVICE_CAMERA              ((XAuint32) 0x00000004)
4508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_IODEVICE_RADIO               ((XAuint32) 0x00000005)
4518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
4528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XADataLocator_IODevice_ {
4538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 locatorType;
4548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 deviceType;
4558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 deviceID;
4568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAObjectItf device;
4578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XADataLocator_IODevice;
4588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
4598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef void * XANativeHandle;
4608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
4618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XADataLocator_NativeDisplay_{
4628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 locatorType;
4638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XANativeHandle hWindow;
4648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XANativeHandle hDisplay;
4658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XADataLocator_NativeDisplay;
4668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
4678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XADataLocator_OutputMix {
4688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 locatorType;
4698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAObjectItf outputMix;
4708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XADataLocator_OutputMix;
4718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
4728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XADataLocator_URI_ {
4738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 locatorType;
4748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAchar * URI;
4758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XADataLocator_URI;
4768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
4778db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
4788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* ENGINE */
4798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
4808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DEFAULTDEVICEID_AUDIOINPUT   ((XAuint32) 0xFFFFFFFF)
4818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DEFAULTDEVICEID_AUDIOOUTPUT  ((XAuint32) 0xFFFFFFFE)
4828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DEFAULTDEVICEID_LED          ((XAuint32) 0xFFFFFFFD)
4838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DEFAULTDEVICEID_VIBRA        ((XAuint32) 0xFFFFFFFC)
4848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DEFAULTDEVICEID_CAMERA       ((XAuint32) 0xFFFFFFFB)
4858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
4868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_ENGINEOPTION_THREADSAFE      ((XAuint32) 0x00000001)
4878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_ENGINEOPTION_LOSSOFCONTROL   ((XAuint32) 0x00000002)
4888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
4898db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_OBJECTID_ENGINE              ((XAuint32) 0x00000001)
4908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_OBJECTID_LEDDEVICE           ((XAuint32) 0x00000002)
4918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_OBJECTID_VIBRADEVICE         ((XAuint32) 0x00000003)
4928db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_OBJECTID_MEDIAPLAYER         ((XAuint32) 0x00000004)
4938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_OBJECTID_MEDIARECORDER       ((XAuint32) 0x00000005)
4948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_OBJECTID_RADIODEVICE         ((XAuint32) 0x00000006)
4958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_OBJECTID_OUTPUTMIX           ((XAuint32) 0x00000007)
4968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_OBJECTID_METADATAEXTRACTOR   ((XAuint32) 0x00000008)
4978db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_OBJECTID_CAMERADEVICE        ((XAuint32) 0x00000009)
4988db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
4998db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PROFILES_MEDIA_PLAYER            ((XAint16) 0x0001)
5008db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PROFILES_MEDIA_PLAYER_RECORDER   ((XAint16) 0x0002)
5018db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PROFILES_PLUS_MIDI               ((XAint16) 0x0004)
5028db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
5038db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XAEngineOption_ {
5048db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 feature;
5058db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 data;
5068db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XAEngineOption;
5078db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
5088db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API XAresult XAAPIENTRY xaCreateEngine(
5098db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAObjectItf * pEngine,
5108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 numOptions,
5118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    const XAEngineOption * pEngineOptions,
5128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 numInterfaces,
5138db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    const XAInterfaceID * pInterfaceIds,
5148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    const XAboolean * pInterfaceRequired
5158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten);
5168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
5178db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API XAresult XAAPIENTRY xaQueryNumSupportedEngineInterfaces(
5188db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 * pNumSupportedInterfaces
5198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten);
5208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
5218db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API XAresult XAAPIENTRY xaQuerySupportedEngineInterfaces(
5228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 index,
5238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAInterfaceID * pInterfaceId
5248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten);
5258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
5268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XALEDDescriptor_ {
5278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint8 ledCount;
5288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint8 primaryLED;
5298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 colorMask;
5308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XALEDDescriptor;
5318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
5328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XAVibraDescriptor_ {
5338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAboolean supportsFrequency;
5348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAboolean supportsIntensity;
5358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAmilliHertz minFrequency;
5368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAmilliHertz maxFrequency;
5378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XAVibraDescriptor;
5388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
5398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
5408db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_ENGINE;
5418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
5428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAEngineItf_;
5438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XAEngineItf_ * const * XAEngineItf;
5448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
5458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAEngineItf_ {
5468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*CreateCameraDevice) (
5478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAEngineItf self,
5488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAObjectItf * pDevice,
5498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 deviceID,
5508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 numInterfaces,
5518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAInterfaceID * pInterfaceIds,
5528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAboolean * pInterfaceRequired
5538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
5548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*CreateRadioDevice) (
5558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAEngineItf self,
5568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAObjectItf * pDevice,
5578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 numInterfaces,
5588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAInterfaceID * pInterfaceIds,
5598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAboolean * pInterfaceRequired
5608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
5618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*CreateLEDDevice) (
5628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAEngineItf self,
5638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAObjectItf * pDevice,
5648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 deviceID,
5658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 numInterfaces,
5668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAInterfaceID * pInterfaceIds,
5678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAboolean * pInterfaceRequired
5688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
5698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten       XAresult (*CreateVibraDevice) (
5708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAEngineItf self,
5718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAObjectItf * pDevice,
5728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 deviceID,
5738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 numInterfaces,
5748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAInterfaceID * pInterfaceIds,
5758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAboolean * pInterfaceRequired
5768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
5778db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*CreateMediaPlayer) (
5788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAEngineItf self,
5798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAObjectItf * pPlayer,
5808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XADataSource * pDataSrc,
5818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XADataSource * pBankSrc,
5828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XADataSink * pAudioSnk,
5838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XADataSink * pImageVideoSnk,
5848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XADataSink * pVibra,
5858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XADataSink * pLEDArray,
5868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 numInterfaces,
5878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAInterfaceID * pInterfaceIds,
5888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAboolean * pInterfaceRequired
5898db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
5908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*CreateMediaRecorder) (
5918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAEngineItf self,
5928db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAObjectItf * pRecorder,
5938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XADataSource * pAudioSrc,
5948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XADataSource * pImageVideoSrc,
5958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XADataSink * pDataSnk,
5968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 numInterfaces,
5978db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAInterfaceID * pInterfaceIds,
5988db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAboolean * pInterfaceRequired
5998db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
6008db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*CreateOutputMix) (
6018db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAEngineItf self,
6028db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAObjectItf * pMix,
6038db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 numInterfaces,
6048db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAInterfaceID * pInterfaceIds,
6058db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAboolean * pInterfaceRequired
6068db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
6078db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*CreateMetadataExtractor) (
6088db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAEngineItf self,
6098db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAObjectItf * pMetadataExtractor,
6108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XADataSource * pDataSource,
6118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 numInterfaces,
6128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAInterfaceID * pInterfaceIds,
6138db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAboolean * pInterfaceRequired
6148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
6158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*CreateExtensionObject) (
6168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAEngineItf self,
6178db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAObjectItf * pObject,
6188db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        void * pParameters,
6198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 objectID,
6208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 numInterfaces,
6218db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAInterfaceID * pInterfaceIds,
6228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAboolean * pInterfaceRequired
6238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
6248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetImplementationInfo) (
6258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAEngineItf self,
6268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pMajor,
6278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pMinor,
6288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pStep,
6298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAchar * pImplementationText
6308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
6318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*QuerySupportedProfiles) (
6328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAEngineItf self,
6338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAint16 * pProfilesSupported
6348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
6358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*QueryNumSupportedInterfaces) (
6368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAEngineItf self,
6378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 objectID,
6388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pNumSupportedInterfaces
6398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
6408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*QuerySupportedInterfaces) (
6418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAEngineItf self,
6428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 objectID,
6438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 index,
6448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAInterfaceID * pInterfaceId
6458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
6468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*QueryNumSupportedExtensions) (
6478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAEngineItf self,
6488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pNumExtensions
6498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
6508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*QuerySupportedExtension) (
6518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAEngineItf self,
6528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 index,
6538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAchar * pExtensionName,
6548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAint16 * pNameLength
6558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
6568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*IsExtensionSupported) (
6578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAEngineItf self,
6588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAchar * pExtensionName,
6598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean * pSupported
6608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
6618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*QueryLEDCapabilities) (
6628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAEngineItf self,
6638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 *pIndex,
6648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pLEDDeviceID,
6658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XALEDDescriptor * pDescriptor
6668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
6678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*QueryVibraCapabilities) (
6688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAEngineItf self,
6698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 *pIndex,
6708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pVibraDeviceID,
6718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAVibraDescriptor * pDescriptor
6728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
6738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
6748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
6758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* THREAD SYNC */
6768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
6778db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_THREADSYNC;
6788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
6798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAThreadSyncItf_;
6808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XAThreadSyncItf_ * const * XAThreadSyncItf;
6818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
6828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAThreadSyncItf_ {
6838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*EnterCriticalSection) (
6848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAThreadSyncItf self
6858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
6868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*ExitCriticalSection) (
6878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAThreadSyncItf self
6888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
6898db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
6908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
6918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
6928db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
6938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /*****************************************************************/
6948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /* PLAYBACK RELATED INTERFACES, STRUCTS AND DEFINES              */
6958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /*****************************************************************/
6968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
6978db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* PLAY */
6988db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
6998db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_TIME_UNKNOWN                     ((XAuint32) 0xFFFFFFFF)
7008db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
7018db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PLAYEVENT_HEADATEND              ((XAuint32) 0x00000001)
7028db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PLAYEVENT_HEADATMARKER           ((XAuint32) 0x00000002)
7038db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PLAYEVENT_HEADATNEWPOS           ((XAuint32) 0x00000004)
7048db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PLAYEVENT_HEADMOVING             ((XAuint32) 0x00000008)
7058db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PLAYEVENT_HEADSTALLED            ((XAuint32) 0x00000010)
7068db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
7078db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PLAYSTATE_STOPPED                ((XAuint32) 0x00000001)
7088db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PLAYSTATE_PAUSED                 ((XAuint32) 0x00000002)
7098db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PLAYSTATE_PLAYING                ((XAuint32) 0x00000003)
7108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
7118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PREFETCHEVENT_STATUSCHANGE       ((XAuint32) 0x00000001)
7128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PREFETCHEVENT_FILLLEVELCHANGE    ((XAuint32) 0x00000002)
7138db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
7148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PREFETCHSTATUS_UNDERFLOW         ((XAuint32) 0x00000001)
7158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PREFETCHSTATUS_SUFFICIENTDATA    ((XAuint32) 0x00000002)
7168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_PREFETCHSTATUS_OVERFLOW          ((XAuint32) 0x00000003)
7178db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
7188db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SEEKMODE_FAST                    ((XAuint32) 0x0001)
7198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_SEEKMODE_ACCURATE                ((XAuint32) 0x0002)
7208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
7218db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_PLAY;
7228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
7238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAPlayItf_;
7248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XAPlayItf_ * const * XAPlayItf;
7258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
7268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef void (XAAPIENTRY * xaPlayCallback) (
7278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAPlayItf caller,
7288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void * pContext,
7298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 event
7308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten);
7318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
7328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAPlayItf_ {
7338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetPlayState) (
7348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAPlayItf self,
7358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 state
7368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
7378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetPlayState) (
7388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAPlayItf self,
7398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pState
7408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
7418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetDuration) (
7428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAPlayItf self,
7438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmillisecond * pMsec
7448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
7458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetPosition) (
7468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAPlayItf self,
7478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmillisecond * pMsec
7488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
7498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*RegisterCallback) (
7508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAPlayItf self,
7518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        xaPlayCallback callback,
7528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        void * pContext
7538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
7548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetCallbackEventsMask) (
7558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAPlayItf self,
7568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 eventFlags
7578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
7588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetCallbackEventsMask) (
7598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAPlayItf self,
7608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pEventFlags
7618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
7628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetMarkerPosition) (
7638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAPlayItf self,
7648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmillisecond mSec
7658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
7668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*ClearMarkerPosition) (
7678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAPlayItf self
7688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
7698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetMarkerPosition) (
7708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAPlayItf self,
7718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmillisecond * pMsec
7728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
7738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetPositionUpdatePeriod) (
7748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAPlayItf self,
7758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmillisecond mSec
7768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
7778db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetPositionUpdatePeriod) (
7788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAPlayItf self,
7798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmillisecond * pMsec
7808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
7818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
7828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
7838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* PLAYBACK RATE */
7848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
7858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RATEPROP_STAGGEREDVIDEO      ((XAuint32) 0x00000001)
7868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RATEPROP_SMOOTHVIDEO         ((XAuint32) 0x00000002)
7878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RATEPROP_SILENTAUDIO         ((XAuint32) 0x00000100)
7888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RATEPROP_STAGGEREDAUDIO      ((XAuint32) 0x00000200)
7898db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RATEPROP_NOPITCHCORAUDIO     ((XAuint32) 0x00000400)
7908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RATEPROP_PITCHCORAUDIO       ((XAuint32) 0x00000800)
7918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
7928db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_PLAYBACKRATE;
7938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
7948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAPlaybackRateItf_;
7958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XAPlaybackRateItf_ * const * XAPlaybackRateItf;
7968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
7978db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAPlaybackRateItf_ {
7988db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetRate) (
7998db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAPlaybackRateItf self,
8008db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XApermille rate
8018db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
8028db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetRate) (
8038db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAPlaybackRateItf self,
8048db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XApermille * pRate
8058db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
8068db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetPropertyConstraints) (
8078db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAPlaybackRateItf self,
8088db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 constraints
8098db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
8108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetProperties) (
8118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAPlaybackRateItf self,
8128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pProperties
8138db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
8148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetCapabilitiesOfRate) (
8158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAPlaybackRateItf self,
8168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XApermille rate,
8178db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pCapabilities
8188db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
8198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetRateRange) (
8208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAPlaybackRateItf self,
8218db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint8 index,
8228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XApermille * pMinRate,
8238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XApermille * pMaxRate,
8248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XApermille * pStepSize,
8258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pCapabilities
8268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
8278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
8288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
8298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* PREFETCH STATUS */
8308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
8318db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_PREFETCHSTATUS;
8328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
8338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAPrefetchStatusItf_;
8348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XAPrefetchStatusItf_
8358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    * const * XAPrefetchStatusItf;
8368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
8378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef void (XAAPIENTRY * xaPrefetchCallback) (
8388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAPrefetchStatusItf caller,
8398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void * pContext,
8408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 event
8418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten);
8428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
8438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAPrefetchStatusItf_ {
8448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetPrefetchStatus) (
8458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAPrefetchStatusItf self,
8468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pStatus
8478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
8488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetFillLevel) (
8498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAPrefetchStatusItf self,
8508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XApermille * pLevel
8518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
8528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*RegisterCallback) (
8538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAPrefetchStatusItf self,
8548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        xaPrefetchCallback callback,
8558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        void * pContext
8568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
8578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetCallbackEventsMask) (
8588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAPrefetchStatusItf self,
8598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 eventFlags
8608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
8618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetCallbackEventsMask) (
8628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAPrefetchStatusItf self,
8638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pEventFlags
8648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
8658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetFillUpdatePeriod) (
8668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAPrefetchStatusItf self,
8678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XApermille period
8688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
8698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetFillUpdatePeriod) (
8708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAPrefetchStatusItf self,
8718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XApermille * pPeriod
8728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
8738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
8748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
8758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* SEEK */
8768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
8778db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_SEEK;
8788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
8798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XASeekItf_;
8808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XASeekItf_ * const * XASeekItf;
8818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
8828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XASeekItf_ {
8838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetPosition) (
8848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XASeekItf self,
8858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmillisecond pos,
8868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 seekMode
8878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
8888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetLoop) (
8898db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XASeekItf self,
8908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean loopEnable,
8918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmillisecond startPos,
8928db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmillisecond endPos
8938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
8948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetLoop) (
8958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XASeekItf self,
8968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean * pLoopEnabled,
8978db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmillisecond * pStartPos,
8988db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmillisecond * pEndPos
8998db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
9008db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
9018db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
9028db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* VOLUME */
9038db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
9048db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_VOLUME;
9058db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
9068db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAVolumeItf_;
9078db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XAVolumeItf_ * const * XAVolumeItf;
9088db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
9098db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAVolumeItf_ {
9108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetVolumeLevel) (
9118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAVolumeItf self,
9128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmillibel level
9138db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
9148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetVolumeLevel) (
9158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAVolumeItf self,
9168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmillibel * pLevel
9178db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
9188db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetMaxVolumeLevel) (
9198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAVolumeItf self,
9208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmillibel * pMaxLevel
9218db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
9228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetMute) (
9238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAVolumeItf self,
9248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean mute
9258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
9268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetMute) (
9278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAVolumeItf self,
9288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean * pMute
9298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
9308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*EnableStereoPosition) (
9318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAVolumeItf self,
9328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean enable
9338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
9348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*IsEnabledStereoPosition) (
9358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAVolumeItf self,
9368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean * pEnable
9378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
9388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetStereoPosition) (
9398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAVolumeItf self,
9408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XApermille stereoPosition
9418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
9428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetStereoPosition) (
9438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAVolumeItf self,
9448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XApermille * pStereoPosition
9458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
9468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
9478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
9488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* IMAGE CONTROL */
9498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
9508db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_IMAGECONTROLS;
9518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
9528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAImageControlsItf_;
9538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XAImageControlsItf_ * const * XAImageControlsItf;
9548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
9558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAImageControlsItf_ {
9568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetBrightness) (
9578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAImageControlsItf self,
9588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 brightness
9598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
9608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetBrightness) (
9618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAImageControlsItf self,
9628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pBrightness
9638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
9648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetContrast) (
9658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAImageControlsItf self,
9668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAint32 contrast
9678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
9688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetContrast) (
9698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAImageControlsItf self,
9708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAint32 * pContrast
9718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
9728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetGamma) (
9738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAImageControlsItf self,
9748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XApermille gamma
9758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
9768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetGamma) (
9778db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAImageControlsItf self,
9788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XApermille * pGamma
9798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
9808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetSupportedGammaSettings) (
9818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAImageControlsItf self,
9828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XApermille * pMinValue,
9838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XApermille * pMaxValue,
9848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pNumSettings,
9858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XApermille ** ppSettings
9868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
9878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
9888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
9898db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* IMAGE EFFECT */
9908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
9918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_IMAGEEFFECT_MONOCHROME       ((XAuint32) 0x00000001)
9928db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_IMAGEEFFECT_NEGATIVE         ((XAuint32) 0x00000002)
9938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_IMAGEEFFECT_SEPIA            ((XAuint32) 0x00000003)
9948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_IMAGEEFFECT_EMBOSS           ((XAuint32) 0x00000004)
9958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_IMAGEEFFECT_PAINTBRUSH       ((XAuint32) 0x00000005)
9968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_IMAGEEFFECT_SOLARIZE         ((XAuint32) 0x00000006)
9978db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_IMAGEEFFECT_CARTOON          ((XAuint32) 0x00000007)
9988db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
9998db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_IMAGEEFFECTS;
10008db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
10018db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAImageEffectsItf_;
10028db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XAImageEffectsItf_ * const * XAImageEffectsItf;
10038db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
10048db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAImageEffectsItf_ {
10058db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*QuerySupportedImageEffects) (
10068db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAImageEffectsItf self,
10078db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 index,
10088db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pImageEffectId
10098db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
10108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*EnableImageEffect) (
10118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAImageEffectsItf self,
10128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 imageEffectID
10138db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
10148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*DisableImageEffect) (
10158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAImageEffectsItf self,
10168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 imageEffectID
10178db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
10188db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*IsImageEffectEnabled) (
10198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAImageEffectsItf self,
10208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 imageEffectID,
10218db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean * pEnabled
10228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
10238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
10248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
10258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* VIDEO POST PROCESSING */
10268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
10278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOMIRROR_NONE             ((XAuint32) 0x00000001)
10288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOMIRROR_VERTICAL         ((XAuint32) 0x00000002)
10298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOMIRROR_HORIZONTAL       ((XAuint32) 0x00000003)
10308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOMIRROR_BOTH             ((XAuint32) 0x00000004)
10318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
10328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOSCALE_STRETCH           ((XAuint32) 0x00000001)
10338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOSCALE_FIT               ((XAuint32) 0x00000002)
10348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOSCALE_CROP              ((XAuint32) 0x00000003)
10358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
10368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RENDERINGHINT_NONE           ((XAuint32) 0x00000000)
10378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RENDERINGHINT_ANTIALIASING   ((XAuint32) 0x00000001)
10388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
10398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XARectangle_ {
10408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 left;
10418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 top;
10428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 width;
10438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 height;
10448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XARectangle;
10458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
10468db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_VIDEOPOSTPROCESSING;
10478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
10488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAVideoPostProcessingItf_;
10498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XAVideoPostProcessingItf_ * const * XAVideoPostProcessingItf;
10508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
10518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAVideoPostProcessingItf_ {
10528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetRotation) (
10538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAVideoPostProcessingItf self,
10548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmillidegree rotation
10558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
10568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*IsArbitraryRotationSupported) (
10578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAVideoPostProcessingItf self,
10588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean *pSupported
10598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
10608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetScaleOptions) (
10618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAVideoPostProcessingItf self,
10628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 scaleOptions,
10638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 backgroundColor,
10648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 renderingHints
10658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
10668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetSourceRectangle) (
10678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAVideoPostProcessingItf self,
10688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XARectangle *pSrcRect
10698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
10708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetDestinationRectangle) (
10718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAVideoPostProcessingItf self,
10728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XARectangle *pDestRect
10738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
10748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetMirror) (
10758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAVideoPostProcessingItf self,
10768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 mirror
10778db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
10788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*Commit) (
10798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAVideoPostProcessingItf self
10808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
10818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
10828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
10838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
10848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
10858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /*****************************************************************/
10868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /* CAPTURING INTERFACES, STRUCTS AND DEFINES                     */
10878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /*****************************************************************/
10888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
10898db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* RECORD */
10908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
10918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RECORDEVENT_HEADATLIMIT          ((XAuint32) 0x00000001)
10928db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RECORDEVENT_HEADATMARKER         ((XAuint32) 0x00000002)
10938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RECORDEVENT_HEADATNEWPOS         ((XAuint32) 0x00000004)
10948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RECORDEVENT_HEADMOVING           ((XAuint32) 0x00000008)
10958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RECORDEVENT_HEADSTALLED          ((XAuint32) 0x00000010)
10968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RECORDEVENT_BUFFER_FULL          ((XAuint32) 0x00000020)
10978db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
10988db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RECORDSTATE_STOPPED          ((XAuint32) 0x00000001)
10998db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RECORDSTATE_PAUSED           ((XAuint32) 0x00000002)
11008db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RECORDSTATE_RECORDING        ((XAuint32) 0x00000003)
11018db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
11028db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_RECORD;
11038db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
11048db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XARecordItf_;
11058db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XARecordItf_ * const * XARecordItf;
11068db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
11078db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef void (XAAPIENTRY * xaRecordCallback) (
11088db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XARecordItf caller,
11098db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void * pContext,
11108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 event
11118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten);
11128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
11138db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XARecordItf_ {
11148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetRecordState) (
11158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARecordItf self,
11168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 state
11178db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
11188db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetRecordState) (
11198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARecordItf self,
11208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pState
11218db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
11228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetDurationLimit) (
11238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARecordItf self,
11248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmillisecond msec
11258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
11268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetPosition) (
11278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARecordItf self,
11288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmillisecond * pMsec
11298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
11308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*RegisterCallback) (
11318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARecordItf self,
11328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        xaRecordCallback callback,
11338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        void * pContext
11348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
11358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetCallbackEventsMask) (
11368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARecordItf self,
11378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 eventFlags
11388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
11398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetCallbackEventsMask) (
11408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARecordItf self,
11418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pEventFlags
11428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
11438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetMarkerPosition) (
11448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARecordItf self,
11458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmillisecond mSec
11468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
11478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*ClearMarkerPosition) (
11488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARecordItf self
11498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
11508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetMarkerPosition) (
11518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARecordItf self,
11528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmillisecond * pMsec
11538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
11548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetPositionUpdatePeriod) (
11558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARecordItf self,
11568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmillisecond mSec
11578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
11588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetPositionUpdatePeriod) (
11598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARecordItf self,
11608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmillisecond * pMsec
11618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
11628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
11638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
11648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* SNAPSHOT */
11658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
11668db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_SNAPSHOT;
11678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
11688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XASnapshotItf_;
11698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XASnapshotItf_ * const * XASnapshotItf;
11708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
11718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef void (XAAPIENTRY * xaSnapshotInitiatedCallback) (
11728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XASnapshotItf caller,
11738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void * context
11748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten);
11758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
11768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef void (XAAPIENTRY * xaSnapshotTakenCallback) (
11778db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XASnapshotItf caller,
11788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void * context,
11798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 numberOfPicsTaken,
11808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    const XADataSink * image
11818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten);
11828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
11838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XASnapshotItf_ {
11848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*InitiateSnapshot) (
11858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XASnapshotItf self,
11868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 numberOfPictures,
11878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 fps,
11888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean freezeViewFinder,
11898db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XADataSink sink,
11908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        xaSnapshotInitiatedCallback initiatedCallback,
11918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        xaSnapshotTakenCallback takenCallback,
11928db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        void * pContext
11938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
11948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*TakeSnapshot) (
11958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XASnapshotItf self
11968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
11978db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*CancelSnapshot) (
11988db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XASnapshotItf self
11998db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
12008db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*ReleaseBuffers) (
12018db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XASnapshotItf self,
12028db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XADataSink * image
12038db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
12048db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetMaxPicsPerBurst) (
12058db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XASnapshotItf self,
12068db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * maxNumberOfPictures
12078db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
12088db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetBurstFPSRange) (
12098db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XASnapshotItf self,
12108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * minFPS,
12118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * maxFPS
12128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
12138db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetShutterFeedback) (
12148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XASnapshotItf self,
12158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean enabled
12168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
12178db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetShutterFeedback) (
12188db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XASnapshotItf self,
12198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean * enabled
12208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
12218db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
12228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
12238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
12248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
12258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /*****************************************************************/
12268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /* METADATA RELATED INTERFACES, STRUCTS AND DEFINES              */
12278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /*****************************************************************/
12288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
12298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* METADATA (EXTRACTION, INSERTION, TRAVERSAL) */
12308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
12318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_NODE_PARENT                  ((XAuint32) 0xFFFFFFFF)
12328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
12338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_ROOT_NODE_ID                 ((XAint32) 0x7FFFFFFF)
12348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
12358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_NODETYPE_UNSPECIFIED         ((XAuint32) 0x00000001)
12368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_NODETYPE_AUDIO               ((XAuint32) 0x00000002)
12378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_NODETYPE_VIDEO               ((XAuint32) 0x00000003)
12388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_NODETYPE_IMAGE               ((XAuint32) 0x00000004)
12398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
12408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CHARACTERENCODING_UNKNOWN            ((XAuint32) 0x00000000)
12418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CHARACTERENCODING_BINARY             ((XAuint32) 0x00000001)
12428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CHARACTERENCODING_ASCII              ((XAuint32) 0x00000002)
12438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CHARACTERENCODING_BIG5               ((XAuint32) 0x00000003)
12448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CHARACTERENCODING_CODEPAGE1252       ((XAuint32) 0x00000004)
12458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CHARACTERENCODING_GB2312             ((XAuint32) 0x00000005)
12468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CHARACTERENCODING_HZGB2312           ((XAuint32) 0x00000006)
12478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CHARACTERENCODING_GB12345            ((XAuint32) 0x00000007)
12488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CHARACTERENCODING_GB18030            ((XAuint32) 0x00000008)
12498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CHARACTERENCODING_GBK                ((XAuint32) 0x00000009)
12508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CHARACTERENCODING_IMAPUTF7           ((XAuint32) 0x0000000A)
12518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CHARACTERENCODING_ISO2022JP          ((XAuint32) 0x0000000B)
12528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CHARACTERENCODING_ISO2022JP1         ((XAuint32) 0x0000000B)
12538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CHARACTERENCODING_ISO88591           ((XAuint32) 0x0000000C)
12548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CHARACTERENCODING_ISO885910          ((XAuint32) 0x0000000D)
12558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CHARACTERENCODING_ISO885913          ((XAuint32) 0x0000000E)
12568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CHARACTERENCODING_ISO885914          ((XAuint32) 0x0000000F)
12578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CHARACTERENCODING_ISO885915          ((XAuint32) 0x00000010)
12588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CHARACTERENCODING_ISO88592           ((XAuint32) 0x00000011)
12598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CHARACTERENCODING_ISO88593           ((XAuint32) 0x00000012)
12608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CHARACTERENCODING_ISO88594           ((XAuint32) 0x00000013)
12618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CHARACTERENCODING_ISO88595           ((XAuint32) 0x00000014)
12628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CHARACTERENCODING_ISO88596           ((XAuint32) 0x00000015)
12638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CHARACTERENCODING_ISO88597           ((XAuint32) 0x00000016)
12648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CHARACTERENCODING_ISO88598           ((XAuint32) 0x00000017)
12658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CHARACTERENCODING_ISO88599           ((XAuint32) 0x00000018)
12668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CHARACTERENCODING_ISOEUCJP           ((XAuint32) 0x00000019)
12678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CHARACTERENCODING_SHIFTJIS           ((XAuint32) 0x0000001A)
12688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CHARACTERENCODING_SMS7BIT            ((XAuint32) 0x0000001B)
12698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CHARACTERENCODING_UTF7               ((XAuint32) 0x0000001C)
12708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CHARACTERENCODING_UTF8               ((XAuint32) 0x0000001D)
12718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CHARACTERENCODING_JAVACONFORMANTUTF8 ((XAuint32) 0x0000001E)
12728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CHARACTERENCODING_UTF16BE            ((XAuint32) 0x0000001F)
12738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CHARACTERENCODING_UTF16LE            ((XAuint32) 0x00000020)
12748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
12758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_METADATA_FILTER_KEY          ((XAuint8) 0x01)
12768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_METADATA_FILTER_LANG         ((XAuint8) 0x02)
12778db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_METADATA_FILTER_ENCODING     ((XAuint8) 0x04)
12788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
12798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_METADATATRAVERSALMODE_ALL    ((XAuint32) 0x00000001)
12808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_METADATATRAVERSALMODE_NODE   ((XAuint32) 0x00000002)
12818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
12828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#ifndef _KHRONOS_KEYS_
12838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define _KHRONOS_KEYS_
12848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define KHRONOS_TITLE                   "KhronosTitle"
12858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define KHRONOS_ALBUM                   "KhronosAlbum"
12868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define KHRONOS_TRACK_NUMBER            "KhronosTrackNumber"
12878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define KHRONOS_ARTIST                  "KhronosArtist"
12888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define KHRONOS_GENRE                   "KhronosGenre"
12898db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define KHRONOS_YEAR                    "KhronosYear"
12908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define KHRONOS_COMMENT                 "KhronosComment"
12918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define KHRONOS_ARTIST_URL              "KhronosArtistURL"
12928db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define KHRONOS_CONTENT_URL             "KhronosContentURL"
12938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define KHRONOS_RATING                  "KhronosRating"
12948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define KHRONOS_ALBUM_ART               "KhronosAlbumArt"
12958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define KHRONOS_COPYRIGHT               "KhronosCopyright"
12968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#endif /* _KHRONOS_KEYS_ */
12978db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
12988db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
12998db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XAMetadataInfo_ {
13008db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 size;
13018db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 encoding;
13028db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    const XAchar langCountry[16];
13038db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint8 data[1];
13048db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XAMetadataInfo;
13058db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
13068db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_METADATAEXTRACTION;
13078db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
13088db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAMetadataExtractionItf_;
13098db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XAMetadataExtractionItf_
13108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    * const * XAMetadataExtractionItf;
13118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
13128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAMetadataExtractionItf_ {
13138db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetItemCount) (
13148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAMetadataExtractionItf self,
13158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pItemCount
13168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
13178db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetKeySize) (
13188db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAMetadataExtractionItf self,
13198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 index,
13208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pKeySize
13218db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
13228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetKey) (
13238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAMetadataExtractionItf self,
13248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 index,
13258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 keySize,
13268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAMetadataInfo * pKey
13278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
13288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetValueSize) (
13298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAMetadataExtractionItf self,
13308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 index,
13318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pValueSize
13328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
13338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetValue) (
13348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAMetadataExtractionItf self,
13358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 index,
13368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 valueSize,
13378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAMetadataInfo * pValue
13388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
13398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*AddKeyFilter) (
13408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAMetadataExtractionItf self,
13418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 keySize,
13428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const void * pKey,
13438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 keyEncoding,
13448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAchar * pValueLangCountry,
13458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 valueEncoding,
13468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint8 filterMask
13478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
13488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*ClearKeyFilter) (
13498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAMetadataExtractionItf self
13508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
13518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
13528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
13538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
13548db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_METADATAINSERTION;
13558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
13568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAMetadataInsertionItf_;
13578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XAMetadataInsertionItf_
13588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    * const * XAMetadataInsertionItf;
13598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
13608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef void (XAAPIENTRY * xaMetadataInsertionCallback) (
13618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAMetadataInsertionItf caller,
13628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void * pContext,
13638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAMetadataInfo * pKey,
13648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAMetadataInfo * pValue,
13658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAint32 nodeID,
13668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAboolean result
13678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten);
13688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
13698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAMetadataInsertionItf_ {
13708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*CreateChildNode) (
13718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAMetadataInsertionItf self,
13728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAint32 parentNodeID,
13738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 type,
13748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAchar * mimeType,
13758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAint32 * pChildNodeID
13768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
13778db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetSupportedKeysCount) (
13788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAMetadataInsertionItf self,
13798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAint32 nodeID,
13808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean * pFreeKeys,
13818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pKeyCount,
13828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pEncodingCount
13838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
13848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetKeySize) (
13858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAMetadataInsertionItf self,
13868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAint32 nodeID,
13878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 keyIndex,
13888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pKeySize
13898db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
13908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetKey) (
13918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAMetadataInsertionItf self,
13928db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAint32 nodeID,
13938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 keyIndex,
13948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 keySize,
13958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAMetadataInfo * pKey
13968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
13978db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetFreeKeysEncoding) (
13988db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAMetadataInsertionItf self,
13998db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAint32 nodeID,
14008db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 encodingIndex,
14018db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pEncoding
14028db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
14038db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*InsertMetadataItem) (
14048db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAMetadataInsertionItf self,
14058db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAint32 nodeID,
14068db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAMetadataInfo * pKey,
14078db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAMetadataInfo * pValue,
14088db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean overwrite
14098db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
14108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*RegisterCallback) (
14118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAMetadataInsertionItf self,
14128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        xaMetadataInsertionCallback callback,
14138db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        void * pContext
14148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
14158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
14168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
14178db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
14188db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_METADATATRAVERSAL;
14198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
14208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAMetadataTraversalItf_;
14218db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XAMetadataTraversalItf_
14228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    *  const *  XAMetadataTraversalItf;
14238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
14248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAMetadataTraversalItf_ {
14258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetMode) (
14268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAMetadataTraversalItf self,
14278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 mode
14288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
14298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetChildCount) (
14308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAMetadataTraversalItf self,
14318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pCount
14328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
14338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetChildMIMETypeSize) (
14348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAMetadataTraversalItf self,
14358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 index,
14368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pSize
14378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
14388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetChildInfo) (
14398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAMetadataTraversalItf self,
14408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 index,
14418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAint32 * pNodeID,
14428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pType,
14438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 size,
14448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAchar * pMimeType
14458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
14468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetActiveNode) (
14478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAMetadataTraversalItf self,
14488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 index
14498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
14508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
14518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
14528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* DYNAMIC SOURCE */
14538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
14548db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_DYNAMICSOURCE;
14558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
14568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XADynamicSourceItf_;
14578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XADynamicSourceItf_ * const * XADynamicSourceItf;
14588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
14598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XADynamicSourceItf_ {
14608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetSource) (
14618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XADynamicSourceItf self,
14628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XADataSource * pDataSource
14638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
14648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
14658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
14668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
14678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
14688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /*****************************************************************/
14698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /*  I/O DEVICES RELATED INTERFACES, STRUCTS AND DEFINES          */
14708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /*****************************************************************/
14718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
14728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* CAMERA AND CAMERA CAPABILITIES */
14738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
14748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_APERTUREMODE_MANUAL               ((XAuint32) 0x00000001)
14758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_APERTUREMODE_AUTO                 ((XAuint32) 0x00000002)
14768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
14778db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_AUTOEXPOSURESTATUS_SUCCESS        ((XAuint32) 0x00000001)
14788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_AUTOEXPOSURESTATUS_UNDEREXPOSURE  ((XAuint32) 0x00000002)
14798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_AUTOEXPOSURESTATUS_OVEREXPOSURE   ((XAuint32) 0x00000003)
14808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
14818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERACBEVENT_ROTATION                   ((XAuint32) 0x00000001)
14828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERACBEVENT_FLASHREADY                 ((XAuint32) 0x00000002)
14838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERACBEVENT_FOCUSSTATUS                ((XAuint32) 0x00000003)
14848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERACBEVENT_EXPOSURESTATUS             ((XAuint32) 0x00000004)
14858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERACBEVENT_WHITEBALANCELOCKED         ((XAuint32) 0x00000005)
14868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERACBEVENT_ZOOMSTATUS                 ((XAuint32) 0x00000006)
14878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
14888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERACAP_FLASH                          ((XAuint32) 0x00000001)
14898db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERACAP_AUTOFOCUS                      ((XAuint32) 0x00000002)
14908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERACAP_CONTINUOUSAUTOFOCUS            ((XAuint32) 0x00000004)
14918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERACAP_MANUALFOCUS                    ((XAuint32) 0x00000008)
14928db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERACAP_AUTOEXPOSURE                   ((XAuint32) 0x00000010)
14938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERACAP_MANUALEXPOSURE                 ((XAuint32) 0x00000020)
14948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERACAP_AUTOISOSENSITIVITY             ((XAuint32) 0x00000040)
14958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERACAP_MANUALISOSENSITIVITY           ((XAuint32) 0x00000080)
14968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERACAP_AUTOAPERTURE                   ((XAuint32) 0x00000100)
14978db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERACAP_MANUALAPERTURE                 ((XAuint32) 0x00000200)
14988db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERACAP_AUTOSHUTTERSPEED               ((XAuint32) 0x00000400)
14998db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERACAP_MANUALSHUTTERSPEED             ((XAuint32) 0x00000800)
15008db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERACAP_AUTOWHITEBALANCE               ((XAuint32) 0x00001000)
15018db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERACAP_MANUALWHITEBALANCE             ((XAuint32) 0x00002000)
15028db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERACAP_OPTICALZOOM                    ((XAuint32) 0x00004000)
15038db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERACAP_DIGITALZOOM                    ((XAuint32) 0x00008000)
15048db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERACAP_METERING                       ((XAuint32) 0x00010000)
15058db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERACAP_BRIGHTNESS                     ((XAuint32) 0x00020000)
15068db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERACAP_CONTRAST                       ((XAuint32) 0x00040000)
15078db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERACAP_GAMMA                          ((XAuint32) 0x00080000)
15088db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
15098db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
15108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_EXPOSUREMODE_MANUAL               ((XAuint32) 0x00000001)
15118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_EXPOSUREMODE_AUTO                 ((XAuint32) 0x00000002)
15128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_EXPOSUREMODE_NIGHT                ((XAuint32) 0x00000004)
15138db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_EXPOSUREMODE_BACKLIGHT            ((XAuint32) 0x00000008)
15148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_EXPOSUREMODE_SPOTLIGHT            ((XAuint32) 0x00000010)
15158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_EXPOSUREMODE_SPORTS               ((XAuint32) 0x00000020)
15168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_EXPOSUREMODE_SNOW                 ((XAuint32) 0x00000040)
15178db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_EXPOSUREMODE_BEACH                ((XAuint32) 0x00000080)
15188db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_EXPOSUREMODE_LARGEAPERTURE        ((XAuint32) 0x00000100)
15198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_EXPOSUREMODE_SMALLAPERTURE        ((XAuint32) 0x00000200)
15208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_EXPOSUREMODE_PORTRAIT             ((XAuint32) 0x0000400)
15218db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_EXPOSUREMODE_NIGHTPORTRAIT        ((XAuint32) 0x00000800)
15228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
15238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_FLASHMODE_OFF                     ((XAuint32) 0x00000001)
15248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_FLASHMODE_ON                      ((XAuint32) 0x00000002)
15258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_FLASHMODE_AUTO                    ((XAuint32) 0x00000004)
15268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_FLASHMODE_REDEYEREDUCTION         ((XAuint32) 0x00000008)
15278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_FLASHMODE_REDEYEREDUCTION_AUTO    ((XAuint32) 0x00000010)
15288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_FLASHMODE_FILLIN                  ((XAuint32) 0x00000020)
15298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_FLASHMODE_TORCH                   ((XAuint32) 0x00000040)
15308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
15318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_FOCUSMODE_MANUAL                  ((XAuint32) 0x00000001)
15328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_FOCUSMODE_AUTO                    ((XAuint32) 0x00000002)
15338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_FOCUSMODE_CENTROID                ((XAuint32) 0x00000004)
15348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_FOCUSMODE_CONTINUOUS_AUTO         ((XAuint32) 0x00000008)
15358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_FOCUSMODE_CONTINUOUS_CENTROID     ((XAuint32) 0x00000010)
15368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
15378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_FOCUSMODESTATUS_OFF               ((XAuint32) 0x00000001)
15388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_FOCUSMODESTATUS_REQUEST           ((XAuint32) 0x00000002)
15398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_FOCUSMODESTATUS_REACHED           ((XAuint32) 0x00000003)
15408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_FOCUSMODESTATUS_UNABLETOREACH     ((XAuint32) 0x00000004)
15418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_FOCUSMODESTATUS_LOST              ((XAuint32) 0x00000005)
15428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
15438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_ISOSENSITIVITYMODE_MANUAL         ((XAuint32) 0x00000001)
15448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_ISOSENSITIVITYMODE_AUTO           ((XAuint32) 0x00000002)
15458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
15468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_LOCK_AUTOFOCUS                    ((XAuint32) 0x00000001)
15478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_LOCK_AUTOEXPOSURE                 ((XAuint32) 0x00000002)
15488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_LOCK_AUTOWHITEBALANCE             ((XAuint32) 0x00000004)
15498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
15508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_METERINGMODE_AVERAGE              ((XAuint32) 0x00000001)
15518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_METERINGMODE_SPOT                 ((XAuint32) 0x00000002)
15528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_METERINGMODE_MATRIX               ((XAuint32) 0x00000004)
15538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
15548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_SHUTTERSPEEDMODE_MANUAL           ((XAuint32) 0x00000001)
15558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_SHUTTERSPEEDMODE_AUTO             ((XAuint32) 0x00000002)
15568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
15578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_WHITEBALANCEMODE_MANUAL           ((XAuint32) 0x00000001)
15588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_WHITEBALANCEMODE_AUTO             ((XAuint32) 0x00000002)
15598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_WHITEBALANCEMODE_SUNLIGHT         ((XAuint32) 0x00000004)
15608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_WHITEBALANCEMODE_CLOUDY           ((XAuint32) 0x00000008)
15618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_WHITEBALANCEMODE_SHADE            ((XAuint32) 0x00000010)
15628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_WHITEBALANCEMODE_TUNGSTEN         ((XAuint32) 0x00000020)
15638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_WHITEBALANCEMODE_FLUORESCENT      ((XAuint32) 0x00000040)
15648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_WHITEBALANCEMODE_INCANDESCENT     ((XAuint32) 0x00000080)
15658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_WHITEBALANCEMODE_FLASH            ((XAuint32) 0x00000100)
15668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_WHITEBALANCEMODE_SUNSET           ((XAuint32) 0x00000200)
15678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
15688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_ZOOM_SLOW                         ((XAuint32) 50)
15698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_ZOOM_NORMAL                       ((XAuint32) 100)
15708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_ZOOM_FAST                         ((XAuint32) 200)
15718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_CAMERA_ZOOM_FASTEST                      ((XAuint32) 0xFFFFFFFF)
15728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
15738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_FOCUSPOINTS_ONE                          ((XAuint32) 0x00000001)
15748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_FOCUSPOINTS_THREE_3X1                    ((XAuint32) 0x00000002)
15758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_FOCUSPOINTS_FIVE_CROSS                   ((XAuint32) 0x00000003)
15768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_FOCUSPOINTS_SEVEN_CROSS                  ((XAuint32) 0x00000004)
15778db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_FOCUSPOINTS_NINE_SQUARE                  ((XAuint32) 0x00000005)
15788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_FOCUSPOINTS_ELEVEN_CROSS                 ((XAuint32) 0x00000006)
15798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_FOCUSPOINTS_TWELVE_3X4                   ((XAuint32) 0x00000007)
15808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_FOCUSPOINTS_TWELVE_4X3                   ((XAuint32) 0x00000008)
15818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_FOCUSPOINTS_SIXTEEN_SQUARE               ((XAuint32) 0x00000009)
15828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_FOCUSPOINTS_CUSTOM                       ((XAuint32) 0x0000000A)
15838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
15848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XAFocusPointPosition_ {
15858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 left;
15868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 top;
15878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 width;
15888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 height;
15898db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XAFocusPointPosition;
15908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
15918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_ORIENTATION_UNKNOWN                      ((XAuint32) 0x00000001)
15928db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_ORIENTATION_OUTWARDS                     ((XAuint32) 0x00000002)
15938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_ORIENTATION_INWARDS                      ((XAuint32) 0x00000003)
15948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
15958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XACameraDescriptor_ {
15968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAchar * name;
15978db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 maxWidth;
15988db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 maxHeight;
15998db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 orientation;
16008db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 featuresSupported;
16018db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 exposureModesSupported;
16028db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 flashModesSupported;
16038db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 focusModesSupported;
16048db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 meteringModesSupported;
16058db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 whiteBalanceModesSupported;
16068db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XACameraDescriptor;
16078db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
16088db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_CAMERACAPABILITIES;
16098db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
16108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XACameraCapabilitiesItf_;
16118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XACameraCapabilitiesItf_
16128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    * const * XACameraCapabilitiesItf;
16138db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
16148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XACameraCapabilitiesItf_ {
16158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetCameraCapabilities) (
16168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraCapabilitiesItf self,
16178db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 *pIndex,
16188db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pCameraDeviceID,
16198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraDescriptor * pDescriptor
16208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
16218db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*QueryFocusRegionPatterns) (
16228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraCapabilitiesItf self,
16238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 cameraDeviceID,
16248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pPatternID,
16258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pFocusPattern,
16268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pCustomPoints1,
16278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pCustomPoints2
16288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
16298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetSupportedAutoLocks) (
16308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraCapabilitiesItf self,
16318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 cameraDeviceID,
16328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pNumCombinations,
16338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 ** ppLocks
16348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
16358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetSupportedFocusManualSettings) (
16368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraCapabilitiesItf self,
16378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 cameraDeviceID,
16388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean macroEnabled,
16398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmillimeter * pMinValue,
16408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmillimeter * pMaxValue,
16418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pNumSettings,
16428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmillimeter ** ppSettings
16438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
16448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetSupportedISOSensitivitySettings) (
16458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraCapabilitiesItf self,
16468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 cameraDeviceID,
16478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pMinValue,
16488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pMaxValue,
16498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pNumSettings,
16508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 ** ppSettings
16518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
16528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetSupportedApertureManualSettings) (
16538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraCapabilitiesItf self,
16548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 cameraDeviceID,
16558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pMinValue,
16568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pMaxValue,
16578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pNumSettings,
16588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 ** ppSettings
16598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
16608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetSupportedShutterSpeedManualSettings) (
16618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraCapabilitiesItf self,
16628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 cameraDeviceID,
16638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmicrosecond * pMinValue,
16648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmicrosecond * pMaxValue,
16658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pNumSettings,
16668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmicrosecond ** ppSettings
16678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
16688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetSupportedWhiteBalanceManualSettings) (
16698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraCapabilitiesItf self,
16708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 cameraDeviceID,
16718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pMinValue,
16728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pMaxValue,
16738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pNumSettings,
16748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 ** ppSettings
16758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
16768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetSupportedZoomSettings) (
16778db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraCapabilitiesItf self,
16788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 cameraDeviceID,
16798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean digitalEnabled,
16808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean macroEnabled,
16818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XApermille * pMaxValue,
16828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pNumSettings,
16838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XApermille ** ppSettings,
16848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean * pSpeedSupported
16858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
16868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
16878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
16888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
16898db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_CAMERA;
16908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
16918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XACameraItf_;
16928db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XACameraItf_ * const * XACameraItf;
16938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
16948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef void (XAAPIENTRY * xaCameraCallback) (
16958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XACameraItf caller,
16968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void * pContext,
16978db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 eventId,
16988db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 eventData
16998db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten);
17008db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
17018db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XACameraItf_ {
17028db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*RegisterCallback) (
17038db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraItf self,
17048db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        xaCameraCallback callback,
17058db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        void * pContext
17068db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
17078db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetFlashMode) (
17088db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraItf self,
17098db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 flashMode
17108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
17118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetFlashMode) (
17128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraItf self,
17138db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pFlashMode
17148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
17158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*IsFlashReady) (
17168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraItf self,
17178db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean * pReady
17188db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
17198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetFocusMode) (
17208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraItf self,
17218db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 focusMode,
17228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmillimeter manualSetting,
17238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean macroEnabled
17248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
17258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetFocusMode) (
17268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraItf self,
17278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pFocusMode,
17288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmillimeter * pManualSetting,
17298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean * pMacroEnabled
17308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
17318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetFocusRegionPattern) (
17328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraItf self,
17338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 focusPattern,
17348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 activePoints1,
17358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 activePoints2
17368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
17378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetFocusRegionPattern) (
17388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraItf self,
17398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pFocusPattern,
17408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pActivePoints1,
17418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pActivePoints2
17428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
17438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetFocusRegionPositions) (
17448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraItf self,
17458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pNumPositionEntries,
17468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAFocusPointPosition * pFocusPosition
17478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
17488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetFocusModeStatus) (
17498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraItf self,
17508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pFocusStatus,
17518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pRegionStatus1,
17528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pRegionStatus2
17538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
17548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetMeteringMode) (
17558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraItf self,
17568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 meteringMode
17578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
17588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetMeteringMode) (
17598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraItf self,
17608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pMeteringMode
17618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
17628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetExposureMode) (
17638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraItf self,
17648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 exposure,
17658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 compensation
17668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
17678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetExposureMode) (
17688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraItf self,
17698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pExposure,
17708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pCompensation
17718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
17728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetISOSensitivity) (
17738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraItf self,
17748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 isoSensitivity,
17758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 manualSetting
17768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
17778db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetISOSensitivity) (
17788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraItf self,
17798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pIsoSensitivity,
17808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pManualSetting
17818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
17828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetAperture) (
17838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraItf self,
17848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 aperture,
17858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 manualSetting
17868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
17878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetAperture) (
17888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraItf self,
17898db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pAperture,
17908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pManualSetting
17918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
17928db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetShutterSpeed) (
17938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraItf self,
17948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 shutterSpeed,
17958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmicrosecond manualSetting
17968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
17978db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetShutterSpeed) (
17988db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraItf self,
17998db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pShutterSpeed,
18008db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmicrosecond * pManualSetting
18018db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
18028db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetWhiteBalance) (
18038db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraItf self,
18048db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 whiteBalance,
18058db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 manualSetting
18068db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
18078db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetWhiteBalance) (
18088db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraItf self,
18098db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pWhiteBalance,
18108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pManualSetting
18118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
18128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetAutoLocks) (
18138db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraItf self,
18148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 locks
18158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
18168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetAutoLocks) (
18178db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraItf self,
18188db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * locks
18198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
18208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetZoom) (
18218db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraItf self,
18228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XApermille zoom,
18238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean digitalEnabled,
18248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 speed,
18258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean async
18268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
18278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetZoom) (
18288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XACameraItf self,
18298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XApermille * pZoom,
18308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean * pDigital
18318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
18328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
18338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
18348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* AUDIO I/O DEVICE CAPABILITIES */
18358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
18368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DEVCONNECTION_INTEGRATED                 ((XAint16) 0x0001)
18378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DEVCONNECTION_ATTACHED_WIRED             ((XAint16) 0x0100)
18388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DEVCONNECTION_ATTACHED_WIRELESS          ((XAint16) 0x0200)
18398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DEVCONNECTION_NETWORK                    ((XAint16) 0x0400)
18408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
18418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DEVLOCATION_HANDSET                      ((XAint16) 0x0001)
18428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DEVLOCATION_HEADSET                      ((XAint16) 0x0002)
18438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DEVLOCATION_CARKIT                       ((XAint16) 0x0003)
18448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DEVLOCATION_DOCK                         ((XAint16) 0x0004)
18458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DEVLOCATION_REMOTE                       ((XAint16) 0x0005)
18468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
18478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DEVSCOPE_UNKNOWN                         ((XAint16) 0x0001)
18488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DEVSCOPE_ENVIRONMENT                     ((XAint16) 0x0002)
18498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DEVSCOPE_USER                            ((XAint16) 0x0003)
18508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
18518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XAAudioInputDescriptor_ {
18528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAchar * deviceName;
18538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAint16 deviceConnection;
18548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAint16 deviceScope;
18558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAint16 deviceLocation;
18568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAboolean isForTelephony;
18578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAmilliHertz minSampleRate;
18588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAmilliHertz maxSampleRate;
18598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAboolean isFreqRangeContinuous;
18608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAmilliHertz * samplingRatesSupported;
18618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAint16 numOfSamplingRatesSupported;
18628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAint16 maxChannels;
18638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XAAudioInputDescriptor;
18648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
18658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XAAudioOutputDescriptor_ {
18668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAchar *pDeviceName;
18678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAint16 deviceConnection;
18688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAint16 deviceScope;
18698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAint16 deviceLocation;
18708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAboolean isForTelephony;
18718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAmilliHertz minSampleRate;
18728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAmilliHertz maxSampleRate;
18738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAboolean isFreqRangeContinuous;
18748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAmilliHertz *samplingRatesSupported;
18758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAint16 numOfSamplingRatesSupported;
18768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAint16 maxChannels;
18778db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XAAudioOutputDescriptor;
18788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
18798db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_AUDIOIODEVICECAPABILITIES;
18808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
18818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAAudioIODeviceCapabilitiesItf_;
18828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XAAudioIODeviceCapabilitiesItf_
18838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    * const * XAAudioIODeviceCapabilitiesItf;
18848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
18858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef void (XAAPIENTRY * xaAvailableAudioInputsChangedCallback) (
18868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAAudioIODeviceCapabilitiesItf caller,
18878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void * pContext,
18888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 deviceID,
18898db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAint32 numInputs,
18908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAboolean isNew
18918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten);
18928db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
18938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef void (XAAPIENTRY * xaAvailableAudioOutputsChangedCallback) (
18948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAAudioIODeviceCapabilitiesItf caller,
18958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void * pContext,
18968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 deviceID,
18978db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAint32 numOutputs,
18988db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAboolean isNew
18998db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten);
19008db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
19018db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef void (XAAPIENTRY * xaDefaultDeviceIDMapChangedCallback) (
19028db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAAudioIODeviceCapabilitiesItf caller,
19038db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void * pContext,
19048db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten	XAboolean isOutput,
19058db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAint32 numDevices
19068db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten);
19078db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
19088db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAAudioIODeviceCapabilitiesItf_ {
19098db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetAvailableAudioInputs) (
19108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAAudioIODeviceCapabilitiesItf self,
19118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAint32 * pNumInputs,
19128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pInputDeviceIDs
19138db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
19148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*QueryAudioInputCapabilities) (
19158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAAudioIODeviceCapabilitiesItf self,
19168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 deviceID,
19178db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAAudioInputDescriptor * pDescriptor
19188db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
19198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*RegisterAvailableAudioInputsChangedCallback) (
19208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAAudioIODeviceCapabilitiesItf self,
19218db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        xaAvailableAudioInputsChangedCallback callback,
19228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        void * pContext
19238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
19248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetAvailableAudioOutputs) (
19258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAAudioIODeviceCapabilitiesItf self,
19268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAint32 * pNumOutputs,
19278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pOutputDeviceIDs
19288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
19298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*QueryAudioOutputCapabilities) (
19308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAAudioIODeviceCapabilitiesItf self,
19318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 deviceID,
19328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAAudioOutputDescriptor * pDescriptor
19338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
19348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*RegisterAvailableAudioOutputsChangedCallback) (
19358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAAudioIODeviceCapabilitiesItf self,
19368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        xaAvailableAudioOutputsChangedCallback callback,
19378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        void * pContext
19388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
19398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*RegisterDefaultDeviceIDMapChangedCallback) (
19408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAAudioIODeviceCapabilitiesItf self,
19418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        xaDefaultDeviceIDMapChangedCallback callback,
19428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        void * pContext
19438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
19448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetAssociatedAudioInputs) (
19458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAAudioIODeviceCapabilitiesItf self,
19468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 deviceID,
19478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAint32 * pNumAudioInputs,
19488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pAudioInputDeviceIDs
19498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
19508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetAssociatedAudioOutputs) (
19518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAAudioIODeviceCapabilitiesItf self,
19528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 deviceID,
19538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAint32 * pNumAudioOutputs,
19548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pAudioOutputDeviceIDs
19558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
19568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetDefaultAudioDevices) (
19578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAAudioIODeviceCapabilitiesItf self,
19588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 defaultDeviceID,
19598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAint32 *pNumAudioDevices,
19608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 *pAudioDeviceIDs
19618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
19628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*QuerySampleFormatsSupported) (
19638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAAudioIODeviceCapabilitiesItf self,
19648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 deviceID,
19658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmilliHertz samplingRate,
19668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAint32 *pSampleFormats,
19678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAint32 *pNumOfSampleFormats
19688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
19698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
19708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
19718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* DEVICE VOLUME */
19728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
19738db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_DEVICEVOLUME;
19748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
19758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XADeviceVolumeItf_;
19768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XADeviceVolumeItf_ * const * XADeviceVolumeItf;
19778db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
19788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XADeviceVolumeItf_ {
19798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetVolumeScale) (
19808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XADeviceVolumeItf self,
19818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 deviceID,
19828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAint32 * pMinValue,
19838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAint32 * pMaxValue,
19848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean * pIsMillibelScale
19858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
19868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetVolume) (
19878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XADeviceVolumeItf self,
19888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 deviceID,
19898db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAint32 volume
19908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
19918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetVolume) (
19928db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XADeviceVolumeItf self,
19938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 deviceID,
19948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAint32 * pVolume
19958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
19968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
19978db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
19988db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* EQUALIZER */
19998db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
20008db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_EQUALIZER_UNDEFINED    ((XAuint16) 0xFFFF)
20018db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
20028db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_EQUALIZER;
20038db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
20048db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAEqualizerItf_;
20058db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XAEqualizerItf_ * const * XAEqualizerItf;
20068db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
20078db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAEqualizerItf_ {
20088db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetEnabled) (
20098db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAEqualizerItf self,
20108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean enabled
20118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
20128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*IsEnabled) (
20138db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAEqualizerItf self,
20148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean * pEnabled
20158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
20168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetNumberOfBands) (
20178db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAEqualizerItf self,
20188db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint16 * pNumBands
20198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
20208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetBandLevelRange) (
20218db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAEqualizerItf self,
20228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmillibel * pMin,
20238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmillibel * pMax
20248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
20258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetBandLevel) (
20268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAEqualizerItf self,
20278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint16 band,
20288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmillibel level
20298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
20308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetBandLevel) (
20318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAEqualizerItf self,
20328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint16 band,
20338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmillibel * pLevel
20348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
20358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetCenterFreq) (
20368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAEqualizerItf self,
20378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint16 band,
20388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmilliHertz * pCenter
20398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
20408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetBandFreqRange) (
20418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAEqualizerItf self,
20428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint16 band,
20438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmilliHertz * pMin,
20448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmilliHertz * pMax
20458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
20468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetBand) (
20478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAEqualizerItf self,
20488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmilliHertz frequency,
20498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint16 * pBand
20508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
20518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetCurrentPreset) (
20528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAEqualizerItf self,
20538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint16 * pPreset
20548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
20558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*UsePreset) (
20568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAEqualizerItf self,
20578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint16 index
20588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
20598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetNumberOfPresets) (
20608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAEqualizerItf self,
20618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint16 * pNumPresets
20628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
20638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetPresetName) (
20648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAEqualizerItf self,
20658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint16 index,
20668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAchar ** ppName
20678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
20688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
20698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
20708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* OUTPUT MIX */
20718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
20728db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_OUTPUTMIX;
20738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
20748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAOutputMixItf_;
20758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XAOutputMixItf_ * const * XAOutputMixItf;
20768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
20778db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef void (XAAPIENTRY * xaMixDeviceChangeCallback) (
20788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAOutputMixItf caller,
20798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void * pContext
20808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten);
20818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
20828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAOutputMixItf_ {
20838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetDestinationOutputDeviceIDs) (
20848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAOutputMixItf self,
20858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAint32 * pNumDevices,
20868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pDeviceIDs
20878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
20888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*RegisterDeviceChangeCallback) (
20898db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAOutputMixItf self,
20908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        xaMixDeviceChangeCallback callback,
20918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        void * pContext
20928db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
20938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*ReRoute) (
20948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAOutputMixItf self,
20958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAint32 numOutputDevices,
20968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pOutputDeviceIDs
20978db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
20988db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
20998db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
21008db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* RADIO */
21018db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
21028db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_FREQRANGE_FMEUROAMERICA                  ((XAuint8) 0x01)
21038db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_FREQRANGE_FMJAPAN                        ((XAuint8) 0x02)
21048db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_FREQRANGE_AMLW                           ((XAuint8) 0x03)
21058db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_FREQRANGE_AMMW                           ((XAuint8) 0x04)
21068db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_FREQRANGE_AMSW                           ((XAuint8) 0x05)
21078db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
21088db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RADIO_EVENT_ANTENNA_STATUS_CHANGED       ((XAuint32) 0x00000001)
21098db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RADIO_EVENT_FREQUENCY_CHANGED            ((XAuint32) 0x00000002)
21108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RADIO_EVENT_FREQUENCY_RANGE_CHANGED      ((XAuint32) 0x00000003)
21118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RADIO_EVENT_PRESET_CHANGED               ((XAuint32) 0x00000004)
21128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RADIO_EVENT_SEEK_COMPLETED               ((XAuint32) 0x00000005)
21138db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
21148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_STEREOMODE_MONO                          ((XAuint32) 0x00000000)
21158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_STEREOMODE_STEREO                        ((XAuint32) 0x00000001)
21168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_STEREOMODE_AUTO                          ((XAuint32) 0x00000002)
21178db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
21188db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_RADIO;
21198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
21208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XARadioItf_;
21218db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XARadioItf_ * const * XARadioItf;
21228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
21238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef void (XAAPIENTRY * xaRadioCallback) (
21248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XARadioItf caller,
21258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void * pContext,
21268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 event,
21278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 eventIntData,
21288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAboolean eventBooleanData
21298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten);
21308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
21318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XARadioItf_ {
21328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetFreqRange) (
21338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARadioItf self,
21348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint8 range
21358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
21368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetFreqRange) (
21378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARadioItf self,
21388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint8 * pRange
21398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
21408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*IsFreqRangeSupported) (
21418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARadioItf self,
21428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint8 range,
21438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean * pSupported
21448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
21458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetFreqRangeProperties) (
21468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARadioItf self,
21478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint8 range,
21488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pMinFreq,
21498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pMaxFreq,
21508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pFreqInterval
21518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
21528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetFrequency) (
21538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARadioItf self,
21548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 freq
21558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
21568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*CancelSetFrequency) (
21578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARadioItf self
21588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
21598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetFrequency) (
21608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARadioItf self,
21618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pFreq
21628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
21638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetSquelch) (
21648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARadioItf self,
21658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean squelch
21668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
21678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetSquelch) (
21688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARadioItf self,
21698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean * pSquelch
21708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
21718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetStereoMode) (
21728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARadioItf self,
21738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 mode
21748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
21758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetStereoMode) (
21768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARadioItf self,
21778db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pMode
21788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
21798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetSignalStrength) (
21808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARadioItf self,
21818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pStrength
21828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
21838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*Seek) (
21848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARadioItf self,
21858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean upwards
21868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
21878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*StopSeeking) (
21888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARadioItf self
21898db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
21908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetNumberOfPresets) (
21918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARadioItf self,
21928db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pNumPresets
21938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
21948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetPreset) (
21958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARadioItf self,
21968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 preset,
21978db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 freq,
21988db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint8 range,
21998db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 mode,
22008db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAchar * pName
22018db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
22028db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetPreset) (
22038db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARadioItf self,
22048db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 preset,
22058db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pFreq,
22068db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint8 * pRange,
22078db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pMode,
22088db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAchar * pName,
22098db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint16 * pNameLength
22108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
22118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*RegisterRadioCallback) (
22128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARadioItf self,
22138db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        xaRadioCallback callback,
22148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        void * pContext
22158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
22168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
22178db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
22188db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* RDS */
22198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
22208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDS_EVENT_NEW_PI                         ((XAuint16) 0x0001)
22218db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDS_EVENT_NEW_PTY                        ((XAuint16) 0x0002)
22228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDS_EVENT_NEW_PS                         ((XAuint16) 0x0004)
22238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDS_EVENT_NEW_RT                         ((XAuint16) 0x0008)
22248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDS_EVENT_NEW_RT_PLUS                    ((XAuint16) 0x0010)
22258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDS_EVENT_NEW_CT                         ((XAuint16) 0x0020)
22268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDS_EVENT_NEW_TA                         ((XAuint16) 0x0040)
22278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDS_EVENT_NEW_TP                         ((XAuint16) 0x0080)
22288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDS_EVENT_NEW_ALARM                      ((XAuint16) 0x0100)
22298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
22308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RDSPTY_NONE \
22318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000000)
22328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RDSPTY_NEWS \
22338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000001)
22348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RDSPTY_CURRENTAFFAIRS \
22358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000002)
22368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RDSPTY_INFORMATION \
22378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000003)
22388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RDSPTY_SPORT \
22398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000004)
22408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RDSPTY_EDUCATION \
22418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000005)
22428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RDSPTY_DRAMA \
22438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000006)
22448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RDSPTY_CULTURE \
22458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000007)
22468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RDSPTY_SCIENCE \
22478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000008)
22488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RDSPTY_VARIEDSPEECH \
22498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000009)
22508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RDSPTY_POPMUSIC \
22518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x0000000A)
22528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RDSPTY_ROCKMUSIC \
22538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x0000000B)
22548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RDSPTY_EASYLISTENING \
22558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x0000000C)
22568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RDSPTY_LIGHTCLASSICAL \
22578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x0000000D)
22588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RDSPTY_SERIOUSCLASSICAL \
22598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x0000000E)
22608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RDSPTY_OTHERMUSIC \
22618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x0000000F)
22628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RDSPTY_WEATHER \
22638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000010)
22648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RDSPTY_FINANCE \
22658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000011)
22668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RDSPTY_CHILDRENSPROGRAMMES \
22678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000012)
22688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RDSPTY_SOCIALAFFAIRS \
22698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000013)
22708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RDSPTY_RELIGION \
22718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000014)
22728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RDSPTY_PHONEIN \
22738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000015)
22748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RDSPTY_TRAVEL \
22758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000016)
22768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RDSPTY_LEISURE \
22778db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000017)
22788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RDSPTY_JAZZMUSIC \
22798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000018)
22808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RDSPTY_COUNTRYMUSIC \
22818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000019)
22828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RDSPTY_NATIONALMUSIC \
22838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x0000001A)
22848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RDSPTY_OLDIESMUSIC \
22858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x0000001B)
22868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RDSPTY_FOLKMUSIC \
22878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x0000001C)
22888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RDSPTY_DOCUMENTARY \
22898db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x0000001D)
22908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RDSPTY_ALARMTEST \
22918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x0000001E)
22928db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RDSPTY_ALARM \
22938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x0000001F)
22948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
22958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RBDSPTY_NONE \
22968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000000)
22978db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RBDSPTY_NEWS \
22988db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000001)
22998db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RBDSPTY_INFORMATION \
23008db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000002)
23018db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RBDSPTY_SPORTS \
23028db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000003)
23038db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RBDSPTY_TALK \
23048db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000004)
23058db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RBDSPTY_ROCK \
23068db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000005)
23078db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RBDSPTY_CLASSICROCK \
23088db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000006)
23098db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RBDSPTY_ADULTHITS \
23108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000007)
23118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RBDSPTY_SOFTROCK \
23128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000008)
23138db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RBDSPTY_TOP40 \
23148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000009)
23158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RBDSPTY_COUNTRY \
23168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x0000000A)
23178db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RBDSPTY_OLDIES \
23188db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x0000000B)
23198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RBDSPTY_SOFT \
23208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x0000000C)
23218db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RBDSPTY_NOSTALGIA \
23228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x0000000D)
23238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RBDSPTY_JAZZ \
23248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x0000000E)
23258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RBDSPTY_CLASSICAL \
23268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x0000000F)
23278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RBDSPTY_RHYTHMANDBLUES \
23288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000010)
23298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RBDSPTY_SOFTRHYTHMANDBLUES \
23308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000011)
23318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RBDSPTY_LANGUAGE \
23328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000012)
23338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RBDSPTY_RELIGIOUSMUSIC \
23348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000013)
23358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RBDSPTY_RELIGIOUSTALK \
23368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000014)
23378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RBDSPTY_PERSONALITY \
23388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000015)
23398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RBDSPTY_PUBLIC \
23408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000016)
23418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RBDSPTY_COLLEGE \
23428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000017)
23438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RBDSPTY_UNASSIGNED1 \
23448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000018)
23458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RBDSPTY_UNASSIGNED2 \
23468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x00000019)
23478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RBDSPTY_UNASSIGNED3 \
23488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x0000001A)
23498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RBDSPTY_UNASSIGNED4 \
23508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x0000001B)
23518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RBDSPTY_UNASSIGNED5 \
23528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x0000001C)
23538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RBDSPTY_WEATHER \
23548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x0000001D)
23558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RBDSPTY_EMERGENCYTEST \
23568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x0000001E)
23578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSPROGRAMMETYPE_RBDSPTY_EMERGENCY \
23588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    ((XAuint32) 0x0000001F)
23598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
23608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_ITEMTITLE              ((XAuint8) 0x01)
23618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_ITEMALBUM              ((XAuint8) 0x02)
23628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_ITEMTRACKNUMBER        ((XAuint8) 0x03)
23638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_ITEMARTIST             ((XAuint8) 0x04)
23648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_ITEMCOMPOSITION        ((XAuint8) 0x05)
23658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_ITEMMOVEMENT           ((XAuint8) 0x06)
23668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_ITEMCONDUCTOR          ((XAuint8) 0x07)
23678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_ITEMCOMPOSER           ((XAuint8) 0x08)
23688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_ITEMBAND               ((XAuint8) 0x09)
23698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_ITEMCOMMENT            ((XAuint8) 0x0A)
23708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_ITEMGENRE              ((XAuint8) 0x0B)
23718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_INFONEWS               ((XAuint8) 0x0C)
23728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_INFONEWSLOCAL          ((XAuint8) 0x0D)
23738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_INFOSTOCKMARKET        ((XAuint8) 0x0E)
23748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_INFOSPORT              ((XAuint8) 0x0F)
23758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_INFOLOTTERY            ((XAuint8) 0x10)
23768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_INFOHOROSCOPE          ((XAuint8) 0x11)
23778db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_INFODAILYDIVERSION     ((XAuint8) 0x12)
23788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_INFOHEALTH             ((XAuint8) 0x13)
23798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_INFOEVENT              ((XAuint8) 0x14)
23808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_INFOSZENE              ((XAuint8) 0x15)
23818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_INFOCINEMA             ((XAuint8) 0x16)
23828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_INFOTV                 ((XAuint8) 0x17)
23838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_INFODATETIME           ((XAuint8) 0x18)
23848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_INFOWEATHER            ((XAuint8) 0x19)
23858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_INFOTRAFFIC            ((XAuint8) 0x1A)
23868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_INFOALARM              ((XAuint8) 0x1B)
23878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_INFOADVISERTISEMENT    ((XAuint8) 0x1C)
23888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_INFOURL                ((XAuint8) 0x1D)
23898db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_INFOOTHER              ((XAuint8) 0x1E)
23908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_STATIONNAMESHORT       ((XAuint8) 0x1F)
23918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_STATIONNAMELONG        ((XAuint8) 0x20)
23928db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_PROGRAMNOW             ((XAuint8) 0x21)
23938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_PROGRAMNEXT            ((XAuint8) 0x22)
23948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_PROGRAMPART            ((XAuint8) 0x23)
23958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_PROGRAMHOST            ((XAuint8) 0x24)
23968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_PROFRAMEDITORIALSTAFF  ((XAuint8) 0x25)
23978db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_PROGRAMFREQUENCY       ((XAuint8) 0x26)
23988db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_PROGRAMHOMEPAGE        ((XAuint8) 0x27)
23998db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_PROGRAMSUBCHANNEL      ((XAuint8) 0x28)
24008db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_PHONEHOTLINE           ((XAuint8) 0x29)
24018db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_PHONESTUDIO            ((XAuint8) 0x2A)
24028db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_PHONEOTHER             ((XAuint8) 0x2B)
24038db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_SMSSTUDIO              ((XAuint8) 0x2C)
24048db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_SMSOTHER               ((XAuint8) 0x2D)
24058db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_EMAILHOTLINE           ((XAuint8) 0x2E)
24068db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_EMAILSTUDIO            ((XAuint8) 0x2F)
24078db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_EMAILOTHER             ((XAuint8) 0x30)
24088db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_MMSOTHER               ((XAuint8) 0x31)
24098db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_CHAT                   ((XAuint8) 0x32)
24108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_CHATCENTER             ((XAuint8) 0x33)
24118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_VOTEQUESTION           ((XAuint8) 0x34)
24128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_VOTECENTER             ((XAuint8) 0x35)
24138db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_OPENCLASS45            ((XAuint8) 0x36)
24148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_OPENCLASS55            ((XAuint8) 0x37)
24158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_OPENCLASS56            ((XAuint8) 0x38)
24168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_OPENCLASS57            ((XAuint8) 0x39)
24178db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_OPENCLASS58            ((XAuint8) 0x3A)
24188db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_PLACE                  ((XAuint8) 0x3B)
24198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_APPOINTMENT            ((XAuint8) 0x3C)
24208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_IDENTIFIER             ((XAuint8) 0x3D)
24218db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_PURCHASE               ((XAuint8) 0x3E)
24228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RDSRTPLUS_GETDATA                ((XAuint8) 0x3F)
24238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
24248db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_RDS;
24258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
24268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XARDSItf_;
24278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XARDSItf_ * const * XARDSItf;
24288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
24298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef void (XAAPIENTRY * xaGetODAGroupCallback) (
24308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XARadioItf caller,
24318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void * pContext,
24328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAboolean success,
24338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAint16 group,
24348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint16 message
24358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten);
24368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
24378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef void (XAAPIENTRY * xaNewODADataCallback) (
24388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XARDSItf caller,
24398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void * pContext,
24408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAint16 group,
24418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint64 data
24428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten);
24438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
24448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef void (XAAPIENTRY * xaRDSCallback) (
24458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XARDSItf caller,
24468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void * pContext,
24478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint16 event,
24488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint8 eventData
24498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten);
24508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
24518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XARDSItf_ {
24528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*QueryRDSSignal) (
24538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARDSItf self,
24548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean * isSignal
24558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
24568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetProgrammeServiceName) (
24578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARDSItf self,
24588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAchar * ps
24598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
24608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetRadioText) (
24618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARDSItf self,
24628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAchar * rt
24638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
24648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetRadioTextPlus) (
24658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARDSItf self,
24668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint8 contentType,
24678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAchar * informationElement,
24688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAchar * descriptor,
24698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint8 * descriptorContentType
24708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
24718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetProgrammeType) (
24728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARDSItf self,
24738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pty
24748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
24758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetProgrammeTypeString) (
24768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARDSItf self,
24778db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean isLengthMax16,
24788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAchar * pty
24798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
24808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetProgrammeIdentificationCode) (
24818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARDSItf self,
24828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAint16 * pi
24838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
24848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetClockTime) (
24858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARDSItf self,
24868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAtime * dateAndTime
24878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
24888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetTrafficAnnouncement) (
24898db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARDSItf self,
24908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean * ta
24918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
24928db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetTrafficProgramme) (
24938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARDSItf self,
24948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean * tp
24958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
24968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SeekByProgrammeType) (
24978db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARDSItf self,
24988db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 pty,
24998db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean upwards
25008db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
25018db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SeekTrafficAnnouncement) (
25028db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARDSItf self,
25038db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean upwards
25048db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
25058db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SeekTrafficProgramme) (
25068db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARDSItf self,
25078db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean upwards
25088db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
25098db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetAutomaticSwitching) (
25108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARDSItf self,
25118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean automatic
25128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
25138db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetAutomaticSwitching) (
25148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARDSItf self,
25158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean * automatic
25168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
25178db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetAutomaticTrafficAnnouncement) (
25188db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARDSItf self,
25198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean automatic
25208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
25218db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetAutomaticTrafficAnnouncement) (
25228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARDSItf self,
25238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean * automatic
25248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
25258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetODAGroup) (
25268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARDSItf self,
25278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint16 AID,
25288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        xaGetODAGroupCallback callback,
25298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        void * pContext
25308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
25318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SubscribeODAGroup) (
25328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARDSItf self,
25338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAint16 group,
25348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean useErrorCorrection
25358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
25368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*UnsubscribeODAGroup) (
25378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARDSItf self,
25388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAint16 group
25398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
25408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*ListODAGroupSubscriptions) (
25418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARDSItf self,
25428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAint16* pGroups,
25438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32* pLength
25448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
25458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*RegisterRDSCallback) (
25468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARDSItf self,
25478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        xaRDSCallback callback,
25488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        void * pContext
25498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
25508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*RegisterODADataCallback) (
25518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XARDSItf self,
25528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        xaNewODADataCallback callback,
25538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        void * pContext
25548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
25558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
25568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
25578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* VIBRA */
25588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
25598db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_VIBRA;
25608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
25618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAVibraItf_;
25628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XAVibraItf_ * const * XAVibraItf;
25638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
25648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAVibraItf_ {
25658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*Vibrate) (
25668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAVibraItf self,
25678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean vibrate
25688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
25698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*IsVibrating) (
25708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAVibraItf self,
25718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean * pVibrating
25728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
25738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetFrequency) (
25748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAVibraItf self,
25758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmilliHertz frequency
25768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
25778db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetFrequency) (
25788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAVibraItf self,
25798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAmilliHertz * pFrequency
25808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
25818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetIntensity) (
25828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAVibraItf self,
25838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XApermille intensity
25848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
25858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetIntensity) (
25868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAVibraItf self,
25878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XApermille * pIntensity
25888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
25898db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
25908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
25918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* LED ARRAY */
25928db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
25938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XAHSL_ {
25948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAmillidegree hue;
25958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XApermille saturation;
25968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XApermille lightness;
25978db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XAHSL;
25988db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
25998db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_LED;
26008db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
26018db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XALEDArrayItf_;
26028db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XALEDArrayItf_ * const * XALEDArrayItf;
26038db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
26048db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XALEDArrayItf_ {
26058db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*ActivateLEDArray) (
26068db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XALEDArrayItf self,
26078db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 lightMask
26088db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
26098db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*IsLEDArrayActivated) (
26108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XALEDArrayItf self,
26118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pLightMask
26128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
26138db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetColor) (
26148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XALEDArrayItf self,
26158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint8 index,
26168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAHSL * pColor
26178db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
26188db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetColor) (
26198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XALEDArrayItf self,
26208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint8 index,
26218db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAHSL * pColor
26228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
26238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
26248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
26258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
26268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
26278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /*****************************************************************/
26288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /* CODEC RELATED INTERFACES, STRUCTS AND DEFINES                 */
26298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten  /*****************************************************************/
26308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
26318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* AUDIO ENCODER AND AUDIO ENCODER/DECODER CAPABILITIES */
26328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
26338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RATECONTROLMODE_CONSTANTBITRATE  ((XAuint32) 0x00000001)
26348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_RATECONTROLMODE_VARIABLEBITRATE  ((XAuint32) 0x00000002)
26358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
26368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOCODEC_PCM                   ((XAuint32) 0x00000001)
26378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOCODEC_MP3                   ((XAuint32) 0x00000002)
26388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOCODEC_AMR                   ((XAuint32) 0x00000003)
26398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOCODEC_AMRWB                 ((XAuint32) 0x00000004)
26408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOCODEC_AMRWBPLUS             ((XAuint32) 0x00000005)
26418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOCODEC_AAC                   ((XAuint32) 0x00000006)
26428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOCODEC_WMA                   ((XAuint32) 0x00000007)
26438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOCODEC_REAL                  ((XAuint32) 0x00000008)
26448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOCODEC_VORBIS                ((XAuint32) 0x00000009)
26458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
26468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOPROFILE_PCM                 ((XAuint32) 0x00000001)
26478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
26488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOPROFILE_MPEG1_L3            ((XAuint32) 0x00000001)
26498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOPROFILE_MPEG2_L3            ((XAuint32) 0x00000002)
26508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOPROFILE_MPEG25_L3           ((XAuint32) 0x00000003)
26518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
26528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOCHANMODE_MP3_MONO           ((XAuint32) 0x00000001)
26538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOCHANMODE_MP3_STEREO         ((XAuint32) 0x00000002)
26548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOCHANMODE_MP3_JOINTSTEREO    ((XAuint32) 0x00000003)
26558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOCHANMODE_MP3_DUAL           ((XAuint32) 0x00000004)
26568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
26578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOPROFILE_AMR                 ((XAuint32) 0x00000001)
26588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
26598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOSTREAMFORMAT_CONFORMANCE    ((XAuint32) 0x00000001)
26608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOSTREAMFORMAT_IF1            ((XAuint32) 0x00000002)
26618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOSTREAMFORMAT_IF2            ((XAuint32) 0x00000003)
26628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOSTREAMFORMAT_FSF            ((XAuint32) 0x00000004)
26638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOSTREAMFORMAT_RTPPAYLOAD     ((XAuint32) 0x00000005)
26648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOSTREAMFORMAT_ITU            ((XAuint32) 0x00000006)
26658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
26668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOPROFILE_AMRWB               ((XAuint32) 0x00000001)
26678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
26688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOPROFILE_AMRWBPLUS           ((XAuint32) 0x00000001)
26698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
26708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOPROFILE_AAC_AAC             ((XAuint32) 0x00000001)
26718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
26728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOMODE_AAC_MAIN               ((XAuint32) 0x00000001)
26738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOMODE_AAC_LC                 ((XAuint32) 0x00000002)
26748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOMODE_AAC_SSR                ((XAuint32) 0x00000003)
26758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOMODE_AAC_LTP                ((XAuint32) 0x00000004)
26768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOMODE_AAC_HE                 ((XAuint32) 0x00000005)
26778db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOMODE_AAC_SCALABLE           ((XAuint32) 0x00000006)
26788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOMODE_AAC_ERLC               ((XAuint32) 0x00000007)
26798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOMODE_AAC_LD                 ((XAuint32) 0x00000008)
26808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOMODE_AAC_HE_PS              ((XAuint32) 0x00000009)
26818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOMODE_AAC_HE_MPS             ((XAuint32) 0x0000000A)
26828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
26838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOSTREAMFORMAT_MP2ADTS        ((XAuint32) 0x00000001)
26848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOSTREAMFORMAT_MP4ADTS        ((XAuint32) 0x00000002)
26858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOSTREAMFORMAT_MP4LOAS        ((XAuint32) 0x00000003)
26868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOSTREAMFORMAT_MP4LATM        ((XAuint32) 0x00000004)
26878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOSTREAMFORMAT_ADIF           ((XAuint32) 0x00000005)
26888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOSTREAMFORMAT_MP4FF          ((XAuint32) 0x00000006)
26898db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOSTREAMFORMAT_RAW            ((XAuint32) 0x00000007)
26908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
26918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOPROFILE_WMA7                ((XAuint32) 0x00000001)
26928db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOPROFILE_WMA8                ((XAuint32) 0x00000002)
26938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOPROFILE_WMA9                ((XAuint32) 0x00000003)
26948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOPROFILE_WMA10               ((XAuint32) 0x00000004)
26958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
26968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOMODE_WMA_LEVEL1             ((XAuint32) 0x00000001)
26978db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOMODE_WMA_LEVEL2             ((XAuint32) 0x00000002)
26988db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOMODE_WMA_LEVEL3             ((XAuint32) 0x00000003)
26998db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOMODE_WMA_LEVEL4             ((XAuint32) 0x00000004)
27008db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOMODE_WMAPRO_LEVELM0         ((XAuint32) 0x00000005)
27018db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOMODE_WMAPRO_LEVELM1         ((XAuint32) 0x00000006)
27028db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOMODE_WMAPRO_LEVELM2         ((XAuint32) 0x00000007)
27038db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOMODE_WMAPRO_LEVELM3         ((XAuint32) 0x00000008)
27048db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
27058db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOPROFILE_REALAUDIO           ((XAuint32) 0x00000001)
27068db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
27078db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOMODE_REALAUDIO_G2           ((XAuint32) 0x00000001)
27088db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOMODE_REALAUDIO_8            ((XAuint32) 0x00000002)
27098db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOMODE_REALAUDIO_10           ((XAuint32) 0x00000003)
27108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOMODE_REALAUDIO_SURROUND     ((XAuint32) 0x00000004)
27118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
27128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOPROFILE_VORBIS              ((XAuint32) 0x00000001)
27138db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
27148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_AUDIOMODE_VORBIS                 ((XAuint32) 0x00000001)
27158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
27168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
27178db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XAAudioCodecDescriptor_ {
27188db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 maxChannels;
27198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 minBitsPerSample;
27208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 maxBitsPerSample;
27218db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAmilliHertz minSampleRate;
27228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAmilliHertz maxSampleRate;
27238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAboolean isFreqRangeContinuous;
27248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAmilliHertz * pSampleRatesSupported;
27258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 numSampleRatesSupported;
27268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 minBitRate;
27278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 maxBitRate;
27288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAboolean isBitrateRangeContinuous;
27298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 * pBitratesSupported;
27308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 numBitratesSupported;
27318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 profileSetting;
27328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 modeSetting;
27338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XAAudioCodecDescriptor;
27348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
27358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XAAudioEncoderSettings_ {
27368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 encoderId;
27378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 channelsIn;
27388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 channelsOut;
27398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAmilliHertz sampleRate;
27408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 bitRate;
27418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 bitsPerSample;
27428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 rateControl;
27438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 profileSetting;
27448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 levelSetting;
27458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 channelMode;
27468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 streamFormat;
27478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 encodeOptions;
27488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 blockAlignment;
27498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XAAudioEncoderSettings;
27508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
27518db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_AUDIODECODERCAPABILITIES;
27528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
27538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAAudioDecoderCapabilitiesItf_;
27548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XAAudioDecoderCapabilitiesItf_
27558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    * const * XAAudioDecoderCapabilitiesItf;
27568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
27578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAAudioDecoderCapabilitiesItf_ {
27588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetAudioDecoders) (
27598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAAudioDecoderCapabilitiesItf self,
27608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pNumDecoders,
27618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pDecoderIds
27628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
27638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetAudioDecoderCapabilities) (
27648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAAudioDecoderCapabilitiesItf self,
27658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 decoderId,
27668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pIndex,
27678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAAudioCodecDescriptor * pDescriptor
27688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
27698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
27708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
27718db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_AUDIOENCODER;
27728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
27738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAAudioEncoderItf_;
27748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XAAudioEncoderItf_ * const * XAAudioEncoderItf;
27758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
27768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAAudioEncoderItf_ {
27778db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetEncoderSettings) (
27788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAAudioEncoderItf self,
27798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAAudioEncoderSettings * pSettings
27808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
27818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetEncoderSettings) (
27828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAAudioEncoderItf self,
27838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAAudioEncoderSettings * pSettings
27848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
27858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
27868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
27878db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_AUDIOENCODERCAPABILITIES;
27888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
27898db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAAudioEncoderCapabilitiesItf_;
27908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XAAudioEncoderCapabilitiesItf_
27918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    * const * XAAudioEncoderCapabilitiesItf;
27928db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
27938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAAudioEncoderCapabilitiesItf_ {
27948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetAudioEncoders) (
27958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAAudioEncoderCapabilitiesItf self,
27968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pNumEncoders,
27978db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pEncoderIds
27988db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
27998db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetAudioEncoderCapabilities) (
28008db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAAudioEncoderCapabilitiesItf self,
28018db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 encoderId,
28028db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pIndex,
28038db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAAudioCodecDescriptor * pDescriptor
28048db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
28058db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
28068db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
28078db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* IMAGE ENCODER AND IMAGE ENCODER/DECODER CAPABILITIES */
28088db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
28098db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_IMAGECODEC_JPEG              ((XAuint32) 0x00000001)
28108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_IMAGECODEC_GIF               ((XAuint32) 0x00000002)
28118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_IMAGECODEC_BMP               ((XAuint32) 0x00000003)
28128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_IMAGECODEC_PNG               ((XAuint32) 0x00000004)
28138db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_IMAGECODEC_TIFF              ((XAuint32) 0x00000005)
28148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_IMAGECODEC_RAW               ((XAuint32) 0x00000006)
28158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
28168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XAImageCodecDescriptor_ {
28178db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 codecId;
28188db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 maxWidth;
28198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 maxHeight;
28208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XAImageCodecDescriptor;
28218db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
28228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XAImageSettings_ {
28238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 encoderId;
28248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 width;
28258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 height;
28268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XApermille compressionLevel;
28278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 colorFormat;
28288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XAImageSettings;
28298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
28308db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_IMAGEENCODERCAPABILITIES;
28318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
28328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAImageEncoderCapabilitiesItf_;
28338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XAImageEncoderCapabilitiesItf_
28348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    * const * XAImageEncoderCapabilitiesItf;
28358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
28368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAImageEncoderCapabilitiesItf_ {
28378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetImageEncoderCapabilities) (
28388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAImageEncoderCapabilitiesItf self,
28398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pEncoderId,
28408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAImageCodecDescriptor * pDescriptor
28418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
28428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*QueryColorFormats) (
28438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAImageEncoderCapabilitiesItf self,
28448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pIndex,
28458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pColorFormat
28468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
28478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
28488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
28498db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_IMAGEDECODERCAPABILITIES;
28508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
28518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAImageDecoderCapabilitiesItf_;
28528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XAImageDecoderCapabilitiesItf_
28538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    * const * XAImageDecoderCapabilitiesItf;
28548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
28558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAImageDecoderCapabilitiesItf_ {
28568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetImageDecoderCapabilities) (
28578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAImageDecoderCapabilitiesItf self,
28588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pDecoderId,
28598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAImageCodecDescriptor * pDescriptor
28608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
28618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*QueryColorFormats) (
28628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAImageDecoderCapabilitiesItf self,
28638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pIndex,
28648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pColorFormat
28658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
28668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
28678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
28688db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_IMAGEENCODER;
28698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
28708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAImageEncoderItf_;
28718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XAImageEncoderItf_ * const * XAImageEncoderItf;
28728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
28738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAImageEncoderItf_ {
28748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetImageSettings) (
28758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAImageEncoderItf self,
28768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        const XAImageSettings * pSettings
28778db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
28788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetImageSettings) (
28798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAImageEncoderItf self,
28808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAImageSettings * pSettings
28818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
28828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetSizeEstimate) (
28838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAImageEncoderItf self,
28848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pSize
28858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
28868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
28878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
28888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* VIDEO ENCODER AND VIDEO ENCODER/DECODER CAPABILITIES */
28898db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
28908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOCODEC_MPEG2                     ((XAuint32) 0x00000001)
28918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOCODEC_H263                      ((XAuint32) 0x00000002)
28928db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOCODEC_MPEG4                     ((XAuint32) 0x00000003)
28938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOCODEC_AVC                       ((XAuint32) 0x00000004)
28948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOCODEC_VC1                       ((XAuint32) 0x00000005)
28958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
28968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_MPEG2_SIMPLE            ((XAuint32) 0x00000001)
28978db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_MPEG2_MAIN              ((XAuint32) 0x00000002)
28988db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_MPEG2_422               ((XAuint32) 0x00000003)
28998db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_MPEG2_SNR               ((XAuint32) 0x00000004)
29008db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_MPEG2_SPATIAL           ((XAuint32) 0x00000005)
29018db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_MPEG2_HIGH              ((XAuint32) 0x00000006)
29028db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
29038db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_MPEG2_LL                  ((XAuint32) 0x00000001)
29048db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_MPEG2_ML                  ((XAuint32) 0x00000002)
29058db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_MPEG2_H14                 ((XAuint32) 0x00000003)
29068db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_MPEG2_HL                  ((XAuint32) 0x00000004)
29078db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
29088db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_H263_BASELINE           ((XAuint32) 0x00000001)
29098db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_H263_H320CODING         ((XAuint32) 0x00000002)
29108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_H263_BACKWARDCOMPATIBLE ((XAuint32) 0x00000003)
29118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_H263_ISWV2              ((XAuint32) 0x00000004)
29128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_H263_ISWV3              ((XAuint32) 0x00000005)
29138db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_H263_HIGHCOMPRESSION    ((XAuint32) 0x00000006)
29148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_H263_INTERNET           ((XAuint32) 0x00000007)
29158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_H263_INTERLACE          ((XAuint32) 0x00000008)
29168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_H263_HIGHLATENCY        ((XAuint32) 0x00000009)
29178db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
29188db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_H263_10                   ((XAuint32) 0x00000001)
29198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_H263_20                   ((XAuint32) 0x00000002)
29208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_H263_30                   ((XAuint32) 0x00000003)
29218db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_H263_40                   ((XAuint32) 0x00000004)
29228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_H263_45                   ((XAuint32) 0x00000005)
29238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_H263_50                   ((XAuint32) 0x00000006)
29248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_H263_60                   ((XAuint32) 0x00000007)
29258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_H263_70                   ((XAuint32) 0x00000008)
29268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
29278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_MPEG4_SIMPLE            ((XAuint32) 0x00000001)
29288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_MPEG4_SIMPLESCALABLE    ((XAuint32) 0x00000002)
29298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_MPEG4_CORE              ((XAuint32) 0x00000003)
29308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_MPEG4_MAIN              ((XAuint32) 0x00000004)
29318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_MPEG4_NBIT              ((XAuint32) 0x00000005)
29328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_MPEG4_SCALABLETEXTURE   ((XAuint32) 0x00000006)
29338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_MPEG4_SIMPLEFACE        ((XAuint32) 0x00000007)
29348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_MPEG4_SIMPLEFBA         ((XAuint32) 0x00000008)
29358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_MPEG4_BASICANIMATED     ((XAuint32) 0x00000009)
29368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_MPEG4_HYBRID            ((XAuint32) 0x0000000A)
29378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_MPEG4_ADVANCEDREALTIME  ((XAuint32) 0x0000000B)
29388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_MPEG4_CORESCALABLE      ((XAuint32) 0x0000000C)
29398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_MPEG4_ADVANCEDCODING    ((XAuint32) 0x0000000D)
29408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_MPEG4_ADVANCEDCORE      ((XAuint32) 0x0000000E)
29418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_MPEG4_ADVANCEDSCALABLE  ((XAuint32) 0x0000000F)
29428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
29438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_MPEG4_0                   ((XAuint32) 0x00000001)
29448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_MPEG4_0b                  ((XAuint32) 0x00000002)
29458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_MPEG4_1                   ((XAuint32) 0x00000003)
29468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_MPEG4_2                   ((XAuint32) 0x00000004)
29478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_MPEG4_3                   ((XAuint32) 0x00000005)
29488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_MPEG4_4                   ((XAuint32) 0x00000006)
29498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_MPEG4_4a                  ((XAuint32) 0x00000007)
29508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_MPEG4_5                   ((XAuint32) 0x00000008)
29518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
29528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_AVC_BASELINE            ((XAuint32) 0x00000001)
29538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_AVC_MAIN                ((XAuint32) 0x00000002)
29548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_AVC_EXTENDED            ((XAuint32) 0x00000003)
29558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_AVC_HIGH                ((XAuint32) 0x00000004)
29568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_AVC_HIGH10              ((XAuint32) 0x00000005)
29578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_AVC_HIGH422             ((XAuint32) 0x00000006)
29588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOPROFILE_AVC_HIGH444             ((XAuint32) 0x00000007)
29598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
29608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_AVC_1                     ((XAuint32) 0x00000001)
29618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_AVC_1B                    ((XAuint32) 0x00000002)
29628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_AVC_11                    ((XAuint32) 0x00000003)
29638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_AVC_12                    ((XAuint32) 0x00000004)
29648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_AVC_13                    ((XAuint32) 0x00000005)
29658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_AVC_2                     ((XAuint32) 0x00000006)
29668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_AVC_21                    ((XAuint32) 0x00000007)
29678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_AVC_22                    ((XAuint32) 0x00000008)
29688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_AVC_3                     ((XAuint32) 0x00000009)
29698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_AVC_31                    ((XAuint32) 0x0000000A)
29708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_AVC_32                    ((XAuint32) 0x0000000B)
29718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_AVC_4                     ((XAuint32) 0x0000000C)
29728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_AVC_41                    ((XAuint32) 0x0000000D)
29738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_AVC_42                    ((XAuint32) 0x0000000E)
29748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_AVC_5                     ((XAuint32) 0x0000000F)
29758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_AVC_51                    ((XAuint32) 0x00000010)
29768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
29778db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_VC1_SIMPLE                ((XAuint32) 0x00000001)
29788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_VC1_MAIN                  ((XAuint32) 0x00000002)
29798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_VC1_ADVANCED              ((XAuint32) 0x00000003)
29808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
29818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_VC1_LOW                   ((XAuint32) 0x00000001)
29828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_VC1_MEDIUM                ((XAuint32) 0x00000002)
29838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_VC1_HIGH                  ((XAuint32) 0x00000003)
29848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_VC1_L0                    ((XAuint32) 0x00000004)
29858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_VC1_L1                    ((XAuint32) 0x00000005)
29868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_VC1_L2                    ((XAuint32) 0x00000006)
29878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_VC1_L3                    ((XAuint32) 0x00000007)
29888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_VIDEOLEVEL_VC1_L4                    ((XAuint32) 0x00000008)
29898db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
29908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XAVideoCodecDescriptor_ {
29918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 codecId;
29928db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 maxWidth;
29938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 maxHeight;
29948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 maxFrameRate;
29958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 maxBitRate;
29968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 rateControlSupported;
29978db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 profileSetting;
29988db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 levelSetting;
29998db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XAVideoCodecDescriptor;
30008db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
30018db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XAVideoSettings_ {
30028db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 encoderId;
30038db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 width;
30048db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 height;
30058db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 frameRate;
30068db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 bitRate;
30078db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 rateControl;
30088db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 profileSetting;
30098db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 levelSetting;
30108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 keyFrameInterval;
30118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XAVideoSettings;
30128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
30138db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_VIDEODECODERCAPABILITIES;
30148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
30158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAVideoDecoderCapabilitiesItf_;
30168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XAVideoDecoderCapabilitiesItf_
30178db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    * const * XAVideoDecoderCapabilitiesItf;
30188db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
30198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAVideoDecoderCapabilitiesItf_ {
30208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetVideoDecoders) (
30218db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAVideoDecoderCapabilitiesItf self,
30228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pNumDecoders,
30238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pDecoderIds
30248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
30258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetVideoDecoderCapabilities) (
30268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAVideoDecoderCapabilitiesItf self,
30278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 decoderId,
30288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pIndex,
30298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAVideoCodecDescriptor * pDescriptor
30308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
30318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
30328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
30338db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_VIDEOENCODER;
30348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
30358db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_VIDEOENCODERCAPABILITIES;
30368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
30378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAVideoEncoderCapabilitiesItf_;
30388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XAVideoEncoderCapabilitiesItf_
30398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    * const * XAVideoEncoderCapabilitiesItf;
30408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
30418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAVideoEncoderCapabilitiesItf_ {
30428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetVideoEncoders) (
30438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAVideoEncoderCapabilitiesItf self,
30448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pNumEncoders,
30458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pEncoderIds
30468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
30478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetVideoEncoderCapabilities) (
30488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAVideoEncoderCapabilitiesItf self,
30498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 encoderId,
30508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 * pIndex,
30518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAVideoCodecDescriptor * pDescriptor
30528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
30538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
30548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
30558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAVideoEncoderItf_;
30568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XAVideoEncoderItf_ * const * XAVideoEncoderItf;
30578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
30588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAVideoEncoderItf_ {
30598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetVideoSettings) (
30608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAVideoEncoderItf self,
30618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAVideoSettings * pSettings
30628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
30638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*GetVideoSettings) (
30648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAVideoEncoderItf self,
30658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAVideoSettings * pSettings
30668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
30678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
30688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
30698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten/* STREAM INFORMATION */
30708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
30718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DOMAINTYPE_AUDIO     0x00000001
30728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DOMAINTYPE_VIDEO     0x00000002
30738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DOMAINTYPE_IMAGE     0x00000003
30748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DOMAINTYPE_TIMEDTEXT 0x00000004
30758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DOMAINTYPE_MIDI      0x00000005
30768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DOMAINTYPE_VENDOR    0xFFFFFFFE
30778db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_DOMAINTYPE_UNKNOWN   0xFFFFFFFF
30788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
30798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_MIDIBANK_DEVICE      0x00000001
30808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_MIDIBANK_CUSTOM      0x00000002
30818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
30828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_MIDI_UNKNOWN         0xFFFFFFFF
30838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
30848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#define XA_STREAMCBEVENT_PROPERTYCHANGE     ((XAuint32) 0x00000001)
30858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
30868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XAMediaContainerInformation_ {
30878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 containerType;
30888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAmillisecond mediaDuration;
30898db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 numStreams;
30908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XAMediaContainerInformation;
30918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
30928db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XAVideoStreamInformation_ {
30938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 codecId;
30948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 width;
30958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 height;
30968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 frameRate;
30978db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 bitRate;
30988db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAmillisecond duration;
30998db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XAVideoStreamInformation;
31008db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
31018db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XAAudioStreamInformation_ {
31028db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 codecId;
31038db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 channels;
31048db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAmilliHertz sampleRate;
31058db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 bitRate;
31068db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAchar langCountry[16];
31078db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAmillisecond duration;
31088db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XAAudioStreamInformation;
31098db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
31108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XAImageStreamInformation_ {
31118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 codecId;
31128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 width;
31138db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 height;
31148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAmillisecond presentationDuration;
31158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XAImageStreamInformation;
31168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
31178db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XATimedTextStreamInformation_ {
31188db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint16 layer;
31198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 width;
31208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 height;
31218db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint16 tx;
31228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint16 ty;
31238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 bitrate;
31248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAchar langCountry[16];
31258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAmillisecond duration;
31268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XATimedTextStreamInformation;
31278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
31288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XAMIDIStreamInformation_ {
31298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 channels;
31308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 tracks;
31318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 bankType;
31328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAchar langCountry[16];
31338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAmillisecond duration;
31348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XAMIDIStreamInformation;
31358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
31368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef struct XAVendorStreamInformation_ {
31378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void *VendorStreamInfo;
31388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} XAVendorStreamInformation;
31398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
31408db0b106cdce5f5216b1535492de7930ad738aedGlenn KastenXA_API extern const XAInterfaceID XA_IID_STREAMINFORMATION;
31418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
31428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAStreamInformationItf_;
31438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef const struct XAStreamInformationItf_ * const * XAStreamInformationItf;
31448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
31458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastentypedef void (XAAPIENTRY * xaStreamEventChangeCallback) (
31468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAStreamInformationItf caller,
31478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 eventId,
31488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAuint32 streamIndex,
31498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void * pEventData,
31508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    void * pContext
31518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten);
31528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
31538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenstruct XAStreamInformationItf_ {
31548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*QueryMediaContainerInformation) (
31558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAStreamInformationItf self,
31568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAMediaContainerInformation * info
31578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
31588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*QueryStreamType) (
31598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAStreamInformationItf self,
31608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 streamIndex,
31618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 *domain
31628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
31638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*QueryStreamInformation) (
31648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAStreamInformationItf self,
31658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 streamIndex,
31668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        void * info
31678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
31688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*QueryStreamName) (
31698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAStreamInformationItf self,
31708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 streamIndex,
31718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint16 * pNameSize,
31728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAchar * pName
31738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
31748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*RegisterStreamChangeCallback) (
31758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAStreamInformationItf self,
31768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        xaStreamEventChangeCallback callback,
31778db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        void * pContext
31788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
31798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*QueryActiveStreams) (
31808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAStreamInformationItf self,
31818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32 *numStreams,
31828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean *activeStreams
31838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
31848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    XAresult (*SetActiveStream) (
31858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAStreamInformationItf self,
31868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAuint32   streamNum,
31878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean  active,
31888db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten        XAboolean  commitNow
31898db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten    );
31908db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten};
31918db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
31928db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#ifdef __cplusplus
31938db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} /* extern "C" */
31948db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#endif
31958db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten
31968db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#endif /* _OPENMAXAL_H_ */
3197