OpenSLES_Android.h revision ebc8fd365b402e498d499fa8737a7591c290347c
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" { 22a7b79e766ec6d95e9236168c27461c2ebaef4659Glenn Kasten#endif 2305ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi 2405ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 25989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/* Android common types */ 26989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/*---------------------------------------------------------------------------*/ 27989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 28989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivitypedef sl_int64_t SLAint64; /* 64 bit signed integer */ 29989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 30fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivitypedef SLuint32 SLAbufferQueueEvent; 31ad887a253969ac2017a1dbe062d0b76d505594c0Jean-Michel Trivi 32989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 33989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/*---------------------------------------------------------------------------*/ 3467bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi/* Android Effect interface */ 3567bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 3667bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 37ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_ANDROIDEFFECT; 3867bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 3967bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi/** Android Effect interface methods */ 4067bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 415b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivistruct SLAndroidEffectItf_; 425b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivitypedef const struct SLAndroidEffectItf_ * const * SLAndroidEffectItf; 4367bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 445b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivistruct SLAndroidEffectItf_ { 4567bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 465b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*CreateEffect) (SLAndroidEffectItf self, 47fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId); 4867bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 495b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*ReleaseEffect) (SLAndroidEffectItf self, 50fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId); 5167bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 525b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*SetEnabled) (SLAndroidEffectItf self, 53fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 545b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLboolean enabled); 5567bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 565b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*IsEnabled) (SLAndroidEffectItf self, 57fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 585b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLboolean *pEnabled); 5967bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 605b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*SendCommand) (SLAndroidEffectItf self, 61fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 625b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint32 command, 635b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint32 commandSize, 645b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi void *pCommandData, 655b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint32 *replySize, 665b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi void *pReplyData); 675b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi}; 685b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 695b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 705b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 71884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi/* Android Effect Send interface */ 72884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 73884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 74ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_ANDROIDEFFECTSEND; 75884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 76884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi/** Android Effect Send interface methods */ 77884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 78884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivistruct SLAndroidEffectSendItf_; 79884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivitypedef const struct SLAndroidEffectSendItf_ * const * SLAndroidEffectSendItf; 80884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 81884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivistruct SLAndroidEffectSendItf_ { 82884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*EnableEffectSend) ( 83fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 84fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 85884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLboolean enable, 86884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLmillibel initialLevel 87884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 88884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*IsEnabled) ( 89fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 90fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 91884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLboolean *pEnable 92884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 93884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*SetDirectLevel) ( 94fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 95884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLmillibel directLevel 96884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 97884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*GetDirectLevel) ( 98fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 99884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLmillibel *pDirectLevel 100884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 101884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*SetSendLevel) ( 102fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 103fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 104884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLmillibel sendLevel 105884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 106884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*GetSendLevel)( 107fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 108fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 109884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLmillibel *pSendLevel 110884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 111884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi}; 112884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 113884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 114884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 1155b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi/* Android Effect Capabilities interface */ 1165b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 1175b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 118ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_ANDROIDEFFECTCAPABILITIES; 1195b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 1205b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi/** Android Effect Capabilities interface methods */ 1215b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 1225b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivistruct SLAndroidEffectCapabilitiesItf_; 1235b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivitypedef const struct SLAndroidEffectCapabilitiesItf_ * const * SLAndroidEffectCapabilitiesItf; 1245b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 1255b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivistruct SLAndroidEffectCapabilitiesItf_ { 1265b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 1275b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*QueryNumEffects) (SLAndroidEffectCapabilitiesItf self, 1285b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint32 *pNumSupportedEffects); 12967bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 13067bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 1315b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*QueryEffect) (SLAndroidEffectCapabilitiesItf self, 1325b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint32 index, 1335b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLInterfaceID *pEffectType, 1345b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLInterfaceID *pEffectImplementation, 1357fc9e14cb8d840df7242d37b55acff0b58d269c7Jean-Michel Trivi SLchar *pName, 1365b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint16 *pNameSize); 13767bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi}; 13867bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 13967bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 140989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/*---------------------------------------------------------------------------*/ 14142309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi/* Android Configuration interface */ 14242309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi/*---------------------------------------------------------------------------*/ 143ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_ANDROIDCONFIGURATION; 14442309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 14542309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi/** Android Configuration interface methods */ 14642309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 14742309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivistruct SLAndroidConfigurationItf_; 14842309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivitypedef const struct SLAndroidConfigurationItf_ * const * SLAndroidConfigurationItf; 14942309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 15042309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivistruct SLAndroidConfigurationItf_ { 15142309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 15242309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi SLresult (*SetConfiguration) (SLAndroidConfigurationItf self, 15342309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi const SLchar *configKey, 15442309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi const void *pConfigValue, 15542309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi SLuint32 valueSize); 15642309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 15742309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi SLresult (*GetConfiguration) (SLAndroidConfigurationItf self, 15842309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi const SLchar *configKey, 15942309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi SLuint32 *pValueSize, 16042309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi void *pConfigValue 16142309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi ); 16242309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi}; 16342309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 16401e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 16501e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/*---------------------------------------------------------------------------*/ 16601e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/* Android Simple Buffer Queue Interface */ 16701e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/*---------------------------------------------------------------------------*/ 16801e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 169ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_ANDROIDSIMPLEBUFFERQUEUE; 17001e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 17101e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kastenstruct SLAndroidSimpleBufferQueueItf_; 17201e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kastentypedef const struct SLAndroidSimpleBufferQueueItf_ * const * SLAndroidSimpleBufferQueueItf; 17301e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 174ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastentypedef void (SLAPIENTRY *slAndroidSimpleBufferQueueCallback)( 17501e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLAndroidSimpleBufferQueueItf caller, 17601e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten void *pContext 17701e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten); 17801e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 17901e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/** Android simple buffer queue state **/ 18001e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 18101e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kastentypedef struct SLAndroidSimpleBufferQueueState_ { 18201e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLuint32 count; 18301e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLuint32 index; 18401e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten} SLAndroidSimpleBufferQueueState; 18501e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 18601e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 18701e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kastenstruct SLAndroidSimpleBufferQueueItf_ { 18801e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLresult (*Enqueue) ( 18901e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLAndroidSimpleBufferQueueItf self, 19001e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten const void *pBuffer, 19101e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLuint32 size 19201e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten ); 19301e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLresult (*Clear) ( 19401e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLAndroidSimpleBufferQueueItf self 19501e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten ); 19601e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLresult (*GetState) ( 19701e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLAndroidSimpleBufferQueueItf self, 19801e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLAndroidSimpleBufferQueueState *pState 19901e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten ); 20001e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLresult (*RegisterCallback) ( 20101e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLAndroidSimpleBufferQueueItf self, 20201e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten slAndroidSimpleBufferQueueCallback callback, 20301e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten void* pContext 20401e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten ); 20501e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten}; 20601e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 20701e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 20842309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi/*---------------------------------------------------------------------------*/ 209fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi/* Android Buffer Qeueue Interface */ 21028bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 21128bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi 212ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_ANDROIDBUFFERQUEUE; 21328bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi 214fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivistruct SLAndroidBufferQueueItf_; 215fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivitypedef const struct SLAndroidBufferQueueItf_ * const * SLAndroidBufferQueueItf; 21628bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi 217fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi#define SL_ANDROIDBUFFERQUEUE_EVENT_NONE ((SLuint32) 0x00000000) 218e945a85a903cfb83a8965a3246c9e1718023a897Andreas Huber#define SL_ANDROIDBUFFERQUEUE_EVENT_EOS ((SLuint32) 0x00000001) 219fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi#define SL_ANDROIDBUFFERQUEUE_EVENT_DISCONTINUITY ((SLuint32) 0x00000002) 220ad887a253969ac2017a1dbe062d0b76d505594c0Jean-Michel Trivi 221ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastentypedef SLresult (SLAPIENTRY *slAndroidBufferQueueCallback)( 222fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLAndroidBufferQueueItf caller,/* input */ 223fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi void *pContext, /* input */ 224fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLuint32 bufferId, /* input */ 225eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi SLuint32 bufferLength, /* input */ 226fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi void *pBufferDataLocation /* input */ 22728bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi); 22828bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi 229fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivistruct SLAndroidBufferQueueItf_ { 23028bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi SLresult (*RegisterCallback) ( 231fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLAndroidBufferQueueItf self, 232fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi slAndroidBufferQueueCallback callback, 23328bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi void* pContext 23428bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi ); 235fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi 236fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLresult (*Clear) ( 237fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLAndroidBufferQueueItf self 238fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi ); 239fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi 240fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLresult (*Enqueue) ( 241fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLAndroidBufferQueueItf self, 242fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLuint32 bufferId, 243fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLuint32 length, 244fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLAbufferQueueEvent event, 2450e47a0657162bbff48886ea2f5c68d9edb607768Jean-Michel Trivi void *pData // FIXME ignored for now, subject to change 246fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi ); 247fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi 248fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi // FIXME TBD if needed 249fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi /* 250fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLResult (*SetCallbackEventMask) ( 251fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLAndroidBufferQueueItf self, 252fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLuint32 eventMask 253fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi ); 254fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLResult (*GetCallbackEventMask) ( 255fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLAndroidBufferQueueItf self, 256fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLuint32 *pEventMask 257fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi ); 258fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi */ 25928bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi}; 26028bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi 26128bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi 26228bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 263989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/* Android File Descriptor Data Locator */ 264989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/*---------------------------------------------------------------------------*/ 26501e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 266989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/** Addendum to Data locator macros */ 26701e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten#define SL_DATALOCATOR_ANDROIDFD ((SLuint32) 0x800007BC) 268989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 2696c7bd2eda0843708a8f36773b13716ba479dd6fbJean-Michel Trivi#define SL_DATALOCATOR_ANDROIDFD_USE_FILE_SIZE ((SLAint64) 0xFFFFFFFFFFFFFFFFll) 270989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 271a7b79e766ec6d95e9236168c27461c2ebaef4659Glenn Kasten/** File Descriptor-based data locator definition, locatorType must be SL_DATALOCATOR_ANDROIDFD */ 272989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivitypedef struct SLDataLocator_AndroidFD_ { 273989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi SLuint32 locatorType; 274989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi SLint32 fd; 275989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi SLAint64 offset; 276989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi SLAint64 length; 277989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi} SLDataLocator_AndroidFD; 278989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 279989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 28001e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/*---------------------------------------------------------------------------*/ 28101e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/* Android Android Simple Buffer Queue Data Locator */ 28201e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/*---------------------------------------------------------------------------*/ 28301e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 28401e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/** Addendum to Data locator macros */ 28501e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten#define SL_DATALOCATOR_ANDROIDSIMPLEBUFFERQUEUE ((SLuint32) 0x800007BD) 28601e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 28701e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/** BufferQueue-based data locator definition where locatorType must be SL_DATALOCATOR_ANDROIDSIMPLEBUFFERQUEUE*/ 28801e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kastentypedef struct SLDataLocator_AndroidSimpleBufferQueue { 28901e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLuint32 locatorType; 29001e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLuint32 numBuffers; 29101e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten} SLDataLocator_AndroidSimpleBufferQueue; 29201e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 29301e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 294fe6f6b9ed3683119721618e1aeaa8c7d6baee188Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 295fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi/* Android Buffer Queue Data Locator */ 296fe6f6b9ed3683119721618e1aeaa8c7d6baee188Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 297fe6f6b9ed3683119721618e1aeaa8c7d6baee188Jean-Michel Trivi 298fe6f6b9ed3683119721618e1aeaa8c7d6baee188Jean-Michel Trivi/** Addendum to Data locator macros */ 299fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi#define SL_DATALOCATOR_ANDROIDBUFFERQUEUE ((SLuint32) 0x800007BE) 300fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi 301fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi/** Android Buffer Queue-based data locator definition, 302fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi * locatorType must be SL_DATALOCATOR_ANDROIDBUFFERQUEUE */ 303fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivitypedef struct SLDataLocator_AndroidBufferQueue_ { 304fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLuint32 locatorType; 3050e47a0657162bbff48886ea2f5c68d9edb607768Jean-Michel Trivi SLuint32 numBuffers; // FIXME ignored for now, subject to change 3060e47a0657162bbff48886ea2f5c68d9edb607768Jean-Michel Trivi SLuint32 queueSize; // FIXME ignored for now, subject to change 307fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi} SLDataLocator_AndroidBufferQueue; 308fe6f6b9ed3683119721618e1aeaa8c7d6baee188Jean-Michel Trivi 309a7b79e766ec6d95e9236168c27461c2ebaef4659Glenn Kasten#ifdef __cplusplus 31005ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi} 31105ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi#endif /* __cplusplus */ 31205ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi 31305ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi#endif /* OPENSL_ES_ANDROID_H_ */ 314