OpenSLES_Android.h revision 42309377d1ed17b557fab30f1bf26b8ba31a96fd
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,
84fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi            SLInterfaceID effectImplementationId);
8567bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi
865b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi    SLresult (*ReleaseEffect) (SLAndroidEffectItf self,
87fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi            SLInterfaceID effectImplementationId);
8867bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi
895b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi    SLresult (*SetEnabled) (SLAndroidEffectItf self,
90fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi            SLInterfaceID effectImplementationId,
915b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi            SLboolean enabled);
9267bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi
935b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi    SLresult (*IsEnabled) (SLAndroidEffectItf self,
94fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi            SLInterfaceID effectImplementationId,
955b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi            SLboolean *pEnabled);
9667bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi
975b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi    SLresult (*SendCommand) (SLAndroidEffectItf self,
98fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi            SLInterfaceID effectImplementationId,
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) (
120fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi        SLAndroidEffectSendItf self,
121fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi        SLInterfaceID effectImplementationId,
122884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi        SLboolean enable,
123884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi        SLmillibel initialLevel
124884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi    );
125884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi    SLresult (*IsEnabled) (
126fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi        SLAndroidEffectSendItf self,
127fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi        SLInterfaceID effectImplementationId,
128884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi        SLboolean *pEnable
129884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi    );
130884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi    SLresult (*SetDirectLevel) (
131fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi        SLAndroidEffectSendItf self,
132884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi        SLmillibel directLevel
133884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi    );
134884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi    SLresult (*GetDirectLevel) (
135fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi        SLAndroidEffectSendItf self,
136884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi        SLmillibel *pDirectLevel
137884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi    );
138884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi    SLresult (*SetSendLevel) (
139fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi        SLAndroidEffectSendItf self,
140fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi        SLInterfaceID effectImplementationId,
141884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi        SLmillibel sendLevel
142884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi    );
143884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi    SLresult (*GetSendLevel)(
144fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi        SLAndroidEffectSendItf self,
145fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi        SLInterfaceID effectImplementationId,
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/*---------------------------------------------------------------------------*/
17842309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi/* Android Configuration interface                                           */
17942309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi/*---------------------------------------------------------------------------*/
18042309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Triviextern SLAPIENTRY const SLInterfaceID SL_IID_ANDROIDCONFIGURATION;
18142309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi
18242309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi/** Android Configuration interface methods */
18342309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi
18442309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivistruct SLAndroidConfigurationItf_;
18542309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivitypedef const struct SLAndroidConfigurationItf_ * const * SLAndroidConfigurationItf;
18642309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi
18742309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivistruct SLAndroidConfigurationItf_ {
18842309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi
18942309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi    SLresult (*SetConfiguration) (SLAndroidConfigurationItf self,
19042309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi            const SLchar *configKey,
19142309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi            const void *pConfigValue,
19242309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi            SLuint32 valueSize);
19342309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi
19442309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi    SLresult (*GetConfiguration) (SLAndroidConfigurationItf self,
19542309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi           const SLchar *configKey,
19642309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi           SLuint32 *pValueSize,
19742309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi           void *pConfigValue
19842309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi       );
19942309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi};
20042309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi
20142309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi/*---------------------------------------------------------------------------*/
202989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/* Android File Descriptor Data Locator                                      */
203989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/*---------------------------------------------------------------------------*/
204989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/** Addendum to Data locator macros  */
205989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi#define SL_DATALOCATOR_ANDROIDFD        ((SLuint32) 0x00000009)
206989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi
2076c7bd2eda0843708a8f36773b13716ba479dd6fbJean-Michel Trivi#define SL_DATALOCATOR_ANDROIDFD_USE_FILE_SIZE ((SLAint64) 0xFFFFFFFFFFFFFFFFll)
208989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi
209989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/** File Descriptor-based data locator definition where locatorType must be SL_DATALOCATOR_ANDROIDFD */
210989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivitypedef struct SLDataLocator_AndroidFD_ {
211989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi    SLuint32        locatorType;
212989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi    SLint32         fd;
213989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi    SLAint64        offset;
214989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi    SLAint64        length;
215989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi} SLDataLocator_AndroidFD;
216989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi
217989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi
21805ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi}
21905ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi#endif /* __cplusplus */
22005ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi
22105ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi#endif /* OPENSL_ES_ANDROID_H_ */
222