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