111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* 211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Copyright (c) 2007-2010 The Khronos Group Inc. 311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Permission is hereby granted, free of charge, to any person obtaining 511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * a copy of this software and/or associated documentation files (the 611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * "Materials "), to deal in the Materials without restriction, including 711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * without limitation the rights to use, copy, modify, merge, publish, 811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * distribute, sublicense, and/or sell copies of the Materials, and to 911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * permit persons to whom the Materials are furnished to do so, subject to 1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * the following conditions: 1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * The above copyright notice and this permission notice shall be included 1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * in all copies or substantial portions of the Materials. 1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. 2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * OpenMAXAL.h - OpenMAX AL version 1.0.1 2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert */ 2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/****************************************************************************/ 2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* NOTE: This file is a standard OpenMAX AL header file and should not be */ 2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* modified in any way. */ 3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/****************************************************************************/ 3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _OPENMAXAL_H_ 3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _OPENMAXAL_H_ 3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __cplusplus 3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern "C" { 3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include "OpenMAXAL_Platform.h" 4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert /*****************************************************************/ 4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert /* TYPES */ 4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert /*****************************************************************/ 4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* remap common types to XA types for clarity */ 4711cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef xa_int8_t XAint8; /* 8 bit signed integer */ 4811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef xa_uint8_t XAuint8; /* 8 bit unsigned integer */ 4911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef xa_int16_t XAint16; /* 16 bit signed integer */ 5011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef xa_uint16_t XAuint16; /* 16 bit unsigned integer */ 5111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef xa_int32_t XAint32; /* 32 bit signed integer */ 5211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef xa_uint32_t XAuint32; /* 32 bit unsigned integer */ 5311cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef xa_uint64_t XAuint64; /* 64 bit unsigned integer */ 5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef XAuint32 XAboolean; 5611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef XAuint8 XAchar; 5711cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef XAint16 XAmillibel; 5811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef XAuint32 XAmillisecond; 5911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef XAuint32 XAmilliHertz; 6011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef XAint32 XAmillimeter; 6111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef XAint32 XAmillidegree; 6211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef XAint16 XApermille; 6311cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef XAuint32 XAmicrosecond; 6411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef XAuint64 XAtime; 6511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef XAuint32 XAresult; 6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_BOOLEAN_FALSE ((XAuint32) 0x00000000) 6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_BOOLEAN_TRUE ((XAuint32) 0x00000001) 6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_MILLIBEL_MAX ((XAmillibel) 0x7FFF) 7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_MILLIBEL_MIN ((XAmillibel) (-XA_MILLIBEL_MAX-1)) 7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_MILLIHERTZ_MAX ((XAmilliHertz) 0xFFFFFFFF) 7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_MILLIMETER_MAX ((XAmillimeter) 0x7FFFFFFF) 7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert /*****************************************************************/ 8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert /* RESULT CODES */ 8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert /*****************************************************************/ 8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RESULT_SUCCESS ((XAuint32) 0x00000000) 8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RESULT_PRECONDITIONS_VIOLATED ((XAuint32) 0x00000001) 8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RESULT_PARAMETER_INVALID ((XAuint32) 0x00000002) 8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RESULT_MEMORY_FAILURE ((XAuint32) 0x00000003) 8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RESULT_RESOURCE_ERROR ((XAuint32) 0x00000004) 8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RESULT_RESOURCE_LOST ((XAuint32) 0x00000005) 8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RESULT_IO_ERROR ((XAuint32) 0x00000006) 9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RESULT_BUFFER_INSUFFICIENT ((XAuint32) 0x00000007) 9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RESULT_CONTENT_CORRUPTED ((XAuint32) 0x00000008) 9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RESULT_CONTENT_UNSUPPORTED ((XAuint32) 0x00000009) 9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RESULT_CONTENT_NOT_FOUND ((XAuint32) 0x0000000A) 9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RESULT_PERMISSION_DENIED ((XAuint32) 0x0000000B) 9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RESULT_FEATURE_UNSUPPORTED ((XAuint32) 0x0000000C) 9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RESULT_INTERNAL_ERROR ((XAuint32) 0x0000000D) 9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RESULT_UNKNOWN_ERROR ((XAuint32) 0x0000000E) 9811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RESULT_OPERATION_ABORTED ((XAuint32) 0x0000000F) 9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RESULT_CONTROL_LOST ((XAuint32) 0x00000010) 10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert /*****************************************************************/ 10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert /* INTERFACE ID DEFINITION */ 10511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert /*****************************************************************/ 10611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Interface ID defined as a UUID */ 10811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XAInterfaceID_ { 10911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 time_low; 11011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint16 time_mid; 11111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint16 time_hi_and_version; 11211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint16 clock_seq; 11311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint8 node[6]; 11411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} * XAInterfaceID; 11511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 11611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* NULL Interface */ 11711cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_NULL; 11811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 11911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 12011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 12111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert /*****************************************************************/ 12211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert /* GENERAL INTERFACES, STRUCTS AND DEFINES */ 12311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert /*****************************************************************/ 12411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 12511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* OBJECT */ 12611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 12711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_PRIORITY_LOWEST ((XAint32) (-0x7FFFFFFF-1)) 12811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_PRIORITY_VERYLOW ((XAint32) -0x60000000) 12911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_PRIORITY_LOW ((XAint32) -0x40000000) 13011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_PRIORITY_BELOWNORMAL ((XAint32) -0x20000000) 13111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_PRIORITY_NORMAL ((XAint32) 0x00000000) 13211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_PRIORITY_ABOVENORMAL ((XAint32) 0x20000000) 13311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_PRIORITY_HIGH ((XAint32) 0x40000000) 13411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_PRIORITY_VERYHIGH ((XAint32) 0x60000000) 13511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_PRIORITY_HIGHEST ((XAint32) 0x7FFFFFFF) 13611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 13711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_OBJECT_EVENT_RUNTIME_ERROR ((XAuint32) 0x00000001) 13811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_OBJECT_EVENT_ASYNC_TERMINATION ((XAuint32) 0x00000002) 13911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_OBJECT_EVENT_RESOURCES_LOST ((XAuint32) 0x00000003) 14011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_OBJECT_EVENT_RESOURCES_AVAILABLE ((XAuint32) 0x00000004) 14111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_OBJECT_EVENT_ITF_CONTROL_TAKEN ((XAuint32) 0x00000005) 14211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_OBJECT_EVENT_ITF_CONTROL_RETURNED ((XAuint32) 0x00000006) 14311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_OBJECT_EVENT_ITF_PARAMETERS_CHANGED ((XAuint32) 0x00000007) 14411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 14511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_OBJECT_STATE_UNREALIZED ((XAuint32) 0x00000001) 14611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_OBJECT_STATE_REALIZED ((XAuint32) 0x00000002) 14711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_OBJECT_STATE_SUSPENDED ((XAuint32) 0x00000003) 14811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 14911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 15011cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_OBJECT; 15111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 15211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAObjectItf_; 15311cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XAObjectItf_ * const * XAObjectItf; 15411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 15511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void (XAAPIENTRY * xaObjectCallback) ( 15611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAObjectItf caller, 15711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const void * pContext, 15811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 event, 15911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult result, 16011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 param, 16111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pInterface 16211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 16311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 16411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAObjectItf_ { 16511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*Realize) ( 16611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAObjectItf self, 16711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean async 16811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 16911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*Resume) ( 17011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAObjectItf self, 17111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean async 17211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 17311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetState) ( 17411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAObjectItf self, 17511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pState 17611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 17711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetInterface) ( 17811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAObjectItf self, 17911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAInterfaceID iid, 18011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pInterface 18111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 18211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*RegisterCallback) ( 18311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAObjectItf self, 18411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert xaObjectCallback callback, 18511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pContext 18611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 18711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void (*AbortAsyncOperation) ( 18811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAObjectItf self 18911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 19011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void (*Destroy) ( 19111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAObjectItf self 19211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 19311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetPriority) ( 19411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAObjectItf self, 19511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint32 priority, 19611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean preemptable 19711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 19811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetPriority) ( 19911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAObjectItf self, 20011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint32 * pPriority, 20111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean * pPreemptable 20211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 20311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetLossOfControlInterfaces) ( 20411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAObjectItf self, 20511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint16 numInterfaces, 20611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAInterfaceID * pInterfaceIDs, 20711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean enabled 20811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 20911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 21011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 21111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* CONFIG EXTENSION */ 21211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 21311cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_CONFIGEXTENSION; 21411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 21511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAConfigExtensionsItf_; 21611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XAConfigExtensionsItf_ 21711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * const * XAConfigExtensionsItf; 21811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 21911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAConfigExtensionsItf_ { 22011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetConfiguration) ( 22111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAConfigExtensionsItf self, 22211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAchar * configKey, 22311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 valueSize, 22411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const void * pConfigValue 22511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 22611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetConfiguration) ( 22711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAConfigExtensionsItf self, 22811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAchar * configKey, 22911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pValueSize, 23011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pConfigValue 23111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 23211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 23311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 23411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* DYNAMIC INTERFACE MANAGEMENT */ 23511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 23611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DYNAMIC_ITF_EVENT_RUNTIME_ERROR ((XAuint32) 0x00000001) 23711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DYNAMIC_ITF_EVENT_ASYNC_TERMINATION ((XAuint32) 0x00000002) 23811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DYNAMIC_ITF_EVENT_RESOURCES_LOST ((XAuint32) 0x00000003) 23911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DYNAMIC_ITF_EVENT_RESOURCES_LOST_PERMANENTLY ((XAuint32) 0x00000004) 24011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DYNAMIC_ITF_EVENT_RESOURCES_AVAILABLE ((XAuint32) 0x00000005) 24111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 24211cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_DYNAMICINTERFACEMANAGEMENT; 24311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 24411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XADynamicInterfaceManagementItf_; 24511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XADynamicInterfaceManagementItf_ 24611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * const * XADynamicInterfaceManagementItf; 24711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 24811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void (XAAPIENTRY * xaDynamicInterfaceManagementCallback) ( 24911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XADynamicInterfaceManagementItf caller, 25011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pContext, 25111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 event, 25211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult result, 25311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAInterfaceID iid 25411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 25511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 25611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XADynamicInterfaceManagementItf_ { 25711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*AddInterface) ( 25811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XADynamicInterfaceManagementItf self, 25911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAInterfaceID iid, 26011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean aysnc 26111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 26211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*RemoveInterface) ( 26311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XADynamicInterfaceManagementItf self, 26411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAInterfaceID iid 26511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 26611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*ResumeInterface) ( 26711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XADynamicInterfaceManagementItf self, 26811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAInterfaceID iid, 26911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean aysnc 27011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 27111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*RegisterCallback) ( 27211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XADynamicInterfaceManagementItf self, 27311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert xaDynamicInterfaceManagementCallback callback, 27411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pContext 27511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 27611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 27711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 27811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* DATA SOURCES/SINKS */ 27911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 28011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DATAFORMAT_MIME ((XAuint32) 0x00000001) 28111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DATAFORMAT_PCM ((XAuint32) 0x00000002) 28211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DATAFORMAT_RAWIMAGE ((XAuint32) 0x00000003) 28311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 28411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DATALOCATOR_URI ((XAuint32) 0x00000001) 28511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DATALOCATOR_ADDRESS ((XAuint32) 0x00000002) 28611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DATALOCATOR_IODEVICE ((XAuint32) 0x00000003) 28711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DATALOCATOR_OUTPUTMIX ((XAuint32) 0x00000004) 28811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DATALOCATOR_NATIVEDISPLAY ((XAuint32) 0x00000005) 28911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DATALOCATOR_RESERVED6 ((XAuint32) 0x00000006) 29011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DATALOCATOR_RESERVED7 ((XAuint32) 0x00000007) 29111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 29211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct XADataSink_ { 29311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pLocator; 29411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pFormat; 29511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} XADataSink; 29611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 29711cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct XADataSource_ { 29811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pLocator; 29911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pFormat; 30011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} XADataSource; 30111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 30211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CONTAINERTYPE_UNSPECIFIED ((XAuint32) 0x00000001) 30311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CONTAINERTYPE_RAW ((XAuint32) 0x00000002) 30411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CONTAINERTYPE_ASF ((XAuint32) 0x00000003) 30511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CONTAINERTYPE_AVI ((XAuint32) 0x00000004) 30611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CONTAINERTYPE_BMP ((XAuint32) 0x00000005) 30711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CONTAINERTYPE_JPG ((XAuint32) 0x00000006) 30811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CONTAINERTYPE_JPG2000 ((XAuint32) 0x00000007) 30911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CONTAINERTYPE_M4A ((XAuint32) 0x00000008) 31011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CONTAINERTYPE_MP3 ((XAuint32) 0x00000009) 31111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CONTAINERTYPE_MP4 ((XAuint32) 0x0000000A) 31211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CONTAINERTYPE_MPEG_ES ((XAuint32) 0x0000000B) 31311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CONTAINERTYPE_MPEG_PS ((XAuint32) 0x0000000C) 31411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CONTAINERTYPE_MPEG_TS ((XAuint32) 0x0000000D) 31511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CONTAINERTYPE_QT ((XAuint32) 0x0000000E) 31611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CONTAINERTYPE_WAV ((XAuint32) 0x0000000F) 31711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CONTAINERTYPE_XMF_0 ((XAuint32) 0x00000010) 31811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CONTAINERTYPE_XMF_1 ((XAuint32) 0x00000011) 31911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CONTAINERTYPE_XMF_2 ((XAuint32) 0x00000012) 32011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CONTAINERTYPE_XMF_3 ((XAuint32) 0x00000013) 32111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CONTAINERTYPE_XMF_GENERIC ((XAuint32) 0x00000014) 32211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CONTAINERTYPE_AMR ((XAuint32) 0x00000015) 32311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CONTAINERTYPE_AAC ((XAuint32) 0x00000016) 32411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CONTAINERTYPE_3GPP ((XAuint32) 0x00000017) 32511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CONTAINERTYPE_3GA ((XAuint32) 0x00000018) 32611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CONTAINERTYPE_RM ((XAuint32) 0x00000019) 32711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CONTAINERTYPE_DMF ((XAuint32) 0x0000001A) 32811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CONTAINERTYPE_SMF ((XAuint32) 0x0000001B) 32911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CONTAINERTYPE_MOBILE_DLS ((XAuint32) 0x0000001C) 33011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CONTAINERTYPE_OGG ((XAuint32) 0x0000001D) 33111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 33211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct XADataFormat_MIME_ { 33311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 formatType; 33411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAchar * mimeType; 33511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 containerType; 33611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} XADataFormat_MIME; 33711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 33811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_BYTEORDER_BIGENDIAN ((XAuint32) 0x00000001) 33911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_BYTEORDER_LITTLEENDIAN ((XAuint32) 0x00000002) 34011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 34111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_SAMPLINGRATE_8 ((XAuint32) 8000000) 34211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_SAMPLINGRATE_11_025 ((XAuint32) 11025000) 34311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_SAMPLINGRATE_12 ((XAuint32) 12000000) 34411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_SAMPLINGRATE_16 ((XAuint32) 16000000) 34511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_SAMPLINGRATE_22_05 ((XAuint32) 22050000) 34611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_SAMPLINGRATE_24 ((XAuint32) 24000000) 34711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_SAMPLINGRATE_32 ((XAuint32) 32000000) 34811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_SAMPLINGRATE_44_1 ((XAuint32) 44100000) 34911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_SAMPLINGRATE_48 ((XAuint32) 48000000) 35011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_SAMPLINGRATE_64 ((XAuint32) 64000000) 35111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_SAMPLINGRATE_88_2 ((XAuint32) 88200000) 35211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_SAMPLINGRATE_96 ((XAuint32) 96000000) 35311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_SAMPLINGRATE_192 ((XAuint32) 192000000) 35411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 35511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_SPEAKER_FRONT_LEFT ((XAuint32) 0x00000001) 35611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_SPEAKER_FRONT_RIGHT ((XAuint32) 0x00000002) 35711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_SPEAKER_FRONT_CENTER ((XAuint32) 0x00000004) 35811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_SPEAKER_LOW_FREQUENCY ((XAuint32) 0x00000008) 35911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_SPEAKER_BACK_LEFT ((XAuint32) 0x00000010) 36011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_SPEAKER_BACK_RIGHT ((XAuint32) 0x00000020) 36111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_SPEAKER_FRONT_LEFT_OF_CENTER ((XAuint32) 0x00000040) 36211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_SPEAKER_FRONT_RIGHT_OF_CENTER ((XAuint32) 0x00000080) 36311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_SPEAKER_BACK_CENTER ((XAuint32) 0x00000100) 36411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_SPEAKER_SIDE_LEFT ((XAuint32) 0x00000200) 36511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_SPEAKER_SIDE_RIGHT ((XAuint32) 0x00000400) 36611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_SPEAKER_TOP_CENTER ((XAuint32) 0x00000800) 36711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_SPEAKER_TOP_FRONT_LEFT ((XAuint32) 0x00001000) 36811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_SPEAKER_TOP_FRONT_CENTER ((XAuint32) 0x00002000) 36911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_SPEAKER_TOP_FRONT_RIGHT ((XAuint32) 0x00004000) 37011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_SPEAKER_TOP_BACK_LEFT ((XAuint32) 0x00008000) 37111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_SPEAKER_TOP_BACK_CENTER ((XAuint32) 0x00010000) 37211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_SPEAKER_TOP_BACK_RIGHT ((XAuint32) 0x00020000) 37311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 37411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_PCMSAMPLEFORMAT_FIXED_8 ((XAuint16) 0x0008) 37511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_PCMSAMPLEFORMAT_FIXED_16 ((XAuint16) 0x0010) 37611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_PCMSAMPLEFORMAT_FIXED_20 ((XAuint16) 0x0014) 37711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_PCMSAMPLEFORMAT_FIXED_24 ((XAuint16) 0x0018) 37811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_PCMSAMPLEFORMAT_FIXED_28 ((XAuint16) 0x001C) 37911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_PCMSAMPLEFORMAT_FIXED_32 ((XAuint16) 0x0020) 38011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 38111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct XADataFormat_PCM_ { 38211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 formatType; 38311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 numChannels; 38411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 samplesPerSec; 38511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 bitsPerSample; 38611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 containerSize; 38711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 channelMask; 38811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 endianness; 38911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} XADataFormat_PCM; 39011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 39111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_UNUSED ((XAuint32) 0x00000000) 39211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_MONOCHROME ((XAuint32) 0x00000001) 39311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_8BITRGB332 ((XAuint32) 0x00000002) 39411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_12BITRGB444 ((XAuint32) 0x00000003) 39511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_16BITARGB4444 ((XAuint32) 0x00000004) 39611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_16BITARGB1555 ((XAuint32) 0x00000005) 39711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_16BITRGB565 ((XAuint32) 0x00000006) 39811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_16BITBGR565 ((XAuint32) 0x00000007) 39911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_18BITRGB666 ((XAuint32) 0x00000008) 40011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_18BITARGB1665 ((XAuint32) 0x00000009) 40111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_19BITARGB1666 ((XAuint32) 0x0000000A) 40211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_24BITRGB888 ((XAuint32) 0x0000000B) 40311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_24BITBGR888 ((XAuint32) 0x0000000C) 40411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_24BITARGB1887 ((XAuint32) 0x0000000D) 40511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_25BITARGB1888 ((XAuint32) 0x0000000E) 40611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_32BITBGRA8888 ((XAuint32) 0x0000000F) 40711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_32BITARGB8888 ((XAuint32) 0x00000010) 40811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_YUV411PLANAR ((XAuint32) 0x00000011) 40911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_YUV420PLANAR ((XAuint32) 0x00000013) 41011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_YUV420SEMIPLANAR ((XAuint32) 0x00000015) 41111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_YUV422PLANAR ((XAuint32) 0x00000016) 41211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_YUV422SEMIPLANAR ((XAuint32) 0x00000018) 41311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_YCBYCR ((XAuint32) 0x00000019) 41411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_YCRYCB ((XAuint32) 0x0000001A) 41511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_CBYCRY ((XAuint32) 0x0000001B) 41611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_CRYCBY ((XAuint32) 0x0000001C) 41711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_YUV444INTERLEAVED ((XAuint32) 0x0000001D) 41811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_RAWBAYER8BIT ((XAuint32) 0x0000001E) 41911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_RAWBAYER10BIT ((XAuint32) 0x0000001F) 42011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_RAWBAYER8BITCOMPRESSED ((XAuint32) 0x00000020) 42111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_L2 ((XAuint32) 0x00000021) 42211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_L4 ((XAuint32) 0x00000022) 42311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_L8 ((XAuint32) 0x00000023) 42411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_L16 ((XAuint32) 0x00000024) 42511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_L24 ((XAuint32) 0x00000025) 42611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_L32 ((XAuint32) 0x00000026) 42711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_18BITBGR666 ((XAuint32) 0x00000029) 42811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_24BITARGB6666 ((XAuint32) 0x0000002A) 42911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_COLORFORMAT_24BITABGR6666 ((XAuint32) 0x0000002B) 43011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 43111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct XADataFormat_RawImage_ { 43211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 formatType; 43311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 colorFormat; 43411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 height; 43511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 width; 43611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 stride; 43711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} XADataFormat_RawImage; 43811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 43911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct XADataLocator_Address_ { 44011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 locatorType; 44111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pAddress; 44211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 length; 44311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} XADataLocator_Address; 44411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 44511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_IODEVICE_AUDIOINPUT ((XAuint32) 0x00000001) 44611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_IODEVICE_LEDARRAY ((XAuint32) 0x00000002) 44711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_IODEVICE_VIBRA ((XAuint32) 0x00000003) 44811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_IODEVICE_CAMERA ((XAuint32) 0x00000004) 44911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_IODEVICE_RADIO ((XAuint32) 0x00000005) 45011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 45111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct XADataLocator_IODevice_ { 45211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 locatorType; 45311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 deviceType; 45411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 deviceID; 45511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAObjectItf device; 45611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} XADataLocator_IODevice; 45711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 45811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void * XANativeHandle; 45911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 46011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct XADataLocator_NativeDisplay_{ 46111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 locatorType; 46211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XANativeHandle hWindow; 46311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XANativeHandle hDisplay; 46411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} XADataLocator_NativeDisplay; 46511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 46611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct XADataLocator_OutputMix { 46711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 locatorType; 46811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAObjectItf outputMix; 46911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} XADataLocator_OutputMix; 47011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 47111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct XADataLocator_URI_ { 47211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 locatorType; 47311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAchar * URI; 47411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} XADataLocator_URI; 47511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 47611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 47711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* ENGINE */ 47811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 47911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DEFAULTDEVICEID_AUDIOINPUT ((XAuint32) 0xFFFFFFFF) 48011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DEFAULTDEVICEID_AUDIOOUTPUT ((XAuint32) 0xFFFFFFFE) 48111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DEFAULTDEVICEID_LED ((XAuint32) 0xFFFFFFFD) 48211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DEFAULTDEVICEID_VIBRA ((XAuint32) 0xFFFFFFFC) 48311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DEFAULTDEVICEID_CAMERA ((XAuint32) 0xFFFFFFFB) 48411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 48511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_ENGINEOPTION_THREADSAFE ((XAuint32) 0x00000001) 48611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_ENGINEOPTION_LOSSOFCONTROL ((XAuint32) 0x00000002) 48711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 48811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_OBJECTID_ENGINE ((XAuint32) 0x00000001) 48911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_OBJECTID_LEDDEVICE ((XAuint32) 0x00000002) 49011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_OBJECTID_VIBRADEVICE ((XAuint32) 0x00000003) 49111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_OBJECTID_MEDIAPLAYER ((XAuint32) 0x00000004) 49211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_OBJECTID_MEDIARECORDER ((XAuint32) 0x00000005) 49311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_OBJECTID_RADIODEVICE ((XAuint32) 0x00000006) 49411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_OBJECTID_OUTPUTMIX ((XAuint32) 0x00000007) 49511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_OBJECTID_METADATAEXTRACTOR ((XAuint32) 0x00000008) 49611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_OBJECTID_CAMERADEVICE ((XAuint32) 0x00000009) 49711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 49811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_PROFILES_MEDIA_PLAYER ((XAint16) 0x0001) 49911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_PROFILES_MEDIA_PLAYER_RECORDER ((XAint16) 0x0002) 50011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_PROFILES_PLUS_MIDI ((XAint16) 0x0004) 50111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 50211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct XAEngineOption_ { 50311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 feature; 50411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 data; 50511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} XAEngineOption; 50611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 50711cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API XAresult XAAPIENTRY xaCreateEngine( 50811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAObjectItf * pEngine, 50911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 numOptions, 51011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAEngineOption * pEngineOptions, 51111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 numInterfaces, 51211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAInterfaceID * pInterfaceIds, 51311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAboolean * pInterfaceRequired 51411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 51511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 51611cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API XAresult XAAPIENTRY xaQueryNumSupportedEngineInterfaces( 51711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pNumSupportedInterfaces 51811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 51911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 52011cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API XAresult XAAPIENTRY xaQuerySupportedEngineInterfaces( 52111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 index, 52211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAInterfaceID * pInterfaceId 52311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 52411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 52511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct XALEDDescriptor_ { 52611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint8 ledCount; 52711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint8 primaryLED; 52811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 colorMask; 52911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} XALEDDescriptor; 53011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 53111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct XAVibraDescriptor_ { 53211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean supportsFrequency; 53311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean supportsIntensity; 53411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmilliHertz minFrequency; 53511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmilliHertz maxFrequency; 53611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} XAVibraDescriptor; 53711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 53811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 53911cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_ENGINE; 54011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 54111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAEngineItf_; 54211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XAEngineItf_ * const * XAEngineItf; 54311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 54411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAEngineItf_ { 54511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*CreateCameraDevice) ( 54611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAEngineItf self, 54711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAObjectItf * pDevice, 54811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 deviceID, 54911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 numInterfaces, 55011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAInterfaceID * pInterfaceIds, 55111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAboolean * pInterfaceRequired 55211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 55311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*CreateRadioDevice) ( 55411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAEngineItf self, 55511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAObjectItf * pDevice, 55611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 numInterfaces, 55711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAInterfaceID * pInterfaceIds, 55811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAboolean * pInterfaceRequired 55911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 56011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*CreateLEDDevice) ( 56111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAEngineItf self, 56211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAObjectItf * pDevice, 56311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 deviceID, 56411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 numInterfaces, 56511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAInterfaceID * pInterfaceIds, 56611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAboolean * pInterfaceRequired 56711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 56811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*CreateVibraDevice) ( 56911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAEngineItf self, 57011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAObjectItf * pDevice, 57111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 deviceID, 57211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 numInterfaces, 57311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAInterfaceID * pInterfaceIds, 57411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAboolean * pInterfaceRequired 57511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 57611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*CreateMediaPlayer) ( 57711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAEngineItf self, 57811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAObjectItf * pPlayer, 57911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XADataSource * pDataSrc, 58011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XADataSource * pBankSrc, 58111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XADataSink * pAudioSnk, 58211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XADataSink * pImageVideoSnk, 58311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XADataSink * pVibra, 58411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XADataSink * pLEDArray, 58511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 numInterfaces, 58611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAInterfaceID * pInterfaceIds, 58711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAboolean * pInterfaceRequired 58811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 58911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*CreateMediaRecorder) ( 59011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAEngineItf self, 59111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAObjectItf * pRecorder, 59211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XADataSource * pAudioSrc, 59311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XADataSource * pImageVideoSrc, 59411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XADataSink * pDataSnk, 59511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 numInterfaces, 59611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAInterfaceID * pInterfaceIds, 59711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAboolean * pInterfaceRequired 59811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 59911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*CreateOutputMix) ( 60011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAEngineItf self, 60111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAObjectItf * pMix, 60211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 numInterfaces, 60311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAInterfaceID * pInterfaceIds, 60411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAboolean * pInterfaceRequired 60511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 60611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*CreateMetadataExtractor) ( 60711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAEngineItf self, 60811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAObjectItf * pMetadataExtractor, 60911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XADataSource * pDataSource, 61011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 numInterfaces, 61111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAInterfaceID * pInterfaceIds, 61211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAboolean * pInterfaceRequired 61311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 61411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*CreateExtensionObject) ( 61511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAEngineItf self, 61611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAObjectItf * pObject, 61711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pParameters, 61811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 objectID, 61911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 numInterfaces, 62011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAInterfaceID * pInterfaceIds, 62111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAboolean * pInterfaceRequired 62211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 62311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetImplementationInfo) ( 62411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAEngineItf self, 62511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pMajor, 62611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pMinor, 62711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pStep, 62811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAchar * pImplementationText 62911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 63011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*QuerySupportedProfiles) ( 63111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAEngineItf self, 63211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint16 * pProfilesSupported 63311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 63411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*QueryNumSupportedInterfaces) ( 63511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAEngineItf self, 63611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 objectID, 63711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pNumSupportedInterfaces 63811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 63911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*QuerySupportedInterfaces) ( 64011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAEngineItf self, 64111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 objectID, 64211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 index, 64311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAInterfaceID * pInterfaceId 64411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 64511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*QueryNumSupportedExtensions) ( 64611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAEngineItf self, 64711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pNumExtensions 64811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 64911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*QuerySupportedExtension) ( 65011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAEngineItf self, 65111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 index, 65211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAchar * pExtensionName, 65311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint16 * pNameLength 65411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 65511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*IsExtensionSupported) ( 65611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAEngineItf self, 65711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAchar * pExtensionName, 65811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean * pSupported 65911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 66011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*QueryLEDCapabilities) ( 66111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAEngineItf self, 66211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 *pIndex, 66311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pLEDDeviceID, 66411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XALEDDescriptor * pDescriptor 66511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 66611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*QueryVibraCapabilities) ( 66711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAEngineItf self, 66811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 *pIndex, 66911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pVibraDeviceID, 67011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAVibraDescriptor * pDescriptor 67111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 67211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 67311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 67411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* THREAD SYNC */ 67511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 67611cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_THREADSYNC; 67711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 67811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAThreadSyncItf_; 67911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XAThreadSyncItf_ * const * XAThreadSyncItf; 68011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 68111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAThreadSyncItf_ { 68211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*EnterCriticalSection) ( 68311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAThreadSyncItf self 68411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 68511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*ExitCriticalSection) ( 68611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAThreadSyncItf self 68711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 68811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 68911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 69011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 69111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 69211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert /*****************************************************************/ 69311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert /* PLAYBACK RELATED INTERFACES, STRUCTS AND DEFINES */ 69411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert /*****************************************************************/ 69511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 69611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* PLAY */ 69711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 69811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_TIME_UNKNOWN ((XAuint32) 0xFFFFFFFF) 69911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 70011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_PLAYEVENT_HEADATEND ((XAuint32) 0x00000001) 70111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_PLAYEVENT_HEADATMARKER ((XAuint32) 0x00000002) 70211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_PLAYEVENT_HEADATNEWPOS ((XAuint32) 0x00000004) 70311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_PLAYEVENT_HEADMOVING ((XAuint32) 0x00000008) 70411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_PLAYEVENT_HEADSTALLED ((XAuint32) 0x00000010) 70511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 70611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_PLAYSTATE_STOPPED ((XAuint32) 0x00000001) 70711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_PLAYSTATE_PAUSED ((XAuint32) 0x00000002) 70811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_PLAYSTATE_PLAYING ((XAuint32) 0x00000003) 70911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 71011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_PREFETCHEVENT_STATUSCHANGE ((XAuint32) 0x00000001) 71111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_PREFETCHEVENT_FILLLEVELCHANGE ((XAuint32) 0x00000002) 71211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 71311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_PREFETCHSTATUS_UNDERFLOW ((XAuint32) 0x00000001) 71411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_PREFETCHSTATUS_SUFFICIENTDATA ((XAuint32) 0x00000002) 71511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_PREFETCHSTATUS_OVERFLOW ((XAuint32) 0x00000003) 71611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 71711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_SEEKMODE_FAST ((XAuint32) 0x0001) 71811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_SEEKMODE_ACCURATE ((XAuint32) 0x0002) 71911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 72011cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_PLAY; 72111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 72211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAPlayItf_; 72311cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XAPlayItf_ * const * XAPlayItf; 72411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 72511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void (XAAPIENTRY * xaPlayCallback) ( 72611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAPlayItf caller, 72711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pContext, 72811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 event 72911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 73011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 73111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAPlayItf_ { 73211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetPlayState) ( 73311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAPlayItf self, 73411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 state 73511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 73611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetPlayState) ( 73711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAPlayItf self, 73811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pState 73911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 74011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetDuration) ( 74111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAPlayItf self, 74211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillisecond * pMsec 74311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 74411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetPosition) ( 74511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAPlayItf self, 74611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillisecond * pMsec 74711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 74811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*RegisterCallback) ( 74911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAPlayItf self, 75011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert xaPlayCallback callback, 75111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pContext 75211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 75311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetCallbackEventsMask) ( 75411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAPlayItf self, 75511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 eventFlags 75611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 75711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetCallbackEventsMask) ( 75811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAPlayItf self, 75911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pEventFlags 76011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 76111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetMarkerPosition) ( 76211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAPlayItf self, 76311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillisecond mSec 76411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 76511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*ClearMarkerPosition) ( 76611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAPlayItf self 76711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 76811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetMarkerPosition) ( 76911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAPlayItf self, 77011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillisecond * pMsec 77111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 77211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetPositionUpdatePeriod) ( 77311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAPlayItf self, 77411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillisecond mSec 77511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 77611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetPositionUpdatePeriod) ( 77711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAPlayItf self, 77811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillisecond * pMsec 77911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 78011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 78111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 78211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* PLAYBACK RATE */ 78311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 78411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RATEPROP_STAGGEREDVIDEO ((XAuint32) 0x00000001) 78511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RATEPROP_SMOOTHVIDEO ((XAuint32) 0x00000002) 78611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RATEPROP_SILENTAUDIO ((XAuint32) 0x00000100) 78711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RATEPROP_STAGGEREDAUDIO ((XAuint32) 0x00000200) 78811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RATEPROP_NOPITCHCORAUDIO ((XAuint32) 0x00000400) 78911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RATEPROP_PITCHCORAUDIO ((XAuint32) 0x00000800) 79011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 79111cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_PLAYBACKRATE; 79211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 79311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAPlaybackRateItf_; 79411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XAPlaybackRateItf_ * const * XAPlaybackRateItf; 79511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 79611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAPlaybackRateItf_ { 79711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetRate) ( 79811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAPlaybackRateItf self, 79911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XApermille rate 80011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 80111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetRate) ( 80211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAPlaybackRateItf self, 80311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XApermille * pRate 80411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 80511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetPropertyConstraints) ( 80611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAPlaybackRateItf self, 80711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 constraints 80811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 80911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetProperties) ( 81011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAPlaybackRateItf self, 81111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pProperties 81211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 81311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetCapabilitiesOfRate) ( 81411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAPlaybackRateItf self, 81511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XApermille rate, 81611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pCapabilities 81711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 81811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetRateRange) ( 81911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAPlaybackRateItf self, 82011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint8 index, 82111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XApermille * pMinRate, 82211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XApermille * pMaxRate, 82311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XApermille * pStepSize, 82411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pCapabilities 82511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 82611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 82711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 82811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* PREFETCH STATUS */ 82911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 83011cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_PREFETCHSTATUS; 83111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 83211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAPrefetchStatusItf_; 83311cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XAPrefetchStatusItf_ 83411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * const * XAPrefetchStatusItf; 83511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 83611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void (XAAPIENTRY * xaPrefetchCallback) ( 83711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAPrefetchStatusItf caller, 83811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pContext, 83911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 event 84011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 84111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 84211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAPrefetchStatusItf_ { 84311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetPrefetchStatus) ( 84411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAPrefetchStatusItf self, 84511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pStatus 84611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 84711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetFillLevel) ( 84811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAPrefetchStatusItf self, 84911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XApermille * pLevel 85011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 85111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*RegisterCallback) ( 85211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAPrefetchStatusItf self, 85311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert xaPrefetchCallback callback, 85411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pContext 85511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 85611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetCallbackEventsMask) ( 85711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAPrefetchStatusItf self, 85811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 eventFlags 85911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 86011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetCallbackEventsMask) ( 86111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAPrefetchStatusItf self, 86211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pEventFlags 86311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 86411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetFillUpdatePeriod) ( 86511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAPrefetchStatusItf self, 86611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XApermille period 86711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 86811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetFillUpdatePeriod) ( 86911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAPrefetchStatusItf self, 87011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XApermille * pPeriod 87111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 87211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 87311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 87411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* SEEK */ 87511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 87611cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_SEEK; 87711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 87811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XASeekItf_; 87911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XASeekItf_ * const * XASeekItf; 88011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 88111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XASeekItf_ { 88211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetPosition) ( 88311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XASeekItf self, 88411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillisecond pos, 88511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 seekMode 88611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 88711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetLoop) ( 88811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XASeekItf self, 88911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean loopEnable, 89011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillisecond startPos, 89111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillisecond endPos 89211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 89311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetLoop) ( 89411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XASeekItf self, 89511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean * pLoopEnabled, 89611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillisecond * pStartPos, 89711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillisecond * pEndPos 89811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 89911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 90011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 90111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* VOLUME */ 90211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 90311cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_VOLUME; 90411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 90511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAVolumeItf_; 90611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XAVolumeItf_ * const * XAVolumeItf; 90711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 90811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAVolumeItf_ { 90911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetVolumeLevel) ( 91011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAVolumeItf self, 91111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillibel level 91211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 91311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetVolumeLevel) ( 91411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAVolumeItf self, 91511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillibel * pLevel 91611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 91711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetMaxVolumeLevel) ( 91811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAVolumeItf self, 91911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillibel * pMaxLevel 92011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 92111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetMute) ( 92211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAVolumeItf self, 92311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean mute 92411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 92511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetMute) ( 92611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAVolumeItf self, 92711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean * pMute 92811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 92911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*EnableStereoPosition) ( 93011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAVolumeItf self, 93111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean enable 93211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 93311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*IsEnabledStereoPosition) ( 93411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAVolumeItf self, 93511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean * pEnable 93611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 93711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetStereoPosition) ( 93811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAVolumeItf self, 93911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XApermille stereoPosition 94011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 94111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetStereoPosition) ( 94211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAVolumeItf self, 94311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XApermille * pStereoPosition 94411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 94511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 94611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 94711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* IMAGE CONTROL */ 94811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 94911cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_IMAGECONTROLS; 95011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 95111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAImageControlsItf_; 95211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XAImageControlsItf_ * const * XAImageControlsItf; 95311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 95411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAImageControlsItf_ { 95511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetBrightness) ( 95611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAImageControlsItf self, 95711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 brightness 95811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 95911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetBrightness) ( 96011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAImageControlsItf self, 96111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pBrightness 96211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 96311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetContrast) ( 96411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAImageControlsItf self, 96511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint32 contrast 96611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 96711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetContrast) ( 96811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAImageControlsItf self, 96911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint32 * pContrast 97011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 97111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetGamma) ( 97211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAImageControlsItf self, 97311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XApermille gamma 97411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 97511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetGamma) ( 97611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAImageControlsItf self, 97711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XApermille * pGamma 97811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 97911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetSupportedGammaSettings) ( 98011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAImageControlsItf self, 98111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XApermille * pMinValue, 98211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XApermille * pMaxValue, 98311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pNumSettings, 98411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XApermille ** ppSettings 98511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 98611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 98711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 98811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* IMAGE EFFECT */ 98911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 99011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_IMAGEEFFECT_MONOCHROME ((XAuint32) 0x00000001) 99111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_IMAGEEFFECT_NEGATIVE ((XAuint32) 0x00000002) 99211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_IMAGEEFFECT_SEPIA ((XAuint32) 0x00000003) 99311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_IMAGEEFFECT_EMBOSS ((XAuint32) 0x00000004) 99411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_IMAGEEFFECT_PAINTBRUSH ((XAuint32) 0x00000005) 99511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_IMAGEEFFECT_SOLARIZE ((XAuint32) 0x00000006) 99611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_IMAGEEFFECT_CARTOON ((XAuint32) 0x00000007) 99711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 99811cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_IMAGEEFFECTS; 99911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 100011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAImageEffectsItf_; 100111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XAImageEffectsItf_ * const * XAImageEffectsItf; 100211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 100311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAImageEffectsItf_ { 100411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*QuerySupportedImageEffects) ( 100511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAImageEffectsItf self, 100611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 index, 100711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pImageEffectId 100811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 100911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*EnableImageEffect) ( 101011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAImageEffectsItf self, 101111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 imageEffectID 101211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 101311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*DisableImageEffect) ( 101411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAImageEffectsItf self, 101511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 imageEffectID 101611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 101711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*IsImageEffectEnabled) ( 101811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAImageEffectsItf self, 101911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 imageEffectID, 102011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean * pEnabled 102111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 102211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 102311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 102411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* VIDEO POST PROCESSING */ 102511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 102611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOMIRROR_NONE ((XAuint32) 0x00000001) 102711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOMIRROR_VERTICAL ((XAuint32) 0x00000002) 102811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOMIRROR_HORIZONTAL ((XAuint32) 0x00000003) 102911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOMIRROR_BOTH ((XAuint32) 0x00000004) 103011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 103111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOSCALE_STRETCH ((XAuint32) 0x00000001) 103211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOSCALE_FIT ((XAuint32) 0x00000002) 103311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOSCALE_CROP ((XAuint32) 0x00000003) 103411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 103511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RENDERINGHINT_NONE ((XAuint32) 0x00000000) 103611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RENDERINGHINT_ANTIALIASING ((XAuint32) 0x00000001) 103711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 103811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct XARectangle_ { 103911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 left; 104011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 top; 104111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 width; 104211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 height; 104311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} XARectangle; 104411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 104511cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_VIDEOPOSTPROCESSING; 104611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 104711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAVideoPostProcessingItf_; 104811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XAVideoPostProcessingItf_ * const * XAVideoPostProcessingItf; 104911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 105011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAVideoPostProcessingItf_ { 105111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetRotation) ( 105211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAVideoPostProcessingItf self, 105311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillidegree rotation 105411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 105511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*IsArbitraryRotationSupported) ( 105611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAVideoPostProcessingItf self, 105711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean *pSupported 105811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 105911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetScaleOptions) ( 106011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAVideoPostProcessingItf self, 106111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 scaleOptions, 106211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 backgroundColor, 106311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 renderingHints 106411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 106511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetSourceRectangle) ( 106611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAVideoPostProcessingItf self, 106711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XARectangle *pSrcRect 106811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 106911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetDestinationRectangle) ( 107011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAVideoPostProcessingItf self, 107111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XARectangle *pDestRect 107211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 107311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetMirror) ( 107411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAVideoPostProcessingItf self, 107511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 mirror 107611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 107711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*Commit) ( 107811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAVideoPostProcessingItf self 107911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 108011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 108111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 108211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 108311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 108411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert /*****************************************************************/ 108511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert /* CAPTURING INTERFACES, STRUCTS AND DEFINES */ 108611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert /*****************************************************************/ 108711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 108811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* RECORD */ 108911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 109011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RECORDEVENT_HEADATLIMIT ((XAuint32) 0x00000001) 109111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RECORDEVENT_HEADATMARKER ((XAuint32) 0x00000002) 109211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RECORDEVENT_HEADATNEWPOS ((XAuint32) 0x00000004) 109311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RECORDEVENT_HEADMOVING ((XAuint32) 0x00000008) 109411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RECORDEVENT_HEADSTALLED ((XAuint32) 0x00000010) 109511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RECORDEVENT_BUFFER_FULL ((XAuint32) 0x00000020) 109611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 109711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RECORDSTATE_STOPPED ((XAuint32) 0x00000001) 109811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RECORDSTATE_PAUSED ((XAuint32) 0x00000002) 109911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RECORDSTATE_RECORDING ((XAuint32) 0x00000003) 110011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 110111cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_RECORD; 110211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 110311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XARecordItf_; 110411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XARecordItf_ * const * XARecordItf; 110511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 110611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void (XAAPIENTRY * xaRecordCallback) ( 110711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARecordItf caller, 110811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pContext, 110911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 event 111011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 111111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 111211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XARecordItf_ { 111311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetRecordState) ( 111411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARecordItf self, 111511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 state 111611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 111711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetRecordState) ( 111811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARecordItf self, 111911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pState 112011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 112111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetDurationLimit) ( 112211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARecordItf self, 112311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillisecond msec 112411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 112511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetPosition) ( 112611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARecordItf self, 112711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillisecond * pMsec 112811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 112911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*RegisterCallback) ( 113011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARecordItf self, 113111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert xaRecordCallback callback, 113211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pContext 113311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 113411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetCallbackEventsMask) ( 113511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARecordItf self, 113611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 eventFlags 113711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 113811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetCallbackEventsMask) ( 113911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARecordItf self, 114011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pEventFlags 114111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 114211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetMarkerPosition) ( 114311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARecordItf self, 114411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillisecond mSec 114511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 114611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*ClearMarkerPosition) ( 114711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARecordItf self 114811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 114911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetMarkerPosition) ( 115011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARecordItf self, 115111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillisecond * pMsec 115211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 115311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetPositionUpdatePeriod) ( 115411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARecordItf self, 115511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillisecond mSec 115611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 115711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetPositionUpdatePeriod) ( 115811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARecordItf self, 115911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillisecond * pMsec 116011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 116111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 116211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 116311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* SNAPSHOT */ 116411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 116511cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_SNAPSHOT; 116611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 116711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XASnapshotItf_; 116811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XASnapshotItf_ * const * XASnapshotItf; 116911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 117011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void (XAAPIENTRY * xaSnapshotInitiatedCallback) ( 117111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XASnapshotItf caller, 117211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * context 117311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 117411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 117511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void (XAAPIENTRY * xaSnapshotTakenCallback) ( 117611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XASnapshotItf caller, 117711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * context, 117811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 numberOfPicsTaken, 117911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XADataSink * image 118011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 118111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 118211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XASnapshotItf_ { 118311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*InitiateSnapshot) ( 118411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XASnapshotItf self, 118511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 numberOfPictures, 118611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 fps, 118711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean freezeViewFinder, 118811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XADataSink sink, 118911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert xaSnapshotInitiatedCallback initiatedCallback, 119011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert xaSnapshotTakenCallback takenCallback, 119111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pContext 119211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 119311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*TakeSnapshot) ( 119411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XASnapshotItf self 119511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 119611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*CancelSnapshot) ( 119711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XASnapshotItf self 119811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 119911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*ReleaseBuffers) ( 120011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XASnapshotItf self, 120111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XADataSink * image 120211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 120311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetMaxPicsPerBurst) ( 120411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XASnapshotItf self, 120511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * maxNumberOfPictures 120611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 120711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetBurstFPSRange) ( 120811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XASnapshotItf self, 120911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * minFPS, 121011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * maxFPS 121111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 121211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetShutterFeedback) ( 121311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XASnapshotItf self, 121411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean enabled 121511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 121611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetShutterFeedback) ( 121711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XASnapshotItf self, 121811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean * enabled 121911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 122011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 122111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 122211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 122311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 122411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert /*****************************************************************/ 122511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert /* METADATA RELATED INTERFACES, STRUCTS AND DEFINES */ 122611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert /*****************************************************************/ 122711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 122811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* METADATA (EXTRACTION, INSERTION, TRAVERSAL) */ 122911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 123011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_NODE_PARENT ((XAuint32) 0xFFFFFFFF) 123111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 123211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_ROOT_NODE_ID ((XAint32) 0x7FFFFFFF) 123311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 123411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_NODETYPE_UNSPECIFIED ((XAuint32) 0x00000001) 123511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_NODETYPE_AUDIO ((XAuint32) 0x00000002) 123611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_NODETYPE_VIDEO ((XAuint32) 0x00000003) 123711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_NODETYPE_IMAGE ((XAuint32) 0x00000004) 123811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 123911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CHARACTERENCODING_UNKNOWN ((XAuint32) 0x00000000) 124011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CHARACTERENCODING_BINARY ((XAuint32) 0x00000001) 124111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CHARACTERENCODING_ASCII ((XAuint32) 0x00000002) 124211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CHARACTERENCODING_BIG5 ((XAuint32) 0x00000003) 124311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CHARACTERENCODING_CODEPAGE1252 ((XAuint32) 0x00000004) 124411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CHARACTERENCODING_GB2312 ((XAuint32) 0x00000005) 124511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CHARACTERENCODING_HZGB2312 ((XAuint32) 0x00000006) 124611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CHARACTERENCODING_GB12345 ((XAuint32) 0x00000007) 124711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CHARACTERENCODING_GB18030 ((XAuint32) 0x00000008) 124811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CHARACTERENCODING_GBK ((XAuint32) 0x00000009) 124911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CHARACTERENCODING_IMAPUTF7 ((XAuint32) 0x0000000A) 125011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CHARACTERENCODING_ISO2022JP ((XAuint32) 0x0000000B) 125111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CHARACTERENCODING_ISO2022JP1 ((XAuint32) 0x0000000B) 125211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CHARACTERENCODING_ISO88591 ((XAuint32) 0x0000000C) 125311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CHARACTERENCODING_ISO885910 ((XAuint32) 0x0000000D) 125411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CHARACTERENCODING_ISO885913 ((XAuint32) 0x0000000E) 125511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CHARACTERENCODING_ISO885914 ((XAuint32) 0x0000000F) 125611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CHARACTERENCODING_ISO885915 ((XAuint32) 0x00000010) 125711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CHARACTERENCODING_ISO88592 ((XAuint32) 0x00000011) 125811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CHARACTERENCODING_ISO88593 ((XAuint32) 0x00000012) 125911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CHARACTERENCODING_ISO88594 ((XAuint32) 0x00000013) 126011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CHARACTERENCODING_ISO88595 ((XAuint32) 0x00000014) 126111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CHARACTERENCODING_ISO88596 ((XAuint32) 0x00000015) 126211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CHARACTERENCODING_ISO88597 ((XAuint32) 0x00000016) 126311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CHARACTERENCODING_ISO88598 ((XAuint32) 0x00000017) 126411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CHARACTERENCODING_ISO88599 ((XAuint32) 0x00000018) 126511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CHARACTERENCODING_ISOEUCJP ((XAuint32) 0x00000019) 126611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CHARACTERENCODING_SHIFTJIS ((XAuint32) 0x0000001A) 126711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CHARACTERENCODING_SMS7BIT ((XAuint32) 0x0000001B) 126811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CHARACTERENCODING_UTF7 ((XAuint32) 0x0000001C) 126911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CHARACTERENCODING_UTF8 ((XAuint32) 0x0000001D) 127011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CHARACTERENCODING_JAVACONFORMANTUTF8 ((XAuint32) 0x0000001E) 127111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CHARACTERENCODING_UTF16BE ((XAuint32) 0x0000001F) 127211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CHARACTERENCODING_UTF16LE ((XAuint32) 0x00000020) 127311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 127411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_METADATA_FILTER_KEY ((XAuint8) 0x01) 127511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_METADATA_FILTER_LANG ((XAuint8) 0x02) 127611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_METADATA_FILTER_ENCODING ((XAuint8) 0x04) 127711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 127811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_METADATATRAVERSALMODE_ALL ((XAuint32) 0x00000001) 127911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_METADATATRAVERSALMODE_NODE ((XAuint32) 0x00000002) 128011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 128111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _KHRONOS_KEYS_ 128211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _KHRONOS_KEYS_ 128311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define KHRONOS_TITLE "KhronosTitle" 128411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define KHRONOS_ALBUM "KhronosAlbum" 128511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define KHRONOS_TRACK_NUMBER "KhronosTrackNumber" 128611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define KHRONOS_ARTIST "KhronosArtist" 128711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define KHRONOS_GENRE "KhronosGenre" 128811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define KHRONOS_YEAR "KhronosYear" 128911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define KHRONOS_COMMENT "KhronosComment" 129011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define KHRONOS_ARTIST_URL "KhronosArtistURL" 129111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define KHRONOS_CONTENT_URL "KhronosContentURL" 129211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define KHRONOS_RATING "KhronosRating" 129311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define KHRONOS_ALBUM_ART "KhronosAlbumArt" 129411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define KHRONOS_COPYRIGHT "KhronosCopyright" 129511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif /* _KHRONOS_KEYS_ */ 129611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 129711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 129811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct XAMetadataInfo_ { 129911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 size; 130011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 encoding; 130111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAchar langCountry[16]; 130211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint8 data[1]; 130311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} XAMetadataInfo; 130411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 130511cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_METADATAEXTRACTION; 130611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 130711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAMetadataExtractionItf_; 130811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XAMetadataExtractionItf_ 130911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * const * XAMetadataExtractionItf; 131011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 131111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAMetadataExtractionItf_ { 131211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetItemCount) ( 131311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAMetadataExtractionItf self, 131411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pItemCount 131511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 131611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetKeySize) ( 131711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAMetadataExtractionItf self, 131811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 index, 131911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pKeySize 132011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 132111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetKey) ( 132211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAMetadataExtractionItf self, 132311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 index, 132411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 keySize, 132511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAMetadataInfo * pKey 132611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 132711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetValueSize) ( 132811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAMetadataExtractionItf self, 132911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 index, 133011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pValueSize 133111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 133211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetValue) ( 133311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAMetadataExtractionItf self, 133411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 index, 133511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 valueSize, 133611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAMetadataInfo * pValue 133711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 133811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*AddKeyFilter) ( 133911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAMetadataExtractionItf self, 134011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 keySize, 134111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const void * pKey, 134211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 keyEncoding, 134311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAchar * pValueLangCountry, 134411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 valueEncoding, 134511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint8 filterMask 134611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 134711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*ClearKeyFilter) ( 134811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAMetadataExtractionItf self 134911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 135011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 135111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 135211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 135311cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_METADATAINSERTION; 135411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 135511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAMetadataInsertionItf_; 135611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XAMetadataInsertionItf_ 135711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * const * XAMetadataInsertionItf; 135811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 135911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void (XAAPIENTRY * xaMetadataInsertionCallback) ( 136011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAMetadataInsertionItf caller, 136111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pContext, 136211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAMetadataInfo * pKey, 136311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAMetadataInfo * pValue, 136411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint32 nodeID, 136511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean result 136611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 136711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 136811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAMetadataInsertionItf_ { 136911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*CreateChildNode) ( 137011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAMetadataInsertionItf self, 137111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint32 parentNodeID, 137211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 type, 137311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAchar * mimeType, 137411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint32 * pChildNodeID 137511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 137611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetSupportedKeysCount) ( 137711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAMetadataInsertionItf self, 137811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint32 nodeID, 137911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean * pFreeKeys, 138011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pKeyCount, 138111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pEncodingCount 138211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 138311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetKeySize) ( 138411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAMetadataInsertionItf self, 138511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint32 nodeID, 138611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 keyIndex, 138711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pKeySize 138811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 138911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetKey) ( 139011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAMetadataInsertionItf self, 139111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint32 nodeID, 139211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 keyIndex, 139311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 keySize, 139411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAMetadataInfo * pKey 139511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 139611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetFreeKeysEncoding) ( 139711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAMetadataInsertionItf self, 139811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint32 nodeID, 139911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 encodingIndex, 140011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pEncoding 140111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 140211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*InsertMetadataItem) ( 140311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAMetadataInsertionItf self, 140411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint32 nodeID, 140511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAMetadataInfo * pKey, 140611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAMetadataInfo * pValue, 140711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean overwrite 140811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 140911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*RegisterCallback) ( 141011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAMetadataInsertionItf self, 141111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert xaMetadataInsertionCallback callback, 141211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pContext 141311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 141411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 141511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 141611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 141711cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_METADATATRAVERSAL; 141811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 141911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAMetadataTraversalItf_; 142011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XAMetadataTraversalItf_ 142111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * const * XAMetadataTraversalItf; 142211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 142311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAMetadataTraversalItf_ { 142411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetMode) ( 142511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAMetadataTraversalItf self, 142611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 mode 142711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 142811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetChildCount) ( 142911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAMetadataTraversalItf self, 143011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pCount 143111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 143211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetChildMIMETypeSize) ( 143311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAMetadataTraversalItf self, 143411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 index, 143511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pSize 143611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 143711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetChildInfo) ( 143811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAMetadataTraversalItf self, 143911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 index, 144011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint32 * pNodeID, 144111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pType, 144211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 size, 144311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAchar * pMimeType 144411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 144511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetActiveNode) ( 144611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAMetadataTraversalItf self, 144711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 index 144811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 144911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 145011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 145111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* DYNAMIC SOURCE */ 145211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 145311cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_DYNAMICSOURCE; 145411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 145511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XADynamicSourceItf_; 145611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XADynamicSourceItf_ * const * XADynamicSourceItf; 145711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 145811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XADynamicSourceItf_ { 145911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetSource) ( 146011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XADynamicSourceItf self, 146111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XADataSource * pDataSource 146211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 146311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 146411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 146511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 146611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 146711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert /*****************************************************************/ 146811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert /* I/O DEVICES RELATED INTERFACES, STRUCTS AND DEFINES */ 146911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert /*****************************************************************/ 147011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 147111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* CAMERA AND CAMERA CAPABILITIES */ 147211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 147311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_APERTUREMODE_MANUAL ((XAuint32) 0x00000001) 147411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_APERTUREMODE_AUTO ((XAuint32) 0x00000002) 147511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 147611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_AUTOEXPOSURESTATUS_SUCCESS ((XAuint32) 0x00000001) 147711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_AUTOEXPOSURESTATUS_UNDEREXPOSURE ((XAuint32) 0x00000002) 147811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_AUTOEXPOSURESTATUS_OVEREXPOSURE ((XAuint32) 0x00000003) 147911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 148011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERACBEVENT_ROTATION ((XAuint32) 0x00000001) 148111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERACBEVENT_FLASHREADY ((XAuint32) 0x00000002) 148211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERACBEVENT_FOCUSSTATUS ((XAuint32) 0x00000003) 148311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERACBEVENT_EXPOSURESTATUS ((XAuint32) 0x00000004) 148411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERACBEVENT_WHITEBALANCELOCKED ((XAuint32) 0x00000005) 148511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERACBEVENT_ZOOMSTATUS ((XAuint32) 0x00000006) 148611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 148711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERACAP_FLASH ((XAuint32) 0x00000001) 148811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERACAP_AUTOFOCUS ((XAuint32) 0x00000002) 148911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERACAP_CONTINUOUSAUTOFOCUS ((XAuint32) 0x00000004) 149011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERACAP_MANUALFOCUS ((XAuint32) 0x00000008) 149111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERACAP_AUTOEXPOSURE ((XAuint32) 0x00000010) 149211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERACAP_MANUALEXPOSURE ((XAuint32) 0x00000020) 149311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERACAP_AUTOISOSENSITIVITY ((XAuint32) 0x00000040) 149411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERACAP_MANUALISOSENSITIVITY ((XAuint32) 0x00000080) 149511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERACAP_AUTOAPERTURE ((XAuint32) 0x00000100) 149611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERACAP_MANUALAPERTURE ((XAuint32) 0x00000200) 149711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERACAP_AUTOSHUTTERSPEED ((XAuint32) 0x00000400) 149811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERACAP_MANUALSHUTTERSPEED ((XAuint32) 0x00000800) 149911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERACAP_AUTOWHITEBALANCE ((XAuint32) 0x00001000) 150011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERACAP_MANUALWHITEBALANCE ((XAuint32) 0x00002000) 150111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERACAP_OPTICALZOOM ((XAuint32) 0x00004000) 150211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERACAP_DIGITALZOOM ((XAuint32) 0x00008000) 150311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERACAP_METERING ((XAuint32) 0x00010000) 150411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERACAP_BRIGHTNESS ((XAuint32) 0x00020000) 150511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERACAP_CONTRAST ((XAuint32) 0x00040000) 150611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERACAP_GAMMA ((XAuint32) 0x00080000) 150711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 150811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 150911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_EXPOSUREMODE_MANUAL ((XAuint32) 0x00000001) 151011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_EXPOSUREMODE_AUTO ((XAuint32) 0x00000002) 151111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_EXPOSUREMODE_NIGHT ((XAuint32) 0x00000004) 151211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_EXPOSUREMODE_BACKLIGHT ((XAuint32) 0x00000008) 151311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_EXPOSUREMODE_SPOTLIGHT ((XAuint32) 0x00000010) 151411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_EXPOSUREMODE_SPORTS ((XAuint32) 0x00000020) 151511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_EXPOSUREMODE_SNOW ((XAuint32) 0x00000040) 151611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_EXPOSUREMODE_BEACH ((XAuint32) 0x00000080) 151711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_EXPOSUREMODE_LARGEAPERTURE ((XAuint32) 0x00000100) 151811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_EXPOSUREMODE_SMALLAPERTURE ((XAuint32) 0x00000200) 151911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_EXPOSUREMODE_PORTRAIT ((XAuint32) 0x0000400) 152011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_EXPOSUREMODE_NIGHTPORTRAIT ((XAuint32) 0x00000800) 152111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 152211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_FLASHMODE_OFF ((XAuint32) 0x00000001) 152311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_FLASHMODE_ON ((XAuint32) 0x00000002) 152411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_FLASHMODE_AUTO ((XAuint32) 0x00000004) 152511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_FLASHMODE_REDEYEREDUCTION ((XAuint32) 0x00000008) 152611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_FLASHMODE_REDEYEREDUCTION_AUTO ((XAuint32) 0x00000010) 152711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_FLASHMODE_FILLIN ((XAuint32) 0x00000020) 152811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_FLASHMODE_TORCH ((XAuint32) 0x00000040) 152911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 153011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_FOCUSMODE_MANUAL ((XAuint32) 0x00000001) 153111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_FOCUSMODE_AUTO ((XAuint32) 0x00000002) 153211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_FOCUSMODE_CENTROID ((XAuint32) 0x00000004) 153311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_FOCUSMODE_CONTINUOUS_AUTO ((XAuint32) 0x00000008) 153411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_FOCUSMODE_CONTINUOUS_CENTROID ((XAuint32) 0x00000010) 153511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 153611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_FOCUSMODESTATUS_OFF ((XAuint32) 0x00000001) 153711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_FOCUSMODESTATUS_REQUEST ((XAuint32) 0x00000002) 153811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_FOCUSMODESTATUS_REACHED ((XAuint32) 0x00000003) 153911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_FOCUSMODESTATUS_UNABLETOREACH ((XAuint32) 0x00000004) 154011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_FOCUSMODESTATUS_LOST ((XAuint32) 0x00000005) 154111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 154211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_ISOSENSITIVITYMODE_MANUAL ((XAuint32) 0x00000001) 154311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_ISOSENSITIVITYMODE_AUTO ((XAuint32) 0x00000002) 154411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 154511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_LOCK_AUTOFOCUS ((XAuint32) 0x00000001) 154611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_LOCK_AUTOEXPOSURE ((XAuint32) 0x00000002) 154711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_LOCK_AUTOWHITEBALANCE ((XAuint32) 0x00000004) 154811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 154911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_METERINGMODE_AVERAGE ((XAuint32) 0x00000001) 155011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_METERINGMODE_SPOT ((XAuint32) 0x00000002) 155111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_METERINGMODE_MATRIX ((XAuint32) 0x00000004) 155211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 155311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_SHUTTERSPEEDMODE_MANUAL ((XAuint32) 0x00000001) 155411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_SHUTTERSPEEDMODE_AUTO ((XAuint32) 0x00000002) 155511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 155611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_WHITEBALANCEMODE_MANUAL ((XAuint32) 0x00000001) 155711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_WHITEBALANCEMODE_AUTO ((XAuint32) 0x00000002) 155811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_WHITEBALANCEMODE_SUNLIGHT ((XAuint32) 0x00000004) 155911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_WHITEBALANCEMODE_CLOUDY ((XAuint32) 0x00000008) 156011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_WHITEBALANCEMODE_SHADE ((XAuint32) 0x00000010) 156111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_WHITEBALANCEMODE_TUNGSTEN ((XAuint32) 0x00000020) 156211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_WHITEBALANCEMODE_FLUORESCENT ((XAuint32) 0x00000040) 156311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_WHITEBALANCEMODE_INCANDESCENT ((XAuint32) 0x00000080) 156411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_WHITEBALANCEMODE_FLASH ((XAuint32) 0x00000100) 156511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_WHITEBALANCEMODE_SUNSET ((XAuint32) 0x00000200) 156611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 156711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_ZOOM_SLOW ((XAuint32) 50) 156811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_ZOOM_NORMAL ((XAuint32) 100) 156911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_ZOOM_FAST ((XAuint32) 200) 157011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_CAMERA_ZOOM_FASTEST ((XAuint32) 0xFFFFFFFF) 157111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 157211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_FOCUSPOINTS_ONE ((XAuint32) 0x00000001) 157311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_FOCUSPOINTS_THREE_3X1 ((XAuint32) 0x00000002) 157411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_FOCUSPOINTS_FIVE_CROSS ((XAuint32) 0x00000003) 157511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_FOCUSPOINTS_SEVEN_CROSS ((XAuint32) 0x00000004) 157611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_FOCUSPOINTS_NINE_SQUARE ((XAuint32) 0x00000005) 157711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_FOCUSPOINTS_ELEVEN_CROSS ((XAuint32) 0x00000006) 157811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_FOCUSPOINTS_TWELVE_3X4 ((XAuint32) 0x00000007) 157911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_FOCUSPOINTS_TWELVE_4X3 ((XAuint32) 0x00000008) 158011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_FOCUSPOINTS_SIXTEEN_SQUARE ((XAuint32) 0x00000009) 158111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_FOCUSPOINTS_CUSTOM ((XAuint32) 0x0000000A) 158211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 158311cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct XAFocusPointPosition_ { 158411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 left; 158511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 top; 158611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 width; 158711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 height; 158811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} XAFocusPointPosition; 158911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 159011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_ORIENTATION_UNKNOWN ((XAuint32) 0x00000001) 159111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_ORIENTATION_OUTWARDS ((XAuint32) 0x00000002) 159211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_ORIENTATION_INWARDS ((XAuint32) 0x00000003) 159311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 159411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct XACameraDescriptor_ { 159511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAchar * name; 159611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 maxWidth; 159711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 maxHeight; 159811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 orientation; 159911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 featuresSupported; 160011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 exposureModesSupported; 160111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 flashModesSupported; 160211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 focusModesSupported; 160311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 meteringModesSupported; 160411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 whiteBalanceModesSupported; 160511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} XACameraDescriptor; 160611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 160711cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_CAMERACAPABILITIES; 160811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 160911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XACameraCapabilitiesItf_; 161011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XACameraCapabilitiesItf_ 161111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * const * XACameraCapabilitiesItf; 161211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 161311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XACameraCapabilitiesItf_ { 161411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetCameraCapabilities) ( 161511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraCapabilitiesItf self, 161611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 *pIndex, 161711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pCameraDeviceID, 161811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraDescriptor * pDescriptor 161911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 162011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*QueryFocusRegionPatterns) ( 162111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraCapabilitiesItf self, 162211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 cameraDeviceID, 162311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pPatternID, 162411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pFocusPattern, 162511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pCustomPoints1, 162611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pCustomPoints2 162711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 162811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetSupportedAutoLocks) ( 162911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraCapabilitiesItf self, 163011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 cameraDeviceID, 163111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pNumCombinations, 163211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 ** ppLocks 163311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 163411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetSupportedFocusManualSettings) ( 163511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraCapabilitiesItf self, 163611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 cameraDeviceID, 163711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean macroEnabled, 163811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillimeter * pMinValue, 163911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillimeter * pMaxValue, 164011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pNumSettings, 164111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillimeter ** ppSettings 164211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 164311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetSupportedISOSensitivitySettings) ( 164411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraCapabilitiesItf self, 164511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 cameraDeviceID, 164611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pMinValue, 164711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pMaxValue, 164811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pNumSettings, 164911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 ** ppSettings 165011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 165111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetSupportedApertureManualSettings) ( 165211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraCapabilitiesItf self, 165311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 cameraDeviceID, 165411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pMinValue, 165511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pMaxValue, 165611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pNumSettings, 165711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 ** ppSettings 165811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 165911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetSupportedShutterSpeedManualSettings) ( 166011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraCapabilitiesItf self, 166111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 cameraDeviceID, 166211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmicrosecond * pMinValue, 166311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmicrosecond * pMaxValue, 166411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pNumSettings, 166511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmicrosecond ** ppSettings 166611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 166711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetSupportedWhiteBalanceManualSettings) ( 166811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraCapabilitiesItf self, 166911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 cameraDeviceID, 167011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pMinValue, 167111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pMaxValue, 167211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pNumSettings, 167311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 ** ppSettings 167411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 167511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetSupportedZoomSettings) ( 167611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraCapabilitiesItf self, 167711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 cameraDeviceID, 167811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean digitalEnabled, 167911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean macroEnabled, 168011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XApermille * pMaxValue, 168111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pNumSettings, 168211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XApermille ** ppSettings, 168311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean * pSpeedSupported 168411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 168511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 168611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 168711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 168811cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_CAMERA; 168911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 169011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XACameraItf_; 169111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XACameraItf_ * const * XACameraItf; 169211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 169311cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void (XAAPIENTRY * xaCameraCallback) ( 169411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraItf caller, 169511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pContext, 169611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 eventId, 169711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 eventData 169811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 169911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 170011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XACameraItf_ { 170111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*RegisterCallback) ( 170211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraItf self, 170311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert xaCameraCallback callback, 170411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pContext 170511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 170611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetFlashMode) ( 170711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraItf self, 170811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 flashMode 170911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 171011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetFlashMode) ( 171111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraItf self, 171211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pFlashMode 171311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 171411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*IsFlashReady) ( 171511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraItf self, 171611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean * pReady 171711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 171811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetFocusMode) ( 171911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraItf self, 172011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 focusMode, 172111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillimeter manualSetting, 172211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean macroEnabled 172311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 172411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetFocusMode) ( 172511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraItf self, 172611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pFocusMode, 172711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillimeter * pManualSetting, 172811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean * pMacroEnabled 172911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 173011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetFocusRegionPattern) ( 173111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraItf self, 173211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 focusPattern, 173311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 activePoints1, 173411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 activePoints2 173511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 173611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetFocusRegionPattern) ( 173711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraItf self, 173811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pFocusPattern, 173911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pActivePoints1, 174011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pActivePoints2 174111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 174211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetFocusRegionPositions) ( 174311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraItf self, 174411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pNumPositionEntries, 174511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAFocusPointPosition * pFocusPosition 174611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 174711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetFocusModeStatus) ( 174811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraItf self, 174911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pFocusStatus, 175011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pRegionStatus1, 175111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pRegionStatus2 175211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 175311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetMeteringMode) ( 175411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraItf self, 175511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 meteringMode 175611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 175711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetMeteringMode) ( 175811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraItf self, 175911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pMeteringMode 176011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 176111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetExposureMode) ( 176211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraItf self, 176311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 exposure, 176411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 compensation 176511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 176611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetExposureMode) ( 176711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraItf self, 176811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pExposure, 176911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pCompensation 177011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 177111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetISOSensitivity) ( 177211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraItf self, 177311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 isoSensitivity, 177411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 manualSetting 177511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 177611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetISOSensitivity) ( 177711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraItf self, 177811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pIsoSensitivity, 177911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pManualSetting 178011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 178111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetAperture) ( 178211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraItf self, 178311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 aperture, 178411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 manualSetting 178511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 178611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetAperture) ( 178711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraItf self, 178811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pAperture, 178911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pManualSetting 179011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 179111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetShutterSpeed) ( 179211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraItf self, 179311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 shutterSpeed, 179411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmicrosecond manualSetting 179511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 179611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetShutterSpeed) ( 179711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraItf self, 179811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pShutterSpeed, 179911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmicrosecond * pManualSetting 180011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 180111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetWhiteBalance) ( 180211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraItf self, 180311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 whiteBalance, 180411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 manualSetting 180511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 180611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetWhiteBalance) ( 180711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraItf self, 180811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pWhiteBalance, 180911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pManualSetting 181011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 181111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetAutoLocks) ( 181211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraItf self, 181311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 locks 181411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 181511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetAutoLocks) ( 181611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraItf self, 181711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * locks 181811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 181911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetZoom) ( 182011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraItf self, 182111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XApermille zoom, 182211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean digitalEnabled, 182311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 speed, 182411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean async 182511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 182611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetZoom) ( 182711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XACameraItf self, 182811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XApermille * pZoom, 182911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean * pDigital 183011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 183111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 183211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 183311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* AUDIO I/O DEVICE CAPABILITIES */ 183411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 183511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DEVCONNECTION_INTEGRATED ((XAint16) 0x0001) 183611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DEVCONNECTION_ATTACHED_WIRED ((XAint16) 0x0100) 183711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DEVCONNECTION_ATTACHED_WIRELESS ((XAint16) 0x0200) 183811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DEVCONNECTION_NETWORK ((XAint16) 0x0400) 183911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 184011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DEVLOCATION_HANDSET ((XAint16) 0x0001) 184111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DEVLOCATION_HEADSET ((XAint16) 0x0002) 184211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DEVLOCATION_CARKIT ((XAint16) 0x0003) 184311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DEVLOCATION_DOCK ((XAint16) 0x0004) 184411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DEVLOCATION_REMOTE ((XAint16) 0x0005) 184511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 184611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DEVSCOPE_UNKNOWN ((XAint16) 0x0001) 184711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DEVSCOPE_ENVIRONMENT ((XAint16) 0x0002) 184811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DEVSCOPE_USER ((XAint16) 0x0003) 184911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 185011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct XAAudioInputDescriptor_ { 185111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAchar * deviceName; 185211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint16 deviceConnection; 185311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint16 deviceScope; 185411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint16 deviceLocation; 185511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean isForTelephony; 185611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmilliHertz minSampleRate; 185711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmilliHertz maxSampleRate; 185811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean isFreqRangeContinuous; 185911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmilliHertz * samplingRatesSupported; 186011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint16 numOfSamplingRatesSupported; 186111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint16 maxChannels; 186211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} XAAudioInputDescriptor; 186311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 186411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct XAAudioOutputDescriptor_ { 186511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAchar *pDeviceName; 186611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint16 deviceConnection; 186711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint16 deviceScope; 186811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint16 deviceLocation; 186911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean isForTelephony; 187011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmilliHertz minSampleRate; 187111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmilliHertz maxSampleRate; 187211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean isFreqRangeContinuous; 187311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmilliHertz *samplingRatesSupported; 187411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint16 numOfSamplingRatesSupported; 187511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint16 maxChannels; 187611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} XAAudioOutputDescriptor; 187711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 187811cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_AUDIOIODEVICECAPABILITIES; 187911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 188011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAAudioIODeviceCapabilitiesItf_; 188111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XAAudioIODeviceCapabilitiesItf_ 188211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * const * XAAudioIODeviceCapabilitiesItf; 188311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 188411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void (XAAPIENTRY * xaAvailableAudioInputsChangedCallback) ( 188511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAAudioIODeviceCapabilitiesItf caller, 188611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pContext, 188711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 deviceID, 188811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint32 numInputs, 188911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean isNew 189011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 189111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 189211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void (XAAPIENTRY * xaAvailableAudioOutputsChangedCallback) ( 189311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAAudioIODeviceCapabilitiesItf caller, 189411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pContext, 189511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 deviceID, 189611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint32 numOutputs, 189711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean isNew 189811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 189911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 190011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void (XAAPIENTRY * xaDefaultDeviceIDMapChangedCallback) ( 190111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAAudioIODeviceCapabilitiesItf caller, 190211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pContext, 190311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean isOutput, 190411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint32 numDevices 190511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 190611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 190711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAAudioIODeviceCapabilitiesItf_ { 190811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetAvailableAudioInputs) ( 190911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAAudioIODeviceCapabilitiesItf self, 191011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint32 * pNumInputs, 191111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pInputDeviceIDs 191211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 191311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*QueryAudioInputCapabilities) ( 191411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAAudioIODeviceCapabilitiesItf self, 191511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 deviceID, 191611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAAudioInputDescriptor * pDescriptor 191711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 191811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*RegisterAvailableAudioInputsChangedCallback) ( 191911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAAudioIODeviceCapabilitiesItf self, 192011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert xaAvailableAudioInputsChangedCallback callback, 192111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pContext 192211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 192311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetAvailableAudioOutputs) ( 192411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAAudioIODeviceCapabilitiesItf self, 192511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint32 * pNumOutputs, 192611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pOutputDeviceIDs 192711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 192811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*QueryAudioOutputCapabilities) ( 192911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAAudioIODeviceCapabilitiesItf self, 193011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 deviceID, 193111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAAudioOutputDescriptor * pDescriptor 193211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 193311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*RegisterAvailableAudioOutputsChangedCallback) ( 193411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAAudioIODeviceCapabilitiesItf self, 193511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert xaAvailableAudioOutputsChangedCallback callback, 193611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pContext 193711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 193811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*RegisterDefaultDeviceIDMapChangedCallback) ( 193911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAAudioIODeviceCapabilitiesItf self, 194011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert xaDefaultDeviceIDMapChangedCallback callback, 194111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pContext 194211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 194311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetAssociatedAudioInputs) ( 194411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAAudioIODeviceCapabilitiesItf self, 194511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 deviceID, 194611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint32 * pNumAudioInputs, 194711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pAudioInputDeviceIDs 194811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 194911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetAssociatedAudioOutputs) ( 195011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAAudioIODeviceCapabilitiesItf self, 195111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 deviceID, 195211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint32 * pNumAudioOutputs, 195311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pAudioOutputDeviceIDs 195411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 195511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetDefaultAudioDevices) ( 195611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAAudioIODeviceCapabilitiesItf self, 195711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 defaultDeviceID, 195811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint32 *pNumAudioDevices, 195911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 *pAudioDeviceIDs 196011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 196111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*QuerySampleFormatsSupported) ( 196211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAAudioIODeviceCapabilitiesItf self, 196311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 deviceID, 196411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmilliHertz samplingRate, 196511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint32 *pSampleFormats, 196611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint32 *pNumOfSampleFormats 196711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 196811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 196911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 197011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* DEVICE VOLUME */ 197111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 197211cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_DEVICEVOLUME; 197311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 197411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XADeviceVolumeItf_; 197511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XADeviceVolumeItf_ * const * XADeviceVolumeItf; 197611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 197711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XADeviceVolumeItf_ { 197811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetVolumeScale) ( 197911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XADeviceVolumeItf self, 198011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 deviceID, 198111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint32 * pMinValue, 198211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint32 * pMaxValue, 198311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean * pIsMillibelScale 198411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 198511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetVolume) ( 198611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XADeviceVolumeItf self, 198711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 deviceID, 198811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint32 volume 198911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 199011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetVolume) ( 199111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XADeviceVolumeItf self, 199211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 deviceID, 199311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint32 * pVolume 199411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 199511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 199611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 199711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* EQUALIZER */ 199811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 199911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_EQUALIZER_UNDEFINED ((XAuint16) 0xFFFF) 200011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 200111cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_EQUALIZER; 200211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 200311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAEqualizerItf_; 200411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XAEqualizerItf_ * const * XAEqualizerItf; 200511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 200611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAEqualizerItf_ { 200711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetEnabled) ( 200811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAEqualizerItf self, 200911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean enabled 201011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 201111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*IsEnabled) ( 201211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAEqualizerItf self, 201311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean * pEnabled 201411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 201511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetNumberOfBands) ( 201611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAEqualizerItf self, 201711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint16 * pNumBands 201811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 201911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetBandLevelRange) ( 202011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAEqualizerItf self, 202111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillibel * pMin, 202211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillibel * pMax 202311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 202411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetBandLevel) ( 202511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAEqualizerItf self, 202611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint16 band, 202711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillibel level 202811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 202911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetBandLevel) ( 203011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAEqualizerItf self, 203111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint16 band, 203211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillibel * pLevel 203311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 203411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetCenterFreq) ( 203511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAEqualizerItf self, 203611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint16 band, 203711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmilliHertz * pCenter 203811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 203911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetBandFreqRange) ( 204011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAEqualizerItf self, 204111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint16 band, 204211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmilliHertz * pMin, 204311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmilliHertz * pMax 204411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 204511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetBand) ( 204611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAEqualizerItf self, 204711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmilliHertz frequency, 204811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint16 * pBand 204911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 205011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetCurrentPreset) ( 205111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAEqualizerItf self, 205211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint16 * pPreset 205311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 205411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*UsePreset) ( 205511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAEqualizerItf self, 205611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint16 index 205711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 205811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetNumberOfPresets) ( 205911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAEqualizerItf self, 206011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint16 * pNumPresets 206111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 206211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetPresetName) ( 206311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAEqualizerItf self, 206411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint16 index, 206511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAchar ** ppName 206611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 206711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 206811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 206911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* OUTPUT MIX */ 207011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 207111cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_OUTPUTMIX; 207211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 207311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAOutputMixItf_; 207411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XAOutputMixItf_ * const * XAOutputMixItf; 207511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 207611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void (XAAPIENTRY * xaMixDeviceChangeCallback) ( 207711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAOutputMixItf caller, 207811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pContext 207911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 208011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 208111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAOutputMixItf_ { 208211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetDestinationOutputDeviceIDs) ( 208311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAOutputMixItf self, 208411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint32 * pNumDevices, 208511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pDeviceIDs 208611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 208711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*RegisterDeviceChangeCallback) ( 208811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAOutputMixItf self, 208911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert xaMixDeviceChangeCallback callback, 209011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pContext 209111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 209211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*ReRoute) ( 209311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAOutputMixItf self, 209411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint32 numOutputDevices, 209511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pOutputDeviceIDs 209611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 209711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 209811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 209911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* RADIO */ 210011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 210111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_FREQRANGE_FMEUROAMERICA ((XAuint8) 0x01) 210211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_FREQRANGE_FMJAPAN ((XAuint8) 0x02) 210311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_FREQRANGE_AMLW ((XAuint8) 0x03) 210411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_FREQRANGE_AMMW ((XAuint8) 0x04) 210511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_FREQRANGE_AMSW ((XAuint8) 0x05) 210611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 210711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RADIO_EVENT_ANTENNA_STATUS_CHANGED ((XAuint32) 0x00000001) 210811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RADIO_EVENT_FREQUENCY_CHANGED ((XAuint32) 0x00000002) 210911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RADIO_EVENT_FREQUENCY_RANGE_CHANGED ((XAuint32) 0x00000003) 211011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RADIO_EVENT_PRESET_CHANGED ((XAuint32) 0x00000004) 211111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RADIO_EVENT_SEEK_COMPLETED ((XAuint32) 0x00000005) 211211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 211311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_STEREOMODE_MONO ((XAuint32) 0x00000000) 211411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_STEREOMODE_STEREO ((XAuint32) 0x00000001) 211511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_STEREOMODE_AUTO ((XAuint32) 0x00000002) 211611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 211711cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_RADIO; 211811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 211911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XARadioItf_; 212011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XARadioItf_ * const * XARadioItf; 212111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 212211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void (XAAPIENTRY * xaRadioCallback) ( 212311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARadioItf caller, 212411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pContext, 212511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 event, 212611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 eventIntData, 212711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean eventBooleanData 212811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 212911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 213011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XARadioItf_ { 213111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetFreqRange) ( 213211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARadioItf self, 213311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint8 range 213411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 213511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetFreqRange) ( 213611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARadioItf self, 213711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint8 * pRange 213811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 213911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*IsFreqRangeSupported) ( 214011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARadioItf self, 214111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint8 range, 214211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean * pSupported 214311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 214411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetFreqRangeProperties) ( 214511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARadioItf self, 214611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint8 range, 214711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pMinFreq, 214811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pMaxFreq, 214911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pFreqInterval 215011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 215111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetFrequency) ( 215211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARadioItf self, 215311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 freq 215411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 215511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*CancelSetFrequency) ( 215611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARadioItf self 215711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 215811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetFrequency) ( 215911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARadioItf self, 216011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pFreq 216111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 216211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetSquelch) ( 216311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARadioItf self, 216411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean squelch 216511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 216611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetSquelch) ( 216711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARadioItf self, 216811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean * pSquelch 216911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 217011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetStereoMode) ( 217111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARadioItf self, 217211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 mode 217311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 217411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetStereoMode) ( 217511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARadioItf self, 217611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pMode 217711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 217811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetSignalStrength) ( 217911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARadioItf self, 218011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pStrength 218111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 218211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*Seek) ( 218311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARadioItf self, 218411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean upwards 218511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 218611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*StopSeeking) ( 218711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARadioItf self 218811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 218911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetNumberOfPresets) ( 219011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARadioItf self, 219111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pNumPresets 219211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 219311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetPreset) ( 219411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARadioItf self, 219511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 preset, 219611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 freq, 219711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint8 range, 219811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 mode, 219911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAchar * pName 220011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 220111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetPreset) ( 220211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARadioItf self, 220311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 preset, 220411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pFreq, 220511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint8 * pRange, 220611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pMode, 220711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAchar * pName, 220811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint16 * pNameLength 220911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 221011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*RegisterRadioCallback) ( 221111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARadioItf self, 221211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert xaRadioCallback callback, 221311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pContext 221411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 221511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 221611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 221711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* RDS */ 221811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 221911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDS_EVENT_NEW_PI ((XAuint16) 0x0001) 222011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDS_EVENT_NEW_PTY ((XAuint16) 0x0002) 222111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDS_EVENT_NEW_PS ((XAuint16) 0x0004) 222211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDS_EVENT_NEW_RT ((XAuint16) 0x0008) 222311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDS_EVENT_NEW_RT_PLUS ((XAuint16) 0x0010) 222411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDS_EVENT_NEW_CT ((XAuint16) 0x0020) 222511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDS_EVENT_NEW_TA ((XAuint16) 0x0040) 222611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDS_EVENT_NEW_TP ((XAuint16) 0x0080) 222711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDS_EVENT_NEW_ALARM ((XAuint16) 0x0100) 222811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 222911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RDSPTY_NONE \ 223011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000000) 223111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RDSPTY_NEWS \ 223211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000001) 223311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RDSPTY_CURRENTAFFAIRS \ 223411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000002) 223511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RDSPTY_INFORMATION \ 223611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000003) 223711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RDSPTY_SPORT \ 223811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000004) 223911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RDSPTY_EDUCATION \ 224011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000005) 224111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RDSPTY_DRAMA \ 224211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000006) 224311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RDSPTY_CULTURE \ 224411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000007) 224511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RDSPTY_SCIENCE \ 224611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000008) 224711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RDSPTY_VARIEDSPEECH \ 224811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000009) 224911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RDSPTY_POPMUSIC \ 225011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x0000000A) 225111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RDSPTY_ROCKMUSIC \ 225211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x0000000B) 225311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RDSPTY_EASYLISTENING \ 225411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x0000000C) 225511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RDSPTY_LIGHTCLASSICAL \ 225611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x0000000D) 225711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RDSPTY_SERIOUSCLASSICAL \ 225811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x0000000E) 225911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RDSPTY_OTHERMUSIC \ 226011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x0000000F) 226111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RDSPTY_WEATHER \ 226211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000010) 226311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RDSPTY_FINANCE \ 226411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000011) 226511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RDSPTY_CHILDRENSPROGRAMMES \ 226611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000012) 226711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RDSPTY_SOCIALAFFAIRS \ 226811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000013) 226911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RDSPTY_RELIGION \ 227011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000014) 227111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RDSPTY_PHONEIN \ 227211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000015) 227311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RDSPTY_TRAVEL \ 227411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000016) 227511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RDSPTY_LEISURE \ 227611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000017) 227711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RDSPTY_JAZZMUSIC \ 227811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000018) 227911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RDSPTY_COUNTRYMUSIC \ 228011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000019) 228111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RDSPTY_NATIONALMUSIC \ 228211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x0000001A) 228311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RDSPTY_OLDIESMUSIC \ 228411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x0000001B) 228511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RDSPTY_FOLKMUSIC \ 228611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x0000001C) 228711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RDSPTY_DOCUMENTARY \ 228811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x0000001D) 228911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RDSPTY_ALARMTEST \ 229011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x0000001E) 229111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RDSPTY_ALARM \ 229211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x0000001F) 229311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 229411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RBDSPTY_NONE \ 229511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000000) 229611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RBDSPTY_NEWS \ 229711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000001) 229811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RBDSPTY_INFORMATION \ 229911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000002) 230011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RBDSPTY_SPORTS \ 230111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000003) 230211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RBDSPTY_TALK \ 230311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000004) 230411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RBDSPTY_ROCK \ 230511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000005) 230611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RBDSPTY_CLASSICROCK \ 230711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000006) 230811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RBDSPTY_ADULTHITS \ 230911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000007) 231011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RBDSPTY_SOFTROCK \ 231111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000008) 231211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RBDSPTY_TOP40 \ 231311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000009) 231411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RBDSPTY_COUNTRY \ 231511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x0000000A) 231611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RBDSPTY_OLDIES \ 231711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x0000000B) 231811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RBDSPTY_SOFT \ 231911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x0000000C) 232011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RBDSPTY_NOSTALGIA \ 232111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x0000000D) 232211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RBDSPTY_JAZZ \ 232311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x0000000E) 232411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RBDSPTY_CLASSICAL \ 232511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x0000000F) 232611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RBDSPTY_RHYTHMANDBLUES \ 232711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000010) 232811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RBDSPTY_SOFTRHYTHMANDBLUES \ 232911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000011) 233011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RBDSPTY_LANGUAGE \ 233111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000012) 233211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RBDSPTY_RELIGIOUSMUSIC \ 233311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000013) 233411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RBDSPTY_RELIGIOUSTALK \ 233511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000014) 233611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RBDSPTY_PERSONALITY \ 233711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000015) 233811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RBDSPTY_PUBLIC \ 233911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000016) 234011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RBDSPTY_COLLEGE \ 234111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000017) 234211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RBDSPTY_UNASSIGNED1 \ 234311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000018) 234411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RBDSPTY_UNASSIGNED2 \ 234511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x00000019) 234611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RBDSPTY_UNASSIGNED3 \ 234711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x0000001A) 234811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RBDSPTY_UNASSIGNED4 \ 234911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x0000001B) 235011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RBDSPTY_UNASSIGNED5 \ 235111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x0000001C) 235211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RBDSPTY_WEATHER \ 235311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x0000001D) 235411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RBDSPTY_EMERGENCYTEST \ 235511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x0000001E) 235611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSPROGRAMMETYPE_RBDSPTY_EMERGENCY \ 235711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ((XAuint32) 0x0000001F) 235811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 235911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_ITEMTITLE ((XAuint8) 0x01) 236011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_ITEMALBUM ((XAuint8) 0x02) 236111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_ITEMTRACKNUMBER ((XAuint8) 0x03) 236211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_ITEMARTIST ((XAuint8) 0x04) 236311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_ITEMCOMPOSITION ((XAuint8) 0x05) 236411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_ITEMMOVEMENT ((XAuint8) 0x06) 236511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_ITEMCONDUCTOR ((XAuint8) 0x07) 236611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_ITEMCOMPOSER ((XAuint8) 0x08) 236711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_ITEMBAND ((XAuint8) 0x09) 236811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_ITEMCOMMENT ((XAuint8) 0x0A) 236911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_ITEMGENRE ((XAuint8) 0x0B) 237011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_INFONEWS ((XAuint8) 0x0C) 237111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_INFONEWSLOCAL ((XAuint8) 0x0D) 237211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_INFOSTOCKMARKET ((XAuint8) 0x0E) 237311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_INFOSPORT ((XAuint8) 0x0F) 237411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_INFOLOTTERY ((XAuint8) 0x10) 237511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_INFOHOROSCOPE ((XAuint8) 0x11) 237611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_INFODAILYDIVERSION ((XAuint8) 0x12) 237711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_INFOHEALTH ((XAuint8) 0x13) 237811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_INFOEVENT ((XAuint8) 0x14) 237911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_INFOSZENE ((XAuint8) 0x15) 238011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_INFOCINEMA ((XAuint8) 0x16) 238111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_INFOTV ((XAuint8) 0x17) 238211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_INFODATETIME ((XAuint8) 0x18) 238311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_INFOWEATHER ((XAuint8) 0x19) 238411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_INFOTRAFFIC ((XAuint8) 0x1A) 238511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_INFOALARM ((XAuint8) 0x1B) 238611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_INFOADVISERTISEMENT ((XAuint8) 0x1C) 238711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_INFOURL ((XAuint8) 0x1D) 238811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_INFOOTHER ((XAuint8) 0x1E) 238911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_STATIONNAMESHORT ((XAuint8) 0x1F) 239011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_STATIONNAMELONG ((XAuint8) 0x20) 239111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_PROGRAMNOW ((XAuint8) 0x21) 239211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_PROGRAMNEXT ((XAuint8) 0x22) 239311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_PROGRAMPART ((XAuint8) 0x23) 239411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_PROGRAMHOST ((XAuint8) 0x24) 239511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_PROFRAMEDITORIALSTAFF ((XAuint8) 0x25) 239611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_PROGRAMFREQUENCY ((XAuint8) 0x26) 239711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_PROGRAMHOMEPAGE ((XAuint8) 0x27) 239811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_PROGRAMSUBCHANNEL ((XAuint8) 0x28) 239911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_PHONEHOTLINE ((XAuint8) 0x29) 240011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_PHONESTUDIO ((XAuint8) 0x2A) 240111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_PHONEOTHER ((XAuint8) 0x2B) 240211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_SMSSTUDIO ((XAuint8) 0x2C) 240311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_SMSOTHER ((XAuint8) 0x2D) 240411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_EMAILHOTLINE ((XAuint8) 0x2E) 240511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_EMAILSTUDIO ((XAuint8) 0x2F) 240611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_EMAILOTHER ((XAuint8) 0x30) 240711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_MMSOTHER ((XAuint8) 0x31) 240811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_CHAT ((XAuint8) 0x32) 240911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_CHATCENTER ((XAuint8) 0x33) 241011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_VOTEQUESTION ((XAuint8) 0x34) 241111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_VOTECENTER ((XAuint8) 0x35) 241211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_OPENCLASS45 ((XAuint8) 0x36) 241311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_OPENCLASS55 ((XAuint8) 0x37) 241411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_OPENCLASS56 ((XAuint8) 0x38) 241511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_OPENCLASS57 ((XAuint8) 0x39) 241611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_OPENCLASS58 ((XAuint8) 0x3A) 241711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_PLACE ((XAuint8) 0x3B) 241811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_APPOINTMENT ((XAuint8) 0x3C) 241911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_IDENTIFIER ((XAuint8) 0x3D) 242011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_PURCHASE ((XAuint8) 0x3E) 242111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RDSRTPLUS_GETDATA ((XAuint8) 0x3F) 242211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 242311cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_RDS; 242411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 242511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XARDSItf_; 242611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XARDSItf_ * const * XARDSItf; 242711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 242811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void (XAAPIENTRY * xaGetODAGroupCallback) ( 242911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARadioItf caller, 243011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pContext, 243111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean success, 243211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint16 group, 243311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint16 message 243411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 243511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 243611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void (XAAPIENTRY * xaNewODADataCallback) ( 243711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARDSItf caller, 243811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pContext, 243911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint16 group, 244011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint64 data 244111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 244211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 244311cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void (XAAPIENTRY * xaRDSCallback) ( 244411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARDSItf caller, 244511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pContext, 244611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint16 event, 244711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint8 eventData 244811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 244911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 245011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XARDSItf_ { 245111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*QueryRDSSignal) ( 245211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARDSItf self, 245311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean * isSignal 245411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 245511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetProgrammeServiceName) ( 245611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARDSItf self, 245711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAchar * ps 245811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 245911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetRadioText) ( 246011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARDSItf self, 246111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAchar * rt 246211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 246311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetRadioTextPlus) ( 246411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARDSItf self, 246511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint8 contentType, 246611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAchar * informationElement, 246711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAchar * descriptor, 246811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint8 * descriptorContentType 246911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 247011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetProgrammeType) ( 247111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARDSItf self, 247211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pty 247311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 247411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetProgrammeTypeString) ( 247511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARDSItf self, 247611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean isLengthMax16, 247711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAchar * pty 247811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 247911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetProgrammeIdentificationCode) ( 248011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARDSItf self, 248111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint16 * pi 248211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 248311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetClockTime) ( 248411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARDSItf self, 248511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAtime * dateAndTime 248611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 248711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetTrafficAnnouncement) ( 248811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARDSItf self, 248911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean * ta 249011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 249111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetTrafficProgramme) ( 249211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARDSItf self, 249311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean * tp 249411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 249511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SeekByProgrammeType) ( 249611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARDSItf self, 249711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 pty, 249811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean upwards 249911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 250011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SeekTrafficAnnouncement) ( 250111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARDSItf self, 250211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean upwards 250311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 250411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SeekTrafficProgramme) ( 250511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARDSItf self, 250611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean upwards 250711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 250811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetAutomaticSwitching) ( 250911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARDSItf self, 251011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean automatic 251111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 251211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetAutomaticSwitching) ( 251311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARDSItf self, 251411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean * automatic 251511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 251611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetAutomaticTrafficAnnouncement) ( 251711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARDSItf self, 251811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean automatic 251911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 252011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetAutomaticTrafficAnnouncement) ( 252111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARDSItf self, 252211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean * automatic 252311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 252411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetODAGroup) ( 252511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARDSItf self, 252611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint16 AID, 252711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert xaGetODAGroupCallback callback, 252811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pContext 252911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 253011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SubscribeODAGroup) ( 253111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARDSItf self, 253211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint16 group, 253311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean useErrorCorrection 253411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 253511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*UnsubscribeODAGroup) ( 253611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARDSItf self, 253711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint16 group 253811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 253911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*ListODAGroupSubscriptions) ( 254011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARDSItf self, 254111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAint16* pGroups, 254211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32* pLength 254311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 254411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*RegisterRDSCallback) ( 254511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARDSItf self, 254611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert xaRDSCallback callback, 254711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pContext 254811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 254911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*RegisterODADataCallback) ( 255011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XARDSItf self, 255111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert xaNewODADataCallback callback, 255211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pContext 255311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 255411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 255511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 255611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* VIBRA */ 255711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 255811cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_VIBRA; 255911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 256011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAVibraItf_; 256111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XAVibraItf_ * const * XAVibraItf; 256211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 256311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAVibraItf_ { 256411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*Vibrate) ( 256511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAVibraItf self, 256611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean vibrate 256711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 256811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*IsVibrating) ( 256911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAVibraItf self, 257011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean * pVibrating 257111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 257211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetFrequency) ( 257311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAVibraItf self, 257411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmilliHertz frequency 257511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 257611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetFrequency) ( 257711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAVibraItf self, 257811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmilliHertz * pFrequency 257911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 258011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetIntensity) ( 258111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAVibraItf self, 258211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XApermille intensity 258311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 258411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetIntensity) ( 258511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAVibraItf self, 258611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XApermille * pIntensity 258711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 258811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 258911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 259011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* LED ARRAY */ 259111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 259211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct XAHSL_ { 259311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillidegree hue; 259411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XApermille saturation; 259511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XApermille lightness; 259611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} XAHSL; 259711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 259811cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_LED; 259911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 260011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XALEDArrayItf_; 260111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XALEDArrayItf_ * const * XALEDArrayItf; 260211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 260311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XALEDArrayItf_ { 260411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*ActivateLEDArray) ( 260511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XALEDArrayItf self, 260611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 lightMask 260711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 260811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*IsLEDArrayActivated) ( 260911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XALEDArrayItf self, 261011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pLightMask 261111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 261211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetColor) ( 261311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XALEDArrayItf self, 261411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint8 index, 261511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAHSL * pColor 261611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 261711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetColor) ( 261811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XALEDArrayItf self, 261911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint8 index, 262011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAHSL * pColor 262111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 262211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 262311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 262411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 262511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 262611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert /*****************************************************************/ 262711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert /* CODEC RELATED INTERFACES, STRUCTS AND DEFINES */ 262811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert /*****************************************************************/ 262911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 263011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* AUDIO ENCODER AND AUDIO ENCODER/DECODER CAPABILITIES */ 263111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 263211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RATECONTROLMODE_CONSTANTBITRATE ((XAuint32) 0x00000001) 263311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_RATECONTROLMODE_VARIABLEBITRATE ((XAuint32) 0x00000002) 263411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 263511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOCODEC_PCM ((XAuint32) 0x00000001) 263611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOCODEC_MP3 ((XAuint32) 0x00000002) 263711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOCODEC_AMR ((XAuint32) 0x00000003) 263811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOCODEC_AMRWB ((XAuint32) 0x00000004) 263911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOCODEC_AMRWBPLUS ((XAuint32) 0x00000005) 264011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOCODEC_AAC ((XAuint32) 0x00000006) 264111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOCODEC_WMA ((XAuint32) 0x00000007) 264211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOCODEC_REAL ((XAuint32) 0x00000008) 264311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOCODEC_VORBIS ((XAuint32) 0x00000009) 264411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 264511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOPROFILE_PCM ((XAuint32) 0x00000001) 264611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 264711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOPROFILE_MPEG1_L3 ((XAuint32) 0x00000001) 264811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOPROFILE_MPEG2_L3 ((XAuint32) 0x00000002) 264911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOPROFILE_MPEG25_L3 ((XAuint32) 0x00000003) 265011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 265111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOCHANMODE_MP3_MONO ((XAuint32) 0x00000001) 265211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOCHANMODE_MP3_STEREO ((XAuint32) 0x00000002) 265311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOCHANMODE_MP3_JOINTSTEREO ((XAuint32) 0x00000003) 265411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOCHANMODE_MP3_DUAL ((XAuint32) 0x00000004) 265511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 265611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOPROFILE_AMR ((XAuint32) 0x00000001) 265711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 265811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOSTREAMFORMAT_CONFORMANCE ((XAuint32) 0x00000001) 265911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOSTREAMFORMAT_IF1 ((XAuint32) 0x00000002) 266011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOSTREAMFORMAT_IF2 ((XAuint32) 0x00000003) 266111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOSTREAMFORMAT_FSF ((XAuint32) 0x00000004) 266211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOSTREAMFORMAT_RTPPAYLOAD ((XAuint32) 0x00000005) 266311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOSTREAMFORMAT_ITU ((XAuint32) 0x00000006) 266411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 266511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOPROFILE_AMRWB ((XAuint32) 0x00000001) 266611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 266711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOPROFILE_AMRWBPLUS ((XAuint32) 0x00000001) 266811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 266911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOPROFILE_AAC_AAC ((XAuint32) 0x00000001) 267011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 267111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOMODE_AAC_MAIN ((XAuint32) 0x00000001) 267211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOMODE_AAC_LC ((XAuint32) 0x00000002) 267311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOMODE_AAC_SSR ((XAuint32) 0x00000003) 267411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOMODE_AAC_LTP ((XAuint32) 0x00000004) 267511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOMODE_AAC_HE ((XAuint32) 0x00000005) 267611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOMODE_AAC_SCALABLE ((XAuint32) 0x00000006) 267711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOMODE_AAC_ERLC ((XAuint32) 0x00000007) 267811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOMODE_AAC_LD ((XAuint32) 0x00000008) 267911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOMODE_AAC_HE_PS ((XAuint32) 0x00000009) 268011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOMODE_AAC_HE_MPS ((XAuint32) 0x0000000A) 268111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 268211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOSTREAMFORMAT_MP2ADTS ((XAuint32) 0x00000001) 268311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOSTREAMFORMAT_MP4ADTS ((XAuint32) 0x00000002) 268411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOSTREAMFORMAT_MP4LOAS ((XAuint32) 0x00000003) 268511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOSTREAMFORMAT_MP4LATM ((XAuint32) 0x00000004) 268611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOSTREAMFORMAT_ADIF ((XAuint32) 0x00000005) 268711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOSTREAMFORMAT_MP4FF ((XAuint32) 0x00000006) 268811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOSTREAMFORMAT_RAW ((XAuint32) 0x00000007) 268911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 269011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOPROFILE_WMA7 ((XAuint32) 0x00000001) 269111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOPROFILE_WMA8 ((XAuint32) 0x00000002) 269211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOPROFILE_WMA9 ((XAuint32) 0x00000003) 269311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOPROFILE_WMA10 ((XAuint32) 0x00000004) 269411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 269511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOMODE_WMA_LEVEL1 ((XAuint32) 0x00000001) 269611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOMODE_WMA_LEVEL2 ((XAuint32) 0x00000002) 269711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOMODE_WMA_LEVEL3 ((XAuint32) 0x00000003) 269811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOMODE_WMA_LEVEL4 ((XAuint32) 0x00000004) 269911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOMODE_WMAPRO_LEVELM0 ((XAuint32) 0x00000005) 270011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOMODE_WMAPRO_LEVELM1 ((XAuint32) 0x00000006) 270111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOMODE_WMAPRO_LEVELM2 ((XAuint32) 0x00000007) 270211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOMODE_WMAPRO_LEVELM3 ((XAuint32) 0x00000008) 270311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 270411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOPROFILE_REALAUDIO ((XAuint32) 0x00000001) 270511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 270611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOMODE_REALAUDIO_G2 ((XAuint32) 0x00000001) 270711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOMODE_REALAUDIO_8 ((XAuint32) 0x00000002) 270811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOMODE_REALAUDIO_10 ((XAuint32) 0x00000003) 270911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOMODE_REALAUDIO_SURROUND ((XAuint32) 0x00000004) 271011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 271111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOPROFILE_VORBIS ((XAuint32) 0x00000001) 271211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 271311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_AUDIOMODE_VORBIS ((XAuint32) 0x00000001) 271411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 271511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 271611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct XAAudioCodecDescriptor_ { 271711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 maxChannels; 271811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 minBitsPerSample; 271911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 maxBitsPerSample; 272011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmilliHertz minSampleRate; 272111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmilliHertz maxSampleRate; 272211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean isFreqRangeContinuous; 272311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmilliHertz * pSampleRatesSupported; 272411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 numSampleRatesSupported; 272511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 minBitRate; 272611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 maxBitRate; 272711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean isBitrateRangeContinuous; 272811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pBitratesSupported; 272911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 numBitratesSupported; 273011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 profileSetting; 273111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 modeSetting; 273211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} XAAudioCodecDescriptor; 273311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 273411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct XAAudioEncoderSettings_ { 273511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 encoderId; 273611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 channelsIn; 273711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 channelsOut; 273811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmilliHertz sampleRate; 273911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 bitRate; 274011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 bitsPerSample; 274111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 rateControl; 274211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 profileSetting; 274311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 levelSetting; 274411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 channelMode; 274511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 streamFormat; 274611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 encodeOptions; 274711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 blockAlignment; 274811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} XAAudioEncoderSettings; 274911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 275011cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_AUDIODECODERCAPABILITIES; 275111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 275211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAAudioDecoderCapabilitiesItf_; 275311cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XAAudioDecoderCapabilitiesItf_ 275411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * const * XAAudioDecoderCapabilitiesItf; 275511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 275611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAAudioDecoderCapabilitiesItf_ { 275711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetAudioDecoders) ( 275811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAAudioDecoderCapabilitiesItf self, 275911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pNumDecoders, 276011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pDecoderIds 276111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 276211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetAudioDecoderCapabilities) ( 276311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAAudioDecoderCapabilitiesItf self, 276411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 decoderId, 276511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pIndex, 276611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAAudioCodecDescriptor * pDescriptor 276711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 276811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 276911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 277011cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_AUDIOENCODER; 277111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 277211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAAudioEncoderItf_; 277311cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XAAudioEncoderItf_ * const * XAAudioEncoderItf; 277411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 277511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAAudioEncoderItf_ { 277611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetEncoderSettings) ( 277711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAAudioEncoderItf self, 277811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAAudioEncoderSettings * pSettings 277911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 278011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetEncoderSettings) ( 278111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAAudioEncoderItf self, 278211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAAudioEncoderSettings * pSettings 278311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 278411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 278511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 278611cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_AUDIOENCODERCAPABILITIES; 278711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 278811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAAudioEncoderCapabilitiesItf_; 278911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XAAudioEncoderCapabilitiesItf_ 279011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * const * XAAudioEncoderCapabilitiesItf; 279111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 279211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAAudioEncoderCapabilitiesItf_ { 279311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetAudioEncoders) ( 279411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAAudioEncoderCapabilitiesItf self, 279511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pNumEncoders, 279611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pEncoderIds 279711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 279811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetAudioEncoderCapabilities) ( 279911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAAudioEncoderCapabilitiesItf self, 280011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 encoderId, 280111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pIndex, 280211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAAudioCodecDescriptor * pDescriptor 280311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 280411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 280511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 280611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* IMAGE ENCODER AND IMAGE ENCODER/DECODER CAPABILITIES */ 280711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 280811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_IMAGECODEC_JPEG ((XAuint32) 0x00000001) 280911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_IMAGECODEC_GIF ((XAuint32) 0x00000002) 281011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_IMAGECODEC_BMP ((XAuint32) 0x00000003) 281111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_IMAGECODEC_PNG ((XAuint32) 0x00000004) 281211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_IMAGECODEC_TIFF ((XAuint32) 0x00000005) 281311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_IMAGECODEC_RAW ((XAuint32) 0x00000006) 281411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 281511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct XAImageCodecDescriptor_ { 281611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 codecId; 281711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 maxWidth; 281811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 maxHeight; 281911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} XAImageCodecDescriptor; 282011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 282111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct XAImageSettings_ { 282211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 encoderId; 282311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 width; 282411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 height; 282511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XApermille compressionLevel; 282611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 colorFormat; 282711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} XAImageSettings; 282811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 282911cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_IMAGEENCODERCAPABILITIES; 283011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 283111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAImageEncoderCapabilitiesItf_; 283211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XAImageEncoderCapabilitiesItf_ 283311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * const * XAImageEncoderCapabilitiesItf; 283411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 283511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAImageEncoderCapabilitiesItf_ { 283611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetImageEncoderCapabilities) ( 283711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAImageEncoderCapabilitiesItf self, 283811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pEncoderId, 283911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAImageCodecDescriptor * pDescriptor 284011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 284111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*QueryColorFormats) ( 284211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAImageEncoderCapabilitiesItf self, 284311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pIndex, 284411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pColorFormat 284511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 284611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 284711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 284811cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_IMAGEDECODERCAPABILITIES; 284911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 285011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAImageDecoderCapabilitiesItf_; 285111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XAImageDecoderCapabilitiesItf_ 285211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * const * XAImageDecoderCapabilitiesItf; 285311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 285411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAImageDecoderCapabilitiesItf_ { 285511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetImageDecoderCapabilities) ( 285611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAImageDecoderCapabilitiesItf self, 285711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pDecoderId, 285811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAImageCodecDescriptor * pDescriptor 285911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 286011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*QueryColorFormats) ( 286111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAImageDecoderCapabilitiesItf self, 286211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pIndex, 286311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pColorFormat 286411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 286511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 286611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 286711cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_IMAGEENCODER; 286811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 286911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAImageEncoderItf_; 287011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XAImageEncoderItf_ * const * XAImageEncoderItf; 287111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 287211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAImageEncoderItf_ { 287311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetImageSettings) ( 287411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAImageEncoderItf self, 287511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const XAImageSettings * pSettings 287611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 287711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetImageSettings) ( 287811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAImageEncoderItf self, 287911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAImageSettings * pSettings 288011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 288111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetSizeEstimate) ( 288211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAImageEncoderItf self, 288311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pSize 288411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 288511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 288611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 288711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* VIDEO ENCODER AND VIDEO ENCODER/DECODER CAPABILITIES */ 288811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 288911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOCODEC_MPEG2 ((XAuint32) 0x00000001) 289011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOCODEC_H263 ((XAuint32) 0x00000002) 289111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOCODEC_MPEG4 ((XAuint32) 0x00000003) 289211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOCODEC_AVC ((XAuint32) 0x00000004) 289311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOCODEC_VC1 ((XAuint32) 0x00000005) 289411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 289511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_MPEG2_SIMPLE ((XAuint32) 0x00000001) 289611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_MPEG2_MAIN ((XAuint32) 0x00000002) 289711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_MPEG2_422 ((XAuint32) 0x00000003) 289811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_MPEG2_SNR ((XAuint32) 0x00000004) 289911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_MPEG2_SPATIAL ((XAuint32) 0x00000005) 290011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_MPEG2_HIGH ((XAuint32) 0x00000006) 290111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 290211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_MPEG2_LL ((XAuint32) 0x00000001) 290311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_MPEG2_ML ((XAuint32) 0x00000002) 290411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_MPEG2_H14 ((XAuint32) 0x00000003) 290511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_MPEG2_HL ((XAuint32) 0x00000004) 290611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 290711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_H263_BASELINE ((XAuint32) 0x00000001) 290811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_H263_H320CODING ((XAuint32) 0x00000002) 290911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_H263_BACKWARDCOMPATIBLE ((XAuint32) 0x00000003) 291011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_H263_ISWV2 ((XAuint32) 0x00000004) 291111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_H263_ISWV3 ((XAuint32) 0x00000005) 291211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_H263_HIGHCOMPRESSION ((XAuint32) 0x00000006) 291311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_H263_INTERNET ((XAuint32) 0x00000007) 291411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_H263_INTERLACE ((XAuint32) 0x00000008) 291511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_H263_HIGHLATENCY ((XAuint32) 0x00000009) 291611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 291711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_H263_10 ((XAuint32) 0x00000001) 291811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_H263_20 ((XAuint32) 0x00000002) 291911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_H263_30 ((XAuint32) 0x00000003) 292011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_H263_40 ((XAuint32) 0x00000004) 292111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_H263_45 ((XAuint32) 0x00000005) 292211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_H263_50 ((XAuint32) 0x00000006) 292311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_H263_60 ((XAuint32) 0x00000007) 292411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_H263_70 ((XAuint32) 0x00000008) 292511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 292611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_MPEG4_SIMPLE ((XAuint32) 0x00000001) 292711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_MPEG4_SIMPLESCALABLE ((XAuint32) 0x00000002) 292811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_MPEG4_CORE ((XAuint32) 0x00000003) 292911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_MPEG4_MAIN ((XAuint32) 0x00000004) 293011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_MPEG4_NBIT ((XAuint32) 0x00000005) 293111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_MPEG4_SCALABLETEXTURE ((XAuint32) 0x00000006) 293211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_MPEG4_SIMPLEFACE ((XAuint32) 0x00000007) 293311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_MPEG4_SIMPLEFBA ((XAuint32) 0x00000008) 293411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_MPEG4_BASICANIMATED ((XAuint32) 0x00000009) 293511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_MPEG4_HYBRID ((XAuint32) 0x0000000A) 293611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_MPEG4_ADVANCEDREALTIME ((XAuint32) 0x0000000B) 293711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_MPEG4_CORESCALABLE ((XAuint32) 0x0000000C) 293811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_MPEG4_ADVANCEDCODING ((XAuint32) 0x0000000D) 293911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_MPEG4_ADVANCEDCORE ((XAuint32) 0x0000000E) 294011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_MPEG4_ADVANCEDSCALABLE ((XAuint32) 0x0000000F) 294111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 294211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_MPEG4_0 ((XAuint32) 0x00000001) 294311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_MPEG4_0b ((XAuint32) 0x00000002) 294411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_MPEG4_1 ((XAuint32) 0x00000003) 294511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_MPEG4_2 ((XAuint32) 0x00000004) 294611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_MPEG4_3 ((XAuint32) 0x00000005) 294711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_MPEG4_4 ((XAuint32) 0x00000006) 294811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_MPEG4_4a ((XAuint32) 0x00000007) 294911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_MPEG4_5 ((XAuint32) 0x00000008) 295011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 295111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_AVC_BASELINE ((XAuint32) 0x00000001) 295211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_AVC_MAIN ((XAuint32) 0x00000002) 295311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_AVC_EXTENDED ((XAuint32) 0x00000003) 295411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_AVC_HIGH ((XAuint32) 0x00000004) 295511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_AVC_HIGH10 ((XAuint32) 0x00000005) 295611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_AVC_HIGH422 ((XAuint32) 0x00000006) 295711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOPROFILE_AVC_HIGH444 ((XAuint32) 0x00000007) 295811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 295911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_AVC_1 ((XAuint32) 0x00000001) 296011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_AVC_1B ((XAuint32) 0x00000002) 296111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_AVC_11 ((XAuint32) 0x00000003) 296211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_AVC_12 ((XAuint32) 0x00000004) 296311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_AVC_13 ((XAuint32) 0x00000005) 296411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_AVC_2 ((XAuint32) 0x00000006) 296511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_AVC_21 ((XAuint32) 0x00000007) 296611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_AVC_22 ((XAuint32) 0x00000008) 296711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_AVC_3 ((XAuint32) 0x00000009) 296811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_AVC_31 ((XAuint32) 0x0000000A) 296911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_AVC_32 ((XAuint32) 0x0000000B) 297011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_AVC_4 ((XAuint32) 0x0000000C) 297111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_AVC_41 ((XAuint32) 0x0000000D) 297211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_AVC_42 ((XAuint32) 0x0000000E) 297311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_AVC_5 ((XAuint32) 0x0000000F) 297411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_AVC_51 ((XAuint32) 0x00000010) 297511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 297611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_VC1_SIMPLE ((XAuint32) 0x00000001) 297711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_VC1_MAIN ((XAuint32) 0x00000002) 297811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_VC1_ADVANCED ((XAuint32) 0x00000003) 297911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 298011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_VC1_LOW ((XAuint32) 0x00000001) 298111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_VC1_MEDIUM ((XAuint32) 0x00000002) 298211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_VC1_HIGH ((XAuint32) 0x00000003) 298311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_VC1_L0 ((XAuint32) 0x00000004) 298411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_VC1_L1 ((XAuint32) 0x00000005) 298511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_VC1_L2 ((XAuint32) 0x00000006) 298611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_VC1_L3 ((XAuint32) 0x00000007) 298711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_VIDEOLEVEL_VC1_L4 ((XAuint32) 0x00000008) 298811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 298911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct XAVideoCodecDescriptor_ { 299011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 codecId; 299111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 maxWidth; 299211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 maxHeight; 299311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 maxFrameRate; 299411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 maxBitRate; 299511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 rateControlSupported; 299611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 profileSetting; 299711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 levelSetting; 299811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} XAVideoCodecDescriptor; 299911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 300011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct XAVideoSettings_ { 300111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 encoderId; 300211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 width; 300311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 height; 300411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 frameRate; 300511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 bitRate; 300611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 rateControl; 300711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 profileSetting; 300811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 levelSetting; 300911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 keyFrameInterval; 301011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} XAVideoSettings; 301111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 301211cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_VIDEODECODERCAPABILITIES; 301311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 301411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAVideoDecoderCapabilitiesItf_; 301511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XAVideoDecoderCapabilitiesItf_ 301611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * const * XAVideoDecoderCapabilitiesItf; 301711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 301811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAVideoDecoderCapabilitiesItf_ { 301911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetVideoDecoders) ( 302011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAVideoDecoderCapabilitiesItf self, 302111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pNumDecoders, 302211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pDecoderIds 302311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 302411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetVideoDecoderCapabilities) ( 302511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAVideoDecoderCapabilitiesItf self, 302611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 decoderId, 302711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pIndex, 302811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAVideoCodecDescriptor * pDescriptor 302911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 303011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 303111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 303211cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_VIDEOENCODER; 303311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 303411cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_VIDEOENCODERCAPABILITIES; 303511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 303611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAVideoEncoderCapabilitiesItf_; 303711cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XAVideoEncoderCapabilitiesItf_ 303811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * const * XAVideoEncoderCapabilitiesItf; 303911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 304011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAVideoEncoderCapabilitiesItf_ { 304111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetVideoEncoders) ( 304211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAVideoEncoderCapabilitiesItf self, 304311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pNumEncoders, 304411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pEncoderIds 304511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 304611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetVideoEncoderCapabilities) ( 304711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAVideoEncoderCapabilitiesItf self, 304811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 encoderId, 304911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 * pIndex, 305011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAVideoCodecDescriptor * pDescriptor 305111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 305211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 305311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 305411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAVideoEncoderItf_; 305511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XAVideoEncoderItf_ * const * XAVideoEncoderItf; 305611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 305711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAVideoEncoderItf_ { 305811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetVideoSettings) ( 305911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAVideoEncoderItf self, 306011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAVideoSettings * pSettings 306111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 306211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*GetVideoSettings) ( 306311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAVideoEncoderItf self, 306411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAVideoSettings * pSettings 306511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 306611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 306711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 306811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* STREAM INFORMATION */ 306911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 307011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DOMAINTYPE_AUDIO 0x00000001 307111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DOMAINTYPE_VIDEO 0x00000002 307211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DOMAINTYPE_IMAGE 0x00000003 307311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DOMAINTYPE_TIMEDTEXT 0x00000004 307411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DOMAINTYPE_MIDI 0x00000005 307511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DOMAINTYPE_VENDOR 0xFFFFFFFE 307611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_DOMAINTYPE_UNKNOWN 0xFFFFFFFF 307711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 307811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_MIDIBANK_DEVICE 0x00000001 307911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_MIDIBANK_CUSTOM 0x00000002 308011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 308111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_MIDI_UNKNOWN 0xFFFFFFFF 308211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 308311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XA_STREAMCBEVENT_PROPERTYCHANGE ((XAuint32) 0x00000001) 308411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 308511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct XAMediaContainerInformation_ { 308611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 containerType; 308711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillisecond mediaDuration; 308811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 numStreams; 308911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} XAMediaContainerInformation; 309011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 309111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct XAVideoStreamInformation_ { 309211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 codecId; 309311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 width; 309411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 height; 309511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 frameRate; 309611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 bitRate; 309711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillisecond duration; 309811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} XAVideoStreamInformation; 309911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 310011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct XAAudioStreamInformation_ { 310111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 codecId; 310211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 channels; 310311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmilliHertz sampleRate; 310411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 bitRate; 310511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAchar langCountry[16]; 310611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillisecond duration; 310711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} XAAudioStreamInformation; 310811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 310911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct XAImageStreamInformation_ { 311011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 codecId; 311111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 width; 311211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 height; 311311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillisecond presentationDuration; 311411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} XAImageStreamInformation; 311511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 311611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct XATimedTextStreamInformation_ { 311711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint16 layer; 311811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 width; 311911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 height; 312011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint16 tx; 312111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint16 ty; 312211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 bitrate; 312311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAchar langCountry[16]; 312411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillisecond duration; 312511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} XATimedTextStreamInformation; 312611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 312711cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct XAMIDIStreamInformation_ { 312811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 channels; 312911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 tracks; 313011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 bankType; 313111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAchar langCountry[16]; 313211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAmillisecond duration; 313311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} XAMIDIStreamInformation; 313411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 313511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct XAVendorStreamInformation_ { 313611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void *VendorStreamInfo; 313711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} XAVendorStreamInformation; 313811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 313911cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertXA_API extern const XAInterfaceID XA_IID_STREAMINFORMATION; 314011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 314111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAStreamInformationItf_; 314211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct XAStreamInformationItf_ * const * XAStreamInformationItf; 314311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 314411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void (XAAPIENTRY * xaStreamEventChangeCallback) ( 314511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAStreamInformationItf caller, 314611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 eventId, 314711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 streamIndex, 314811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pEventData, 314911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pContext 315011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 315111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 315211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct XAStreamInformationItf_ { 315311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*QueryMediaContainerInformation) ( 315411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAStreamInformationItf self, 315511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAMediaContainerInformation * info 315611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 315711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*QueryStreamType) ( 315811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAStreamInformationItf self, 315911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 streamIndex, 316011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 *domain 316111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 316211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*QueryStreamInformation) ( 316311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAStreamInformationItf self, 316411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 streamIndex, 316511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * info 316611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 316711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*QueryStreamName) ( 316811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAStreamInformationItf self, 316911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 streamIndex, 317011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint16 * pNameSize, 317111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAchar * pName 317211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 317311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*RegisterStreamChangeCallback) ( 317411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAStreamInformationItf self, 317511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert xaStreamEventChangeCallback callback, 317611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pContext 317711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 317811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*QueryActiveStreams) ( 317911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAStreamInformationItf self, 318011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 *numStreams, 318111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean *activeStreams 318211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 318311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAresult (*SetActiveStream) ( 318411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAStreamInformationItf self, 318511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAuint32 streamNum, 318611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean active, 318711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert XAboolean commitNow 318811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 318911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 319011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 319111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __cplusplus 319211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} /* extern "C" */ 319311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 319411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 319511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif /* _OPENMAXAL_H_ */ 3196