105ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi/* 205ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi * Copyright (C) 2010 The Android Open Source Project 305ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi * 405ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi * Licensed under the Apache License, Version 2.0 (the "License"); 505ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi * you may not use this file except in compliance with the License. 605ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi * You may obtain a copy of the License at 705ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi * 805ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi * http://www.apache.org/licenses/LICENSE-2.0 905ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi * 1005ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi * Unless required by applicable law or agreed to in writing, software 1105ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi * distributed under the License is distributed on an "AS IS" BASIS, 1205ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1305ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi * See the License for the specific language governing permissions and 1405ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi * limitations under the License. 1505ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi */ 1605ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi 1705ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi#ifndef OPENSL_ES_ANDROID_H_ 1805ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi#define OPENSL_ES_ANDROID_H_ 1905ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi 2068c8a1b6deea46eeca57848768a92e96d583aaddJean-Michel Trivi#include "OpenSLES_AndroidConfiguration.h" 2168c8a1b6deea46eeca57848768a92e96d583aaddJean-Michel Trivi#include "OpenSLES_AndroidMetadata.h" 2268c8a1b6deea46eeca57848768a92e96d583aaddJean-Michel Trivi 2305ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi#ifdef __cplusplus 2405ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Triviextern "C" { 25a7b79e766ec6d95e9236168c27461c2ebaef4659Glenn Kasten#endif 2605ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi 2705ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 28989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/* Android common types */ 29989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/*---------------------------------------------------------------------------*/ 30989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 31e9236d046fdb5cac0696c42e03443a2439188146Jean-Michel Trivitypedef sl_int64_t SLAint64; /* 64 bit signed integer */ 32989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 33e9236d046fdb5cac0696c42e03443a2439188146Jean-Michel Trivitypedef sl_uint64_t SLAuint64; /* 64 bit unsigned integer */ 34989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 35989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/*---------------------------------------------------------------------------*/ 36bb74f23cd3dc877c7eaf4db2132f724d11aeeb8fPaul McLean/* Android PCM Data Format */ 37bb74f23cd3dc877c7eaf4db2132f724d11aeeb8fPaul McLean/*---------------------------------------------------------------------------*/ 38e57c13397185f9ad0f162855e9a8ebeb0c94bfc4Andy Hung 39e57c13397185f9ad0f162855e9a8ebeb0c94bfc4Andy Hung/* The following pcm representations and data formats map to those in OpenSLES 1.1 */ 40e57c13397185f9ad0f162855e9a8ebeb0c94bfc4Andy Hung#define SL_ANDROID_PCM_REPRESENTATION_SIGNED_INT ((SLuint32) 0x00000001) 41e57c13397185f9ad0f162855e9a8ebeb0c94bfc4Andy Hung#define SL_ANDROID_PCM_REPRESENTATION_UNSIGNED_INT ((SLuint32) 0x00000002) 42e57c13397185f9ad0f162855e9a8ebeb0c94bfc4Andy Hung#define SL_ANDROID_PCM_REPRESENTATION_FLOAT ((SLuint32) 0x00000003) 43e57c13397185f9ad0f162855e9a8ebeb0c94bfc4Andy Hung 44e57c13397185f9ad0f162855e9a8ebeb0c94bfc4Andy Hung#define SL_ANDROID_DATAFORMAT_PCM_EX ((SLuint32) 0x00000004) 45e57c13397185f9ad0f162855e9a8ebeb0c94bfc4Andy Hung 46e57c13397185f9ad0f162855e9a8ebeb0c94bfc4Andy Hungtypedef struct SLAndroidDataFormat_PCM_EX_ { 47e57c13397185f9ad0f162855e9a8ebeb0c94bfc4Andy Hung SLuint32 formatType; 48e57c13397185f9ad0f162855e9a8ebeb0c94bfc4Andy Hung SLuint32 numChannels; 49e57c13397185f9ad0f162855e9a8ebeb0c94bfc4Andy Hung SLuint32 sampleRate; 50e57c13397185f9ad0f162855e9a8ebeb0c94bfc4Andy Hung SLuint32 bitsPerSample; 51e57c13397185f9ad0f162855e9a8ebeb0c94bfc4Andy Hung SLuint32 containerSize; 52e57c13397185f9ad0f162855e9a8ebeb0c94bfc4Andy Hung SLuint32 channelMask; 53e57c13397185f9ad0f162855e9a8ebeb0c94bfc4Andy Hung SLuint32 endianness; 54e57c13397185f9ad0f162855e9a8ebeb0c94bfc4Andy Hung SLuint32 representation; 55e57c13397185f9ad0f162855e9a8ebeb0c94bfc4Andy Hung} SLAndroidDataFormat_PCM_EX; 56bb74f23cd3dc877c7eaf4db2132f724d11aeeb8fPaul McLean 57bb74f23cd3dc877c7eaf4db2132f724d11aeeb8fPaul McLean/*---------------------------------------------------------------------------*/ 5867bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi/* Android Effect interface */ 5967bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 6067bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 61ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_ANDROIDEFFECT; 6267bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 6367bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi/** Android Effect interface methods */ 6467bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 655b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivistruct SLAndroidEffectItf_; 665b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivitypedef const struct SLAndroidEffectItf_ * const * SLAndroidEffectItf; 6767bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 685b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivistruct SLAndroidEffectItf_ { 6967bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 705b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*CreateEffect) (SLAndroidEffectItf self, 71fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId); 7267bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 735b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*ReleaseEffect) (SLAndroidEffectItf self, 74fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId); 7567bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 765b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*SetEnabled) (SLAndroidEffectItf self, 77fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 785b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLboolean enabled); 7967bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 805b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*IsEnabled) (SLAndroidEffectItf self, 81fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 825b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLboolean *pEnabled); 8367bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 845b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*SendCommand) (SLAndroidEffectItf self, 85fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 865b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint32 command, 875b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint32 commandSize, 885b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi void *pCommandData, 895b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint32 *replySize, 905b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi void *pReplyData); 915b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi}; 925b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 935b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 945b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 95884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi/* Android Effect Send interface */ 96884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 97884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 98ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_ANDROIDEFFECTSEND; 99884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 100884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi/** Android Effect Send interface methods */ 101884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 102884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivistruct SLAndroidEffectSendItf_; 103884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivitypedef const struct SLAndroidEffectSendItf_ * const * SLAndroidEffectSendItf; 104884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 105884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivistruct SLAndroidEffectSendItf_ { 106884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*EnableEffectSend) ( 107fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 108fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 109884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLboolean enable, 110884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLmillibel initialLevel 111884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 112884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*IsEnabled) ( 113fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 114fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 115884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLboolean *pEnable 116884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 117884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*SetDirectLevel) ( 118fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 119884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLmillibel directLevel 120884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 121884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*GetDirectLevel) ( 122fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 123884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLmillibel *pDirectLevel 124884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 125884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*SetSendLevel) ( 126fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 127fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 128884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLmillibel sendLevel 129884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 130884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*GetSendLevel)( 131fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 132fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 133884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLmillibel *pSendLevel 134884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 135884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi}; 136884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 137884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 138884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 1395b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi/* Android Effect Capabilities interface */ 1405b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 1415b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 142ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_ANDROIDEFFECTCAPABILITIES; 1435b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 1445b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi/** Android Effect Capabilities interface methods */ 1455b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 1465b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivistruct SLAndroidEffectCapabilitiesItf_; 1475b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivitypedef const struct SLAndroidEffectCapabilitiesItf_ * const * SLAndroidEffectCapabilitiesItf; 1485b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 1495b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivistruct SLAndroidEffectCapabilitiesItf_ { 1505b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 1515b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*QueryNumEffects) (SLAndroidEffectCapabilitiesItf self, 1525b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint32 *pNumSupportedEffects); 15367bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 15467bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 1555b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*QueryEffect) (SLAndroidEffectCapabilitiesItf self, 1565b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint32 index, 1575b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLInterfaceID *pEffectType, 1585b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLInterfaceID *pEffectImplementation, 1597fc9e14cb8d840df7242d37b55acff0b58d269c7Jean-Michel Trivi SLchar *pName, 1605b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint16 *pNameSize); 16167bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi}; 16267bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 16367bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 164989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/*---------------------------------------------------------------------------*/ 16542309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi/* Android Configuration interface */ 16642309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi/*---------------------------------------------------------------------------*/ 167ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_ANDROIDCONFIGURATION; 16842309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 16942309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi/** Android Configuration interface methods */ 17042309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 17142309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivistruct SLAndroidConfigurationItf_; 17242309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivitypedef const struct SLAndroidConfigurationItf_ * const * SLAndroidConfigurationItf; 17342309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 17442309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivistruct SLAndroidConfigurationItf_ { 17542309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 17642309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi SLresult (*SetConfiguration) (SLAndroidConfigurationItf self, 17742309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi const SLchar *configKey, 17842309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi const void *pConfigValue, 17942309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi SLuint32 valueSize); 18042309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 18142309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi SLresult (*GetConfiguration) (SLAndroidConfigurationItf self, 18242309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi const SLchar *configKey, 18342309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi SLuint32 *pValueSize, 18442309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi void *pConfigValue 18542309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi ); 18642309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi}; 18742309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 18801e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 18901e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/*---------------------------------------------------------------------------*/ 19001e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/* Android Simple Buffer Queue Interface */ 19101e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/*---------------------------------------------------------------------------*/ 19201e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 193ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_ANDROIDSIMPLEBUFFERQUEUE; 19401e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 19501e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kastenstruct SLAndroidSimpleBufferQueueItf_; 19601e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kastentypedef const struct SLAndroidSimpleBufferQueueItf_ * const * SLAndroidSimpleBufferQueueItf; 19701e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 198ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastentypedef void (SLAPIENTRY *slAndroidSimpleBufferQueueCallback)( 19901e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLAndroidSimpleBufferQueueItf caller, 20001e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten void *pContext 20101e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten); 20201e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 20301e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/** Android simple buffer queue state **/ 20401e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 20501e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kastentypedef struct SLAndroidSimpleBufferQueueState_ { 20601e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLuint32 count; 20701e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLuint32 index; 20801e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten} SLAndroidSimpleBufferQueueState; 20901e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 21001e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 21101e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kastenstruct SLAndroidSimpleBufferQueueItf_ { 21201e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLresult (*Enqueue) ( 21301e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLAndroidSimpleBufferQueueItf self, 21401e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten const void *pBuffer, 21501e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLuint32 size 21601e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten ); 21701e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLresult (*Clear) ( 21801e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLAndroidSimpleBufferQueueItf self 21901e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten ); 22001e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLresult (*GetState) ( 22101e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLAndroidSimpleBufferQueueItf self, 22201e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLAndroidSimpleBufferQueueState *pState 22301e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten ); 22401e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLresult (*RegisterCallback) ( 22501e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLAndroidSimpleBufferQueueItf self, 22601e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten slAndroidSimpleBufferQueueCallback callback, 22701e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten void* pContext 22801e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten ); 22901e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten}; 23001e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 23101e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 23242309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi/*---------------------------------------------------------------------------*/ 233d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi/* Android Buffer Queue Interface */ 23428bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 23528bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi 23660ca9f9ef02f6e486c3338cb811f603dd7825c05Glenn Kastenextern SL_API const SLInterfaceID SL_IID_ANDROIDBUFFERQUEUESOURCE; 23728bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi 238fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivistruct SLAndroidBufferQueueItf_; 239fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivitypedef const struct SLAndroidBufferQueueItf_ * const * SLAndroidBufferQueueItf; 24028bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi 2411c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi#define SL_ANDROID_ITEMKEY_NONE ((SLuint32) 0x00000000) 2421c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi#define SL_ANDROID_ITEMKEY_EOS ((SLuint32) 0x00000001) 2431c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi#define SL_ANDROID_ITEMKEY_DISCONTINUITY ((SLuint32) 0x00000002) 2441c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi#define SL_ANDROID_ITEMKEY_BUFFERQUEUEEVENT ((SLuint32) 0x00000003) 2456f0f5640d190b0187c356eb53bd96d9f9e49da60Jean-Michel Trivi#define SL_ANDROID_ITEMKEY_FORMAT_CHANGE ((SLuint32) 0x00000004) 2461c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi 2471c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi#define SL_ANDROIDBUFFERQUEUEEVENT_NONE ((SLuint32) 0x00000000) 2481c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi#define SL_ANDROIDBUFFERQUEUEEVENT_PROCESSED ((SLuint32) 0x00000001) 249c3b82a293ed06001ba6d50f111608160c6065ef2Glenn Kasten#if 0 // reserved for future use 2501c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi#define SL_ANDROIDBUFFERQUEUEEVENT_UNREALIZED ((SLuint32) 0x00000002) 2511c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi#define SL_ANDROIDBUFFERQUEUEEVENT_CLEARED ((SLuint32) 0x00000004) 2521c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi#define SL_ANDROIDBUFFERQUEUEEVENT_STOPPED ((SLuint32) 0x00000008) 2531c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi#define SL_ANDROIDBUFFERQUEUEEVENT_ERROR ((SLuint32) 0x00000010) 2541c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi#define SL_ANDROIDBUFFERQUEUEEVENT_CONTENT_END ((SLuint32) 0x00000020) 255c3b82a293ed06001ba6d50f111608160c6065ef2Glenn Kasten#endif 256d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi 257d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivitypedef struct SLAndroidBufferItem_ { 258d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi SLuint32 itemKey; // identifies the item 259d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi SLuint32 itemSize; 260d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi SLuint8 itemData[0]; 261d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi} SLAndroidBufferItem; 262ad887a253969ac2017a1dbe062d0b76d505594c0Jean-Michel Trivi 263ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastentypedef SLresult (SLAPIENTRY *slAndroidBufferQueueCallback)( 264fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLAndroidBufferQueueItf caller,/* input */ 26537dc2fccf3f122b79ebd554de209d0a3c94ae161Jean-Michel Trivi void *pCallbackContext, /* input */ 26637dc2fccf3f122b79ebd554de209d0a3c94ae161Jean-Michel Trivi void *pBufferContext, /* input */ 26737dc2fccf3f122b79ebd554de209d0a3c94ae161Jean-Michel Trivi void *pBufferData, /* input */ 268d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi SLuint32 dataSize, /* input */ 269d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi SLuint32 dataUsed, /* input */ 270d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi const SLAndroidBufferItem *pItems,/* input */ 271d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi SLuint32 itemsLength /* input */ 27228bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi); 27328bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi 274d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivitypedef struct SLAndroidBufferQueueState_ { 275d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi SLuint32 count; 276d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi SLuint32 index; 277d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi} SLAndroidBufferQueueState; 278d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi 279fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivistruct SLAndroidBufferQueueItf_ { 28028bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi SLresult (*RegisterCallback) ( 281fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLAndroidBufferQueueItf self, 282fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi slAndroidBufferQueueCallback callback, 28337dc2fccf3f122b79ebd554de209d0a3c94ae161Jean-Michel Trivi void* pCallbackContext 28428bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi ); 285fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi 286fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLresult (*Clear) ( 287fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLAndroidBufferQueueItf self 288fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi ); 289fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi 290fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLresult (*Enqueue) ( 291fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLAndroidBufferQueueItf self, 29237dc2fccf3f122b79ebd554de209d0a3c94ae161Jean-Michel Trivi void *pBufferContext, 29337dc2fccf3f122b79ebd554de209d0a3c94ae161Jean-Michel Trivi void *pData, 294d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi SLuint32 dataLength, 295d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi const SLAndroidBufferItem *pItems, 296d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi SLuint32 itemsLength 297fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi ); 298fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi 299e7bfcdc183454ec959ff51342f0973cabba219b2Jean-Michel Trivi SLresult (*GetState) ( 300fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLAndroidBufferQueueItf self, 301e7bfcdc183454ec959ff51342f0973cabba219b2Jean-Michel Trivi SLAndroidBufferQueueState *pState 302fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi ); 303e7bfcdc183454ec959ff51342f0973cabba219b2Jean-Michel Trivi 3041c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi SLresult (*SetCallbackEventsMask) ( 3051c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi SLAndroidBufferQueueItf self, 3061c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi SLuint32 eventFlags 3071c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi ); 3081c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi 3091c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi SLresult (*GetCallbackEventsMask) ( 3101c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi SLAndroidBufferQueueItf self, 3111c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi SLuint32 *pEventFlags 3121c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi ); 31328bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi}; 31428bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi 31528bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi 31628bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 317989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/* Android File Descriptor Data Locator */ 318989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/*---------------------------------------------------------------------------*/ 31901e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 320989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/** Addendum to Data locator macros */ 32101e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten#define SL_DATALOCATOR_ANDROIDFD ((SLuint32) 0x800007BC) 322989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 3236c7bd2eda0843708a8f36773b13716ba479dd6fbJean-Michel Trivi#define SL_DATALOCATOR_ANDROIDFD_USE_FILE_SIZE ((SLAint64) 0xFFFFFFFFFFFFFFFFll) 324989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 325a7b79e766ec6d95e9236168c27461c2ebaef4659Glenn Kasten/** File Descriptor-based data locator definition, locatorType must be SL_DATALOCATOR_ANDROIDFD */ 326989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivitypedef struct SLDataLocator_AndroidFD_ { 327989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi SLuint32 locatorType; 328989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi SLint32 fd; 329989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi SLAint64 offset; 330989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi SLAint64 length; 331989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi} SLDataLocator_AndroidFD; 332989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 333989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 33401e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/*---------------------------------------------------------------------------*/ 33501e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/* Android Android Simple Buffer Queue Data Locator */ 33601e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/*---------------------------------------------------------------------------*/ 33701e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 33801e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/** Addendum to Data locator macros */ 33901e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten#define SL_DATALOCATOR_ANDROIDSIMPLEBUFFERQUEUE ((SLuint32) 0x800007BD) 34001e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 34101e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/** BufferQueue-based data locator definition where locatorType must be SL_DATALOCATOR_ANDROIDSIMPLEBUFFERQUEUE*/ 34201e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kastentypedef struct SLDataLocator_AndroidSimpleBufferQueue { 34301e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLuint32 locatorType; 34401e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLuint32 numBuffers; 34501e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten} SLDataLocator_AndroidSimpleBufferQueue; 34601e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 34701e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 348fe6f6b9ed3683119721618e1aeaa8c7d6baee188Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 349fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi/* Android Buffer Queue Data Locator */ 350fe6f6b9ed3683119721618e1aeaa8c7d6baee188Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 351fe6f6b9ed3683119721618e1aeaa8c7d6baee188Jean-Michel Trivi 352fe6f6b9ed3683119721618e1aeaa8c7d6baee188Jean-Michel Trivi/** Addendum to Data locator macros */ 353fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi#define SL_DATALOCATOR_ANDROIDBUFFERQUEUE ((SLuint32) 0x800007BE) 354fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi 355fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi/** Android Buffer Queue-based data locator definition, 356fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi * locatorType must be SL_DATALOCATOR_ANDROIDBUFFERQUEUE */ 357fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivitypedef struct SLDataLocator_AndroidBufferQueue_ { 358fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLuint32 locatorType; 359d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi SLuint32 numBuffers; 360fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi} SLDataLocator_AndroidBufferQueue; 361fe6f6b9ed3683119721618e1aeaa8c7d6baee188Jean-Michel Trivi 362c3b82a293ed06001ba6d50f111608160c6065ef2Glenn Kasten/** 363c3b82a293ed06001ba6d50f111608160c6065ef2Glenn Kasten * MIME types required for data in Android Buffer Queues 364c3b82a293ed06001ba6d50f111608160c6065ef2Glenn Kasten */ 365c3b82a293ed06001ba6d50f111608160c6065ef2Glenn Kasten#define SL_ANDROID_MIME_AACADTS ((SLchar *) "audio/vnd.android.aac-adts") 366c3b82a293ed06001ba6d50f111608160c6065ef2Glenn Kasten 367f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean/*---------------------------------------------------------------------------*/ 368f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean/* Acoustic Echo Cancellation (AEC) Interface */ 369f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean/* --------------------------------------------------------------------------*/ 370f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLeanextern SL_API const SLInterfaceID SL_IID_ANDROIDACOUSTICECHOCANCELLATION; 371f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean 372f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLeanstruct SLAndroidAcousticEchoCancellationItf_; 373f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLeantypedef const struct SLAndroidAcousticEchoCancellationItf_ * const * 374f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean SLAndroidAcousticEchoCancellationItf; 375f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean 376f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLeanstruct SLAndroidAcousticEchoCancellationItf_ { 377f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean SLresult (*SetEnabled)( 378f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean SLAndroidAcousticEchoCancellationItf self, 379f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean SLboolean enabled 380f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean ); 381f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean SLresult (*IsEnabled)( 382f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean SLAndroidAcousticEchoCancellationItf self, 383f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean SLboolean *pEnabled 384f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean ); 385f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean SLresult (*IsAvailable)( 386f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean SLAndroidAcousticEchoCancellationItf self, 387f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean SLboolean *pEnabled 388f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean ); 389f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean}; 390f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean 391f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean/*---------------------------------------------------------------------------*/ 392f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean/* Automatic Gain Control (ACC) Interface */ 393f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean/* --------------------------------------------------------------------------*/ 394f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLeanextern SL_API const SLInterfaceID SL_IID_ANDROIDAUTOMATICGAINCONTROL; 395f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean 396f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLeanstruct SLAndroidAutomaticGainControlItf_; 397f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLeantypedef const struct SLAndroidAutomaticGainControlItf_ * const * SLAndroidAutomaticGainControlItf; 398f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean 399f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLeanstruct SLAndroidAutomaticGainControlItf_ { 400f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean SLresult (*SetEnabled)( 401f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean SLAndroidAutomaticGainControlItf self, 402f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean SLboolean enabled 403f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean ); 404f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean SLresult (*IsEnabled)( 405f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean SLAndroidAutomaticGainControlItf self, 406f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean SLboolean *pEnabled 407f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean ); 408f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean SLresult (*IsAvailable)( 409f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean SLAndroidAutomaticGainControlItf self, 410f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean SLboolean *pEnabled 411f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean ); 412f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean}; 413f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean 414f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean/*---------------------------------------------------------------------------*/ 415f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean/* Noise Suppression Interface */ 416f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean/* --------------------------------------------------------------------------*/ 417f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLeanextern SL_API const SLInterfaceID SL_IID_ANDROIDNOISESUPPRESSION; 418f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean 419f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLeanstruct SLAndroidNoiseSuppressionItf_; 420f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLeantypedef const struct SLAndroidNoiseSuppressionItf_ * const * SLAndroidNoiseSuppressionItf; 421f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean 422f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLeanstruct SLAndroidNoiseSuppressionItf_ { 423f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean SLresult (*SetEnabled)( 424f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean SLAndroidNoiseSuppressionItf self, 425f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean SLboolean enabled 426f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean ); 427f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean SLresult (*IsEnabled)( 428f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean SLAndroidNoiseSuppressionItf self, 429f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean SLboolean *pEnabled 430f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean ); 431f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean SLresult (*IsAvailable)( 432f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean SLAndroidNoiseSuppressionItf self, 433f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean SLboolean *pEnabled 434f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean ); 435f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean}; 436f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean 437a7b79e766ec6d95e9236168c27461c2ebaef4659Glenn Kasten#ifdef __cplusplus 43805ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi} 43905ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi#endif /* __cplusplus */ 44005ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi 44105ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi#endif /* OPENSL_ES_ANDROID_H_ */ 442