OpenSLES_Android.h revision 6c7bd2eda0843708a8f36773b13716ba479dd6fb
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 Trivi
5905ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivistruct SLAndroidStreamTypeItf_ {
6005ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi    SLresult (*SetStreamType) (
6105ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi        SLAndroidStreamTypeItf self,
6205ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi        SLuint32 type
6305ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi    );
6405ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi    SLresult (*GetStreamType) (
6505ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi        SLAndroidStreamTypeItf self,
6605ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi        SLuint32 *pType
6705ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi    );
6805ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi};
6905ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi
70989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/*---------------------------------------------------------------------------*/
71989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/* Android File Descriptor Data Locator                                      */
72989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/*---------------------------------------------------------------------------*/
73989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/** Addendum to Data locator macros  */
74989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi#define SL_DATALOCATOR_ANDROIDFD        ((SLuint32) 0x00000009)
75989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi
766c7bd2eda0843708a8f36773b13716ba479dd6fbJean-Michel Trivi#define SL_DATALOCATOR_ANDROIDFD_USE_FILE_SIZE ((SLAint64) 0xFFFFFFFFFFFFFFFFll)
77989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi
78989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/** File Descriptor-based data locator definition where locatorType must be SL_DATALOCATOR_ANDROIDFD */
79989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivitypedef struct SLDataLocator_AndroidFD_ {
80989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi    SLuint32        locatorType;
81989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi    SLint32         fd;
82989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi    SLAint64        offset;
83989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi    SLAint64        length;
84989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi} SLDataLocator_AndroidFD;
85989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi
86989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi
8705ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi}
8805ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi#endif /* __cplusplus */
8905ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi
9005ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi#endif /* OPENSL_ES_ANDROID_H_ */
91