diff options
Diffstat (limited to '9/platforms/android-21/arch-arm/usr/include/SLES/OpenSLES_Android.h')
-rw-r--r-- | 9/platforms/android-21/arch-arm/usr/include/SLES/OpenSLES_Android.h | 373 |
1 files changed, 373 insertions, 0 deletions
diff --git a/9/platforms/android-21/arch-arm/usr/include/SLES/OpenSLES_Android.h b/9/platforms/android-21/arch-arm/usr/include/SLES/OpenSLES_Android.h new file mode 100644 index 0000000..dcf3432 --- /dev/null +++ b/9/platforms/android-21/arch-arm/usr/include/SLES/OpenSLES_Android.h @@ -0,0 +1,373 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef OPENSL_ES_ANDROID_H_ +#define OPENSL_ES_ANDROID_H_ + +#include "OpenSLES_AndroidConfiguration.h" +#include "OpenSLES_AndroidMetadata.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#include "OpenSLES.h" + +/*---------------------------------------------------------------------------*/ +/* Android common types */ +/*---------------------------------------------------------------------------*/ + +typedef sl_int64_t SLAint64; /* 64 bit signed integer */ + +typedef sl_uint64_t SLAuint64; /* 64 bit unsigned integer */ + +/*---------------------------------------------------------------------------*/ +/* Android PCM Data Format */ +/*---------------------------------------------------------------------------*/ + +/* The following pcm representations and data formats map to those in OpenSLES 1.1 */ +#define SL_ANDROID_PCM_REPRESENTATION_SIGNED_INT ((SLuint32) 0x00000001) +#define SL_ANDROID_PCM_REPRESENTATION_UNSIGNED_INT ((SLuint32) 0x00000002) +#define SL_ANDROID_PCM_REPRESENTATION_FLOAT ((SLuint32) 0x00000003) + +#define SL_ANDROID_DATAFORMAT_PCM_EX ((SLuint32) 0x00000004) + +typedef struct SLAndroidDataFormat_PCM_EX_ { + SLuint32 formatType; + SLuint32 numChannels; + SLuint32 sampleRate; + SLuint32 bitsPerSample; + SLuint32 containerSize; + SLuint32 channelMask; + SLuint32 endianness; + SLuint32 representation; +} SLAndroidDataFormat_PCM_EX; + +/*---------------------------------------------------------------------------*/ +/* Android Effect interface */ +/*---------------------------------------------------------------------------*/ + +extern SL_API const SLInterfaceID SL_IID_ANDROIDEFFECT; + +/** Android Effect interface methods */ + +struct SLAndroidEffectItf_; +typedef const struct SLAndroidEffectItf_ * const * SLAndroidEffectItf; + +struct SLAndroidEffectItf_ { + + SLresult (*CreateEffect) (SLAndroidEffectItf self, + SLInterfaceID effectImplementationId); + + SLresult (*ReleaseEffect) (SLAndroidEffectItf self, + SLInterfaceID effectImplementationId); + + SLresult (*SetEnabled) (SLAndroidEffectItf self, + SLInterfaceID effectImplementationId, + SLboolean enabled); + + SLresult (*IsEnabled) (SLAndroidEffectItf self, + SLInterfaceID effectImplementationId, + SLboolean *pEnabled); + + SLresult (*SendCommand) (SLAndroidEffectItf self, + SLInterfaceID effectImplementationId, + SLuint32 command, + SLuint32 commandSize, + void *pCommandData, + SLuint32 *replySize, + void *pReplyData); +}; + + +/*---------------------------------------------------------------------------*/ +/* Android Effect Send interface */ +/*---------------------------------------------------------------------------*/ + +extern SL_API const SLInterfaceID SL_IID_ANDROIDEFFECTSEND; + +/** Android Effect Send interface methods */ + +struct SLAndroidEffectSendItf_; +typedef const struct SLAndroidEffectSendItf_ * const * SLAndroidEffectSendItf; + +struct SLAndroidEffectSendItf_ { + SLresult (*EnableEffectSend) ( + SLAndroidEffectSendItf self, + SLInterfaceID effectImplementationId, + SLboolean enable, + SLmillibel initialLevel + ); + SLresult (*IsEnabled) ( + SLAndroidEffectSendItf self, + SLInterfaceID effectImplementationId, + SLboolean *pEnable + ); + SLresult (*SetDirectLevel) ( + SLAndroidEffectSendItf self, + SLmillibel directLevel + ); + SLresult (*GetDirectLevel) ( + SLAndroidEffectSendItf self, + SLmillibel *pDirectLevel + ); + SLresult (*SetSendLevel) ( + SLAndroidEffectSendItf self, + SLInterfaceID effectImplementationId, + SLmillibel sendLevel + ); + SLresult (*GetSendLevel)( + SLAndroidEffectSendItf self, + SLInterfaceID effectImplementationId, + SLmillibel *pSendLevel + ); +}; + + +/*---------------------------------------------------------------------------*/ +/* Android Effect Capabilities interface */ +/*---------------------------------------------------------------------------*/ + +extern SL_API const SLInterfaceID SL_IID_ANDROIDEFFECTCAPABILITIES; + +/** Android Effect Capabilities interface methods */ + +struct SLAndroidEffectCapabilitiesItf_; +typedef const struct SLAndroidEffectCapabilitiesItf_ * const * SLAndroidEffectCapabilitiesItf; + +struct SLAndroidEffectCapabilitiesItf_ { + + SLresult (*QueryNumEffects) (SLAndroidEffectCapabilitiesItf self, + SLuint32 *pNumSupportedEffects); + + + SLresult (*QueryEffect) (SLAndroidEffectCapabilitiesItf self, + SLuint32 index, + SLInterfaceID *pEffectType, + SLInterfaceID *pEffectImplementation, + SLchar *pName, + SLuint16 *pNameSize); +}; + + +/*---------------------------------------------------------------------------*/ +/* Android Configuration interface */ +/*---------------------------------------------------------------------------*/ +extern SL_API const SLInterfaceID SL_IID_ANDROIDCONFIGURATION; + +/** Android Configuration interface methods */ + +struct SLAndroidConfigurationItf_; +typedef const struct SLAndroidConfigurationItf_ * const * SLAndroidConfigurationItf; + +struct SLAndroidConfigurationItf_ { + + SLresult (*SetConfiguration) (SLAndroidConfigurationItf self, + const SLchar *configKey, + const void *pConfigValue, + SLuint32 valueSize); + + SLresult (*GetConfiguration) (SLAndroidConfigurationItf self, + const SLchar *configKey, + SLuint32 *pValueSize, + void *pConfigValue + ); +}; + + +/*---------------------------------------------------------------------------*/ +/* Android Simple Buffer Queue Interface */ +/*---------------------------------------------------------------------------*/ + +extern SL_API const SLInterfaceID SL_IID_ANDROIDSIMPLEBUFFERQUEUE; + +struct SLAndroidSimpleBufferQueueItf_; +typedef const struct SLAndroidSimpleBufferQueueItf_ * const * SLAndroidSimpleBufferQueueItf; + +typedef void (SLAPIENTRY *slAndroidSimpleBufferQueueCallback)( + SLAndroidSimpleBufferQueueItf caller, + void *pContext +); + +/** Android simple buffer queue state **/ + +typedef struct SLAndroidSimpleBufferQueueState_ { + SLuint32 count; + SLuint32 index; +} SLAndroidSimpleBufferQueueState; + + +struct SLAndroidSimpleBufferQueueItf_ { + SLresult (*Enqueue) ( + SLAndroidSimpleBufferQueueItf self, + const void *pBuffer, + SLuint32 size + ); + SLresult (*Clear) ( + SLAndroidSimpleBufferQueueItf self + ); + SLresult (*GetState) ( + SLAndroidSimpleBufferQueueItf self, + SLAndroidSimpleBufferQueueState *pState + ); + SLresult (*RegisterCallback) ( + SLAndroidSimpleBufferQueueItf self, + slAndroidSimpleBufferQueueCallback callback, + void* pContext + ); +}; + + +/*---------------------------------------------------------------------------*/ +/* Android Buffer Queue Interface */ +/*---------------------------------------------------------------------------*/ + +extern SL_API const SLInterfaceID SL_IID_ANDROIDBUFFERQUEUESOURCE; + +struct SLAndroidBufferQueueItf_; +typedef const struct SLAndroidBufferQueueItf_ * const * SLAndroidBufferQueueItf; + +#define SL_ANDROID_ITEMKEY_NONE ((SLuint32) 0x00000000) +#define SL_ANDROID_ITEMKEY_EOS ((SLuint32) 0x00000001) +#define SL_ANDROID_ITEMKEY_DISCONTINUITY ((SLuint32) 0x00000002) +#define SL_ANDROID_ITEMKEY_BUFFERQUEUEEVENT ((SLuint32) 0x00000003) +#define SL_ANDROID_ITEMKEY_FORMAT_CHANGE ((SLuint32) 0x00000004) + +#define SL_ANDROIDBUFFERQUEUEEVENT_NONE ((SLuint32) 0x00000000) +#define SL_ANDROIDBUFFERQUEUEEVENT_PROCESSED ((SLuint32) 0x00000001) +#if 0 // reserved for future use +#define SL_ANDROIDBUFFERQUEUEEVENT_UNREALIZED ((SLuint32) 0x00000002) +#define SL_ANDROIDBUFFERQUEUEEVENT_CLEARED ((SLuint32) 0x00000004) +#define SL_ANDROIDBUFFERQUEUEEVENT_STOPPED ((SLuint32) 0x00000008) +#define SL_ANDROIDBUFFERQUEUEEVENT_ERROR ((SLuint32) 0x00000010) +#define SL_ANDROIDBUFFERQUEUEEVENT_CONTENT_END ((SLuint32) 0x00000020) +#endif + +typedef struct SLAndroidBufferItem_ { + SLuint32 itemKey; // identifies the item + SLuint32 itemSize; + SLuint8 itemData[0]; +} SLAndroidBufferItem; + +typedef SLresult (SLAPIENTRY *slAndroidBufferQueueCallback)( + SLAndroidBufferQueueItf caller,/* input */ + void *pCallbackContext, /* input */ + void *pBufferContext, /* input */ + void *pBufferData, /* input */ + SLuint32 dataSize, /* input */ + SLuint32 dataUsed, /* input */ + const SLAndroidBufferItem *pItems,/* input */ + SLuint32 itemsLength /* input */ +); + +typedef struct SLAndroidBufferQueueState_ { + SLuint32 count; + SLuint32 index; +} SLAndroidBufferQueueState; + +struct SLAndroidBufferQueueItf_ { + SLresult (*RegisterCallback) ( + SLAndroidBufferQueueItf self, + slAndroidBufferQueueCallback callback, + void* pCallbackContext + ); + + SLresult (*Clear) ( + SLAndroidBufferQueueItf self + ); + + SLresult (*Enqueue) ( + SLAndroidBufferQueueItf self, + void *pBufferContext, + void *pData, + SLuint32 dataLength, + const SLAndroidBufferItem *pItems, + SLuint32 itemsLength + ); + + SLresult (*GetState) ( + SLAndroidBufferQueueItf self, + SLAndroidBufferQueueState *pState + ); + + SLresult (*SetCallbackEventsMask) ( + SLAndroidBufferQueueItf self, + SLuint32 eventFlags + ); + + SLresult (*GetCallbackEventsMask) ( + SLAndroidBufferQueueItf self, + SLuint32 *pEventFlags + ); +}; + + +/*---------------------------------------------------------------------------*/ +/* Android File Descriptor Data Locator */ +/*---------------------------------------------------------------------------*/ + +/** Addendum to Data locator macros */ +#define SL_DATALOCATOR_ANDROIDFD ((SLuint32) 0x800007BC) + +#define SL_DATALOCATOR_ANDROIDFD_USE_FILE_SIZE ((SLAint64) 0xFFFFFFFFFFFFFFFFll) + +/** File Descriptor-based data locator definition, locatorType must be SL_DATALOCATOR_ANDROIDFD */ +typedef struct SLDataLocator_AndroidFD_ { + SLuint32 locatorType; + SLint32 fd; + SLAint64 offset; + SLAint64 length; +} SLDataLocator_AndroidFD; + + +/*---------------------------------------------------------------------------*/ +/* Android Android Simple Buffer Queue Data Locator */ +/*---------------------------------------------------------------------------*/ + +/** Addendum to Data locator macros */ +#define SL_DATALOCATOR_ANDROIDSIMPLEBUFFERQUEUE ((SLuint32) 0x800007BD) + +/** BufferQueue-based data locator definition where locatorType must be SL_DATALOCATOR_ANDROIDSIMPLEBUFFERQUEUE*/ +typedef struct SLDataLocator_AndroidSimpleBufferQueue { + SLuint32 locatorType; + SLuint32 numBuffers; +} SLDataLocator_AndroidSimpleBufferQueue; + + +/*---------------------------------------------------------------------------*/ +/* Android Buffer Queue Data Locator */ +/*---------------------------------------------------------------------------*/ + +/** Addendum to Data locator macros */ +#define SL_DATALOCATOR_ANDROIDBUFFERQUEUE ((SLuint32) 0x800007BE) + +/** Android Buffer Queue-based data locator definition, + * locatorType must be SL_DATALOCATOR_ANDROIDBUFFERQUEUE */ +typedef struct SLDataLocator_AndroidBufferQueue_ { + SLuint32 locatorType; + SLuint32 numBuffers; +} SLDataLocator_AndroidBufferQueue; + +/** + * MIME types required for data in Android Buffer Queues + */ +#define SL_ANDROID_MIME_AACADTS ((SLchar *) "audio/vnd.android.aac-adts") + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* OPENSL_ES_ANDROID_H_ */ |