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