OpenSLES_Android.h revision 60ca9f9ef02f6e486c3338cb811f603dd7825c05
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 2068c8a1b6deea46eeca57848768a92e96d583aaddJean-Michel Trivi#include "OpenSLES_AndroidConfiguration.h" 2168c8a1b6deea46eeca57848768a92e96d583aaddJean-Michel Trivi#include "OpenSLES_AndroidMetadata.h" 2268c8a1b6deea46eeca57848768a92e96d583aaddJean-Michel Trivi 2305ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi#ifdef __cplusplus 2405ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Triviextern "C" { 25a7b79e766ec6d95e9236168c27461c2ebaef4659Glenn Kasten#endif 2605ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi 2705ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 28989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/* Android common types */ 29989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/*---------------------------------------------------------------------------*/ 30989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 31e9236d046fdb5cac0696c42e03443a2439188146Jean-Michel Trivitypedef sl_int64_t SLAint64; /* 64 bit signed integer */ 32989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 33e9236d046fdb5cac0696c42e03443a2439188146Jean-Michel Trivitypedef sl_uint64_t SLAuint64; /* 64 bit unsigned integer */ 34989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 35989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/*---------------------------------------------------------------------------*/ 3667bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi/* Android Effect interface */ 3767bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 3867bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 39ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_ANDROIDEFFECT; 4067bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 4167bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi/** Android Effect interface methods */ 4267bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 435b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivistruct SLAndroidEffectItf_; 445b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivitypedef const struct SLAndroidEffectItf_ * const * SLAndroidEffectItf; 4567bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 465b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivistruct SLAndroidEffectItf_ { 4767bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 485b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*CreateEffect) (SLAndroidEffectItf self, 49fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId); 5067bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 515b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*ReleaseEffect) (SLAndroidEffectItf self, 52fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId); 5367bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 545b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*SetEnabled) (SLAndroidEffectItf self, 55fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 565b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLboolean enabled); 5767bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 585b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*IsEnabled) (SLAndroidEffectItf self, 59fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 605b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLboolean *pEnabled); 6167bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 625b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*SendCommand) (SLAndroidEffectItf self, 63fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 645b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint32 command, 655b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint32 commandSize, 665b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi void *pCommandData, 675b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint32 *replySize, 685b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi void *pReplyData); 695b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi}; 705b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 715b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 725b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 73884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi/* Android Effect Send interface */ 74884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 75884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 76ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_ANDROIDEFFECTSEND; 77884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 78884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi/** Android Effect Send interface methods */ 79884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 80884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivistruct SLAndroidEffectSendItf_; 81884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivitypedef const struct SLAndroidEffectSendItf_ * const * SLAndroidEffectSendItf; 82884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 83884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivistruct SLAndroidEffectSendItf_ { 84884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*EnableEffectSend) ( 85fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 86fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 87884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLboolean enable, 88884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLmillibel initialLevel 89884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 90884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*IsEnabled) ( 91fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 92fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 93884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLboolean *pEnable 94884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 95884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*SetDirectLevel) ( 96fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 97884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLmillibel directLevel 98884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 99884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*GetDirectLevel) ( 100fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 101884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLmillibel *pDirectLevel 102884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 103884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*SetSendLevel) ( 104fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 105fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 106884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLmillibel sendLevel 107884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 108884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*GetSendLevel)( 109fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 110fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 111884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLmillibel *pSendLevel 112884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 113884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi}; 114884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 115884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 116884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 1175b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi/* Android Effect Capabilities interface */ 1185b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 1195b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 120ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_ANDROIDEFFECTCAPABILITIES; 1215b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 1225b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi/** Android Effect Capabilities interface methods */ 1235b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 1245b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivistruct SLAndroidEffectCapabilitiesItf_; 1255b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivitypedef const struct SLAndroidEffectCapabilitiesItf_ * const * SLAndroidEffectCapabilitiesItf; 1265b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 1275b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivistruct SLAndroidEffectCapabilitiesItf_ { 1285b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 1295b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*QueryNumEffects) (SLAndroidEffectCapabilitiesItf self, 1305b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint32 *pNumSupportedEffects); 13167bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 13267bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 1335b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*QueryEffect) (SLAndroidEffectCapabilitiesItf self, 1345b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint32 index, 1355b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLInterfaceID *pEffectType, 1365b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLInterfaceID *pEffectImplementation, 1377fc9e14cb8d840df7242d37b55acff0b58d269c7Jean-Michel Trivi SLchar *pName, 1385b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint16 *pNameSize); 13967bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi}; 14067bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 14167bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 142989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/*---------------------------------------------------------------------------*/ 14342309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi/* Android Configuration interface */ 14442309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi/*---------------------------------------------------------------------------*/ 145ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_ANDROIDCONFIGURATION; 14642309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 14742309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi/** Android Configuration interface methods */ 14842309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 14942309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivistruct SLAndroidConfigurationItf_; 15042309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivitypedef const struct SLAndroidConfigurationItf_ * const * SLAndroidConfigurationItf; 15142309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 15242309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivistruct SLAndroidConfigurationItf_ { 15342309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 15442309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi SLresult (*SetConfiguration) (SLAndroidConfigurationItf self, 15542309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi const SLchar *configKey, 15642309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi const void *pConfigValue, 15742309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi SLuint32 valueSize); 15842309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 15942309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi SLresult (*GetConfiguration) (SLAndroidConfigurationItf self, 16042309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi const SLchar *configKey, 16142309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi SLuint32 *pValueSize, 16242309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi void *pConfigValue 16342309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi ); 16442309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi}; 16542309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 16601e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 16701e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/*---------------------------------------------------------------------------*/ 16801e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/* Android Simple Buffer Queue Interface */ 16901e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/*---------------------------------------------------------------------------*/ 17001e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 171ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_ANDROIDSIMPLEBUFFERQUEUE; 17201e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 17301e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kastenstruct SLAndroidSimpleBufferQueueItf_; 17401e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kastentypedef const struct SLAndroidSimpleBufferQueueItf_ * const * SLAndroidSimpleBufferQueueItf; 17501e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 176ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastentypedef void (SLAPIENTRY *slAndroidSimpleBufferQueueCallback)( 17701e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLAndroidSimpleBufferQueueItf caller, 17801e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten void *pContext 17901e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten); 18001e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 18101e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/** Android simple buffer queue state **/ 18201e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 18301e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kastentypedef struct SLAndroidSimpleBufferQueueState_ { 18401e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLuint32 count; 18501e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLuint32 index; 18601e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten} SLAndroidSimpleBufferQueueState; 18701e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 18801e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 18901e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kastenstruct SLAndroidSimpleBufferQueueItf_ { 19001e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLresult (*Enqueue) ( 19101e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLAndroidSimpleBufferQueueItf self, 19201e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten const void *pBuffer, 19301e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLuint32 size 19401e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten ); 19501e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLresult (*Clear) ( 19601e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLAndroidSimpleBufferQueueItf self 19701e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten ); 19801e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLresult (*GetState) ( 19901e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLAndroidSimpleBufferQueueItf self, 20001e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLAndroidSimpleBufferQueueState *pState 20101e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten ); 20201e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLresult (*RegisterCallback) ( 20301e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLAndroidSimpleBufferQueueItf self, 20401e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten slAndroidSimpleBufferQueueCallback callback, 20501e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten void* pContext 20601e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten ); 20701e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten}; 20801e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 20901e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 21042309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi/*---------------------------------------------------------------------------*/ 211d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi/* Android Buffer Queue Interface */ 21228bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 21328bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi 21460ca9f9ef02f6e486c3338cb811f603dd7825c05Glenn Kastenextern SL_API const SLInterfaceID SL_IID_ANDROIDBUFFERQUEUESOURCE; 21560ca9f9ef02f6e486c3338cb811f603dd7825c05Glenn Kasten// FIXME temporary definition to be removed 21660ca9f9ef02f6e486c3338cb811f603dd7825c05Glenn Kasten#define SL_IID_ANDROIDBUFFERQUEUE SL_IID_ANDROIDBUFFERQUEUESOURCE 21728bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi 218fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivistruct SLAndroidBufferQueueItf_; 219fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivitypedef const struct SLAndroidBufferQueueItf_ * const * SLAndroidBufferQueueItf; 22028bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi 2211c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi#define SL_ANDROID_ITEMKEY_NONE ((SLuint32) 0x00000000) 2221c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi#define SL_ANDROID_ITEMKEY_EOS ((SLuint32) 0x00000001) 2231c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi#define SL_ANDROID_ITEMKEY_DISCONTINUITY ((SLuint32) 0x00000002) 2241c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi#define SL_ANDROID_ITEMKEY_BUFFERQUEUEEVENT ((SLuint32) 0x00000003) 2256f0f5640d190b0187c356eb53bd96d9f9e49da60Jean-Michel Trivi#define SL_ANDROID_ITEMKEY_FORMAT_CHANGE ((SLuint32) 0x00000004) 2261c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi 2271c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi#define SL_ANDROIDBUFFERQUEUEEVENT_NONE ((SLuint32) 0x00000000) 2281c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi#define SL_ANDROIDBUFFERQUEUEEVENT_PROCESSED ((SLuint32) 0x00000001) 2291c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi#define SL_ANDROIDBUFFERQUEUEEVENT_UNREALIZED ((SLuint32) 0x00000002) 2301c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi#define SL_ANDROIDBUFFERQUEUEEVENT_CLEARED ((SLuint32) 0x00000004) 2311c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi#define SL_ANDROIDBUFFERQUEUEEVENT_STOPPED ((SLuint32) 0x00000008) 2321c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi#define SL_ANDROIDBUFFERQUEUEEVENT_ERROR ((SLuint32) 0x00000010) 2331c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi#define SL_ANDROIDBUFFERQUEUEEVENT_CONTENT_END ((SLuint32) 0x00000020) 234d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi 235d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivitypedef struct SLAndroidBufferItem_ { 236d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi SLuint32 itemKey; // identifies the item 237d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi SLuint32 itemSize; 238d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi SLuint8 itemData[0]; 239d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi} SLAndroidBufferItem; 240ad887a253969ac2017a1dbe062d0b76d505594c0Jean-Michel Trivi 241ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastentypedef SLresult (SLAPIENTRY *slAndroidBufferQueueCallback)( 242fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLAndroidBufferQueueItf caller,/* input */ 24337dc2fccf3f122b79ebd554de209d0a3c94ae161Jean-Michel Trivi void *pCallbackContext, /* input */ 24437dc2fccf3f122b79ebd554de209d0a3c94ae161Jean-Michel Trivi void *pBufferContext, /* input */ 24537dc2fccf3f122b79ebd554de209d0a3c94ae161Jean-Michel Trivi void *pBufferData, /* input */ 246d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi SLuint32 dataSize, /* input */ 247d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi SLuint32 dataUsed, /* input */ 248d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi const SLAndroidBufferItem *pItems,/* input */ 249d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi SLuint32 itemsLength /* input */ 25028bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi); 25128bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi 252d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivitypedef struct SLAndroidBufferQueueState_ { 253d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi SLuint32 count; 254d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi SLuint32 index; 255d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi} SLAndroidBufferQueueState; 256d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi 257fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivistruct SLAndroidBufferQueueItf_ { 25828bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi SLresult (*RegisterCallback) ( 259fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLAndroidBufferQueueItf self, 260fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi slAndroidBufferQueueCallback callback, 26137dc2fccf3f122b79ebd554de209d0a3c94ae161Jean-Michel Trivi void* pCallbackContext 26228bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi ); 263fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi 264fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLresult (*Clear) ( 265fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLAndroidBufferQueueItf self 266fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi ); 267fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi 268fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLresult (*Enqueue) ( 269fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLAndroidBufferQueueItf self, 27037dc2fccf3f122b79ebd554de209d0a3c94ae161Jean-Michel Trivi void *pBufferContext, 27137dc2fccf3f122b79ebd554de209d0a3c94ae161Jean-Michel Trivi void *pData, 272d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi SLuint32 dataLength, 273d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi const SLAndroidBufferItem *pItems, 274d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi SLuint32 itemsLength 275fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi ); 276fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi 277e7bfcdc183454ec959ff51342f0973cabba219b2Jean-Michel Trivi SLresult (*GetState) ( 278fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLAndroidBufferQueueItf self, 279e7bfcdc183454ec959ff51342f0973cabba219b2Jean-Michel Trivi SLAndroidBufferQueueState *pState 280fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi ); 281e7bfcdc183454ec959ff51342f0973cabba219b2Jean-Michel Trivi 2821c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi SLresult (*SetCallbackEventsMask) ( 2831c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi SLAndroidBufferQueueItf self, 2841c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi SLuint32 eventFlags 2851c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi ); 2861c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi 2871c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi SLresult (*GetCallbackEventsMask) ( 2881c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi SLAndroidBufferQueueItf self, 2891c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi SLuint32 *pEventFlags 2901c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi ); 29128bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi}; 29228bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi 29328bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi 29428bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 295989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/* Android File Descriptor Data Locator */ 296989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/*---------------------------------------------------------------------------*/ 29701e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 298989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/** Addendum to Data locator macros */ 29901e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten#define SL_DATALOCATOR_ANDROIDFD ((SLuint32) 0x800007BC) 300989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 3016c7bd2eda0843708a8f36773b13716ba479dd6fbJean-Michel Trivi#define SL_DATALOCATOR_ANDROIDFD_USE_FILE_SIZE ((SLAint64) 0xFFFFFFFFFFFFFFFFll) 302989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 303a7b79e766ec6d95e9236168c27461c2ebaef4659Glenn Kasten/** File Descriptor-based data locator definition, locatorType must be SL_DATALOCATOR_ANDROIDFD */ 304989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivitypedef struct SLDataLocator_AndroidFD_ { 305989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi SLuint32 locatorType; 306989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi SLint32 fd; 307989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi SLAint64 offset; 308989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi SLAint64 length; 309989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi} SLDataLocator_AndroidFD; 310989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 311989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 31201e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/*---------------------------------------------------------------------------*/ 31301e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/* Android Android Simple Buffer Queue Data Locator */ 31401e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/*---------------------------------------------------------------------------*/ 31501e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 31601e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/** Addendum to Data locator macros */ 31701e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten#define SL_DATALOCATOR_ANDROIDSIMPLEBUFFERQUEUE ((SLuint32) 0x800007BD) 31801e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 31901e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/** BufferQueue-based data locator definition where locatorType must be SL_DATALOCATOR_ANDROIDSIMPLEBUFFERQUEUE*/ 32001e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kastentypedef struct SLDataLocator_AndroidSimpleBufferQueue { 32101e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLuint32 locatorType; 32201e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLuint32 numBuffers; 32301e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten} SLDataLocator_AndroidSimpleBufferQueue; 32401e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 32501e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 326fe6f6b9ed3683119721618e1aeaa8c7d6baee188Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 327fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi/* Android Buffer Queue Data Locator */ 328fe6f6b9ed3683119721618e1aeaa8c7d6baee188Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 329fe6f6b9ed3683119721618e1aeaa8c7d6baee188Jean-Michel Trivi 330fe6f6b9ed3683119721618e1aeaa8c7d6baee188Jean-Michel Trivi/** Addendum to Data locator macros */ 331fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi#define SL_DATALOCATOR_ANDROIDBUFFERQUEUE ((SLuint32) 0x800007BE) 332fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi 333fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi/** Android Buffer Queue-based data locator definition, 334fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi * locatorType must be SL_DATALOCATOR_ANDROIDBUFFERQUEUE */ 335fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivitypedef struct SLDataLocator_AndroidBufferQueue_ { 336fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLuint32 locatorType; 337d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi SLuint32 numBuffers; 338fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi} SLDataLocator_AndroidBufferQueue; 339fe6f6b9ed3683119721618e1aeaa8c7d6baee188Jean-Michel Trivi 340a7b79e766ec6d95e9236168c27461c2ebaef4659Glenn Kasten#ifdef __cplusplus 34105ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi} 34205ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi#endif /* __cplusplus */ 34305ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi 34405ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi#endif /* OPENSL_ES_ANDROID_H_ */ 345