OpenSLES_Android.h revision 5b09aa864215690580b18eb802927e8cc7eb4861
13a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren/* 23a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren * Copyright (C) 2010 The Android Open Source Project 33a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren * 43a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren * Licensed under the Apache License, Version 2.0 (the "License"); 53a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren * you may not use this file except in compliance with the License. 63a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren * You may obtain a copy of the License at 73a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren * 83a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren * http://www.apache.org/licenses/LICENSE-2.0 93a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren * 103a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren * Unless required by applicable law or agreed to in writing, software 113a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren * distributed under the License is distributed on an "AS IS" BASIS, 123a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren * See the License for the specific language governing permissions and 143a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren * limitations under the License. 153a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren */ 163a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren 173a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren#ifndef OPENSL_ES_ANDROID_H_ 183a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren#define OPENSL_ES_ANDROID_H_ 1954dfa5d90e49037eba05f5278076b45428b2bd11Chris Wren 2054dfa5d90e49037eba05f5278076b45428b2bd11Chris Wren#ifdef __cplusplus 213a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wrenextern "C" { 223a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren 233a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren/*---------------------------------------------------------------------------*/ 243a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren/* Android common types */ 253a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren/*---------------------------------------------------------------------------*/ 263a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren 273a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wrentypedef sl_int64_t SLAint64; /* 64 bit signed integer */ 283a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren 293a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren 303a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren/*---------------------------------------------------------------------------*/ 31d84e5937468f6ebf2313ccd5ae54d5405f5e9cdeChris Wren/* Android Stream Type interface */ 32d84e5937468f6ebf2313ccd5ae54d5405f5e9cdeChris Wren/*---------------------------------------------------------------------------*/ 333a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren 343a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren/** Stream types */ 35d84e5937468f6ebf2313ccd5ae54d5405f5e9cdeChris Wren// FIXME verify those are all the ones we need 363a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren// FIXME verify we want to use the same values as in android::AudioSystem 373a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren/* same as android.media.AudioManager.STREAM_VOICE_CALL */ 383a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren#define SL_ANDROID_STREAM_VOICE ((SLuint32) 0x00000000) 393a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren/* same as android.media.AudioManager.STREAM_SYSTEM */ 403a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren#define SL_ANDROID_STREAM_SYSTEM ((SLuint32) 0x00000001) 413a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren/* same as android.media.AudioManager.STREAM_RING */ 423a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren#define SL_ANDROID_STREAM_RING ((SLuint32) 0x00000002) 433a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren/* same as android.media.AudioManager.STREAM_MUSIC */ 443a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren#define SL_ANDROID_STREAM_MEDIA ((SLuint32) 0x00000003) 453a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren/* same as android.media.AudioManager.STREAM_ALARM */ 463a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren#define SL_ANDROID_STREAM_ALARM ((SLuint32) 0x00000004) 473a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren/* same as android.media.AudioManager.STREAM_NOTIFICATION */ 483a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren#define SL_ANDROID_STREAM_NOTIFICATION ((SLuint32) 0x00000005) 493a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren 503a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren 513a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wrenextern SLAPIENTRY const SLInterfaceID SL_IID_ANDROIDSTREAMTYPE; 523a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren 533a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren/** Android Stream Type interface methods */ 543a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren 553a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wrenstruct SLAndroidStreamTypeItf_; 56ed5cc0e1f7648962f5c93e1277d282be75bcd537Chris Wrentypedef const struct SLAndroidStreamTypeItf_ * const * SLAndroidStreamTypeItf; 573a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren 583a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren 593a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wrenstruct SLAndroidStreamTypeItf_ { 603a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren SLresult (*SetStreamType) ( 613a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren SLAndroidStreamTypeItf self, 623a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren SLuint32 type 633a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren ); 643a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren SLresult (*GetStreamType) ( 653a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren SLAndroidStreamTypeItf self, 663a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren SLuint32 *pType 673a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren ); 683a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren}; 693a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren 703a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren 713a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren/*---------------------------------------------------------------------------*/ 723a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren/* Android Effect interface */ 733a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren/*---------------------------------------------------------------------------*/ 743a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren 753a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wrenextern SLAPIENTRY const SLInterfaceID SL_IID_ANDROIDEFFECT; 763a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren 773a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren/** Android Effect interface methods */ 783a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren 793a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wrenstruct SLAndroidEffectItf_; 803a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wrentypedef const struct SLAndroidEffectItf_ * const * SLAndroidEffectItf; 813a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren 82d6479ec5eec13914f656f6be996d95fe1610fd57Alan Viverette 833a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wrenstruct SLAndroidEffectItf_ { 843a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren 853a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren SLresult (*CreateEffect) (SLAndroidEffectItf self, 86d6479ec5eec13914f656f6be996d95fe1610fd57Alan Viverette SLInterfaceID effectId); 873a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren 883a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren SLresult (*ReleaseEffect) (SLAndroidEffectItf self, 89617feb99a06e7ffb3894e86a286bf30e085f321aAlan Viverette SLInterfaceID effectId); 90d6479ec5eec13914f656f6be996d95fe1610fd57Alan Viverette 91617feb99a06e7ffb3894e86a286bf30e085f321aAlan Viverette SLresult (*SetEnabled) (SLAndroidEffectItf self, 92617feb99a06e7ffb3894e86a286bf30e085f321aAlan Viverette SLInterfaceID effectId, 93617feb99a06e7ffb3894e86a286bf30e085f321aAlan Viverette SLboolean enabled); 94617feb99a06e7ffb3894e86a286bf30e085f321aAlan Viverette 95617feb99a06e7ffb3894e86a286bf30e085f321aAlan Viverette SLresult (*IsEnabled) (SLAndroidEffectItf self, 963a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren SLInterfaceID effectId, 973a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren SLboolean *pEnabled); 983a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren 993a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren SLresult (*SendCommand) (SLAndroidEffectItf self, 1003a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren SLInterfaceID effectId, 1013a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren SLuint32 command, 102d84e5937468f6ebf2313ccd5ae54d5405f5e9cdeChris Wren SLuint32 commandSize, 103d84e5937468f6ebf2313ccd5ae54d5405f5e9cdeChris Wren void *pCommandData, 104d84e5937468f6ebf2313ccd5ae54d5405f5e9cdeChris Wren SLuint32 *replySize, 105d84e5937468f6ebf2313ccd5ae54d5405f5e9cdeChris Wren void *pReplyData); 106d84e5937468f6ebf2313ccd5ae54d5405f5e9cdeChris Wren}; 107d84e5937468f6ebf2313ccd5ae54d5405f5e9cdeChris Wren 108d84e5937468f6ebf2313ccd5ae54d5405f5e9cdeChris Wren 109d84e5937468f6ebf2313ccd5ae54d5405f5e9cdeChris Wren/*---------------------------------------------------------------------------*/ 1103a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren/* Android Effect Capabilities interface */ 1113a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren/*---------------------------------------------------------------------------*/ 1123a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren 1133a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wrenextern SLAPIENTRY const SLInterfaceID SL_IID_ANDROIDEFFECTCAPABILITIES; 1143a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren 1153a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren/** Android Effect Capabilities interface methods */ 1163a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren 1173a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wrenstruct SLAndroidEffectCapabilitiesItf_; 1183a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wrentypedef const struct SLAndroidEffectCapabilitiesItf_ * const * SLAndroidEffectCapabilitiesItf; 1193a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren 1203a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren 1213a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wrenstruct SLAndroidEffectCapabilitiesItf_ { 1223a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren 1233a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren SLresult (*QueryNumEffects) (SLAndroidEffectCapabilitiesItf self, 1243a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren SLuint32 *pNumSupportedEffects); 1253a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren 1263a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren 1273a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren SLresult (*QueryEffect) (SLAndroidEffectCapabilitiesItf self, 1283a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren SLuint32 index, 1293a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren SLInterfaceID *pEffectType, 1303a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren SLInterfaceID *pEffectImplementation, 1313a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren const SLchar *pName, 1323a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren SLuint16 *pNameSize); 1333a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren}; 1343a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren 1353a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren 1363a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren/*---------------------------------------------------------------------------*/ 1373a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren/* Android File Descriptor Data Locator */ 1383a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren/*---------------------------------------------------------------------------*/ 1393a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren/** Addendum to Data locator macros */ 1403a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren#define SL_DATALOCATOR_ANDROIDFD ((SLuint32) 0x00000009) 1413a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren 1423a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren#define SL_DATALOCATOR_ANDROIDFD_USE_FILE_SIZE ((SLAint64) 0xFFFFFFFFFFFFFFFFll) 1433a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren 1443a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren/** File Descriptor-based data locator definition where locatorType must be SL_DATALOCATOR_ANDROIDFD */ 1453a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wrentypedef struct SLDataLocator_AndroidFD_ { 1463a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren SLuint32 locatorType; 1473a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren SLint32 fd; 1483a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren SLAint64 offset; 1493a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren SLAint64 length; 1503a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren} SLDataLocator_AndroidFD; 1513a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren 1523a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren 1533a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren} 1543a59d6e26dbec61ede7d6f87d966698e27c91d78Chris Wren#endif /* __cplusplus */ 155c7088da5858969325c580989d74e0f00cb6e0be1Dan Sandler 156c7088da5858969325c580989d74e0f00cb6e0be1Dan Sandler#endif /* OPENSL_ES_ANDROID_H_ */ 157c7088da5858969325c580989d74e0f00cb6e0be1Dan Sandler