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