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