summaryrefslogtreecommitdiffstats
path: root/9/platforms/android-21/arch-x86/usr/include/OMXAL/OpenMAXAL.h
diff options
context:
space:
mode:
Diffstat (limited to '9/platforms/android-21/arch-x86/usr/include/OMXAL/OpenMAXAL.h')
-rw-r--r--9/platforms/android-21/arch-x86/usr/include/OMXAL/OpenMAXAL.h3195
1 files changed, 3195 insertions, 0 deletions
diff --git a/9/platforms/android-21/arch-x86/usr/include/OMXAL/OpenMAXAL.h b/9/platforms/android-21/arch-x86/usr/include/OMXAL/OpenMAXAL.h
new file mode 100644
index 0000000..d31283c
--- /dev/null
+++ b/9/platforms/android-21/arch-x86/usr/include/OMXAL/OpenMAXAL.h
@@ -0,0 +1,3195 @@
+/*
+ * 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_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "OpenMAXAL_Platform.h"
+
+
+ /*****************************************************************/
+ /* 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_ */