| /* |
| * 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_ */ |