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