OpenSLES_Android.h revision 884ed8e6ccaf395f7b57e1cf16c2779c651eb800
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/*---------------------------------------------------------------------------*/ 3105ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi/* Android Stream Type interface */ 3205ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 3305ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi 3405ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi/** Stream types */ 3505ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi// FIXME verify those are all the ones we need 3605ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi// FIXME verify we want to use the same values as in android::AudioSystem 3705ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi/* same as android.media.AudioManager.STREAM_VOICE_CALL */ 3805ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi#define SL_ANDROID_STREAM_VOICE ((SLuint32) 0x00000000) 3905ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi/* same as android.media.AudioManager.STREAM_SYSTEM */ 4005ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi#define SL_ANDROID_STREAM_SYSTEM ((SLuint32) 0x00000001) 4105ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi/* same as android.media.AudioManager.STREAM_RING */ 4205ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi#define SL_ANDROID_STREAM_RING ((SLuint32) 0x00000002) 4305ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi/* same as android.media.AudioManager.STREAM_MUSIC */ 4405ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi#define SL_ANDROID_STREAM_MEDIA ((SLuint32) 0x00000003) 4505ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi/* same as android.media.AudioManager.STREAM_ALARM */ 4605ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi#define SL_ANDROID_STREAM_ALARM ((SLuint32) 0x00000004) 4705ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi/* same as android.media.AudioManager.STREAM_NOTIFICATION */ 4805ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi#define SL_ANDROID_STREAM_NOTIFICATION ((SLuint32) 0x00000005) 4905ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi 5005ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi 5105ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Triviextern SLAPIENTRY const SLInterfaceID SL_IID_ANDROIDSTREAMTYPE; 5205ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi 5305ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi/** Android Stream Type interface methods */ 5405ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi 5505ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivistruct SLAndroidStreamTypeItf_; 5605ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivitypedef const struct SLAndroidStreamTypeItf_ * const * SLAndroidStreamTypeItf; 5705ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi 5805ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivistruct SLAndroidStreamTypeItf_ { 5905ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi SLresult (*SetStreamType) ( 6005ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi SLAndroidStreamTypeItf self, 6105ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi SLuint32 type 6205ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi ); 6305ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi SLresult (*GetStreamType) ( 6405ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi SLAndroidStreamTypeItf self, 6505ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi SLuint32 *pType 6605ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi ); 6705ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi}; 6805ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi 6967bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 7067bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 7167bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi/* Android Effect interface */ 7267bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 7367bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 745b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Triviextern SLAPIENTRY const SLInterfaceID SL_IID_ANDROIDEFFECT; 7567bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 7667bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi/** Android Effect interface methods */ 7767bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 785b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivistruct SLAndroidEffectItf_; 795b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivitypedef const struct SLAndroidEffectItf_ * const * SLAndroidEffectItf; 8067bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 815b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivistruct SLAndroidEffectItf_ { 8267bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 835b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*CreateEffect) (SLAndroidEffectItf self, 845b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLInterfaceID effectId); 8567bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 865b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*ReleaseEffect) (SLAndroidEffectItf self, 875b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLInterfaceID effectId); 8867bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 895b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*SetEnabled) (SLAndroidEffectItf self, 905b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLInterfaceID effectId, 915b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLboolean enabled); 9267bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 935b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*IsEnabled) (SLAndroidEffectItf self, 945b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLInterfaceID effectId, 955b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLboolean *pEnabled); 9667bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 975b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*SendCommand) (SLAndroidEffectItf self, 985b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLInterfaceID effectId, 995b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint32 command, 1005b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint32 commandSize, 1015b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi void *pCommandData, 1025b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint32 *replySize, 1035b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi void *pReplyData); 1045b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi}; 1055b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 1065b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 1075b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 108884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi/* Android Effect Send interface */ 109884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 110884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 111884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Triviextern SLAPIENTRY const SLInterfaceID SL_IID_ANDROIDEFFECTSEND; 112884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 113884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi/** Android Effect Send interface methods */ 114884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 115884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivistruct SLAndroidEffectSendItf_; 116884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivitypedef const struct SLAndroidEffectSendItf_ * const * SLAndroidEffectSendItf; 117884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 118884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivistruct SLAndroidEffectSendItf_ { 119884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*EnableEffectSend) ( 120884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLEffectSendItf self, 121884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLInterfaceID effectId, 122884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLboolean enable, 123884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLmillibel initialLevel 124884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 125884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*IsEnabled) ( 126884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLEffectSendItf self, 127884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLInterfaceID effectId, 128884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLboolean *pEnable 129884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 130884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*SetDirectLevel) ( 131884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLEffectSendItf self, 132884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLmillibel directLevel 133884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 134884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*GetDirectLevel) ( 135884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLEffectSendItf self, 136884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLmillibel *pDirectLevel 137884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 138884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*SetSendLevel) ( 139884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLEffectSendItf self, 140884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLInterfaceID effectId, 141884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLmillibel sendLevel 142884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 143884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*GetSendLevel)( 144884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLEffectSendItf self, 145884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLInterfaceID effectId, 146884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLmillibel *pSendLevel 147884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 148884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi}; 149884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 150884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 151884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 1525b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi/* Android Effect Capabilities interface */ 1535b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 1545b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 1555b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Triviextern SLAPIENTRY const SLInterfaceID SL_IID_ANDROIDEFFECTCAPABILITIES; 1565b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 1575b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi/** Android Effect Capabilities interface methods */ 1585b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 1595b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivistruct SLAndroidEffectCapabilitiesItf_; 1605b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivitypedef const struct SLAndroidEffectCapabilitiesItf_ * const * SLAndroidEffectCapabilitiesItf; 1615b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 1625b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivistruct SLAndroidEffectCapabilitiesItf_ { 1635b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 1645b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*QueryNumEffects) (SLAndroidEffectCapabilitiesItf self, 1655b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint32 *pNumSupportedEffects); 16667bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 16767bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 1685b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*QueryEffect) (SLAndroidEffectCapabilitiesItf self, 1695b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint32 index, 1705b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLInterfaceID *pEffectType, 1715b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLInterfaceID *pEffectImplementation, 1725b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi const SLchar *pName, 1735b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint16 *pNameSize); 17467bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi}; 17567bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 17667bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 177989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/*---------------------------------------------------------------------------*/ 178989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/* Android File Descriptor Data Locator */ 179989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/*---------------------------------------------------------------------------*/ 180989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/** Addendum to Data locator macros */ 181989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi#define SL_DATALOCATOR_ANDROIDFD ((SLuint32) 0x00000009) 182989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 1836c7bd2eda0843708a8f36773b13716ba479dd6fbJean-Michel Trivi#define SL_DATALOCATOR_ANDROIDFD_USE_FILE_SIZE ((SLAint64) 0xFFFFFFFFFFFFFFFFll) 184989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 185989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/** File Descriptor-based data locator definition where locatorType must be SL_DATALOCATOR_ANDROIDFD */ 186989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivitypedef struct SLDataLocator_AndroidFD_ { 187989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi SLuint32 locatorType; 188989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi SLint32 fd; 189989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi SLAint64 offset; 190989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi SLAint64 length; 191989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi} SLDataLocator_AndroidFD; 192989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 193989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 19405ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi} 19505ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi#endif /* __cplusplus */ 19605ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi 19705ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi#endif /* OPENSL_ES_ANDROID_H_ */ 198