mmmw_plat/openmax_al_api/inc/OpenMAXAL.h
branchRCL_3
changeset 20 0ac9a5310753
parent 19 095bea5f582e
child 21 999b2818a0eb
--- a/mmmw_plat/openmax_al_api/inc/OpenMAXAL.h	Tue Aug 31 15:43:02 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3196 +0,0 @@
-/*
- * Copyright (c) 2007-2010 The Khronos Group Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and/or associated documentation files (the
- * "Materials "), to deal in the Materials without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Materials, and to
- * permit persons to whom the Materials are furnished to do so, subject to 
- * the following conditions: 
- *
- * The above copyright notice and this permission notice shall be included 
- * in all copies or substantial portions of the Materials. 
- *
- * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
- *
- * OpenMAXAL.h - OpenMAX AL version 1.0.1
- *
- */
-
-/****************************************************************************/
-/* NOTE: This file is a standard OpenMAX AL header file and should not be   */
-/* modified in any way.                                                     */
-/****************************************************************************/
-
-#ifndef _OPENMAXAL_H_
-#define _OPENMAXAL_H_
-
-#include "OpenMAXAL_Platform.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-
-  /*****************************************************************/
-  /* TYPES                                                         */
-  /*****************************************************************/
-
-/* remap common types to XA types for clarity */
-typedef xa_int8_t   XAint8;   /* 8 bit signed integer    */
-typedef xa_uint8_t  XAuint8;  /* 8 bit unsigned integer  */
-typedef xa_int16_t  XAint16;  /* 16 bit signed integer   */
-typedef xa_uint16_t XAuint16; /* 16 bit unsigned integer */
-typedef xa_int32_t  XAint32;  /* 32 bit signed integer   */
-typedef xa_uint32_t XAuint32; /* 32 bit unsigned integer */
-typedef xa_uint64_t XAuint64; /* 64 bit unsigned integer */
-
-typedef XAuint32    XAboolean;
-typedef XAuint8     XAchar;
-typedef XAint16     XAmillibel;
-typedef XAuint32    XAmillisecond;
-typedef XAuint32    XAmilliHertz;
-typedef XAint32     XAmillimeter;
-typedef XAint32     XAmillidegree;
-typedef XAint16     XApermille;
-typedef XAuint32    XAmicrosecond;
-typedef XAuint64    XAtime;
-typedef XAuint32    XAresult;
-
-#define XA_BOOLEAN_FALSE                    ((XAuint32) 0x00000000)
-#define XA_BOOLEAN_TRUE                     ((XAuint32) 0x00000001)
-
-#define XA_MILLIBEL_MAX                     ((XAmillibel) 0x7FFF)
-#define XA_MILLIBEL_MIN                     ((XAmillibel) (-XA_MILLIBEL_MAX-1))
-
-#define XA_MILLIHERTZ_MAX                   ((XAmilliHertz) 0xFFFFFFFF)
-
-#define XA_MILLIMETER_MAX                   ((XAmillimeter) 0x7FFFFFFF)
-
-
-
-  /*****************************************************************/
-  /* RESULT CODES                                                  */
-  /*****************************************************************/
-
-#define XA_RESULT_SUCCESS                   ((XAuint32) 0x00000000)
-#define XA_RESULT_PRECONDITIONS_VIOLATED    ((XAuint32) 0x00000001)
-#define XA_RESULT_PARAMETER_INVALID         ((XAuint32) 0x00000002)
-#define XA_RESULT_MEMORY_FAILURE            ((XAuint32) 0x00000003)
-#define XA_RESULT_RESOURCE_ERROR            ((XAuint32) 0x00000004)
-#define XA_RESULT_RESOURCE_LOST             ((XAuint32) 0x00000005)
-#define XA_RESULT_IO_ERROR                  ((XAuint32) 0x00000006)
-#define XA_RESULT_BUFFER_INSUFFICIENT       ((XAuint32) 0x00000007)
-#define XA_RESULT_CONTENT_CORRUPTED         ((XAuint32) 0x00000008)
-#define XA_RESULT_CONTENT_UNSUPPORTED       ((XAuint32) 0x00000009)
-#define XA_RESULT_CONTENT_NOT_FOUND         ((XAuint32) 0x0000000A)
-#define XA_RESULT_PERMISSION_DENIED         ((XAuint32) 0x0000000B)
-#define XA_RESULT_FEATURE_UNSUPPORTED       ((XAuint32) 0x0000000C)
-#define XA_RESULT_INTERNAL_ERROR            ((XAuint32) 0x0000000D)
-#define XA_RESULT_UNKNOWN_ERROR             ((XAuint32) 0x0000000E)
-#define XA_RESULT_OPERATION_ABORTED         ((XAuint32) 0x0000000F)
-#define XA_RESULT_CONTROL_LOST              ((XAuint32) 0x00000010)
-
-
-
-  /*****************************************************************/
-  /* INTERFACE ID DEFINITION                                       */
-  /*****************************************************************/
-
-/* Interface ID defined as a UUID */
-typedef const struct XAInterfaceID_ {
-    XAuint32 time_low;
-    XAuint16 time_mid;
-    XAuint16 time_hi_and_version;
-    XAuint16 clock_seq;
-    XAuint8  node[6];
-} * XAInterfaceID;
-
-/* NULL Interface */
-XA_API extern const XAInterfaceID XA_IID_NULL;
-
-
-
-  /*****************************************************************/
-  /* GENERAL INTERFACES, STRUCTS AND DEFINES                       */
-  /*****************************************************************/
-
-/* OBJECT */
-
-#define XA_PRIORITY_LOWEST                      ((XAint32) (-0x7FFFFFFF-1))
-#define XA_PRIORITY_VERYLOW                     ((XAint32) -0x60000000)
-#define XA_PRIORITY_LOW                         ((XAint32) -0x40000000)
-#define XA_PRIORITY_BELOWNORMAL                 ((XAint32) -0x20000000)
-#define XA_PRIORITY_NORMAL                      ((XAint32) 0x00000000)
-#define XA_PRIORITY_ABOVENORMAL                 ((XAint32) 0x20000000)
-#define XA_PRIORITY_HIGH                        ((XAint32) 0x40000000)
-#define XA_PRIORITY_VERYHIGH                    ((XAint32) 0x60000000)
-#define XA_PRIORITY_HIGHEST                     ((XAint32) 0x7FFFFFFF)
-
-#define XA_OBJECT_EVENT_RUNTIME_ERROR           ((XAuint32) 0x00000001)
-#define XA_OBJECT_EVENT_ASYNC_TERMINATION       ((XAuint32) 0x00000002)
-#define XA_OBJECT_EVENT_RESOURCES_LOST          ((XAuint32) 0x00000003)
-#define XA_OBJECT_EVENT_RESOURCES_AVAILABLE     ((XAuint32) 0x00000004)
-#define XA_OBJECT_EVENT_ITF_CONTROL_TAKEN       ((XAuint32) 0x00000005)
-#define XA_OBJECT_EVENT_ITF_CONTROL_RETURNED    ((XAuint32) 0x00000006)
-#define XA_OBJECT_EVENT_ITF_PARAMETERS_CHANGED  ((XAuint32) 0x00000007)
-
-#define XA_OBJECT_STATE_UNREALIZED              ((XAuint32) 0x00000001)
-#define XA_OBJECT_STATE_REALIZED                ((XAuint32) 0x00000002)
-#define XA_OBJECT_STATE_SUSPENDED               ((XAuint32) 0x00000003)
-
-
-XA_API extern const XAInterfaceID XA_IID_OBJECT;
-
-struct XAObjectItf_;
-typedef const struct XAObjectItf_ * const * XAObjectItf;
-
-typedef void (XAAPIENTRY * xaObjectCallback) (
-    XAObjectItf caller,
-    const void * pContext,
-    XAuint32 event,
-    XAresult result,
-    XAuint32 param,
-    void * pInterface
-);
-
-struct XAObjectItf_ {
-    XAresult (*Realize) (
-        XAObjectItf self,
-        XAboolean async
-    );
-    XAresult (*Resume) (
-        XAObjectItf self,
-        XAboolean async
-    );
-    XAresult (*GetState) (
-        XAObjectItf self,
-        XAuint32 * pState
-    );
-    XAresult (*GetInterface) (
-        XAObjectItf self,
-        const XAInterfaceID iid,
-        void * pInterface
-    );
-    XAresult (*RegisterCallback) (
-        XAObjectItf self,
-        xaObjectCallback callback,
-        void * pContext
-    );
-    void (*AbortAsyncOperation) (
-        XAObjectItf self
-    );
-    void (*Destroy) (
-        XAObjectItf self
-    );
-    XAresult (*SetPriority) (
-        XAObjectItf self,
-        XAint32 priority,
-        XAboolean preemptable
-    );
-    XAresult (*GetPriority) (
-        XAObjectItf self,
-        XAint32 * pPriority,
-        XAboolean * pPreemptable
-    );
-    XAresult (*SetLossOfControlInterfaces) (
-        XAObjectItf self,
-        XAint16 numInterfaces,
-        XAInterfaceID * pInterfaceIDs,
-        XAboolean enabled
-    );
-};
-
-/* CONFIG EXTENSION */
-
-XA_API extern const XAInterfaceID XA_IID_CONFIGEXTENSION;
-
-struct XAConfigExtensionsItf_;
-typedef const struct XAConfigExtensionsItf_ 
-    * const * XAConfigExtensionsItf;
-
-struct XAConfigExtensionsItf_ {
-    XAresult (*SetConfiguration) (
-        XAConfigExtensionsItf self, 
-        const XAchar * configKey,
-        XAuint32 valueSize, 
-        const void * pConfigValue
-    );
-    XAresult (*GetConfiguration) (
-        XAConfigExtensionsItf self, 
-        const XAchar * configKey, 
-        XAuint32 * pValueSize,
-        void * pConfigValue
-    );
-};
-
-/* DYNAMIC INTERFACE MANAGEMENT */
-
-#define XA_DYNAMIC_ITF_EVENT_RUNTIME_ERROR              ((XAuint32) 0x00000001)
-#define XA_DYNAMIC_ITF_EVENT_ASYNC_TERMINATION          ((XAuint32) 0x00000002)
-#define XA_DYNAMIC_ITF_EVENT_RESOURCES_LOST             ((XAuint32) 0x00000003)
-#define XA_DYNAMIC_ITF_EVENT_RESOURCES_LOST_PERMANENTLY ((XAuint32) 0x00000004)
-#define XA_DYNAMIC_ITF_EVENT_RESOURCES_AVAILABLE        ((XAuint32) 0x00000005)
-
-XA_API extern const XAInterfaceID XA_IID_DYNAMICINTERFACEMANAGEMENT;
-
-struct XADynamicInterfaceManagementItf_;
-typedef const struct XADynamicInterfaceManagementItf_
-    * const * XADynamicInterfaceManagementItf;
-
-typedef void (XAAPIENTRY * xaDynamicInterfaceManagementCallback) (
-    XADynamicInterfaceManagementItf caller,
-    void * pContext,
-    XAuint32 event,
-    XAresult result,
-    const XAInterfaceID iid
-);
-
-struct XADynamicInterfaceManagementItf_ {
-    XAresult (*AddInterface) (
-        XADynamicInterfaceManagementItf self,
-        const XAInterfaceID iid,
-        XAboolean aysnc
-    );
-    XAresult (*RemoveInterface) (
-        XADynamicInterfaceManagementItf self,
-        const XAInterfaceID iid
-    );
-    XAresult (*ResumeInterface) (
-        XADynamicInterfaceManagementItf self,
-        const XAInterfaceID iid,
-        XAboolean aysnc
-    );
-    XAresult (*RegisterCallback) (
-        XADynamicInterfaceManagementItf self,
-        xaDynamicInterfaceManagementCallback callback,
-        void * pContext
-    );
-};
-
-/* DATA SOURCES/SINKS */
-
-#define XA_DATAFORMAT_MIME              ((XAuint32) 0x00000001)
-#define XA_DATAFORMAT_PCM               ((XAuint32) 0x00000002)
-#define XA_DATAFORMAT_RAWIMAGE          ((XAuint32) 0x00000003)
-
-#define XA_DATALOCATOR_URI              ((XAuint32) 0x00000001)
-#define XA_DATALOCATOR_ADDRESS          ((XAuint32) 0x00000002)
-#define XA_DATALOCATOR_IODEVICE         ((XAuint32) 0x00000003)
-#define XA_DATALOCATOR_OUTPUTMIX        ((XAuint32) 0x00000004)
-#define XA_DATALOCATOR_NATIVEDISPLAY    ((XAuint32) 0x00000005)
-#define XA_DATALOCATOR_RESERVED6        ((XAuint32) 0x00000006)
-#define XA_DATALOCATOR_RESERVED7        ((XAuint32) 0x00000007)
-
-typedef struct XADataSink_ {
-    void * pLocator;
-    void * pFormat;
-} XADataSink;
-
-typedef struct XADataSource_ {
-    void * pLocator;
-    void * pFormat;
-} XADataSource;
-
-#define XA_CONTAINERTYPE_UNSPECIFIED    ((XAuint32) 0x00000001)
-#define XA_CONTAINERTYPE_RAW            ((XAuint32) 0x00000002)
-#define XA_CONTAINERTYPE_ASF            ((XAuint32) 0x00000003)
-#define XA_CONTAINERTYPE_AVI            ((XAuint32) 0x00000004)
-#define XA_CONTAINERTYPE_BMP            ((XAuint32) 0x00000005)
-#define XA_CONTAINERTYPE_JPG            ((XAuint32) 0x00000006)
-#define XA_CONTAINERTYPE_JPG2000        ((XAuint32) 0x00000007)
-#define XA_CONTAINERTYPE_M4A            ((XAuint32) 0x00000008)
-#define XA_CONTAINERTYPE_MP3            ((XAuint32) 0x00000009)
-#define XA_CONTAINERTYPE_MP4            ((XAuint32) 0x0000000A)
-#define XA_CONTAINERTYPE_MPEG_ES        ((XAuint32) 0x0000000B)
-#define XA_CONTAINERTYPE_MPEG_PS        ((XAuint32) 0x0000000C)
-#define XA_CONTAINERTYPE_MPEG_TS        ((XAuint32) 0x0000000D)
-#define XA_CONTAINERTYPE_QT             ((XAuint32) 0x0000000E)
-#define XA_CONTAINERTYPE_WAV            ((XAuint32) 0x0000000F)
-#define XA_CONTAINERTYPE_XMF_0          ((XAuint32) 0x00000010)
-#define XA_CONTAINERTYPE_XMF_1          ((XAuint32) 0x00000011)
-#define XA_CONTAINERTYPE_XMF_2          ((XAuint32) 0x00000012)
-#define XA_CONTAINERTYPE_XMF_3          ((XAuint32) 0x00000013)
-#define XA_CONTAINERTYPE_XMF_GENERIC    ((XAuint32) 0x00000014)
-#define XA_CONTAINERTYPE_AMR            ((XAuint32) 0x00000015)
-#define XA_CONTAINERTYPE_AAC            ((XAuint32) 0x00000016)
-#define XA_CONTAINERTYPE_3GPP           ((XAuint32) 0x00000017)
-#define XA_CONTAINERTYPE_3GA            ((XAuint32) 0x00000018)
-#define XA_CONTAINERTYPE_RM             ((XAuint32) 0x00000019)
-#define XA_CONTAINERTYPE_DMF            ((XAuint32) 0x0000001A)
-#define XA_CONTAINERTYPE_SMF            ((XAuint32) 0x0000001B)
-#define XA_CONTAINERTYPE_MOBILE_DLS     ((XAuint32) 0x0000001C)
-#define XA_CONTAINERTYPE_OGG            ((XAuint32) 0x0000001D)
-
-typedef struct XADataFormat_MIME_ {
-    XAuint32 formatType;
-    XAchar * mimeType;
-    XAuint32 containerType;
-} XADataFormat_MIME;
-
-#define XA_BYTEORDER_BIGENDIAN          ((XAuint32) 0x00000001)
-#define XA_BYTEORDER_LITTLEENDIAN       ((XAuint32) 0x00000002)
-
-#define XA_SAMPLINGRATE_8               ((XAuint32)   8000000)
-#define XA_SAMPLINGRATE_11_025          ((XAuint32)  11025000)
-#define XA_SAMPLINGRATE_12              ((XAuint32)  12000000)
-#define XA_SAMPLINGRATE_16              ((XAuint32)  16000000)
-#define XA_SAMPLINGRATE_22_05           ((XAuint32)  22050000)
-#define XA_SAMPLINGRATE_24              ((XAuint32)  24000000)
-#define XA_SAMPLINGRATE_32              ((XAuint32)  32000000)
-#define XA_SAMPLINGRATE_44_1            ((XAuint32)  44100000)
-#define XA_SAMPLINGRATE_48              ((XAuint32)  48000000)
-#define XA_SAMPLINGRATE_64              ((XAuint32)  64000000)
-#define XA_SAMPLINGRATE_88_2            ((XAuint32)  88200000)
-#define XA_SAMPLINGRATE_96              ((XAuint32)  96000000)
-#define XA_SAMPLINGRATE_192             ((XAuint32) 192000000)
-
-#define XA_SPEAKER_FRONT_LEFT               ((XAuint32) 0x00000001)
-#define XA_SPEAKER_FRONT_RIGHT              ((XAuint32) 0x00000002)
-#define XA_SPEAKER_FRONT_CENTER             ((XAuint32) 0x00000004)
-#define XA_SPEAKER_LOW_FREQUENCY            ((XAuint32) 0x00000008)
-#define XA_SPEAKER_BACK_LEFT                ((XAuint32) 0x00000010)
-#define XA_SPEAKER_BACK_RIGHT               ((XAuint32) 0x00000020)
-#define XA_SPEAKER_FRONT_LEFT_OF_CENTER     ((XAuint32) 0x00000040)
-#define XA_SPEAKER_FRONT_RIGHT_OF_CENTER    ((XAuint32) 0x00000080)
-#define XA_SPEAKER_BACK_CENTER              ((XAuint32) 0x00000100)
-#define XA_SPEAKER_SIDE_LEFT                ((XAuint32) 0x00000200)
-#define XA_SPEAKER_SIDE_RIGHT               ((XAuint32) 0x00000400)
-#define XA_SPEAKER_TOP_CENTER               ((XAuint32) 0x00000800)
-#define XA_SPEAKER_TOP_FRONT_LEFT           ((XAuint32) 0x00001000)
-#define XA_SPEAKER_TOP_FRONT_CENTER         ((XAuint32) 0x00002000)
-#define XA_SPEAKER_TOP_FRONT_RIGHT          ((XAuint32) 0x00004000)
-#define XA_SPEAKER_TOP_BACK_LEFT            ((XAuint32) 0x00008000)
-#define XA_SPEAKER_TOP_BACK_CENTER          ((XAuint32) 0x00010000)
-#define XA_SPEAKER_TOP_BACK_RIGHT           ((XAuint32) 0x00020000)
-
-#define XA_PCMSAMPLEFORMAT_FIXED_8          ((XAuint16) 0x0008)
-#define XA_PCMSAMPLEFORMAT_FIXED_16         ((XAuint16) 0x0010)
-#define XA_PCMSAMPLEFORMAT_FIXED_20         ((XAuint16) 0x0014)
-#define XA_PCMSAMPLEFORMAT_FIXED_24         ((XAuint16) 0x0018)
-#define XA_PCMSAMPLEFORMAT_FIXED_28         ((XAuint16) 0x001C)
-#define XA_PCMSAMPLEFORMAT_FIXED_32         ((XAuint16) 0x0020)
-
-typedef struct XADataFormat_PCM_ {
-    XAuint32 formatType;
-    XAuint32 numChannels;
-    XAuint32 samplesPerSec;
-    XAuint32 bitsPerSample;
-    XAuint32 containerSize;
-    XAuint32 channelMask;
-    XAuint32 endianness;
-} XADataFormat_PCM;
-
-#define XA_COLORFORMAT_UNUSED                   ((XAuint32) 0x00000000)
-#define XA_COLORFORMAT_MONOCHROME               ((XAuint32) 0x00000001)
-#define XA_COLORFORMAT_8BITRGB332               ((XAuint32) 0x00000002)
-#define XA_COLORFORMAT_12BITRGB444              ((XAuint32) 0x00000003)
-#define XA_COLORFORMAT_16BITARGB4444            ((XAuint32) 0x00000004)
-#define XA_COLORFORMAT_16BITARGB1555            ((XAuint32) 0x00000005)
-#define XA_COLORFORMAT_16BITRGB565              ((XAuint32) 0x00000006)
-#define XA_COLORFORMAT_16BITBGR565              ((XAuint32) 0x00000007)
-#define XA_COLORFORMAT_18BITRGB666              ((XAuint32) 0x00000008)
-#define XA_COLORFORMAT_18BITARGB1665            ((XAuint32) 0x00000009)
-#define XA_COLORFORMAT_19BITARGB1666            ((XAuint32) 0x0000000A)
-#define XA_COLORFORMAT_24BITRGB888              ((XAuint32) 0x0000000B)
-#define XA_COLORFORMAT_24BITBGR888              ((XAuint32) 0x0000000C)
-#define XA_COLORFORMAT_24BITARGB1887            ((XAuint32) 0x0000000D)
-#define XA_COLORFORMAT_25BITARGB1888            ((XAuint32) 0x0000000E)
-#define XA_COLORFORMAT_32BITBGRA8888            ((XAuint32) 0x0000000F)
-#define XA_COLORFORMAT_32BITARGB8888            ((XAuint32) 0x00000010)
-#define XA_COLORFORMAT_YUV411PLANAR             ((XAuint32) 0x00000011)
-#define XA_COLORFORMAT_YUV420PLANAR             ((XAuint32) 0x00000013)
-#define XA_COLORFORMAT_YUV420SEMIPLANAR         ((XAuint32) 0x00000015)
-#define XA_COLORFORMAT_YUV422PLANAR             ((XAuint32) 0x00000016)
-#define XA_COLORFORMAT_YUV422SEMIPLANAR         ((XAuint32) 0x00000018)
-#define XA_COLORFORMAT_YCBYCR                   ((XAuint32) 0x00000019)
-#define XA_COLORFORMAT_YCRYCB                   ((XAuint32) 0x0000001A)
-#define XA_COLORFORMAT_CBYCRY                   ((XAuint32) 0x0000001B)
-#define XA_COLORFORMAT_CRYCBY                   ((XAuint32) 0x0000001C)
-#define XA_COLORFORMAT_YUV444INTERLEAVED        ((XAuint32) 0x0000001D)
-#define XA_COLORFORMAT_RAWBAYER8BIT             ((XAuint32) 0x0000001E)
-#define XA_COLORFORMAT_RAWBAYER10BIT            ((XAuint32) 0x0000001F)
-#define XA_COLORFORMAT_RAWBAYER8BITCOMPRESSED   ((XAuint32) 0x00000020)
-#define XA_COLORFORMAT_L2                       ((XAuint32) 0x00000021)
-#define XA_COLORFORMAT_L4                       ((XAuint32) 0x00000022)
-#define XA_COLORFORMAT_L8                       ((XAuint32) 0x00000023)
-#define XA_COLORFORMAT_L16                      ((XAuint32) 0x00000024)
-#define XA_COLORFORMAT_L24                      ((XAuint32) 0x00000025)
-#define XA_COLORFORMAT_L32                      ((XAuint32) 0x00000026)
-#define XA_COLORFORMAT_18BITBGR666              ((XAuint32) 0x00000029)
-#define XA_COLORFORMAT_24BITARGB6666            ((XAuint32) 0x0000002A)
-#define XA_COLORFORMAT_24BITABGR6666            ((XAuint32) 0x0000002B)
-
-typedef struct XADataFormat_RawImage_ {
-    XAuint32 formatType;
-    XAuint32 colorFormat;
-    XAuint32 height;
-    XAuint32 width;
-    XAuint32 stride;
-} XADataFormat_RawImage;
-
-typedef struct XADataLocator_Address_ {
-    XAuint32 locatorType;
-    void * pAddress;
-    XAuint32 length;
-} XADataLocator_Address;
-
-#define XA_IODEVICE_AUDIOINPUT          ((XAuint32) 0x00000001)
-#define XA_IODEVICE_LEDARRAY            ((XAuint32) 0x00000002)
-#define XA_IODEVICE_VIBRA               ((XAuint32) 0x00000003)
-#define XA_IODEVICE_CAMERA              ((XAuint32) 0x00000004)
-#define XA_IODEVICE_RADIO               ((XAuint32) 0x00000005)
-
-typedef struct XADataLocator_IODevice_ {
-    XAuint32 locatorType;
-    XAuint32 deviceType;
-    XAuint32 deviceID;
-    XAObjectItf device;
-} XADataLocator_IODevice;
-
-typedef void * XANativeHandle;
-
-typedef struct XADataLocator_NativeDisplay_{
-    XAuint32 locatorType;
-    XANativeHandle hWindow;
-    XANativeHandle hDisplay;
-} XADataLocator_NativeDisplay;
-
-typedef struct XADataLocator_OutputMix {
-    XAuint32 locatorType;
-    XAObjectItf outputMix;
-} XADataLocator_OutputMix;
-
-typedef struct XADataLocator_URI_ {
-    XAuint32 locatorType;
-    XAchar * URI;
-} XADataLocator_URI;
-
-
-/* ENGINE */
-
-#define XA_DEFAULTDEVICEID_AUDIOINPUT   ((XAuint32) 0xFFFFFFFF)
-#define XA_DEFAULTDEVICEID_AUDIOOUTPUT  ((XAuint32) 0xFFFFFFFE)
-#define XA_DEFAULTDEVICEID_LED          ((XAuint32) 0xFFFFFFFD)
-#define XA_DEFAULTDEVICEID_VIBRA        ((XAuint32) 0xFFFFFFFC)
-#define XA_DEFAULTDEVICEID_CAMERA       ((XAuint32) 0xFFFFFFFB)
-
-#define XA_ENGINEOPTION_THREADSAFE      ((XAuint32) 0x00000001)
-#define XA_ENGINEOPTION_LOSSOFCONTROL   ((XAuint32) 0x00000002)
-
-#define XA_OBJECTID_ENGINE              ((XAuint32) 0x00000001)
-#define XA_OBJECTID_LEDDEVICE           ((XAuint32) 0x00000002)
-#define XA_OBJECTID_VIBRADEVICE         ((XAuint32) 0x00000003)
-#define XA_OBJECTID_MEDIAPLAYER         ((XAuint32) 0x00000004)
-#define XA_OBJECTID_MEDIARECORDER       ((XAuint32) 0x00000005)
-#define XA_OBJECTID_RADIODEVICE         ((XAuint32) 0x00000006)
-#define XA_OBJECTID_OUTPUTMIX           ((XAuint32) 0x00000007)
-#define XA_OBJECTID_METADATAEXTRACTOR   ((XAuint32) 0x00000008)
-#define XA_OBJECTID_CAMERADEVICE        ((XAuint32) 0x00000009)
-
-#define XA_PROFILES_MEDIA_PLAYER            ((XAint16) 0x0001)
-#define XA_PROFILES_MEDIA_PLAYER_RECORDER   ((XAint16) 0x0002)
-#define XA_PROFILES_PLUS_MIDI               ((XAint16) 0x0004)
-
-typedef struct XAEngineOption_ {
-    XAuint32 feature;
-    XAuint32 data; 
-} XAEngineOption;
-
-XA_API XAresult XAAPIENTRY xaCreateEngine( 
-    XAObjectItf * pEngine,
-    XAuint32 numOptions,
-    const XAEngineOption * pEngineOptions,
-    XAuint32 numInterfaces,
-    const XAInterfaceID * pInterfaceIds,
-    const XAboolean * pInterfaceRequired
-);
-
-XA_API XAresult XAAPIENTRY xaQueryNumSupportedEngineInterfaces(
-    XAuint32 * pNumSupportedInterfaces
-);
-
-XA_API XAresult XAAPIENTRY xaQuerySupportedEngineInterfaces(
-    XAuint32 index,
-    XAInterfaceID * pInterfaceId
-);
-
-typedef struct XALEDDescriptor_ {
-    XAuint8 ledCount;
-    XAuint8 primaryLED;
-    XAuint32 colorMask;
-} XALEDDescriptor;
-
-typedef struct XAVibraDescriptor_ {
-    XAboolean supportsFrequency;
-    XAboolean supportsIntensity;
-    XAmilliHertz minFrequency;
-    XAmilliHertz maxFrequency;
-} XAVibraDescriptor;
-
-
-XA_API extern const XAInterfaceID XA_IID_ENGINE;
-
-struct XAEngineItf_;
-typedef const struct XAEngineItf_ * const * XAEngineItf;
-
-struct XAEngineItf_ {
-    XAresult (*CreateCameraDevice) (
-        XAEngineItf self,
-        XAObjectItf * pDevice,
-        XAuint32 deviceID,
-        XAuint32 numInterfaces,
-        const XAInterfaceID * pInterfaceIds,
-        const XAboolean * pInterfaceRequired
-    );
-    XAresult (*CreateRadioDevice) (
-        XAEngineItf self,
-        XAObjectItf * pDevice,
-        XAuint32 numInterfaces,
-        const XAInterfaceID * pInterfaceIds,
-        const XAboolean * pInterfaceRequired
-    );
-    XAresult (*CreateLEDDevice) (
-        XAEngineItf self,
-        XAObjectItf * pDevice,
-        XAuint32 deviceID,
-        XAuint32 numInterfaces,
-        const XAInterfaceID * pInterfaceIds,
-        const XAboolean * pInterfaceRequired
-    );
-       XAresult (*CreateVibraDevice) (
-        XAEngineItf self,
-        XAObjectItf * pDevice,
-        XAuint32 deviceID,
-        XAuint32 numInterfaces,
-        const XAInterfaceID * pInterfaceIds,
-        const XAboolean * pInterfaceRequired
-    );
-    XAresult (*CreateMediaPlayer) (
-        XAEngineItf self,
-        XAObjectItf * pPlayer,
-        XADataSource * pDataSrc,
-        XADataSource * pBankSrc,
-        XADataSink * pAudioSnk,
-        XADataSink * pImageVideoSnk,
-        XADataSink * pVibra,
-        XADataSink * pLEDArray,
-        XAuint32 numInterfaces,
-        const XAInterfaceID * pInterfaceIds,
-        const XAboolean * pInterfaceRequired
-    );
-    XAresult (*CreateMediaRecorder) (
-        XAEngineItf self,
-        XAObjectItf * pRecorder,
-        XADataSource * pAudioSrc,
-        XADataSource * pImageVideoSrc,
-        XADataSink * pDataSnk,
-        XAuint32 numInterfaces,
-        const XAInterfaceID * pInterfaceIds,
-        const XAboolean * pInterfaceRequired
-    );
-    XAresult (*CreateOutputMix) (
-        XAEngineItf self,
-        XAObjectItf * pMix,
-        XAuint32 numInterfaces,
-        const XAInterfaceID * pInterfaceIds,
-        const XAboolean * pInterfaceRequired
-    );
-    XAresult (*CreateMetadataExtractor) (
-        XAEngineItf self,
-        XAObjectItf * pMetadataExtractor,
-        XADataSource * pDataSource,
-        XAuint32 numInterfaces,
-        const XAInterfaceID * pInterfaceIds,
-        const XAboolean * pInterfaceRequired
-    );
-    XAresult (*CreateExtensionObject) (
-        XAEngineItf self,
-        XAObjectItf * pObject,
-        void * pParameters,
-        XAuint32 objectID,
-        XAuint32 numInterfaces,
-        const XAInterfaceID * pInterfaceIds,
-        const XAboolean * pInterfaceRequired
-    );
-    XAresult (*GetImplementationInfo) (
-        XAEngineItf self,
-        XAuint32 * pMajor,
-        XAuint32 * pMinor,
-        XAuint32 * pStep,
-        const XAchar * pImplementationText
-    );
-    XAresult (*QuerySupportedProfiles) (
-        XAEngineItf self,
-        XAint16 * pProfilesSupported
-    );
-    XAresult (*QueryNumSupportedInterfaces) (
-        XAEngineItf self,
-        XAuint32 objectID,
-        XAuint32 * pNumSupportedInterfaces
-    );
-    XAresult (*QuerySupportedInterfaces) (
-        XAEngineItf self,
-        XAuint32 objectID,
-        XAuint32 index, 
-        XAInterfaceID * pInterfaceId
-    );
-    XAresult (*QueryNumSupportedExtensions) (
-        XAEngineItf self,
-        XAuint32 * pNumExtensions
-    );
-    XAresult (*QuerySupportedExtension) (
-        XAEngineItf self, 
-        XAuint32 index,
-        XAchar * pExtensionName,
-        XAint16 * pNameLength
-    );
-    XAresult (*IsExtensionSupported) (
-        XAEngineItf self, 
-        const XAchar * pExtensionName,
-        XAboolean * pSupported
-    );
-    XAresult (*QueryLEDCapabilities) (
-        XAEngineItf self,
-        XAuint32 *pIndex,
-        XAuint32 * pLEDDeviceID,
-        XALEDDescriptor * pDescriptor
-    );
-    XAresult (*QueryVibraCapabilities) (
-        XAEngineItf self,
-        XAuint32 *pIndex,
-        XAuint32 * pVibraDeviceID,
-        XAVibraDescriptor * pDescriptor
-    );
-};
-
-/* THREAD SYNC */
-
-XA_API extern const XAInterfaceID XA_IID_THREADSYNC;
-
-struct XAThreadSyncItf_;
-typedef const struct XAThreadSyncItf_ * const * XAThreadSyncItf;
-
-struct XAThreadSyncItf_ {
-    XAresult (*EnterCriticalSection) (
-        XAThreadSyncItf self
-    );
-    XAresult (*ExitCriticalSection) (
-        XAThreadSyncItf self
-    );
-};
-
-
-
-  /*****************************************************************/
-  /* PLAYBACK RELATED INTERFACES, STRUCTS AND DEFINES              */
-  /*****************************************************************/
-
-/* PLAY */
-
-#define XA_TIME_UNKNOWN                     ((XAuint32) 0xFFFFFFFF)
-
-#define XA_PLAYEVENT_HEADATEND              ((XAuint32) 0x00000001)
-#define XA_PLAYEVENT_HEADATMARKER           ((XAuint32) 0x00000002)
-#define XA_PLAYEVENT_HEADATNEWPOS           ((XAuint32) 0x00000004)
-#define XA_PLAYEVENT_HEADMOVING             ((XAuint32) 0x00000008)
-#define XA_PLAYEVENT_HEADSTALLED            ((XAuint32) 0x00000010)
-
-#define XA_PLAYSTATE_STOPPED                ((XAuint32) 0x00000001)
-#define XA_PLAYSTATE_PAUSED                 ((XAuint32) 0x00000002)
-#define XA_PLAYSTATE_PLAYING                ((XAuint32) 0x00000003)
-
-#define XA_PREFETCHEVENT_STATUSCHANGE       ((XAuint32) 0x00000001)
-#define XA_PREFETCHEVENT_FILLLEVELCHANGE    ((XAuint32) 0x00000002)
-
-#define XA_PREFETCHSTATUS_UNDERFLOW         ((XAuint32) 0x00000001)
-#define XA_PREFETCHSTATUS_SUFFICIENTDATA    ((XAuint32) 0x00000002)
-#define XA_PREFETCHSTATUS_OVERFLOW          ((XAuint32) 0x00000003)
-
-#define XA_SEEKMODE_FAST                    ((XAuint32) 0x0001)
-#define XA_SEEKMODE_ACCURATE                ((XAuint32) 0x0002)
-
-XA_API extern const XAInterfaceID XA_IID_PLAY;
-
-struct XAPlayItf_;
-typedef const struct XAPlayItf_ * const * XAPlayItf;
-
-typedef void (XAAPIENTRY * xaPlayCallback) (
-    XAPlayItf caller,
-    void * pContext,
-    XAuint32 event
-);
-
-struct XAPlayItf_ {
-    XAresult (*SetPlayState) (
-        XAPlayItf self,
-        XAuint32 state
-    );
-    XAresult (*GetPlayState) (
-        XAPlayItf self,
-        XAuint32 * pState
-    );
-    XAresult (*GetDuration) (
-        XAPlayItf self, 
-        XAmillisecond * pMsec
-    );
-    XAresult (*GetPosition) (
-        XAPlayItf self, 
-        XAmillisecond * pMsec
-    );
-    XAresult (*RegisterCallback) (
-        XAPlayItf self,
-        xaPlayCallback callback,
-        void * pContext
-    );
-    XAresult (*SetCallbackEventsMask) (
-        XAPlayItf self,
-        XAuint32 eventFlags
-    );
-    XAresult (*GetCallbackEventsMask) (
-        XAPlayItf self,
-        XAuint32 * pEventFlags
-    );
-    XAresult (*SetMarkerPosition) (
-        XAPlayItf self,
-        XAmillisecond mSec
-    );
-    XAresult (*ClearMarkerPosition) (
-        XAPlayItf self
-    );
-    XAresult (*GetMarkerPosition) (
-        XAPlayItf self,
-        XAmillisecond * pMsec
-    );
-    XAresult (*SetPositionUpdatePeriod) (
-        XAPlayItf self,
-        XAmillisecond mSec
-    );
-    XAresult (*GetPositionUpdatePeriod) (
-        XAPlayItf self,
-        XAmillisecond * pMsec
-    );
-};
-
-/* PLAYBACK RATE */
-
-#define XA_RATEPROP_STAGGEREDVIDEO      ((XAuint32) 0x00000001)
-#define XA_RATEPROP_SMOOTHVIDEO         ((XAuint32) 0x00000002)
-#define XA_RATEPROP_SILENTAUDIO         ((XAuint32) 0x00000100)
-#define XA_RATEPROP_STAGGEREDAUDIO      ((XAuint32) 0x00000200)
-#define XA_RATEPROP_NOPITCHCORAUDIO     ((XAuint32) 0x00000400)
-#define XA_RATEPROP_PITCHCORAUDIO       ((XAuint32) 0x00000800)
-
-XA_API extern const XAInterfaceID XA_IID_PLAYBACKRATE;
-
-struct XAPlaybackRateItf_;
-typedef const struct XAPlaybackRateItf_ * const * XAPlaybackRateItf;
-
-struct XAPlaybackRateItf_ {
-    XAresult (*SetRate) (
-        XAPlaybackRateItf self,
-        XApermille rate
-    );
-    XAresult (*GetRate) (
-        XAPlaybackRateItf self,
-        XApermille * pRate
-    );
-    XAresult (*SetPropertyConstraints) (
-        XAPlaybackRateItf self,
-        XAuint32 constraints
-    );
-    XAresult (*GetProperties) (
-        XAPlaybackRateItf self,
-        XAuint32 * pProperties
-    );
-    XAresult (*GetCapabilitiesOfRate) (
-        XAPlaybackRateItf self,
-        XApermille rate,
-        XAuint32 * pCapabilities
-    );
-    XAresult (*GetRateRange) (
-        XAPlaybackRateItf self,
-        XAuint8 index,
-        XApermille * pMinRate,
-        XApermille * pMaxRate,
-        XApermille * pStepSize,
-        XAuint32 * pCapabilities
-    );
-};
-
-/* PREFETCH STATUS */
-
-XA_API extern const XAInterfaceID XA_IID_PREFETCHSTATUS;
-
-struct XAPrefetchStatusItf_;
-typedef const struct XAPrefetchStatusItf_ 
-    * const * XAPrefetchStatusItf;
-
-typedef void (XAAPIENTRY * xaPrefetchCallback) (
-    XAPrefetchStatusItf caller,
-    void * pContext,
-    XAuint32 event
-);
-
-struct XAPrefetchStatusItf_ {
-    XAresult (*GetPrefetchStatus) (
-        XAPrefetchStatusItf self, 
-        XAuint32 * pStatus
-    );
-    XAresult (*GetFillLevel) (
-        XAPrefetchStatusItf self, 
-        XApermille * pLevel
-    );
-    XAresult (*RegisterCallback) (
-        XAPrefetchStatusItf self,
-        xaPrefetchCallback callback,
-        void * pContext
-    );
-    XAresult (*SetCallbackEventsMask) (
-        XAPrefetchStatusItf self, 
-        XAuint32 eventFlags
-    );
-    XAresult (*GetCallbackEventsMask) (
-        XAPrefetchStatusItf self, 
-        XAuint32 * pEventFlags
-    );
-    XAresult (*SetFillUpdatePeriod) (
-        XAPrefetchStatusItf self, 
-        XApermille period
-    );
-    XAresult (*GetFillUpdatePeriod) (
-        XAPrefetchStatusItf self, 
-        XApermille * pPeriod
-    );
-};
-
-/* SEEK */
-
-XA_API extern const XAInterfaceID XA_IID_SEEK;
-
-struct XASeekItf_;
-typedef const struct XASeekItf_ * const * XASeekItf;
-
-struct XASeekItf_ {
-    XAresult (*SetPosition) (
-        XASeekItf self,
-        XAmillisecond pos,
-        XAuint32 seekMode
-    );
-    XAresult (*SetLoop) (
-        XASeekItf self,
-        XAboolean loopEnable,
-        XAmillisecond startPos,
-        XAmillisecond endPos
-    );
-    XAresult (*GetLoop) (
-        XASeekItf self,
-        XAboolean * pLoopEnabled,
-        XAmillisecond * pStartPos,
-        XAmillisecond * pEndPos
-    );
-};
-
-/* VOLUME */
-
-XA_API extern const XAInterfaceID XA_IID_VOLUME;
-
-struct XAVolumeItf_;
-typedef const struct XAVolumeItf_ * const * XAVolumeItf;
-
-struct XAVolumeItf_ {
-    XAresult (*SetVolumeLevel) (
-        XAVolumeItf self,
-        XAmillibel level
-    );
-    XAresult (*GetVolumeLevel) (
-        XAVolumeItf self,
-        XAmillibel * pLevel
-    );
-    XAresult (*GetMaxVolumeLevel) (
-        XAVolumeItf self,
-        XAmillibel * pMaxLevel
-    );
-    XAresult (*SetMute) (
-        XAVolumeItf self,
-        XAboolean mute
-    );
-    XAresult (*GetMute) (
-        XAVolumeItf self,
-        XAboolean * pMute
-    );
-    XAresult (*EnableStereoPosition) (
-        XAVolumeItf self,
-        XAboolean enable
-    );
-    XAresult (*IsEnabledStereoPosition) (
-        XAVolumeItf self,
-        XAboolean * pEnable
-    );
-    XAresult (*SetStereoPosition) (
-        XAVolumeItf self,
-        XApermille stereoPosition
-    );
-    XAresult (*GetStereoPosition) (
-        XAVolumeItf self,
-        XApermille * pStereoPosition
-    );
-};
-
-/* IMAGE CONTROL */
-
-XA_API extern const XAInterfaceID XA_IID_IMAGECONTROLS;
-
-struct XAImageControlsItf_;
-typedef const struct XAImageControlsItf_ * const * XAImageControlsItf;
-
-struct XAImageControlsItf_ {
-    XAresult (*SetBrightness) (
-        XAImageControlsItf self,
-        XAuint32 brightness
-    );
-    XAresult (*GetBrightness) (
-        XAImageControlsItf self,
-        XAuint32 * pBrightness
-    );
-    XAresult (*SetContrast) (
-        XAImageControlsItf self,
-        XAint32 contrast
-    );
-    XAresult (*GetContrast) (
-        XAImageControlsItf self,
-        XAint32 * pContrast
-    );
-    XAresult (*SetGamma) (
-        XAImageControlsItf self,
-        XApermille gamma
-    );
-    XAresult (*GetGamma) (
-        XAImageControlsItf self,
-        XApermille * pGamma
-    );
-    XAresult (*GetSupportedGammaSettings) (
-        XAImageControlsItf self,
-        XApermille * pMinValue,
-        XApermille * pMaxValue,
-        XAuint32 * pNumSettings,
-        XApermille ** ppSettings
-    );
-};
-
-/* IMAGE EFFECT */
-
-#define XA_IMAGEEFFECT_MONOCHROME       ((XAuint32) 0x00000001)
-#define XA_IMAGEEFFECT_NEGATIVE         ((XAuint32) 0x00000002)
-#define XA_IMAGEEFFECT_SEPIA            ((XAuint32) 0x00000003)
-#define XA_IMAGEEFFECT_EMBOSS           ((XAuint32) 0x00000004)
-#define XA_IMAGEEFFECT_PAINTBRUSH       ((XAuint32) 0x00000005)
-#define XA_IMAGEEFFECT_SOLARIZE         ((XAuint32) 0x00000006)
-#define XA_IMAGEEFFECT_CARTOON          ((XAuint32) 0x00000007)
-
-XA_API extern const XAInterfaceID XA_IID_IMAGEEFFECTS;
-
-struct XAImageEffectsItf_;
-typedef const struct XAImageEffectsItf_ * const * XAImageEffectsItf;
-
-struct XAImageEffectsItf_ {
-    XAresult (*QuerySupportedImageEffects) (
-        XAImageEffectsItf self, 
-        XAuint32 index, 
-        XAuint32 * pImageEffectId
-    );
-    XAresult (*EnableImageEffect) (
-        XAImageEffectsItf self, 
-        XAuint32 imageEffectID
-    );
-    XAresult (*DisableImageEffect) (
-        XAImageEffectsItf self, 
-        XAuint32 imageEffectID
-    );
-    XAresult (*IsImageEffectEnabled) (
-        XAImageEffectsItf self, 
-        XAuint32 imageEffectID,
-        XAboolean * pEnabled
-    );
-};
-
-/* VIDEO POST PROCESSING */
-
-#define XA_VIDEOMIRROR_NONE             ((XAuint32) 0x00000001)
-#define XA_VIDEOMIRROR_VERTICAL         ((XAuint32) 0x00000002)
-#define XA_VIDEOMIRROR_HORIZONTAL       ((XAuint32) 0x00000003)
-#define XA_VIDEOMIRROR_BOTH             ((XAuint32) 0x00000004)
-
-#define XA_VIDEOSCALE_STRETCH           ((XAuint32) 0x00000001)
-#define XA_VIDEOSCALE_FIT               ((XAuint32) 0x00000002)
-#define XA_VIDEOSCALE_CROP              ((XAuint32) 0x00000003)
-
-#define XA_RENDERINGHINT_NONE           ((XAuint32) 0x00000000)
-#define XA_RENDERINGHINT_ANTIALIASING   ((XAuint32) 0x00000001)
-
-typedef struct XARectangle_ {
-    XAuint32 left;
-    XAuint32 top;
-    XAuint32 width;
-    XAuint32 height;
-} XARectangle;
-
-XA_API extern const XAInterfaceID XA_IID_VIDEOPOSTPROCESSING;
-
-struct XAVideoPostProcessingItf_;
-typedef const struct XAVideoPostProcessingItf_ * const * XAVideoPostProcessingItf;
-
-struct XAVideoPostProcessingItf_ {
-    XAresult (*SetRotation) (
-        XAVideoPostProcessingItf self,
-        XAmillidegree rotation
-    );
-    XAresult (*IsArbitraryRotationSupported) (
-        XAVideoPostProcessingItf self,
-        XAboolean *pSupported
-    );
-    XAresult (*SetScaleOptions) (
-        XAVideoPostProcessingItf self,
-        XAuint32 scaleOptions,
-        XAuint32 backgroundColor,
-        XAuint32 renderingHints
-    );
-    XAresult (*SetSourceRectangle) (
-        XAVideoPostProcessingItf self,
-        const XARectangle *pSrcRect
-    );
-    XAresult (*SetDestinationRectangle) (
-        XAVideoPostProcessingItf self,
-        const XARectangle *pDestRect
-    );
-    XAresult (*SetMirror) (
-        XAVideoPostProcessingItf self,
-        XAuint32 mirror
-    );
-    XAresult (*Commit) (
-        XAVideoPostProcessingItf self
-    );
-};
-
-
-
-  /*****************************************************************/
-  /* CAPTURING INTERFACES, STRUCTS AND DEFINES                     */
-  /*****************************************************************/
-
-/* RECORD */
-
-#define XA_RECORDEVENT_HEADATLIMIT          ((XAuint32) 0x00000001)
-#define XA_RECORDEVENT_HEADATMARKER         ((XAuint32) 0x00000002)
-#define XA_RECORDEVENT_HEADATNEWPOS         ((XAuint32) 0x00000004)
-#define XA_RECORDEVENT_HEADMOVING           ((XAuint32) 0x00000008)
-#define XA_RECORDEVENT_HEADSTALLED          ((XAuint32) 0x00000010)
-#define XA_RECORDEVENT_BUFFER_FULL          ((XAuint32) 0x00000020)
-
-#define XA_RECORDSTATE_STOPPED          ((XAuint32) 0x00000001)
-#define XA_RECORDSTATE_PAUSED           ((XAuint32) 0x00000002)
-#define XA_RECORDSTATE_RECORDING        ((XAuint32) 0x00000003)
-
-XA_API extern const XAInterfaceID XA_IID_RECORD;
-
-struct XARecordItf_;
-typedef const struct XARecordItf_ * const * XARecordItf;
-
-typedef void (XAAPIENTRY * xaRecordCallback) (
-    XARecordItf caller,
-    void * pContext,
-    XAuint32 event
-);
-
-struct XARecordItf_ {
-    XAresult (*SetRecordState) (
-        XARecordItf self,
-        XAuint32 state
-    );
-    XAresult (*GetRecordState) (
-        XARecordItf self,
-        XAuint32 * pState
-    );
-    XAresult (*SetDurationLimit) (
-        XARecordItf self,
-        XAmillisecond msec
-    );
-    XAresult (*GetPosition) (
-        XARecordItf self,
-        XAmillisecond * pMsec
-    );
-    XAresult (*RegisterCallback) (
-        XARecordItf self,
-        xaRecordCallback callback,
-        void * pContext
-    );
-    XAresult (*SetCallbackEventsMask) (
-        XARecordItf self,
-        XAuint32 eventFlags
-    );
-    XAresult (*GetCallbackEventsMask) (
-        XARecordItf self,
-        XAuint32 * pEventFlags
-    );
-    XAresult (*SetMarkerPosition) (
-        XARecordItf self,
-        XAmillisecond mSec
-    );
-    XAresult (*ClearMarkerPosition) (
-        XARecordItf self
-    );
-    XAresult (*GetMarkerPosition) (
-        XARecordItf self,
-        XAmillisecond * pMsec
-    );
-    XAresult (*SetPositionUpdatePeriod) (
-        XARecordItf self,
-        XAmillisecond mSec
-    );
-    XAresult (*GetPositionUpdatePeriod) (
-        XARecordItf self,
-        XAmillisecond * pMsec
-    );
-};
-
-/* SNAPSHOT */
-
-XA_API extern const XAInterfaceID XA_IID_SNAPSHOT;
-
-struct XASnapshotItf_;
-typedef const struct XASnapshotItf_ * const * XASnapshotItf;
-
-typedef void (XAAPIENTRY * xaSnapshotInitiatedCallback) (
-    XASnapshotItf caller,
-    void * context
-);
-
-typedef void (XAAPIENTRY * xaSnapshotTakenCallback) (
-    XASnapshotItf caller,
-    void * context,
-    XAuint32 numberOfPicsTaken,
-    const XADataSink * image
-);
-
-struct XASnapshotItf_ {
-    XAresult (*InitiateSnapshot) (
-        XASnapshotItf self,
-        XAuint32 numberOfPictures,
-        XAuint32 fps,
-        XAboolean freezeViewFinder,
-        XADataSink sink,
-        xaSnapshotInitiatedCallback initiatedCallback, 
-        xaSnapshotTakenCallback takenCallback, 
-        void * pContext
-    );
-    XAresult (*TakeSnapshot) (
-        XASnapshotItf self
-    );
-    XAresult (*CancelSnapshot) (
-        XASnapshotItf self
-    );
-    XAresult (*ReleaseBuffers) (
-        XASnapshotItf self,
-        XADataSink * image
-    );
-    XAresult (*GetMaxPicsPerBurst) (
-        XASnapshotItf self,
-        XAuint32 * maxNumberOfPictures
-    );
-    XAresult (*GetBurstFPSRange) (
-        XASnapshotItf self,
-        XAuint32 * minFPS,
-        XAuint32 * maxFPS
-    );
-    XAresult (*SetShutterFeedback) (
-        XASnapshotItf self,
-        XAboolean enabled
-    );
-    XAresult (*GetShutterFeedback) (
-        XASnapshotItf self,
-        XAboolean * enabled
-    );
-};
-
-
-
-  /*****************************************************************/
-  /* METADATA RELATED INTERFACES, STRUCTS AND DEFINES              */
-  /*****************************************************************/
-
-/* METADATA (EXTRACTION, INSERTION, TRAVERSAL) */
-
-#define XA_NODE_PARENT                  ((XAuint32) 0xFFFFFFFF)
-
-#define XA_ROOT_NODE_ID                 ((XAint32) 0x7FFFFFFF)
-
-#define XA_NODETYPE_UNSPECIFIED         ((XAuint32) 0x00000001)
-#define XA_NODETYPE_AUDIO               ((XAuint32) 0x00000002)
-#define XA_NODETYPE_VIDEO               ((XAuint32) 0x00000003)
-#define XA_NODETYPE_IMAGE               ((XAuint32) 0x00000004)
-
-#define XA_CHARACTERENCODING_UNKNOWN            ((XAuint32) 0x00000000)
-#define XA_CHARACTERENCODING_BINARY             ((XAuint32) 0x00000001)
-#define XA_CHARACTERENCODING_ASCII              ((XAuint32) 0x00000002)
-#define XA_CHARACTERENCODING_BIG5               ((XAuint32) 0x00000003)
-#define XA_CHARACTERENCODING_CODEPAGE1252       ((XAuint32) 0x00000004)
-#define XA_CHARACTERENCODING_GB2312             ((XAuint32) 0x00000005)
-#define XA_CHARACTERENCODING_HZGB2312           ((XAuint32) 0x00000006)
-#define XA_CHARACTERENCODING_GB12345            ((XAuint32) 0x00000007)
-#define XA_CHARACTERENCODING_GB18030            ((XAuint32) 0x00000008)
-#define XA_CHARACTERENCODING_GBK                ((XAuint32) 0x00000009)
-#define XA_CHARACTERENCODING_IMAPUTF7           ((XAuint32) 0x0000000A)
-#define XA_CHARACTERENCODING_ISO2022JP          ((XAuint32) 0x0000000B)
-#define XA_CHARACTERENCODING_ISO2022JP1         ((XAuint32) 0x0000000B)
-#define XA_CHARACTERENCODING_ISO88591           ((XAuint32) 0x0000000C)
-#define XA_CHARACTERENCODING_ISO885910          ((XAuint32) 0x0000000D)
-#define XA_CHARACTERENCODING_ISO885913          ((XAuint32) 0x0000000E)
-#define XA_CHARACTERENCODING_ISO885914          ((XAuint32) 0x0000000F)
-#define XA_CHARACTERENCODING_ISO885915          ((XAuint32) 0x00000010)
-#define XA_CHARACTERENCODING_ISO88592           ((XAuint32) 0x00000011)
-#define XA_CHARACTERENCODING_ISO88593           ((XAuint32) 0x00000012)
-#define XA_CHARACTERENCODING_ISO88594           ((XAuint32) 0x00000013)
-#define XA_CHARACTERENCODING_ISO88595           ((XAuint32) 0x00000014)
-#define XA_CHARACTERENCODING_ISO88596           ((XAuint32) 0x00000015)
-#define XA_CHARACTERENCODING_ISO88597           ((XAuint32) 0x00000016)
-#define XA_CHARACTERENCODING_ISO88598           ((XAuint32) 0x00000017)
-#define XA_CHARACTERENCODING_ISO88599           ((XAuint32) 0x00000018)
-#define XA_CHARACTERENCODING_ISOEUCJP           ((XAuint32) 0x00000019)
-#define XA_CHARACTERENCODING_SHIFTJIS           ((XAuint32) 0x0000001A)
-#define XA_CHARACTERENCODING_SMS7BIT            ((XAuint32) 0x0000001B)
-#define XA_CHARACTERENCODING_UTF7               ((XAuint32) 0x0000001C)
-#define XA_CHARACTERENCODING_UTF8               ((XAuint32) 0x0000001D)
-#define XA_CHARACTERENCODING_JAVACONFORMANTUTF8 ((XAuint32) 0x0000001E)
-#define XA_CHARACTERENCODING_UTF16BE            ((XAuint32) 0x0000001F)
-#define XA_CHARACTERENCODING_UTF16LE            ((XAuint32) 0x00000020)
-
-#define XA_METADATA_FILTER_KEY          ((XAuint8) 0x01)
-#define XA_METADATA_FILTER_LANG         ((XAuint8) 0x02)
-#define XA_METADATA_FILTER_ENCODING     ((XAuint8) 0x04)
-
-#define XA_METADATATRAVERSALMODE_ALL    ((XAuint32) 0x00000001)
-#define XA_METADATATRAVERSALMODE_NODE   ((XAuint32) 0x00000002)
-
-#ifndef _KHRONOS_KEYS_
-#define _KHRONOS_KEYS_
-#define KHRONOS_TITLE                   "KhronosTitle"
-#define KHRONOS_ALBUM                   "KhronosAlbum"
-#define KHRONOS_TRACK_NUMBER            "KhronosTrackNumber"
-#define KHRONOS_ARTIST                  "KhronosArtist"
-#define KHRONOS_GENRE                   "KhronosGenre"
-#define KHRONOS_YEAR                    "KhronosYear"
-#define KHRONOS_COMMENT                 "KhronosComment"
-#define KHRONOS_ARTIST_URL              "KhronosArtistURL"
-#define KHRONOS_CONTENT_URL             "KhronosContentURL"
-#define KHRONOS_RATING                  "KhronosRating"
-#define KHRONOS_ALBUM_ART               "KhronosAlbumArt"
-#define KHRONOS_COPYRIGHT               "KhronosCopyright"
-#endif /* _KHRONOS_KEYS_ */
-
-
-typedef struct XAMetadataInfo_ {
-    XAuint32 size;
-    XAuint32 encoding;
-    const XAchar langCountry[16];
-    XAuint8 data[1];
-} XAMetadataInfo;
-
-XA_API extern const XAInterfaceID XA_IID_METADATAEXTRACTION;
-
-struct XAMetadataExtractionItf_;
-typedef const struct XAMetadataExtractionItf_
-    * const * XAMetadataExtractionItf;
-
-struct XAMetadataExtractionItf_ {
-    XAresult (*GetItemCount) (
-        XAMetadataExtractionItf self,
-        XAuint32 * pItemCount
-    );
-    XAresult (*GetKeySize) (
-        XAMetadataExtractionItf self,
-        XAuint32 index,
-        XAuint32 * pKeySize
-    );
-    XAresult (*GetKey) (
-        XAMetadataExtractionItf self,
-        XAuint32 index,
-        XAuint32 keySize,
-        XAMetadataInfo * pKey
-    );
-    XAresult (*GetValueSize) (
-        XAMetadataExtractionItf self,
-        XAuint32 index,
-        XAuint32 * pValueSize
-    );
-    XAresult (*GetValue) (
-        XAMetadataExtractionItf self,
-        XAuint32 index,
-        XAuint32 valueSize,
-        XAMetadataInfo * pValue
-    );
-    XAresult (*AddKeyFilter) (
-        XAMetadataExtractionItf self,
-        XAuint32 keySize,
-        const void * pKey,
-        XAuint32 keyEncoding,
-        const XAchar * pValueLangCountry,
-        XAuint32 valueEncoding,
-        XAuint8 filterMask
-    );
-    XAresult (*ClearKeyFilter) (
-        XAMetadataExtractionItf self
-    );
-};
-
-
-XA_API extern const XAInterfaceID XA_IID_METADATAINSERTION;
-
-struct XAMetadataInsertionItf_;
-typedef const struct XAMetadataInsertionItf_
-    * const * XAMetadataInsertionItf;
-
-typedef void (XAAPIENTRY * xaMetadataInsertionCallback) (
-    XAMetadataInsertionItf caller,
-    void * pContext,
-    XAMetadataInfo * pKey,
-    XAMetadataInfo * pValue,
-    XAint32 nodeID,
-    XAboolean result
-);
-
-struct XAMetadataInsertionItf_ {
-    XAresult (*CreateChildNode) (
-        XAMetadataInsertionItf self,
-        XAint32 parentNodeID, 
-        XAuint32 type,
-        XAchar * mimeType,
-        XAint32 * pChildNodeID
-    );
-    XAresult (*GetSupportedKeysCount) (
-        XAMetadataInsertionItf self,
-        XAint32 nodeID,
-        XAboolean * pFreeKeys,
-        XAuint32 * pKeyCount,
-        XAuint32 * pEncodingCount
-    );
-    XAresult (*GetKeySize) (
-        XAMetadataInsertionItf self,
-        XAint32 nodeID,
-        XAuint32 keyIndex,
-        XAuint32 * pKeySize
-    );
-    XAresult (*GetKey) (
-        XAMetadataInsertionItf self,
-        XAint32 nodeID,
-        XAuint32 keyIndex,
-        XAuint32 keySize,
-        XAMetadataInfo * pKey
-    );
-    XAresult (*GetFreeKeysEncoding) (
-        XAMetadataInsertionItf self,
-        XAint32 nodeID,
-        XAuint32 encodingIndex,
-        XAuint32 * pEncoding
-    );
-    XAresult (*InsertMetadataItem) (
-        XAMetadataInsertionItf self,
-        XAint32 nodeID,
-        XAMetadataInfo * pKey,
-        XAMetadataInfo * pValue,
-        XAboolean overwrite
-    );
-    XAresult (*RegisterCallback) (
-        XAMetadataInsertionItf self,
-        xaMetadataInsertionCallback callback,
-        void * pContext
-    );
-};
-
-
-XA_API extern const XAInterfaceID XA_IID_METADATATRAVERSAL;
- 
-struct XAMetadataTraversalItf_;
-typedef const struct XAMetadataTraversalItf_
-    *  const *  XAMetadataTraversalItf;
-
-struct XAMetadataTraversalItf_ {
-    XAresult (*SetMode) (
-        XAMetadataTraversalItf self,
-        XAuint32 mode
-    );
-    XAresult (*GetChildCount) (
-        XAMetadataTraversalItf self,
-        XAuint32 * pCount
-    );
-    XAresult (*GetChildMIMETypeSize) (
-        XAMetadataTraversalItf self,
-        XAuint32 index,
-        XAuint32 * pSize
-    );
-    XAresult (*GetChildInfo) (
-        XAMetadataTraversalItf self,
-        XAuint32 index,
-        XAint32 * pNodeID,
-        XAuint32 * pType,
-        XAuint32 size,
-        XAchar * pMimeType
-    );
-    XAresult (*SetActiveNode) (
-        XAMetadataTraversalItf self,
-        XAuint32 index
-    );
-};
-
-/* DYNAMIC SOURCE */
-
-XA_API extern const XAInterfaceID XA_IID_DYNAMICSOURCE;
-
-struct XADynamicSourceItf_;
-typedef const struct XADynamicSourceItf_ * const * XADynamicSourceItf;
-
-struct XADynamicSourceItf_ {
-    XAresult (*SetSource) (
-        XADynamicSourceItf self,
-        XADataSource * pDataSource
-    );
-};
-
-
-
-  /*****************************************************************/
-  /*  I/O DEVICES RELATED INTERFACES, STRUCTS AND DEFINES          */
-  /*****************************************************************/
-
-/* CAMERA AND CAMERA CAPABILITIES */
-
-#define XA_CAMERA_APERTUREMODE_MANUAL               ((XAuint32) 0x00000001)
-#define XA_CAMERA_APERTUREMODE_AUTO                 ((XAuint32) 0x00000002)
-
-#define XA_CAMERA_AUTOEXPOSURESTATUS_SUCCESS        ((XAuint32) 0x00000001)
-#define XA_CAMERA_AUTOEXPOSURESTATUS_UNDEREXPOSURE  ((XAuint32) 0x00000002)
-#define XA_CAMERA_AUTOEXPOSURESTATUS_OVEREXPOSURE   ((XAuint32) 0x00000003)
-
-#define XA_CAMERACBEVENT_ROTATION                   ((XAuint32) 0x00000001)
-#define XA_CAMERACBEVENT_FLASHREADY                 ((XAuint32) 0x00000002)
-#define XA_CAMERACBEVENT_FOCUSSTATUS                ((XAuint32) 0x00000003)
-#define XA_CAMERACBEVENT_EXPOSURESTATUS             ((XAuint32) 0x00000004)
-#define XA_CAMERACBEVENT_WHITEBALANCELOCKED         ((XAuint32) 0x00000005)
-#define XA_CAMERACBEVENT_ZOOMSTATUS                 ((XAuint32) 0x00000006)
-
-#define XA_CAMERACAP_FLASH                          ((XAuint32) 0x00000001)
-#define XA_CAMERACAP_AUTOFOCUS                      ((XAuint32) 0x00000002)
-#define XA_CAMERACAP_CONTINUOUSAUTOFOCUS            ((XAuint32) 0x00000004)
-#define XA_CAMERACAP_MANUALFOCUS                    ((XAuint32) 0x00000008)
-#define XA_CAMERACAP_AUTOEXPOSURE                   ((XAuint32) 0x00000010)
-#define XA_CAMERACAP_MANUALEXPOSURE                 ((XAuint32) 0x00000020)
-#define XA_CAMERACAP_AUTOISOSENSITIVITY             ((XAuint32) 0x00000040)
-#define XA_CAMERACAP_MANUALISOSENSITIVITY           ((XAuint32) 0x00000080)
-#define XA_CAMERACAP_AUTOAPERTURE                   ((XAuint32) 0x00000100)
-#define XA_CAMERACAP_MANUALAPERTURE                 ((XAuint32) 0x00000200)
-#define XA_CAMERACAP_AUTOSHUTTERSPEED               ((XAuint32) 0x00000400)
-#define XA_CAMERACAP_MANUALSHUTTERSPEED             ((XAuint32) 0x00000800)
-#define XA_CAMERACAP_AUTOWHITEBALANCE               ((XAuint32) 0x00001000)
-#define XA_CAMERACAP_MANUALWHITEBALANCE             ((XAuint32) 0x00002000)
-#define XA_CAMERACAP_OPTICALZOOM                    ((XAuint32) 0x00004000)
-#define XA_CAMERACAP_DIGITALZOOM                    ((XAuint32) 0x00008000)
-#define XA_CAMERACAP_METERING                       ((XAuint32) 0x00010000)
-#define XA_CAMERACAP_BRIGHTNESS                     ((XAuint32) 0x00020000)
-#define XA_CAMERACAP_CONTRAST                       ((XAuint32) 0x00040000)
-#define XA_CAMERACAP_GAMMA                          ((XAuint32) 0x00080000)
-
-
-#define XA_CAMERA_EXPOSUREMODE_MANUAL               ((XAuint32) 0x00000001)
-#define XA_CAMERA_EXPOSUREMODE_AUTO                 ((XAuint32) 0x00000002)
-#define XA_CAMERA_EXPOSUREMODE_NIGHT                ((XAuint32) 0x00000004)
-#define XA_CAMERA_EXPOSUREMODE_BACKLIGHT            ((XAuint32) 0x00000008)
-#define XA_CAMERA_EXPOSUREMODE_SPOTLIGHT            ((XAuint32) 0x00000010)
-#define XA_CAMERA_EXPOSUREMODE_SPORTS               ((XAuint32) 0x00000020)
-#define XA_CAMERA_EXPOSUREMODE_SNOW                 ((XAuint32) 0x00000040)
-#define XA_CAMERA_EXPOSUREMODE_BEACH                ((XAuint32) 0x00000080)
-#define XA_CAMERA_EXPOSUREMODE_LARGEAPERTURE        ((XAuint32) 0x00000100)
-#define XA_CAMERA_EXPOSUREMODE_SMALLAPERTURE        ((XAuint32) 0x00000200)
-#define XA_CAMERA_EXPOSUREMODE_PORTRAIT             ((XAuint32) 0x0000400)
-#define XA_CAMERA_EXPOSUREMODE_NIGHTPORTRAIT        ((XAuint32) 0x00000800)
-
-#define XA_CAMERA_FLASHMODE_OFF                     ((XAuint32) 0x00000001)
-#define XA_CAMERA_FLASHMODE_ON                      ((XAuint32) 0x00000002)
-#define XA_CAMERA_FLASHMODE_AUTO                    ((XAuint32) 0x00000004)
-#define XA_CAMERA_FLASHMODE_REDEYEREDUCTION         ((XAuint32) 0x00000008)
-#define XA_CAMERA_FLASHMODE_REDEYEREDUCTION_AUTO    ((XAuint32) 0x00000010)
-#define XA_CAMERA_FLASHMODE_FILLIN                  ((XAuint32) 0x00000020)
-#define XA_CAMERA_FLASHMODE_TORCH                   ((XAuint32) 0x00000040)
-
-#define XA_CAMERA_FOCUSMODE_MANUAL                  ((XAuint32) 0x00000001)
-#define XA_CAMERA_FOCUSMODE_AUTO                    ((XAuint32) 0x00000002)
-#define XA_CAMERA_FOCUSMODE_CENTROID                ((XAuint32) 0x00000004)
-#define XA_CAMERA_FOCUSMODE_CONTINUOUS_AUTO         ((XAuint32) 0x00000008)
-#define XA_CAMERA_FOCUSMODE_CONTINUOUS_CENTROID     ((XAuint32) 0x00000010)
-
-#define XA_CAMERA_FOCUSMODESTATUS_OFF               ((XAuint32) 0x00000001)
-#define XA_CAMERA_FOCUSMODESTATUS_REQUEST           ((XAuint32) 0x00000002)
-#define XA_CAMERA_FOCUSMODESTATUS_REACHED           ((XAuint32) 0x00000003)
-#define XA_CAMERA_FOCUSMODESTATUS_UNABLETOREACH     ((XAuint32) 0x00000004)
-#define XA_CAMERA_FOCUSMODESTATUS_LOST              ((XAuint32) 0x00000005)
-
-#define XA_CAMERA_ISOSENSITIVITYMODE_MANUAL         ((XAuint32) 0x00000001)
-#define XA_CAMERA_ISOSENSITIVITYMODE_AUTO           ((XAuint32) 0x00000002)
-
-#define XA_CAMERA_LOCK_AUTOFOCUS                    ((XAuint32) 0x00000001)
-#define XA_CAMERA_LOCK_AUTOEXPOSURE                 ((XAuint32) 0x00000002)
-#define XA_CAMERA_LOCK_AUTOWHITEBALANCE             ((XAuint32) 0x00000004)
-
-#define XA_CAMERA_METERINGMODE_AVERAGE              ((XAuint32) 0x00000001)
-#define XA_CAMERA_METERINGMODE_SPOT                 ((XAuint32) 0x00000002)
-#define XA_CAMERA_METERINGMODE_MATRIX               ((XAuint32) 0x00000004)
-
-#define XA_CAMERA_SHUTTERSPEEDMODE_MANUAL           ((XAuint32) 0x00000001)
-#define XA_CAMERA_SHUTTERSPEEDMODE_AUTO             ((XAuint32) 0x00000002)
-
-#define XA_CAMERA_WHITEBALANCEMODE_MANUAL           ((XAuint32) 0x00000001)
-#define XA_CAMERA_WHITEBALANCEMODE_AUTO             ((XAuint32) 0x00000002)
-#define XA_CAMERA_WHITEBALANCEMODE_SUNLIGHT         ((XAuint32) 0x00000004)
-#define XA_CAMERA_WHITEBALANCEMODE_CLOUDY           ((XAuint32) 0x00000008)
-#define XA_CAMERA_WHITEBALANCEMODE_SHADE            ((XAuint32) 0x00000010)
-#define XA_CAMERA_WHITEBALANCEMODE_TUNGSTEN         ((XAuint32) 0x00000020)
-#define XA_CAMERA_WHITEBALANCEMODE_FLUORESCENT      ((XAuint32) 0x00000040)
-#define XA_CAMERA_WHITEBALANCEMODE_INCANDESCENT     ((XAuint32) 0x00000080)
-#define XA_CAMERA_WHITEBALANCEMODE_FLASH            ((XAuint32) 0x00000100)
-#define XA_CAMERA_WHITEBALANCEMODE_SUNSET           ((XAuint32) 0x00000200)
-
-#define XA_CAMERA_ZOOM_SLOW                         ((XAuint32) 50)
-#define XA_CAMERA_ZOOM_NORMAL                       ((XAuint32) 100)
-#define XA_CAMERA_ZOOM_FAST                         ((XAuint32) 200)
-#define XA_CAMERA_ZOOM_FASTEST                      ((XAuint32) 0xFFFFFFFF)
-
-#define XA_FOCUSPOINTS_ONE                          ((XAuint32) 0x00000001)
-#define XA_FOCUSPOINTS_THREE_3X1                    ((XAuint32) 0x00000002)
-#define XA_FOCUSPOINTS_FIVE_CROSS                   ((XAuint32) 0x00000003)
-#define XA_FOCUSPOINTS_SEVEN_CROSS                  ((XAuint32) 0x00000004)
-#define XA_FOCUSPOINTS_NINE_SQUARE                  ((XAuint32) 0x00000005)
-#define XA_FOCUSPOINTS_ELEVEN_CROSS                 ((XAuint32) 0x00000006)
-#define XA_FOCUSPOINTS_TWELVE_3X4                   ((XAuint32) 0x00000007)
-#define XA_FOCUSPOINTS_TWELVE_4X3                   ((XAuint32) 0x00000008)
-#define XA_FOCUSPOINTS_SIXTEEN_SQUARE               ((XAuint32) 0x00000009)
-#define XA_FOCUSPOINTS_CUSTOM                       ((XAuint32) 0x0000000A)
-
-typedef struct XAFocusPointPosition_ {
-    XAuint32 left;
-    XAuint32 top;
-    XAuint32 width;
-    XAuint32 height;
-} XAFocusPointPosition;
-
-#define XA_ORIENTATION_UNKNOWN                      ((XAuint32) 0x00000001)
-#define XA_ORIENTATION_OUTWARDS                     ((XAuint32) 0x00000002)
-#define XA_ORIENTATION_INWARDS                      ((XAuint32) 0x00000003)
-
-typedef struct XACameraDescriptor_ {
-    XAchar * name;
-    XAuint32 maxWidth;
-    XAuint32 maxHeight;
-    XAuint32 orientation;
-    XAuint32 featuresSupported;
-    XAuint32 exposureModesSupported;
-    XAuint32 flashModesSupported;
-    XAuint32 focusModesSupported;
-    XAuint32 meteringModesSupported;
-    XAuint32 whiteBalanceModesSupported;
-} XACameraDescriptor;
-
-XA_API extern const XAInterfaceID XA_IID_CAMERACAPABILITIES;
-
-struct XACameraCapabilitiesItf_;
-typedef const struct XACameraCapabilitiesItf_
-    * const * XACameraCapabilitiesItf;
-
-struct XACameraCapabilitiesItf_ {
-    XAresult (*GetCameraCapabilities) (
-        XACameraCapabilitiesItf self,
-        XAuint32 *pIndex,
-        XAuint32 * pCameraDeviceID,
-        XACameraDescriptor * pDescriptor
-    );
-    XAresult (*QueryFocusRegionPatterns) (
-        XACameraCapabilitiesItf self,
-        XAuint32 cameraDeviceID,
-        XAuint32 * pPatternID,
-        XAuint32 * pFocusPattern,
-        XAuint32 * pCustomPoints1,
-        XAuint32 * pCustomPoints2
-    );
-    XAresult (*GetSupportedAutoLocks) (
-        XACameraCapabilitiesItf self,
-        XAuint32 cameraDeviceID,
-        XAuint32 * pNumCombinations,
-        XAuint32 ** ppLocks
-    );
-    XAresult (*GetSupportedFocusManualSettings) (
-        XACameraCapabilitiesItf self,
-        XAuint32 cameraDeviceID,
-        XAboolean macroEnabled,
-        XAmillimeter * pMinValue,
-        XAmillimeter * pMaxValue,
-        XAuint32 * pNumSettings,
-        XAmillimeter ** ppSettings
-    );
-    XAresult (*GetSupportedISOSensitivitySettings) (
-        XACameraCapabilitiesItf self,
-        XAuint32 cameraDeviceID,
-        XAuint32 * pMinValue,
-        XAuint32 * pMaxValue,
-        XAuint32 * pNumSettings,
-        XAuint32 ** ppSettings
-    );
-    XAresult (*GetSupportedApertureManualSettings) (
-        XACameraCapabilitiesItf self,
-        XAuint32 cameraDeviceID,
-        XAuint32 * pMinValue,
-        XAuint32 * pMaxValue,
-        XAuint32 * pNumSettings,
-        XAuint32 ** ppSettings
-    );
-    XAresult (*GetSupportedShutterSpeedManualSettings) (
-        XACameraCapabilitiesItf self,
-        XAuint32 cameraDeviceID,
-        XAmicrosecond * pMinValue,
-        XAmicrosecond * pMaxValue,
-        XAuint32 * pNumSettings,
-        XAmicrosecond ** ppSettings
-    );
-    XAresult (*GetSupportedWhiteBalanceManualSettings) (
-        XACameraCapabilitiesItf self,
-        XAuint32 cameraDeviceID,
-        XAuint32 * pMinValue,
-        XAuint32 * pMaxValue,
-        XAuint32 * pNumSettings,
-        XAuint32 ** ppSettings
-    );
-    XAresult (*GetSupportedZoomSettings) (
-        XACameraCapabilitiesItf self,
-        XAuint32 cameraDeviceID,
-        XAboolean digitalEnabled,
-        XAboolean macroEnabled,
-        XApermille * pMaxValue,
-        XAuint32 * pNumSettings,
-        XApermille ** ppSettings,
-        XAboolean * pSpeedSupported
-
-    );
-};
-
-XA_API extern const XAInterfaceID XA_IID_CAMERA;
-
-struct XACameraItf_;
-typedef const struct XACameraItf_ * const * XACameraItf;
-
-typedef void (XAAPIENTRY * xaCameraCallback) (
-    XACameraItf caller,
-    void * pContext,
-    XAuint32 eventId,
-    XAuint32 eventData
-);
-
-struct XACameraItf_ {
-    XAresult (*RegisterCallback) (
-        XACameraItf self,
-        xaCameraCallback callback,
-        void * pContext
-    );
-    XAresult (*SetFlashMode) (
-        XACameraItf self, 
-        XAuint32 flashMode
-    );
-    XAresult (*GetFlashMode) (
-        XACameraItf self,
-        XAuint32 * pFlashMode
-    );
-    XAresult (*IsFlashReady) (
-        XACameraItf self,
-        XAboolean * pReady
-    );
-    XAresult (*SetFocusMode) (
-        XACameraItf self, 
-        XAuint32 focusMode, 
-        XAmillimeter manualSetting,
-        XAboolean macroEnabled
-    );
-    XAresult (*GetFocusMode) (
-        XACameraItf self,
-        XAuint32 * pFocusMode, 
-        XAmillimeter * pManualSetting,
-        XAboolean * pMacroEnabled
-    );
-    XAresult (*SetFocusRegionPattern) (
-        XACameraItf self, 
-        XAuint32 focusPattern,
-        XAuint32 activePoints1,
-        XAuint32 activePoints2
-    );
-    XAresult (*GetFocusRegionPattern) (
-        XACameraItf self,
-        XAuint32 * pFocusPattern,
-        XAuint32 * pActivePoints1,
-        XAuint32 * pActivePoints2
-    );
-    XAresult (*GetFocusRegionPositions) (
-        XACameraItf self,
-        XAuint32 * pNumPositionEntries,
-        XAFocusPointPosition * pFocusPosition
-    ); 
-    XAresult (*GetFocusModeStatus) (
-        XACameraItf self,
-        XAuint32 * pFocusStatus,
-        XAuint32 * pRegionStatus1,
-        XAuint32 * pRegionStatus2
-    );
-    XAresult (*SetMeteringMode) (
-        XACameraItf self, 
-        XAuint32 meteringMode
-    );
-    XAresult (*GetMeteringMode) (
-        XACameraItf self,
-        XAuint32 * pMeteringMode
-    );
-    XAresult (*SetExposureMode) (
-        XACameraItf self, 
-        XAuint32 exposure,
-        XAuint32 compensation
-    );
-    XAresult (*GetExposureMode) (
-        XACameraItf self,
-        XAuint32 * pExposure,
-        XAuint32 * pCompensation
-    );
-    XAresult (*SetISOSensitivity) (
-        XACameraItf self, 
-        XAuint32 isoSensitivity,
-        XAuint32 manualSetting
-    );
-    XAresult (*GetISOSensitivity) (
-        XACameraItf self,
-        XAuint32 * pIsoSensitivity,
-        XAuint32 * pManualSetting
-    );
-    XAresult (*SetAperture) (
-        XACameraItf self, 
-        XAuint32 aperture,
-        XAuint32 manualSetting
-    );
-    XAresult (*GetAperture) (
-        XACameraItf self,
-        XAuint32 * pAperture,
-        XAuint32 * pManualSetting
-    );
-    XAresult (*SetShutterSpeed) (
-        XACameraItf self, 
-        XAuint32 shutterSpeed,
-        XAmicrosecond manualSetting
-    );
-    XAresult (*GetShutterSpeed) (
-        XACameraItf self,
-        XAuint32 * pShutterSpeed,
-        XAmicrosecond * pManualSetting
-    );
-    XAresult (*SetWhiteBalance) (
-        XACameraItf self, 
-        XAuint32 whiteBalance,
-        XAuint32 manualSetting
-    );
-    XAresult (*GetWhiteBalance) (
-        XACameraItf self,
-        XAuint32 * pWhiteBalance,
-        XAuint32 * pManualSetting
-    );
-    XAresult (*SetAutoLocks) (
-        XACameraItf self,
-        XAuint32 locks
-    );
-    XAresult (*GetAutoLocks) (
-        XACameraItf self,
-        XAuint32 * locks
-    );
-    XAresult (*SetZoom) (
-        XACameraItf self,
-        XApermille zoom,
-        XAboolean digitalEnabled,
-        XAuint32 speed,
-        XAboolean async
-    );
-    XAresult (*GetZoom) (
-        XACameraItf self,
-        XApermille * pZoom,
-        XAboolean * pDigital
-    );
-};
-
-/* AUDIO I/O DEVICE CAPABILITIES */
-
-#define XA_DEVCONNECTION_INTEGRATED                 ((XAint16) 0x0001)
-#define XA_DEVCONNECTION_ATTACHED_WIRED             ((XAint16) 0x0100)
-#define XA_DEVCONNECTION_ATTACHED_WIRELESS          ((XAint16) 0x0200)
-#define XA_DEVCONNECTION_NETWORK                    ((XAint16) 0x0400)
-
-#define XA_DEVLOCATION_HANDSET                      ((XAint16) 0x0001)
-#define XA_DEVLOCATION_HEADSET                      ((XAint16) 0x0002)
-#define XA_DEVLOCATION_CARKIT                       ((XAint16) 0x0003)
-#define XA_DEVLOCATION_DOCK                         ((XAint16) 0x0004)
-#define XA_DEVLOCATION_REMOTE                       ((XAint16) 0x0005)
-
-#define XA_DEVSCOPE_UNKNOWN                         ((XAint16) 0x0001)
-#define XA_DEVSCOPE_ENVIRONMENT                     ((XAint16) 0x0002)
-#define XA_DEVSCOPE_USER                            ((XAint16) 0x0003)
-
-typedef struct XAAudioInputDescriptor_ {
-    XAchar * deviceName;
-    XAint16 deviceConnection;
-    XAint16 deviceScope;
-    XAint16 deviceLocation;
-    XAboolean isForTelephony;
-    XAmilliHertz minSampleRate;
-    XAmilliHertz maxSampleRate;
-    XAboolean isFreqRangeContinuous;
-    XAmilliHertz * samplingRatesSupported;
-    XAint16 numOfSamplingRatesSupported;
-    XAint16 maxChannels;
-} XAAudioInputDescriptor;
-
-typedef struct XAAudioOutputDescriptor_ {
-    XAchar *pDeviceName;
-    XAint16 deviceConnection;
-    XAint16 deviceScope;
-    XAint16 deviceLocation;
-    XAboolean isForTelephony;
-    XAmilliHertz minSampleRate; 
-    XAmilliHertz maxSampleRate;
-    XAboolean isFreqRangeContinuous;
-    XAmilliHertz *samplingRatesSupported;
-    XAint16 numOfSamplingRatesSupported;
-    XAint16 maxChannels;
-} XAAudioOutputDescriptor;
-
-XA_API extern const XAInterfaceID XA_IID_AUDIOIODEVICECAPABILITIES;
-
-struct XAAudioIODeviceCapabilitiesItf_;
-typedef const struct XAAudioIODeviceCapabilitiesItf_
-    * const * XAAudioIODeviceCapabilitiesItf;
-
-typedef void (XAAPIENTRY * xaAvailableAudioInputsChangedCallback) (
-    XAAudioIODeviceCapabilitiesItf caller,
-    void * pContext,
-    XAuint32 deviceID,
-    XAint32 numInputs,
-    XAboolean isNew
-);
-
-typedef void (XAAPIENTRY * xaAvailableAudioOutputsChangedCallback) (
-    XAAudioIODeviceCapabilitiesItf caller,
-    void * pContext,
-    XAuint32 deviceID,
-    XAint32 numOutputs,
-    XAboolean isNew
-);
-
-typedef void (XAAPIENTRY * xaDefaultDeviceIDMapChangedCallback) (
-    XAAudioIODeviceCapabilitiesItf caller,
-    void * pContext,
-	XAboolean isOutput,
-    XAint32 numDevices
-);
-
-struct XAAudioIODeviceCapabilitiesItf_ {
-    XAresult (*GetAvailableAudioInputs) (
-        XAAudioIODeviceCapabilitiesItf self, 
-        XAint32 * pNumInputs,
-        XAuint32 * pInputDeviceIDs
-    );
-    XAresult (*QueryAudioInputCapabilities) (
-        XAAudioIODeviceCapabilitiesItf self, 
-        XAuint32 deviceID, 
-        XAAudioInputDescriptor * pDescriptor
-    );
-    XAresult (*RegisterAvailableAudioInputsChangedCallback) (
-        XAAudioIODeviceCapabilitiesItf self,
-        xaAvailableAudioInputsChangedCallback callback,
-        void * pContext 
-    );
-    XAresult (*GetAvailableAudioOutputs) (
-        XAAudioIODeviceCapabilitiesItf self, 
-        XAint32 * pNumOutputs,
-        XAuint32 * pOutputDeviceIDs
-    );
-    XAresult (*QueryAudioOutputCapabilities) (
-        XAAudioIODeviceCapabilitiesItf self, 
-        XAuint32 deviceID, 
-        XAAudioOutputDescriptor * pDescriptor
-    );
-    XAresult (*RegisterAvailableAudioOutputsChangedCallback) (
-        XAAudioIODeviceCapabilitiesItf self,
-        xaAvailableAudioOutputsChangedCallback callback,
-        void * pContext 
-    );
-    XAresult (*RegisterDefaultDeviceIDMapChangedCallback) (
-        XAAudioIODeviceCapabilitiesItf self,
-        xaDefaultDeviceIDMapChangedCallback callback,
-        void * pContext
-    );
-    XAresult (*GetAssociatedAudioInputs) (
-        XAAudioIODeviceCapabilitiesItf self,
-        XAuint32 deviceID,
-        XAint32 * pNumAudioInputs,
-        XAuint32 * pAudioInputDeviceIDs
-    ); 
-    XAresult (*GetAssociatedAudioOutputs) (
-        XAAudioIODeviceCapabilitiesItf self,
-        XAuint32 deviceID,
-        XAint32 * pNumAudioOutputs,
-        XAuint32 * pAudioOutputDeviceIDs
-    );
-    XAresult (*GetDefaultAudioDevices) (
-        XAAudioIODeviceCapabilitiesItf self,
-        XAuint32 defaultDeviceID,
-        XAint32 *pNumAudioDevices,
-        XAuint32 *pAudioDeviceIDs
-    );
-    XAresult (*QuerySampleFormatsSupported) (
-        XAAudioIODeviceCapabilitiesItf self, 
-        XAuint32 deviceID,
-        XAmilliHertz samplingRate,
-        XAint32 *pSampleFormats,
-        XAint32 *pNumOfSampleFormats
-    );
-};
-
-/* DEVICE VOLUME */
-
-XA_API extern const XAInterfaceID XA_IID_DEVICEVOLUME;
-
-struct XADeviceVolumeItf_;
-typedef const struct XADeviceVolumeItf_ * const * XADeviceVolumeItf;
-
-struct XADeviceVolumeItf_ {
-    XAresult (*GetVolumeScale) (
-        XADeviceVolumeItf self,
-        XAuint32 deviceID,
-        XAint32 * pMinValue,
-        XAint32 * pMaxValue,
-        XAboolean * pIsMillibelScale
-    );
-    XAresult (*SetVolume) (
-        XADeviceVolumeItf self,
-        XAuint32 deviceID,
-        XAint32 volume
-    );
-    XAresult (*GetVolume) (
-        XADeviceVolumeItf self,
-        XAuint32 deviceID,
-        XAint32 * pVolume
-    );
-};
-
-/* EQUALIZER */
-
-#define XA_EQUALIZER_UNDEFINED    ((XAuint16) 0xFFFF)
-
-XA_API extern const XAInterfaceID XA_IID_EQUALIZER;
-
-struct XAEqualizerItf_;
-typedef const struct XAEqualizerItf_ * const * XAEqualizerItf;
-
-struct XAEqualizerItf_ {
-    XAresult (*SetEnabled) (
-        XAEqualizerItf self,
-        XAboolean enabled
-    );
-    XAresult (*IsEnabled) (
-        XAEqualizerItf self,
-        XAboolean * pEnabled
-    );
-    XAresult (*GetNumberOfBands) (
-        XAEqualizerItf self,
-        XAuint16 * pNumBands
-    );
-    XAresult (*GetBandLevelRange) (
-        XAEqualizerItf self,
-        XAmillibel * pMin,
-        XAmillibel * pMax
-    );
-    XAresult (*SetBandLevel) (
-        XAEqualizerItf self,
-        XAuint16 band,
-        XAmillibel level
-    );
-    XAresult (*GetBandLevel) (
-        XAEqualizerItf self,
-        XAuint16 band,
-        XAmillibel * pLevel
-    );
-    XAresult (*GetCenterFreq) (
-        XAEqualizerItf self,
-        XAuint16 band,
-        XAmilliHertz * pCenter
-    );
-    XAresult (*GetBandFreqRange) (
-        XAEqualizerItf self,
-        XAuint16 band,
-        XAmilliHertz * pMin,
-        XAmilliHertz * pMax
-    );
-    XAresult (*GetBand) (
-        XAEqualizerItf self,
-        XAmilliHertz frequency,
-        XAuint16 * pBand
-    );
-    XAresult (*GetCurrentPreset) (
-        XAEqualizerItf self,
-        XAuint16 * pPreset
-    );
-    XAresult (*UsePreset) (
-        XAEqualizerItf self,
-        XAuint16 index
-    );
-    XAresult (*GetNumberOfPresets) (
-        XAEqualizerItf self,
-        XAuint16 * pNumPresets
-    );
-    XAresult (*GetPresetName) (
-        XAEqualizerItf self,
-        XAuint16 index,
-        const XAchar ** ppName
-    );
-};
-
-/* OUTPUT MIX */
-
-XA_API extern const XAInterfaceID XA_IID_OUTPUTMIX;
-
-struct XAOutputMixItf_;
-typedef const struct XAOutputMixItf_ * const * XAOutputMixItf;
-
-typedef void (XAAPIENTRY * xaMixDeviceChangeCallback) (
-    XAOutputMixItf caller,
-    void * pContext
-);
-
-struct XAOutputMixItf_ {
-    XAresult (*GetDestinationOutputDeviceIDs) (
-        XAOutputMixItf self,
-        XAint32 * pNumDevices,
-        XAuint32 * pDeviceIDs
-    );
-    XAresult (*RegisterDeviceChangeCallback) (
-        XAOutputMixItf self,
-        xaMixDeviceChangeCallback callback,
-        void * pContext
-    );
-    XAresult (*ReRoute) (
-        XAOutputMixItf self,
-        XAint32 numOutputDevices,
-        XAuint32 * pOutputDeviceIDs
-    );
-};
-
-/* RADIO */
-
-#define XA_FREQRANGE_FMEUROAMERICA                  ((XAuint8) 0x01)
-#define XA_FREQRANGE_FMJAPAN                        ((XAuint8) 0x02)
-#define XA_FREQRANGE_AMLW                           ((XAuint8) 0x03)
-#define XA_FREQRANGE_AMMW                           ((XAuint8) 0x04)
-#define XA_FREQRANGE_AMSW                           ((XAuint8) 0x05)
-
-#define XA_RADIO_EVENT_ANTENNA_STATUS_CHANGED       ((XAuint32) 0x00000001)
-#define XA_RADIO_EVENT_FREQUENCY_CHANGED            ((XAuint32) 0x00000002)
-#define XA_RADIO_EVENT_FREQUENCY_RANGE_CHANGED      ((XAuint32) 0x00000003)
-#define XA_RADIO_EVENT_PRESET_CHANGED               ((XAuint32) 0x00000004)
-#define XA_RADIO_EVENT_SEEK_COMPLETED               ((XAuint32) 0x00000005)
-
-#define XA_STEREOMODE_MONO                          ((XAuint32) 0x00000000)
-#define XA_STEREOMODE_STEREO                        ((XAuint32) 0x00000001)
-#define XA_STEREOMODE_AUTO                          ((XAuint32) 0x00000002)
-
-XA_API extern const XAInterfaceID XA_IID_RADIO;
-
-struct XARadioItf_;
-typedef const struct XARadioItf_ * const * XARadioItf;
-
-typedef void (XAAPIENTRY * xaRadioCallback) (
-    XARadioItf caller,
-    void * pContext,
-    XAuint32 event,
-    XAuint32 eventIntData,
-    XAboolean eventBooleanData
-);
-
-struct XARadioItf_ {
-    XAresult (*SetFreqRange) (
-        XARadioItf self,
-        XAuint8 range
-    );
-    XAresult (*GetFreqRange) (
-        XARadioItf self,
-        XAuint8 * pRange
-    );
-    XAresult (*IsFreqRangeSupported) (
-        XARadioItf self,
-        XAuint8 range,
-        XAboolean * pSupported
-    );
-    XAresult (*GetFreqRangeProperties) (
-        XARadioItf self,
-        XAuint8 range,
-        XAuint32 * pMinFreq,
-        XAuint32 * pMaxFreq,
-        XAuint32 * pFreqInterval
-    );
-    XAresult (*SetFrequency) (
-        XARadioItf self,
-        XAuint32 freq
-    );
-    XAresult (*CancelSetFrequency) (
-        XARadioItf self
-    );
-    XAresult (*GetFrequency) (
-        XARadioItf self,
-        XAuint32 * pFreq
-    );
-    XAresult (*SetSquelch) (
-        XARadioItf self,
-        XAboolean squelch
-    );
-    XAresult (*GetSquelch) (
-        XARadioItf self,
-        XAboolean * pSquelch
-    );
-    XAresult (*SetStereoMode) (
-        XARadioItf self,
-        XAuint32 mode
-    );
-    XAresult (*GetStereoMode) (
-        XARadioItf self,
-        XAuint32 * pMode
-    );
-    XAresult (*GetSignalStrength) (
-        XARadioItf self,
-        XAuint32 * pStrength
-    );
-    XAresult (*Seek) (
-        XARadioItf self,
-        XAboolean upwards
-    );
-    XAresult (*StopSeeking) (
-        XARadioItf self
-    );
-    XAresult (*GetNumberOfPresets) (
-        XARadioItf self,
-        XAuint32 * pNumPresets
-    );
-    XAresult (*SetPreset) (
-        XARadioItf self,
-        XAuint32 preset,
-        XAuint32 freq,
-        XAuint8 range,
-        XAuint32 mode,
-        const XAchar * pName
-    );
-    XAresult (*GetPreset) (
-        XARadioItf self,
-        XAuint32 preset,
-        XAuint32 * pFreq,
-        XAuint8 * pRange,
-        XAuint32 * pMode,
-        XAchar * pName,
-        XAuint16 * pNameLength
-    );
-    XAresult (*RegisterRadioCallback) (
-        XARadioItf self,
-        xaRadioCallback callback, 
-        void * pContext
-    );
-};
-
-/* RDS */
-
-#define XA_RDS_EVENT_NEW_PI                         ((XAuint16) 0x0001)
-#define XA_RDS_EVENT_NEW_PTY                        ((XAuint16) 0x0002)
-#define XA_RDS_EVENT_NEW_PS                         ((XAuint16) 0x0004)
-#define XA_RDS_EVENT_NEW_RT                         ((XAuint16) 0x0008)
-#define XA_RDS_EVENT_NEW_RT_PLUS                    ((XAuint16) 0x0010)
-#define XA_RDS_EVENT_NEW_CT                         ((XAuint16) 0x0020)
-#define XA_RDS_EVENT_NEW_TA                         ((XAuint16) 0x0040)
-#define XA_RDS_EVENT_NEW_TP                         ((XAuint16) 0x0080)
-#define XA_RDS_EVENT_NEW_ALARM                      ((XAuint16) 0x0100)
-
-#define XA_RDSPROGRAMMETYPE_RDSPTY_NONE \
-    ((XAuint32) 0x00000000)
-#define XA_RDSPROGRAMMETYPE_RDSPTY_NEWS \
-    ((XAuint32) 0x00000001)
-#define XA_RDSPROGRAMMETYPE_RDSPTY_CURRENTAFFAIRS \
-    ((XAuint32) 0x00000002)
-#define XA_RDSPROGRAMMETYPE_RDSPTY_INFORMATION \
-    ((XAuint32) 0x00000003)
-#define XA_RDSPROGRAMMETYPE_RDSPTY_SPORT \
-    ((XAuint32) 0x00000004)
-#define XA_RDSPROGRAMMETYPE_RDSPTY_EDUCATION \
-    ((XAuint32) 0x00000005)
-#define XA_RDSPROGRAMMETYPE_RDSPTY_DRAMA \
-    ((XAuint32) 0x00000006)
-#define XA_RDSPROGRAMMETYPE_RDSPTY_CULTURE \
-    ((XAuint32) 0x00000007)
-#define XA_RDSPROGRAMMETYPE_RDSPTY_SCIENCE \
-    ((XAuint32) 0x00000008)
-#define XA_RDSPROGRAMMETYPE_RDSPTY_VARIEDSPEECH \
-    ((XAuint32) 0x00000009)
-#define XA_RDSPROGRAMMETYPE_RDSPTY_POPMUSIC \
-    ((XAuint32) 0x0000000A)
-#define XA_RDSPROGRAMMETYPE_RDSPTY_ROCKMUSIC \
-    ((XAuint32) 0x0000000B)
-#define XA_RDSPROGRAMMETYPE_RDSPTY_EASYLISTENING \
-    ((XAuint32) 0x0000000C)
-#define XA_RDSPROGRAMMETYPE_RDSPTY_LIGHTCLASSICAL \
-    ((XAuint32) 0x0000000D)
-#define XA_RDSPROGRAMMETYPE_RDSPTY_SERIOUSCLASSICAL \
-    ((XAuint32) 0x0000000E)
-#define XA_RDSPROGRAMMETYPE_RDSPTY_OTHERMUSIC \
-    ((XAuint32) 0x0000000F)
-#define XA_RDSPROGRAMMETYPE_RDSPTY_WEATHER \
-    ((XAuint32) 0x00000010)
-#define XA_RDSPROGRAMMETYPE_RDSPTY_FINANCE \
-    ((XAuint32) 0x00000011)
-#define XA_RDSPROGRAMMETYPE_RDSPTY_CHILDRENSPROGRAMMES \
-    ((XAuint32) 0x00000012)
-#define XA_RDSPROGRAMMETYPE_RDSPTY_SOCIALAFFAIRS \
-    ((XAuint32) 0x00000013)
-#define XA_RDSPROGRAMMETYPE_RDSPTY_RELIGION \
-    ((XAuint32) 0x00000014)
-#define XA_RDSPROGRAMMETYPE_RDSPTY_PHONEIN \
-    ((XAuint32) 0x00000015)
-#define XA_RDSPROGRAMMETYPE_RDSPTY_TRAVEL \
-    ((XAuint32) 0x00000016)
-#define XA_RDSPROGRAMMETYPE_RDSPTY_LEISURE \
-    ((XAuint32) 0x00000017)
-#define XA_RDSPROGRAMMETYPE_RDSPTY_JAZZMUSIC \
-    ((XAuint32) 0x00000018)
-#define XA_RDSPROGRAMMETYPE_RDSPTY_COUNTRYMUSIC \
-    ((XAuint32) 0x00000019)
-#define XA_RDSPROGRAMMETYPE_RDSPTY_NATIONALMUSIC \
-    ((XAuint32) 0x0000001A)
-#define XA_RDSPROGRAMMETYPE_RDSPTY_OLDIESMUSIC \
-    ((XAuint32) 0x0000001B)
-#define XA_RDSPROGRAMMETYPE_RDSPTY_FOLKMUSIC \
-    ((XAuint32) 0x0000001C)
-#define XA_RDSPROGRAMMETYPE_RDSPTY_DOCUMENTARY \
-    ((XAuint32) 0x0000001D)
-#define XA_RDSPROGRAMMETYPE_RDSPTY_ALARMTEST \
-    ((XAuint32) 0x0000001E)
-#define XA_RDSPROGRAMMETYPE_RDSPTY_ALARM \
-    ((XAuint32) 0x0000001F)
-
-#define XA_RDSPROGRAMMETYPE_RBDSPTY_NONE \
-    ((XAuint32) 0x00000000)
-#define XA_RDSPROGRAMMETYPE_RBDSPTY_NEWS \
-    ((XAuint32) 0x00000001)
-#define XA_RDSPROGRAMMETYPE_RBDSPTY_INFORMATION \
-    ((XAuint32) 0x00000002)
-#define XA_RDSPROGRAMMETYPE_RBDSPTY_SPORTS \
-    ((XAuint32) 0x00000003)
-#define XA_RDSPROGRAMMETYPE_RBDSPTY_TALK \
-    ((XAuint32) 0x00000004)
-#define XA_RDSPROGRAMMETYPE_RBDSPTY_ROCK \
-    ((XAuint32) 0x00000005)
-#define XA_RDSPROGRAMMETYPE_RBDSPTY_CLASSICROCK \
-    ((XAuint32) 0x00000006)
-#define XA_RDSPROGRAMMETYPE_RBDSPTY_ADULTHITS \
-    ((XAuint32) 0x00000007)
-#define XA_RDSPROGRAMMETYPE_RBDSPTY_SOFTROCK \
-    ((XAuint32) 0x00000008)
-#define XA_RDSPROGRAMMETYPE_RBDSPTY_TOP40 \
-    ((XAuint32) 0x00000009)
-#define XA_RDSPROGRAMMETYPE_RBDSPTY_COUNTRY \
-    ((XAuint32) 0x0000000A)
-#define XA_RDSPROGRAMMETYPE_RBDSPTY_OLDIES \
-    ((XAuint32) 0x0000000B)
-#define XA_RDSPROGRAMMETYPE_RBDSPTY_SOFT \
-    ((XAuint32) 0x0000000C)
-#define XA_RDSPROGRAMMETYPE_RBDSPTY_NOSTALGIA \
-    ((XAuint32) 0x0000000D)
-#define XA_RDSPROGRAMMETYPE_RBDSPTY_JAZZ \
-    ((XAuint32) 0x0000000E)
-#define XA_RDSPROGRAMMETYPE_RBDSPTY_CLASSICAL \
-    ((XAuint32) 0x0000000F)
-#define XA_RDSPROGRAMMETYPE_RBDSPTY_RHYTHMANDBLUES \
-    ((XAuint32) 0x00000010)
-#define XA_RDSPROGRAMMETYPE_RBDSPTY_SOFTRHYTHMANDBLUES \
-    ((XAuint32) 0x00000011)
-#define XA_RDSPROGRAMMETYPE_RBDSPTY_LANGUAGE \
-    ((XAuint32) 0x00000012)
-#define XA_RDSPROGRAMMETYPE_RBDSPTY_RELIGIOUSMUSIC \
-    ((XAuint32) 0x00000013)
-#define XA_RDSPROGRAMMETYPE_RBDSPTY_RELIGIOUSTALK \
-    ((XAuint32) 0x00000014)
-#define XA_RDSPROGRAMMETYPE_RBDSPTY_PERSONALITY \
-    ((XAuint32) 0x00000015)
-#define XA_RDSPROGRAMMETYPE_RBDSPTY_PUBLIC \
-    ((XAuint32) 0x00000016)
-#define XA_RDSPROGRAMMETYPE_RBDSPTY_COLLEGE \
-    ((XAuint32) 0x00000017)
-#define XA_RDSPROGRAMMETYPE_RBDSPTY_UNASSIGNED1 \
-    ((XAuint32) 0x00000018)
-#define XA_RDSPROGRAMMETYPE_RBDSPTY_UNASSIGNED2 \
-    ((XAuint32) 0x00000019)
-#define XA_RDSPROGRAMMETYPE_RBDSPTY_UNASSIGNED3 \
-    ((XAuint32) 0x0000001A)
-#define XA_RDSPROGRAMMETYPE_RBDSPTY_UNASSIGNED4 \
-    ((XAuint32) 0x0000001B)
-#define XA_RDSPROGRAMMETYPE_RBDSPTY_UNASSIGNED5 \
-    ((XAuint32) 0x0000001C)
-#define XA_RDSPROGRAMMETYPE_RBDSPTY_WEATHER \
-    ((XAuint32) 0x0000001D)
-#define XA_RDSPROGRAMMETYPE_RBDSPTY_EMERGENCYTEST \
-    ((XAuint32) 0x0000001E)
-#define XA_RDSPROGRAMMETYPE_RBDSPTY_EMERGENCY \
-    ((XAuint32) 0x0000001F)
-
-#define XA_RDSRTPLUS_ITEMTITLE              ((XAuint8) 0x01)
-#define XA_RDSRTPLUS_ITEMALBUM              ((XAuint8) 0x02)
-#define XA_RDSRTPLUS_ITEMTRACKNUMBER        ((XAuint8) 0x03)
-#define XA_RDSRTPLUS_ITEMARTIST             ((XAuint8) 0x04)
-#define XA_RDSRTPLUS_ITEMCOMPOSITION        ((XAuint8) 0x05)
-#define XA_RDSRTPLUS_ITEMMOVEMENT           ((XAuint8) 0x06)
-#define XA_RDSRTPLUS_ITEMCONDUCTOR          ((XAuint8) 0x07)
-#define XA_RDSRTPLUS_ITEMCOMPOSER           ((XAuint8) 0x08)
-#define XA_RDSRTPLUS_ITEMBAND               ((XAuint8) 0x09)
-#define XA_RDSRTPLUS_ITEMCOMMENT            ((XAuint8) 0x0A)
-#define XA_RDSRTPLUS_ITEMGENRE              ((XAuint8) 0x0B)
-#define XA_RDSRTPLUS_INFONEWS               ((XAuint8) 0x0C)
-#define XA_RDSRTPLUS_INFONEWSLOCAL          ((XAuint8) 0x0D)
-#define XA_RDSRTPLUS_INFOSTOCKMARKET        ((XAuint8) 0x0E)
-#define XA_RDSRTPLUS_INFOSPORT              ((XAuint8) 0x0F)
-#define XA_RDSRTPLUS_INFOLOTTERY            ((XAuint8) 0x10)
-#define XA_RDSRTPLUS_INFOHOROSCOPE          ((XAuint8) 0x11)
-#define XA_RDSRTPLUS_INFODAILYDIVERSION     ((XAuint8) 0x12)
-#define XA_RDSRTPLUS_INFOHEALTH             ((XAuint8) 0x13)
-#define XA_RDSRTPLUS_INFOEVENT              ((XAuint8) 0x14)
-#define XA_RDSRTPLUS_INFOSZENE              ((XAuint8) 0x15)
-#define XA_RDSRTPLUS_INFOCINEMA             ((XAuint8) 0x16)
-#define XA_RDSRTPLUS_INFOTV                 ((XAuint8) 0x17)
-#define XA_RDSRTPLUS_INFODATETIME           ((XAuint8) 0x18)
-#define XA_RDSRTPLUS_INFOWEATHER            ((XAuint8) 0x19)
-#define XA_RDSRTPLUS_INFOTRAFFIC            ((XAuint8) 0x1A)
-#define XA_RDSRTPLUS_INFOALARM              ((XAuint8) 0x1B)
-#define XA_RDSRTPLUS_INFOADVISERTISEMENT    ((XAuint8) 0x1C)
-#define XA_RDSRTPLUS_INFOURL                ((XAuint8) 0x1D)
-#define XA_RDSRTPLUS_INFOOTHER              ((XAuint8) 0x1E)
-#define XA_RDSRTPLUS_STATIONNAMESHORT       ((XAuint8) 0x1F)
-#define XA_RDSRTPLUS_STATIONNAMELONG        ((XAuint8) 0x20)
-#define XA_RDSRTPLUS_PROGRAMNOW             ((XAuint8) 0x21)
-#define XA_RDSRTPLUS_PROGRAMNEXT            ((XAuint8) 0x22)
-#define XA_RDSRTPLUS_PROGRAMPART            ((XAuint8) 0x23)
-#define XA_RDSRTPLUS_PROGRAMHOST            ((XAuint8) 0x24)
-#define XA_RDSRTPLUS_PROFRAMEDITORIALSTAFF  ((XAuint8) 0x25)
-#define XA_RDSRTPLUS_PROGRAMFREQUENCY       ((XAuint8) 0x26)
-#define XA_RDSRTPLUS_PROGRAMHOMEPAGE        ((XAuint8) 0x27)
-#define XA_RDSRTPLUS_PROGRAMSUBCHANNEL      ((XAuint8) 0x28)
-#define XA_RDSRTPLUS_PHONEHOTLINE           ((XAuint8) 0x29)
-#define XA_RDSRTPLUS_PHONESTUDIO            ((XAuint8) 0x2A)
-#define XA_RDSRTPLUS_PHONEOTHER             ((XAuint8) 0x2B)
-#define XA_RDSRTPLUS_SMSSTUDIO              ((XAuint8) 0x2C)
-#define XA_RDSRTPLUS_SMSOTHER               ((XAuint8) 0x2D)
-#define XA_RDSRTPLUS_EMAILHOTLINE           ((XAuint8) 0x2E)
-#define XA_RDSRTPLUS_EMAILSTUDIO            ((XAuint8) 0x2F)
-#define XA_RDSRTPLUS_EMAILOTHER             ((XAuint8) 0x30)
-#define XA_RDSRTPLUS_MMSOTHER               ((XAuint8) 0x31)
-#define XA_RDSRTPLUS_CHAT                   ((XAuint8) 0x32)
-#define XA_RDSRTPLUS_CHATCENTER             ((XAuint8) 0x33)
-#define XA_RDSRTPLUS_VOTEQUESTION           ((XAuint8) 0x34)
-#define XA_RDSRTPLUS_VOTECENTER             ((XAuint8) 0x35)
-#define XA_RDSRTPLUS_OPENCLASS45            ((XAuint8) 0x36)
-#define XA_RDSRTPLUS_OPENCLASS55            ((XAuint8) 0x37)
-#define XA_RDSRTPLUS_OPENCLASS56            ((XAuint8) 0x38)
-#define XA_RDSRTPLUS_OPENCLASS57            ((XAuint8) 0x39)
-#define XA_RDSRTPLUS_OPENCLASS58            ((XAuint8) 0x3A)
-#define XA_RDSRTPLUS_PLACE                  ((XAuint8) 0x3B)
-#define XA_RDSRTPLUS_APPOINTMENT            ((XAuint8) 0x3C)
-#define XA_RDSRTPLUS_IDENTIFIER             ((XAuint8) 0x3D)
-#define XA_RDSRTPLUS_PURCHASE               ((XAuint8) 0x3E)
-#define XA_RDSRTPLUS_GETDATA                ((XAuint8) 0x3F)
-
-XA_API extern const XAInterfaceID XA_IID_RDS;
-
-struct XARDSItf_;
-typedef const struct XARDSItf_ * const * XARDSItf;
-
-typedef void (XAAPIENTRY * xaGetODAGroupCallback) (
-    XARadioItf caller,
-    void * pContext,
-    XAboolean success,
-    XAint16 group,
-    XAuint16 message
-);
-
-typedef void (XAAPIENTRY * xaNewODADataCallback) (
-    XARDSItf caller,
-    void * pContext,
-    XAint16 group,
-    XAuint64 data
-);
-
-typedef void (XAAPIENTRY * xaRDSCallback) (
-    XARDSItf caller,
-    void * pContext,
-    XAuint16 event,
-    XAuint8 eventData
-);
-
-struct XARDSItf_ {
-    XAresult (*QueryRDSSignal) (
-        XARDSItf self,
-        XAboolean * isSignal
-    );
-    XAresult (*GetProgrammeServiceName) (
-        XARDSItf self,
-        XAchar * ps
-    );
-    XAresult (*GetRadioText) (
-        XARDSItf self,
-        XAchar * rt
-    );
-    XAresult (*GetRadioTextPlus) (
-        XARDSItf self,
-        XAuint8 contentType,
-        XAchar * informationElement,
-        XAchar * descriptor,
-        XAuint8 * descriptorContentType
-    );
-    XAresult (*GetProgrammeType) (
-        XARDSItf self,
-        XAuint32 * pty
-    );
-    XAresult (*GetProgrammeTypeString) (
-        XARDSItf self,
-        XAboolean isLengthMax16,
-        XAchar * pty
-    );
-    XAresult (*GetProgrammeIdentificationCode) (
-        XARDSItf self,
-        XAint16 * pi
-    );
-    XAresult (*GetClockTime) (
-        XARDSItf self,
-        XAtime * dateAndTime
-    );
-    XAresult (*GetTrafficAnnouncement) (
-        XARDSItf self,
-        XAboolean * ta
-    );
-    XAresult (*GetTrafficProgramme) (
-        XARDSItf self,
-        XAboolean * tp
-    );
-    XAresult (*SeekByProgrammeType) (
-        XARDSItf self,
-        XAuint32 pty,
-        XAboolean upwards
-    );
-    XAresult (*SeekTrafficAnnouncement) (
-        XARDSItf self,
-        XAboolean upwards
-    );
-    XAresult (*SeekTrafficProgramme) (
-        XARDSItf self,
-        XAboolean upwards
-    );
-    XAresult (*SetAutomaticSwitching) (
-        XARDSItf self,
-        XAboolean automatic
-    );
-    XAresult (*GetAutomaticSwitching) (
-        XARDSItf self,
-        XAboolean * automatic
-    );
-    XAresult (*SetAutomaticTrafficAnnouncement) (
-        XARDSItf self,
-        XAboolean automatic
-    );
-    XAresult (*GetAutomaticTrafficAnnouncement) (
-        XARDSItf self,
-        XAboolean * automatic
-    );
-    XAresult (*GetODAGroup) (
-        XARDSItf self,
-        XAuint16 AID,
-        xaGetODAGroupCallback callback,
-        void * pContext
-    );
-    XAresult (*SubscribeODAGroup) (
-        XARDSItf self,
-        XAint16 group,
-        XAboolean useErrorCorrection
-    );
-    XAresult (*UnsubscribeODAGroup) (
-        XARDSItf self,
-        XAint16 group
-    );
-    XAresult (*ListODAGroupSubscriptions) (
-        XARDSItf self,
-        XAint16* pGroups,
-        XAuint32* pLength
-    );
-    XAresult (*RegisterRDSCallback) (
-        XARDSItf self,
-        xaRDSCallback callback, 
-        void * pContext
-    );
-    XAresult (*RegisterODADataCallback) (
-        XARDSItf self,
-        xaNewODADataCallback callback, 
-        void * pContext
-    );
-};
-
-/* VIBRA */
-
-XA_API extern const XAInterfaceID XA_IID_VIBRA;
-
-struct XAVibraItf_;
-typedef const struct XAVibraItf_ * const * XAVibraItf;
-
-struct XAVibraItf_ {
-    XAresult (*Vibrate) (
-        XAVibraItf self,
-        XAboolean vibrate
-    );
-    XAresult (*IsVibrating) (
-        XAVibraItf self,
-        XAboolean * pVibrating
-    );
-    XAresult (*SetFrequency) (
-        XAVibraItf self,
-        XAmilliHertz frequency
-    );
-    XAresult (*GetFrequency) (
-        XAVibraItf self,
-        XAmilliHertz * pFrequency
-    );
-    XAresult (*SetIntensity) (
-        XAVibraItf self,
-        XApermille intensity
-    );
-    XAresult (*GetIntensity) (
-        XAVibraItf self,
-        XApermille * pIntensity
-    );
-};
-
-/* LED ARRAY */
-
-typedef struct XAHSL_ {
-    XAmillidegree hue;
-    XApermille saturation;
-    XApermille lightness;
-} XAHSL;
-
-XA_API extern const XAInterfaceID XA_IID_LED;
-
-struct XALEDArrayItf_;
-typedef const struct XALEDArrayItf_ * const * XALEDArrayItf;
-
-struct XALEDArrayItf_ {
-    XAresult (*ActivateLEDArray) (
-        XALEDArrayItf self,
-        XAuint32 lightMask
-    );
-    XAresult (*IsLEDArrayActivated) (
-        XALEDArrayItf self,
-        XAuint32 * pLightMask
-    );
-    XAresult (*SetColor) (
-        XALEDArrayItf self,
-        XAuint8 index,
-        const XAHSL * pColor
-    );
-    XAresult (*GetColor) (
-        XALEDArrayItf self,
-        XAuint8 index,
-        XAHSL * pColor
-    );
-};
-
-
-
-  /*****************************************************************/
-  /* CODEC RELATED INTERFACES, STRUCTS AND DEFINES                 */
-  /*****************************************************************/
-
-/* AUDIO ENCODER AND AUDIO ENCODER/DECODER CAPABILITIES */
-
-#define XA_RATECONTROLMODE_CONSTANTBITRATE  ((XAuint32) 0x00000001)
-#define XA_RATECONTROLMODE_VARIABLEBITRATE  ((XAuint32) 0x00000002)
-
-#define XA_AUDIOCODEC_PCM                   ((XAuint32) 0x00000001)
-#define XA_AUDIOCODEC_MP3                   ((XAuint32) 0x00000002)
-#define XA_AUDIOCODEC_AMR                   ((XAuint32) 0x00000003)
-#define XA_AUDIOCODEC_AMRWB                 ((XAuint32) 0x00000004)
-#define XA_AUDIOCODEC_AMRWBPLUS             ((XAuint32) 0x00000005)
-#define XA_AUDIOCODEC_AAC                   ((XAuint32) 0x00000006)
-#define XA_AUDIOCODEC_WMA                   ((XAuint32) 0x00000007)
-#define XA_AUDIOCODEC_REAL                  ((XAuint32) 0x00000008)
-#define XA_AUDIOCODEC_VORBIS                ((XAuint32) 0x00000009)
-
-#define XA_AUDIOPROFILE_PCM                 ((XAuint32) 0x00000001)
-
-#define XA_AUDIOPROFILE_MPEG1_L3            ((XAuint32) 0x00000001)
-#define XA_AUDIOPROFILE_MPEG2_L3            ((XAuint32) 0x00000002)
-#define XA_AUDIOPROFILE_MPEG25_L3           ((XAuint32) 0x00000003)
-
-#define XA_AUDIOCHANMODE_MP3_MONO           ((XAuint32) 0x00000001)
-#define XA_AUDIOCHANMODE_MP3_STEREO         ((XAuint32) 0x00000002)
-#define XA_AUDIOCHANMODE_MP3_JOINTSTEREO    ((XAuint32) 0x00000003)
-#define XA_AUDIOCHANMODE_MP3_DUAL           ((XAuint32) 0x00000004)
-
-#define XA_AUDIOPROFILE_AMR                 ((XAuint32) 0x00000001)
-
-#define XA_AUDIOSTREAMFORMAT_CONFORMANCE    ((XAuint32) 0x00000001)
-#define XA_AUDIOSTREAMFORMAT_IF1            ((XAuint32) 0x00000002)
-#define XA_AUDIOSTREAMFORMAT_IF2            ((XAuint32) 0x00000003)
-#define XA_AUDIOSTREAMFORMAT_FSF            ((XAuint32) 0x00000004)
-#define XA_AUDIOSTREAMFORMAT_RTPPAYLOAD     ((XAuint32) 0x00000005)
-#define XA_AUDIOSTREAMFORMAT_ITU            ((XAuint32) 0x00000006)
-
-#define XA_AUDIOPROFILE_AMRWB               ((XAuint32) 0x00000001)
-
-#define XA_AUDIOPROFILE_AMRWBPLUS           ((XAuint32) 0x00000001)
-
-#define XA_AUDIOPROFILE_AAC_AAC             ((XAuint32) 0x00000001)
-
-#define XA_AUDIOMODE_AAC_MAIN               ((XAuint32) 0x00000001)
-#define XA_AUDIOMODE_AAC_LC                 ((XAuint32) 0x00000002)
-#define XA_AUDIOMODE_AAC_SSR                ((XAuint32) 0x00000003)
-#define XA_AUDIOMODE_AAC_LTP                ((XAuint32) 0x00000004)
-#define XA_AUDIOMODE_AAC_HE                 ((XAuint32) 0x00000005)
-#define XA_AUDIOMODE_AAC_SCALABLE           ((XAuint32) 0x00000006)
-#define XA_AUDIOMODE_AAC_ERLC               ((XAuint32) 0x00000007)
-#define XA_AUDIOMODE_AAC_LD                 ((XAuint32) 0x00000008)
-#define XA_AUDIOMODE_AAC_HE_PS              ((XAuint32) 0x00000009)
-#define XA_AUDIOMODE_AAC_HE_MPS             ((XAuint32) 0x0000000A)
-
-#define XA_AUDIOSTREAMFORMAT_MP2ADTS        ((XAuint32) 0x00000001)
-#define XA_AUDIOSTREAMFORMAT_MP4ADTS        ((XAuint32) 0x00000002)
-#define XA_AUDIOSTREAMFORMAT_MP4LOAS        ((XAuint32) 0x00000003)
-#define XA_AUDIOSTREAMFORMAT_MP4LATM        ((XAuint32) 0x00000004)
-#define XA_AUDIOSTREAMFORMAT_ADIF           ((XAuint32) 0x00000005)
-#define XA_AUDIOSTREAMFORMAT_MP4FF          ((XAuint32) 0x00000006)
-#define XA_AUDIOSTREAMFORMAT_RAW            ((XAuint32) 0x00000007)
-
-#define XA_AUDIOPROFILE_WMA7                ((XAuint32) 0x00000001)
-#define XA_AUDIOPROFILE_WMA8                ((XAuint32) 0x00000002)
-#define XA_AUDIOPROFILE_WMA9                ((XAuint32) 0x00000003)
-#define XA_AUDIOPROFILE_WMA10               ((XAuint32) 0x00000004)
-
-#define XA_AUDIOMODE_WMA_LEVEL1             ((XAuint32) 0x00000001)
-#define XA_AUDIOMODE_WMA_LEVEL2             ((XAuint32) 0x00000002)
-#define XA_AUDIOMODE_WMA_LEVEL3             ((XAuint32) 0x00000003)
-#define XA_AUDIOMODE_WMA_LEVEL4             ((XAuint32) 0x00000004)
-#define XA_AUDIOMODE_WMAPRO_LEVELM0         ((XAuint32) 0x00000005)
-#define XA_AUDIOMODE_WMAPRO_LEVELM1         ((XAuint32) 0x00000006)
-#define XA_AUDIOMODE_WMAPRO_LEVELM2         ((XAuint32) 0x00000007)
-#define XA_AUDIOMODE_WMAPRO_LEVELM3         ((XAuint32) 0x00000008)
-
-#define XA_AUDIOPROFILE_REALAUDIO           ((XAuint32) 0x00000001)
-
-#define XA_AUDIOMODE_REALAUDIO_G2           ((XAuint32) 0x00000001)
-#define XA_AUDIOMODE_REALAUDIO_8            ((XAuint32) 0x00000002)
-#define XA_AUDIOMODE_REALAUDIO_10           ((XAuint32) 0x00000003)
-#define XA_AUDIOMODE_REALAUDIO_SURROUND     ((XAuint32) 0x00000004)
-
-#define XA_AUDIOPROFILE_VORBIS              ((XAuint32) 0x00000001)
-
-#define XA_AUDIOMODE_VORBIS                 ((XAuint32) 0x00000001)
-
-
-typedef struct XAAudioCodecDescriptor_ {
-    XAuint32 maxChannels;
-    XAuint32 minBitsPerSample;
-    XAuint32 maxBitsPerSample;
-    XAmilliHertz minSampleRate;
-    XAmilliHertz maxSampleRate;
-    XAboolean isFreqRangeContinuous;
-    XAmilliHertz * pSampleRatesSupported;
-    XAuint32 numSampleRatesSupported;
-    XAuint32 minBitRate;
-    XAuint32 maxBitRate;
-    XAboolean isBitrateRangeContinuous;
-    XAuint32 * pBitratesSupported;
-    XAuint32 numBitratesSupported;
-    XAuint32 profileSetting;
-    XAuint32 modeSetting;
-} XAAudioCodecDescriptor;
-
-typedef struct XAAudioEncoderSettings_ {
-    XAuint32 encoderId;
-    XAuint32 channelsIn;
-    XAuint32 channelsOut;
-    XAmilliHertz sampleRate;
-    XAuint32 bitRate;
-    XAuint32 bitsPerSample;
-    XAuint32 rateControl;
-    XAuint32 profileSetting;
-    XAuint32 levelSetting;
-    XAuint32 channelMode;
-    XAuint32 streamFormat;
-    XAuint32 encodeOptions;
-    XAuint32 blockAlignment;
-} XAAudioEncoderSettings;
-
-XA_API extern const XAInterfaceID XA_IID_AUDIODECODERCAPABILITIES;
-
-struct XAAudioDecoderCapabilitiesItf_;
-typedef const struct XAAudioDecoderCapabilitiesItf_
-    * const * XAAudioDecoderCapabilitiesItf;
-
-struct XAAudioDecoderCapabilitiesItf_ {
-    XAresult (*GetAudioDecoders) (
-        XAAudioDecoderCapabilitiesItf self,
-        XAuint32 * pNumDecoders,
-        XAuint32 * pDecoderIds
-    );
-    XAresult (*GetAudioDecoderCapabilities) (
-        XAAudioDecoderCapabilitiesItf self,
-        XAuint32 decoderId,
-        XAuint32 * pIndex,
-        XAAudioCodecDescriptor * pDescriptor
-    );
-};
-
-XA_API extern const XAInterfaceID XA_IID_AUDIOENCODER;
-
-struct XAAudioEncoderItf_;
-typedef const struct XAAudioEncoderItf_ * const * XAAudioEncoderItf;
-
-struct XAAudioEncoderItf_ {
-    XAresult (*SetEncoderSettings) (
-        XAAudioEncoderItf self,
-        XAAudioEncoderSettings * pSettings
-    );
-    XAresult (*GetEncoderSettings) (
-        XAAudioEncoderItf self,
-        XAAudioEncoderSettings * pSettings
-    );
-};
-
-XA_API extern const XAInterfaceID XA_IID_AUDIOENCODERCAPABILITIES;
-
-struct XAAudioEncoderCapabilitiesItf_;
-typedef const struct XAAudioEncoderCapabilitiesItf_
-    * const * XAAudioEncoderCapabilitiesItf;
-
-struct XAAudioEncoderCapabilitiesItf_ {
-    XAresult (*GetAudioEncoders) (
-        XAAudioEncoderCapabilitiesItf self,
-        XAuint32 * pNumEncoders,
-        XAuint32 * pEncoderIds
-    );
-    XAresult (*GetAudioEncoderCapabilities) (
-        XAAudioEncoderCapabilitiesItf self,
-        XAuint32 encoderId,
-        XAuint32 * pIndex,
-        XAAudioCodecDescriptor * pDescriptor
-    );
-};
-
-/* IMAGE ENCODER AND IMAGE ENCODER/DECODER CAPABILITIES */
-
-#define XA_IMAGECODEC_JPEG              ((XAuint32) 0x00000001)
-#define XA_IMAGECODEC_GIF               ((XAuint32) 0x00000002)
-#define XA_IMAGECODEC_BMP               ((XAuint32) 0x00000003)
-#define XA_IMAGECODEC_PNG               ((XAuint32) 0x00000004)
-#define XA_IMAGECODEC_TIFF              ((XAuint32) 0x00000005)
-#define XA_IMAGECODEC_RAW               ((XAuint32) 0x00000006)
-
-typedef struct XAImageCodecDescriptor_ {
-    XAuint32 codecId;
-    XAuint32 maxWidth;
-    XAuint32 maxHeight;
-} XAImageCodecDescriptor;
-
-typedef struct XAImageSettings_ {
-    XAuint32 encoderId;
-    XAuint32 width;
-    XAuint32 height;
-    XApermille compressionLevel;
-    XAuint32 colorFormat;
-} XAImageSettings;
-
-XA_API extern const XAInterfaceID XA_IID_IMAGEENCODERCAPABILITIES;
-
-struct XAImageEncoderCapabilitiesItf_;
-typedef const struct XAImageEncoderCapabilitiesItf_
-    * const * XAImageEncoderCapabilitiesItf;
-
-struct XAImageEncoderCapabilitiesItf_ {
-    XAresult (*GetImageEncoderCapabilities) (
-        XAImageEncoderCapabilitiesItf self,
-        XAuint32 * pEncoderId,
-        XAImageCodecDescriptor * pDescriptor
-    );
-    XAresult (*QueryColorFormats) (
-        const XAImageEncoderCapabilitiesItf self,
-        XAuint32 * pIndex,
-        XAuint32 * pColorFormat
-    );
-};
-
-XA_API extern const XAInterfaceID XA_IID_IMAGEDECODERCAPABILITIES;
-
-struct XAImageDecoderCapabilitiesItf_;
-typedef const struct XAImageDecoderCapabilitiesItf_
-    * const * XAImageDecoderCapabilitiesItf;
-
-struct XAImageDecoderCapabilitiesItf_ {
-    XAresult (*GetImageDecoderCapabilities) (
-        XAImageDecoderCapabilitiesItf self,
-        XAuint32 * pDecoderId,
-        XAImageCodecDescriptor * pDescriptor
-    );
-    XAresult (*QueryColorFormats) (
-        const XAImageDecoderCapabilitiesItf self,
-        XAuint32 * pIndex,
-        XAuint32 * pColorFormat
-    );
-};
-
-XA_API extern const XAInterfaceID XA_IID_IMAGEENCODER;
-
-struct XAImageEncoderItf_;
-typedef const struct XAImageEncoderItf_ * const * XAImageEncoderItf;
-
-struct XAImageEncoderItf_ {
-    XAresult (*SetImageSettings) (
-        XAImageEncoderItf self,
-        const XAImageSettings * pSettings
-    );
-    XAresult (*GetImageSettings) (
-        XAImageEncoderItf self,
-        XAImageSettings * pSettings
-    );
-    XAresult (*GetSizeEstimate) (
-        XAImageEncoderItf self,
-        XAuint32 * pSize
-    );
-};
-
-/* VIDEO ENCODER AND VIDEO ENCODER/DECODER CAPABILITIES */
-
-#define XA_VIDEOCODEC_MPEG2                     ((XAuint32) 0x00000001)
-#define XA_VIDEOCODEC_H263                      ((XAuint32) 0x00000002)
-#define XA_VIDEOCODEC_MPEG4                     ((XAuint32) 0x00000003)
-#define XA_VIDEOCODEC_AVC                       ((XAuint32) 0x00000004)
-#define XA_VIDEOCODEC_VC1                       ((XAuint32) 0x00000005)
-
-#define XA_VIDEOPROFILE_MPEG2_SIMPLE            ((XAuint32) 0x00000001)
-#define XA_VIDEOPROFILE_MPEG2_MAIN              ((XAuint32) 0x00000002)
-#define XA_VIDEOPROFILE_MPEG2_422               ((XAuint32) 0x00000003)
-#define XA_VIDEOPROFILE_MPEG2_SNR               ((XAuint32) 0x00000004)
-#define XA_VIDEOPROFILE_MPEG2_SPATIAL           ((XAuint32) 0x00000005)
-#define XA_VIDEOPROFILE_MPEG2_HIGH              ((XAuint32) 0x00000006)
-
-#define XA_VIDEOLEVEL_MPEG2_LL                  ((XAuint32) 0x00000001)
-#define XA_VIDEOLEVEL_MPEG2_ML                  ((XAuint32) 0x00000002)
-#define XA_VIDEOLEVEL_MPEG2_H14                 ((XAuint32) 0x00000003)
-#define XA_VIDEOLEVEL_MPEG2_HL                  ((XAuint32) 0x00000004)
-
-#define XA_VIDEOPROFILE_H263_BASELINE           ((XAuint32) 0x00000001)
-#define XA_VIDEOPROFILE_H263_H320CODING         ((XAuint32) 0x00000002)
-#define XA_VIDEOPROFILE_H263_BACKWARDCOMPATIBLE ((XAuint32) 0x00000003)
-#define XA_VIDEOPROFILE_H263_ISWV2              ((XAuint32) 0x00000004)
-#define XA_VIDEOPROFILE_H263_ISWV3              ((XAuint32) 0x00000005)
-#define XA_VIDEOPROFILE_H263_HIGHCOMPRESSION    ((XAuint32) 0x00000006)
-#define XA_VIDEOPROFILE_H263_INTERNET           ((XAuint32) 0x00000007)
-#define XA_VIDEOPROFILE_H263_INTERLACE          ((XAuint32) 0x00000008)
-#define XA_VIDEOPROFILE_H263_HIGHLATENCY        ((XAuint32) 0x00000009)
-
-#define XA_VIDEOLEVEL_H263_10                   ((XAuint32) 0x00000001)
-#define XA_VIDEOLEVEL_H263_20                   ((XAuint32) 0x00000002)
-#define XA_VIDEOLEVEL_H263_30                   ((XAuint32) 0x00000003)
-#define XA_VIDEOLEVEL_H263_40                   ((XAuint32) 0x00000004)
-#define XA_VIDEOLEVEL_H263_45                   ((XAuint32) 0x00000005)
-#define XA_VIDEOLEVEL_H263_50                   ((XAuint32) 0x00000006)
-#define XA_VIDEOLEVEL_H263_60                   ((XAuint32) 0x00000007)
-#define XA_VIDEOLEVEL_H263_70                   ((XAuint32) 0x00000008)
-
-#define XA_VIDEOPROFILE_MPEG4_SIMPLE            ((XAuint32) 0x00000001)
-#define XA_VIDEOPROFILE_MPEG4_SIMPLESCALABLE    ((XAuint32) 0x00000002)
-#define XA_VIDEOPROFILE_MPEG4_CORE              ((XAuint32) 0x00000003)
-#define XA_VIDEOPROFILE_MPEG4_MAIN              ((XAuint32) 0x00000004)
-#define XA_VIDEOPROFILE_MPEG4_NBIT              ((XAuint32) 0x00000005)
-#define XA_VIDEOPROFILE_MPEG4_SCALABLETEXTURE   ((XAuint32) 0x00000006)
-#define XA_VIDEOPROFILE_MPEG4_SIMPLEFACE        ((XAuint32) 0x00000007)
-#define XA_VIDEOPROFILE_MPEG4_SIMPLEFBA         ((XAuint32) 0x00000008)
-#define XA_VIDEOPROFILE_MPEG4_BASICANIMATED     ((XAuint32) 0x00000009)
-#define XA_VIDEOPROFILE_MPEG4_HYBRID            ((XAuint32) 0x0000000A)
-#define XA_VIDEOPROFILE_MPEG4_ADVANCEDREALTIME  ((XAuint32) 0x0000000B)
-#define XA_VIDEOPROFILE_MPEG4_CORESCALABLE      ((XAuint32) 0x0000000C)
-#define XA_VIDEOPROFILE_MPEG4_ADVANCEDCODING    ((XAuint32) 0x0000000D)
-#define XA_VIDEOPROFILE_MPEG4_ADVANCEDCORE      ((XAuint32) 0x0000000E)
-#define XA_VIDEOPROFILE_MPEG4_ADVANCEDSCALABLE  ((XAuint32) 0x0000000F)
-
-#define XA_VIDEOLEVEL_MPEG4_0                   ((XAuint32) 0x00000001)
-#define XA_VIDEOLEVEL_MPEG4_0b                  ((XAuint32) 0x00000002)
-#define XA_VIDEOLEVEL_MPEG4_1                   ((XAuint32) 0x00000003)
-#define XA_VIDEOLEVEL_MPEG4_2                   ((XAuint32) 0x00000004)
-#define XA_VIDEOLEVEL_MPEG4_3                   ((XAuint32) 0x00000005)
-#define XA_VIDEOLEVEL_MPEG4_4                   ((XAuint32) 0x00000006)
-#define XA_VIDEOLEVEL_MPEG4_4a                  ((XAuint32) 0x00000007)
-#define XA_VIDEOLEVEL_MPEG4_5                   ((XAuint32) 0x00000008)
-
-#define XA_VIDEOPROFILE_AVC_BASELINE            ((XAuint32) 0x00000001)
-#define XA_VIDEOPROFILE_AVC_MAIN                ((XAuint32) 0x00000002)
-#define XA_VIDEOPROFILE_AVC_EXTENDED            ((XAuint32) 0x00000003)
-#define XA_VIDEOPROFILE_AVC_HIGH                ((XAuint32) 0x00000004)
-#define XA_VIDEOPROFILE_AVC_HIGH10              ((XAuint32) 0x00000005)
-#define XA_VIDEOPROFILE_AVC_HIGH422             ((XAuint32) 0x00000006)
-#define XA_VIDEOPROFILE_AVC_HIGH444             ((XAuint32) 0x00000007)
-
-#define XA_VIDEOLEVEL_AVC_1                     ((XAuint32) 0x00000001)
-#define XA_VIDEOLEVEL_AVC_1B                    ((XAuint32) 0x00000002)
-#define XA_VIDEOLEVEL_AVC_11                    ((XAuint32) 0x00000003)
-#define XA_VIDEOLEVEL_AVC_12                    ((XAuint32) 0x00000004)
-#define XA_VIDEOLEVEL_AVC_13                    ((XAuint32) 0x00000005)
-#define XA_VIDEOLEVEL_AVC_2                     ((XAuint32) 0x00000006)
-#define XA_VIDEOLEVEL_AVC_21                    ((XAuint32) 0x00000007)
-#define XA_VIDEOLEVEL_AVC_22                    ((XAuint32) 0x00000008)
-#define XA_VIDEOLEVEL_AVC_3                     ((XAuint32) 0x00000009)
-#define XA_VIDEOLEVEL_AVC_31                    ((XAuint32) 0x0000000A)
-#define XA_VIDEOLEVEL_AVC_32                    ((XAuint32) 0x0000000B)
-#define XA_VIDEOLEVEL_AVC_4                     ((XAuint32) 0x0000000C)
-#define XA_VIDEOLEVEL_AVC_41                    ((XAuint32) 0x0000000D)
-#define XA_VIDEOLEVEL_AVC_42                    ((XAuint32) 0x0000000E)
-#define XA_VIDEOLEVEL_AVC_5                     ((XAuint32) 0x0000000F)
-#define XA_VIDEOLEVEL_AVC_51                    ((XAuint32) 0x00000010)
-
-#define XA_VIDEOLEVEL_VC1_SIMPLE                ((XAuint32) 0x00000001)
-#define XA_VIDEOLEVEL_VC1_MAIN                  ((XAuint32) 0x00000002)
-#define XA_VIDEOLEVEL_VC1_ADVANCED              ((XAuint32) 0x00000003)
-
-#define XA_VIDEOLEVEL_VC1_LOW                   ((XAuint32) 0x00000001)
-#define XA_VIDEOLEVEL_VC1_MEDIUM                ((XAuint32) 0x00000002)
-#define XA_VIDEOLEVEL_VC1_HIGH                  ((XAuint32) 0x00000003)
-#define XA_VIDEOLEVEL_VC1_L0                    ((XAuint32) 0x00000004)
-#define XA_VIDEOLEVEL_VC1_L1                    ((XAuint32) 0x00000005)
-#define XA_VIDEOLEVEL_VC1_L2                    ((XAuint32) 0x00000006)
-#define XA_VIDEOLEVEL_VC1_L3                    ((XAuint32) 0x00000007)
-#define XA_VIDEOLEVEL_VC1_L4                    ((XAuint32) 0x00000008)
-
-typedef struct XAVideoCodecDescriptor_ {
-    XAuint32 codecId;
-    XAuint32 maxWidth;
-    XAuint32 maxHeight;
-    XAuint32 maxFrameRate;
-    XAuint32 maxBitRate;
-    XAuint32 rateControlSupported;
-    XAuint32 profileSetting;
-    XAuint32 levelSetting;
-} XAVideoCodecDescriptor;
-
-typedef struct XAVideoSettings_ {
-    XAuint32 encoderId;
-    XAuint32 width;
-    XAuint32 height;
-    XAuint32 frameRate;
-    XAuint32 bitRate;
-    XAuint32 rateControl;
-    XAuint32 profileSetting;
-    XAuint32 levelSetting;
-    XAuint32 keyFrameInterval;
-} XAVideoSettings;
-
-XA_API extern const XAInterfaceID XA_IID_VIDEODECODERCAPABILITIES;
-
-struct XAVideoDecoderCapabilitiesItf_;
-typedef const struct XAVideoDecoderCapabilitiesItf_
-    * const * XAVideoDecoderCapabilitiesItf;
-
-struct XAVideoDecoderCapabilitiesItf_ {
-    XAresult (*GetVideoDecoders) (
-        XAVideoDecoderCapabilitiesItf self,
-        XAuint32 * pNumDecoders,
-        XAuint32 * pDecoderIds
-    );
-    XAresult (*GetVideoDecoderCapabilities) (
-        XAVideoDecoderCapabilitiesItf self,
-        XAuint32 decoderId,
-        XAuint32 * pIndex,
-        XAVideoCodecDescriptor * pDescriptor
-    );
-};
-
-XA_API extern const XAInterfaceID XA_IID_VIDEOENCODER;
-
-XA_API extern const XAInterfaceID XA_IID_VIDEOENCODERCAPABILITIES;
-
-struct XAVideoEncoderCapabilitiesItf_;
-typedef const struct XAVideoEncoderCapabilitiesItf_
-    * const * XAVideoEncoderCapabilitiesItf;
-
-struct XAVideoEncoderCapabilitiesItf_ {
-    XAresult (*GetVideoEncoders) (
-        XAVideoEncoderCapabilitiesItf self,
-        XAuint32 * pNumEncoders,
-        XAuint32 * pEncoderIds
-    );
-    XAresult (*GetVideoEncoderCapabilities) (
-        XAVideoEncoderCapabilitiesItf self,
-        XAuint32 encoderId,
-        XAuint32 * pIndex,
-        XAVideoCodecDescriptor * pDescriptor
-    );
-};
-
-struct XAVideoEncoderItf_;
-typedef const struct XAVideoEncoderItf_ * const * XAVideoEncoderItf;
-
-struct XAVideoEncoderItf_ {
-    XAresult (*SetVideoSettings) (
-        XAVideoEncoderItf self,
-        XAVideoSettings * pSettings
-    );
-    XAresult (*GetVideoSettings) (
-        XAVideoEncoderItf self,
-        XAVideoSettings * pSettings
-    );
-};
-
-/* STREAM INFORMATION */
-
-#define XA_DOMAINTYPE_AUDIO     0x00000001
-#define XA_DOMAINTYPE_VIDEO     0x00000002
-#define XA_DOMAINTYPE_IMAGE     0x00000003
-#define XA_DOMAINTYPE_TIMEDTEXT 0x00000004
-#define XA_DOMAINTYPE_MIDI      0x00000005
-#define XA_DOMAINTYPE_VENDOR    0xFFFFFFFE
-#define XA_DOMAINTYPE_UNKNOWN   0xFFFFFFFF
-
-#define XA_MIDIBANK_DEVICE      0x00000001
-#define XA_MIDIBANK_CUSTOM      0x00000002
-
-#define XA_MIDI_UNKNOWN         0xFFFFFFFF
-
-#define XA_STREAMCBEVENT_PROPERTYCHANGE     ((XAuint32) 0x00000001)
-
-typedef struct XAMediaContainerInformation_ {
-    XAuint32 containerType;
-    XAmillisecond mediaDuration;
-    XAuint32 numStreams;
-} XAMediaContainerInformation;
-
-typedef struct XAVideoStreamInformation_ {
-    XAuint32 codecId;
-    XAuint32 width;
-    XAuint32 height;
-    XAuint32 frameRate;
-    XAuint32 bitRate;
-    XAmillisecond duration;
-} XAVideoStreamInformation;
-
-typedef struct XAAudioStreamInformation_ {
-    XAuint32 codecId;
-    XAuint32 channels;
-    XAmilliHertz sampleRate;
-    XAuint32 bitRate;
-    XAchar langCountry[16];
-    XAmillisecond duration;
-} XAAudioStreamInformation;
-
-typedef struct XAImageStreamInformation_ {
-    XAuint32 codecId;
-    XAuint32 width;
-    XAuint32 height;
-    XAmillisecond presentationDuration;
-} XAImageStreamInformation;
-
-typedef struct XATimedTextStreamInformation_ {
-    XAuint16 layer;
-    XAuint32 width;
-    XAuint32 height;
-    XAuint16 tx;
-    XAuint16 ty;
-    XAuint32 bitrate;
-    XAchar langCountry[16];
-    XAmillisecond duration;
-} XATimedTextStreamInformation;
-
-typedef struct XAMIDIStreamInformation_ {
-    XAuint32 channels;
-    XAuint32 tracks;
-    XAuint32 bankType;
-    XAchar langCountry[16];
-    XAmillisecond duration;
-} XAMIDIStreamInformation;
-
-typedef struct XAVendorStreamInformation_ {
-    void *VendorStreamInfo;
-} XAVendorStreamInformation;
-
-XA_API extern const XAInterfaceID XA_IID_STREAMINFORMATION;
-
-struct XAStreamInformationItf_;
-typedef const struct XAStreamInformationItf_ * const * XAStreamInformationItf;
-
-typedef void (XAAPIENTRY * xaStreamEventChangeCallback) (
-    XAStreamInformationItf caller,
-    XAuint32 eventId,
-    XAuint32 streamIndex,
-    void * pEventData,
-    void * pContext
-);
-
-struct XAStreamInformationItf_ {
-    XAresult (*QueryMediaContainerInformation) (
-        XAStreamInformationItf self,
-        XAMediaContainerInformation * info
-    );
-    XAresult (*QueryStreamType) (
-        XAStreamInformationItf self,
-        XAuint32 streamIndex,
-        XAuint32 *domain
-    );
-    XAresult (*QueryStreamInformation) (
-        XAStreamInformationItf self,
-        XAuint32 streamIndex,
-        void * info
-    );
-    XAresult (*QueryStreamName) (
-        XAStreamInformationItf self,
-        XAuint32 streamIndex,
-        XAuint16 * pNameSize,
-        XAchar * pName
-    );
-    XAresult (*RegisterStreamChangeCallback) (
-        XAStreamInformationItf self,
-        xaStreamEventChangeCallback callback,
-        void * pContext
-    );
-    XAresult (*QueryActiveStreams) (
-        XAStreamInformationItf self,
-        XAuint32 *numStreams,
-        XAboolean *activeStreams
-    );
-    XAresult (*SetActiveStream) (
-        XAStreamInformationItf self,
-        XAuint32   streamNum,
-        XAboolean  active,
-        XAboolean  commitNow
-    );
-};
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* _OPENMAXAL_H_ */