OpenSLES_Android.h revision 7fc9e14cb8d840df7242d37b55acff0b58d269c7
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 2005ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi#ifdef __cplusplus 2105ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Triviextern "C" { 2205ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi 2305ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 24989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/* Android common types */ 25989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/*---------------------------------------------------------------------------*/ 26989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 27989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivitypedef sl_int64_t SLAint64; /* 64 bit signed integer */ 28989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 29989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 30989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/*---------------------------------------------------------------------------*/ 3167bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi/* Android Effect interface */ 3267bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 3367bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 345b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Triviextern SLAPIENTRY const SLInterfaceID SL_IID_ANDROIDEFFECT; 3567bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 3667bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi/** Android Effect interface methods */ 3767bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 385b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivistruct SLAndroidEffectItf_; 395b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivitypedef const struct SLAndroidEffectItf_ * const * SLAndroidEffectItf; 4067bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 415b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivistruct SLAndroidEffectItf_ { 4267bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 435b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*CreateEffect) (SLAndroidEffectItf self, 44fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId); 4567bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 465b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*ReleaseEffect) (SLAndroidEffectItf self, 47fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId); 4867bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 495b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*SetEnabled) (SLAndroidEffectItf self, 50fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 515b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLboolean enabled); 5267bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 535b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*IsEnabled) (SLAndroidEffectItf self, 54fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 555b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLboolean *pEnabled); 5667bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 575b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*SendCommand) (SLAndroidEffectItf self, 58fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 595b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint32 command, 605b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint32 commandSize, 615b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi void *pCommandData, 625b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint32 *replySize, 635b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi void *pReplyData); 645b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi}; 655b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 665b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 675b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 68884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi/* Android Effect Send interface */ 69884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 70884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 71884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Triviextern SLAPIENTRY const SLInterfaceID SL_IID_ANDROIDEFFECTSEND; 72884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 73884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi/** Android Effect Send interface methods */ 74884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 75884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivistruct SLAndroidEffectSendItf_; 76884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivitypedef const struct SLAndroidEffectSendItf_ * const * SLAndroidEffectSendItf; 77884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 78884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivistruct SLAndroidEffectSendItf_ { 79884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*EnableEffectSend) ( 80fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 81fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 82884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLboolean enable, 83884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLmillibel initialLevel 84884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 85884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*IsEnabled) ( 86fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 87fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 88884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLboolean *pEnable 89884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 90884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*SetDirectLevel) ( 91fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 92884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLmillibel directLevel 93884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 94884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*GetDirectLevel) ( 95fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 96884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLmillibel *pDirectLevel 97884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 98884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*SetSendLevel) ( 99fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 100fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 101884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLmillibel sendLevel 102884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 103884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*GetSendLevel)( 104fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 105fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 106884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLmillibel *pSendLevel 107884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 108884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi}; 109884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 110884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 111884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 1125b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi/* Android Effect Capabilities interface */ 1135b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 1145b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 1155b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Triviextern SLAPIENTRY const SLInterfaceID SL_IID_ANDROIDEFFECTCAPABILITIES; 1165b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 1175b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi/** Android Effect Capabilities interface methods */ 1185b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 1195b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivistruct SLAndroidEffectCapabilitiesItf_; 1205b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivitypedef const struct SLAndroidEffectCapabilitiesItf_ * const * SLAndroidEffectCapabilitiesItf; 1215b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 1225b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivistruct SLAndroidEffectCapabilitiesItf_ { 1235b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 1245b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*QueryNumEffects) (SLAndroidEffectCapabilitiesItf self, 1255b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint32 *pNumSupportedEffects); 12667bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 12767bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 1285b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*QueryEffect) (SLAndroidEffectCapabilitiesItf self, 1295b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint32 index, 1305b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLInterfaceID *pEffectType, 1315b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLInterfaceID *pEffectImplementation, 1327fc9e14cb8d840df7242d37b55acff0b58d269c7Jean-Michel Trivi SLchar *pName, 1335b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint16 *pNameSize); 13467bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi}; 13567bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 13667bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 137989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/*---------------------------------------------------------------------------*/ 13842309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi/* Android Configuration interface */ 13942309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi/*---------------------------------------------------------------------------*/ 14042309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Triviextern SLAPIENTRY const SLInterfaceID SL_IID_ANDROIDCONFIGURATION; 14142309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 14242309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi/** Android Configuration interface methods */ 14342309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 14442309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivistruct SLAndroidConfigurationItf_; 14542309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivitypedef const struct SLAndroidConfigurationItf_ * const * SLAndroidConfigurationItf; 14642309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 14742309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivistruct SLAndroidConfigurationItf_ { 14842309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 14942309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi SLresult (*SetConfiguration) (SLAndroidConfigurationItf self, 15042309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi const SLchar *configKey, 15142309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi const void *pConfigValue, 15242309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi SLuint32 valueSize); 15342309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 15442309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi SLresult (*GetConfiguration) (SLAndroidConfigurationItf self, 15542309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi const SLchar *configKey, 15642309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi SLuint32 *pValueSize, 15742309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi void *pConfigValue 15842309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi ); 15942309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi}; 16042309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 16142309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi/*---------------------------------------------------------------------------*/ 162989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/* Android File Descriptor Data Locator */ 163989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/*---------------------------------------------------------------------------*/ 164989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/** Addendum to Data locator macros */ 1657fc9e14cb8d840df7242d37b55acff0b58d269c7Jean-Michel Trivi#define SL_DATALOCATOR_ANDROIDFD ((SLuint32) 0x800007BD) 166989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 1676c7bd2eda0843708a8f36773b13716ba479dd6fbJean-Michel Trivi#define SL_DATALOCATOR_ANDROIDFD_USE_FILE_SIZE ((SLAint64) 0xFFFFFFFFFFFFFFFFll) 168989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 169989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/** File Descriptor-based data locator definition where locatorType must be SL_DATALOCATOR_ANDROIDFD */ 170989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivitypedef struct SLDataLocator_AndroidFD_ { 171989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi SLuint32 locatorType; 172989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi SLint32 fd; 173989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi SLAint64 offset; 174989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi SLAint64 length; 175989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi} SLDataLocator_AndroidFD; 176989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 177989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 17805ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi} 17905ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi#endif /* __cplusplus */ 18005ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi 18105ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi#endif /* OPENSL_ES_ANDROID_H_ */ 182