OpenSLES_Android.h revision 28bc6b725c207fb8fbd618caea4aa127f35ce1e1
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 30989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 31989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/*---------------------------------------------------------------------------*/ 3267bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi/* Android Effect interface */ 3367bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 3467bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 355b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Triviextern SLAPIENTRY const SLInterfaceID SL_IID_ANDROIDEFFECT; 3667bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 3767bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi/** Android Effect interface methods */ 3867bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 395b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivistruct SLAndroidEffectItf_; 405b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivitypedef const struct SLAndroidEffectItf_ * const * SLAndroidEffectItf; 4167bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 425b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivistruct SLAndroidEffectItf_ { 4367bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 445b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*CreateEffect) (SLAndroidEffectItf self, 45fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId); 4667bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 475b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*ReleaseEffect) (SLAndroidEffectItf self, 48fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId); 4967bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 505b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*SetEnabled) (SLAndroidEffectItf self, 51fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 525b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLboolean enabled); 5367bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 545b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*IsEnabled) (SLAndroidEffectItf self, 55fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 565b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLboolean *pEnabled); 5767bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 585b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*SendCommand) (SLAndroidEffectItf self, 59fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 605b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint32 command, 615b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint32 commandSize, 625b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi void *pCommandData, 635b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint32 *replySize, 645b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi void *pReplyData); 655b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi}; 665b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 675b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 685b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 69884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi/* Android Effect Send interface */ 70884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 71884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 72884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Triviextern SLAPIENTRY const SLInterfaceID SL_IID_ANDROIDEFFECTSEND; 73884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 74884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi/** Android Effect Send interface methods */ 75884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 76884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivistruct SLAndroidEffectSendItf_; 77884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivitypedef const struct SLAndroidEffectSendItf_ * const * SLAndroidEffectSendItf; 78884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 79884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivistruct SLAndroidEffectSendItf_ { 80884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*EnableEffectSend) ( 81fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 82fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 83884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLboolean enable, 84884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLmillibel initialLevel 85884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 86884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*IsEnabled) ( 87fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 88fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 89884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLboolean *pEnable 90884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 91884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*SetDirectLevel) ( 92fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 93884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLmillibel directLevel 94884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 95884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*GetDirectLevel) ( 96fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 97884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLmillibel *pDirectLevel 98884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 99884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*SetSendLevel) ( 100fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 101fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 102884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLmillibel sendLevel 103884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 104884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*GetSendLevel)( 105fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 106fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 107884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLmillibel *pSendLevel 108884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 109884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi}; 110884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 111884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 112884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 1135b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi/* Android Effect Capabilities interface */ 1145b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 1155b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 1165b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Triviextern SLAPIENTRY const SLInterfaceID SL_IID_ANDROIDEFFECTCAPABILITIES; 1175b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 1185b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi/** Android Effect Capabilities interface methods */ 1195b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 1205b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivistruct SLAndroidEffectCapabilitiesItf_; 1215b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivitypedef const struct SLAndroidEffectCapabilitiesItf_ * const * SLAndroidEffectCapabilitiesItf; 1225b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 1235b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivistruct SLAndroidEffectCapabilitiesItf_ { 1245b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 1255b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*QueryNumEffects) (SLAndroidEffectCapabilitiesItf self, 1265b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint32 *pNumSupportedEffects); 12767bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 12867bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 1295b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*QueryEffect) (SLAndroidEffectCapabilitiesItf self, 1305b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint32 index, 1315b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLInterfaceID *pEffectType, 1325b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLInterfaceID *pEffectImplementation, 1337fc9e14cb8d840df7242d37b55acff0b58d269c7Jean-Michel Trivi SLchar *pName, 1345b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint16 *pNameSize); 13567bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi}; 13667bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 13767bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 138989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/*---------------------------------------------------------------------------*/ 13942309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi/* Android Configuration interface */ 14042309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi/*---------------------------------------------------------------------------*/ 14142309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Triviextern SLAPIENTRY const SLInterfaceID SL_IID_ANDROIDCONFIGURATION; 14242309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 14342309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi/** Android Configuration interface methods */ 14442309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 14542309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivistruct SLAndroidConfigurationItf_; 14642309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivitypedef const struct SLAndroidConfigurationItf_ * const * SLAndroidConfigurationItf; 14742309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 14842309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivistruct SLAndroidConfigurationItf_ { 14942309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 15042309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi SLresult (*SetConfiguration) (SLAndroidConfigurationItf self, 15142309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi const SLchar *configKey, 15242309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi const void *pConfigValue, 15342309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi SLuint32 valueSize); 15442309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 15542309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi SLresult (*GetConfiguration) (SLAndroidConfigurationItf self, 15642309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi const SLchar *configKey, 15742309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi SLuint32 *pValueSize, 15842309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi void *pConfigValue 15942309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi ); 16042309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi}; 16142309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 16201e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 16301e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/*---------------------------------------------------------------------------*/ 16401e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/* Android Simple Buffer Queue Interface */ 16501e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/*---------------------------------------------------------------------------*/ 16601e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 16701e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_ANDROIDSIMPLEBUFFERQUEUE; 16801e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 16901e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kastenstruct SLAndroidSimpleBufferQueueItf_; 17001e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kastentypedef const struct SLAndroidSimpleBufferQueueItf_ * const * SLAndroidSimpleBufferQueueItf; 17101e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 17201e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kastentypedef void (/*SLAPIENTRY*/ *slAndroidSimpleBufferQueueCallback)( 17301e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLAndroidSimpleBufferQueueItf caller, 17401e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten void *pContext 17501e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten); 17601e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 17701e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/** Android simple buffer queue state **/ 17801e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 17901e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kastentypedef struct SLAndroidSimpleBufferQueueState_ { 18001e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLuint32 count; 18101e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLuint32 index; 18201e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten} SLAndroidSimpleBufferQueueState; 18301e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 18401e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 18501e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kastenstruct SLAndroidSimpleBufferQueueItf_ { 18601e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLresult (*Enqueue) ( 18701e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLAndroidSimpleBufferQueueItf self, 18801e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten const void *pBuffer, 18901e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLuint32 size 19001e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten ); 19101e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLresult (*Clear) ( 19201e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLAndroidSimpleBufferQueueItf self 19301e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten ); 19401e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLresult (*GetState) ( 19501e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLAndroidSimpleBufferQueueItf self, 19601e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLAndroidSimpleBufferQueueState *pState 19701e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten ); 19801e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLresult (*RegisterCallback) ( 19901e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLAndroidSimpleBufferQueueItf self, 20001e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten slAndroidSimpleBufferQueueCallback callback, 20101e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten void* pContext 20201e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten ); 20301e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten}; 20401e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 20501e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 20642309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi/*---------------------------------------------------------------------------*/ 20728bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi/* Android Stream Source Interface */ 20828bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 20928bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi 21028bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Triviextern SLAPIENTRY const SLInterfaceID SL_IID_ANDROIDSTREAMSOURCE; 21128bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi 21228bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivistruct SLAndroidStreamSourceItf_; 21328bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivitypedef const struct SLAndroidStreamSourceItf_ * const * SLAndroidStreamSourceItf; 21428bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi 21528bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivitypedef SLresult (/*SLAPIENTRY*/ *slAndroidStreamSourceCallback)( 21628bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi SLAndroidStreamSourceItf caller, 21728bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi void *pContext, /* input */ 21828bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi SLAint64 offset, /* input */ 21928bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi SLAint64* pLength,/* input, output */ 22028bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi void *pData /* output */ 22128bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi); 22228bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi 22328bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivistruct SLAndroidStreamSourceItf_ { 22428bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi SLresult (*RegisterCallback) ( 22528bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi SLAndroidStreamSourceItf self, 22628bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi slAndroidStreamSourceCallback callback, 22728bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi void* pContext 22828bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi ); 22928bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi}; 23028bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi 23128bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi 23228bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 233989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/* Android File Descriptor Data Locator */ 234989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/*---------------------------------------------------------------------------*/ 23501e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 236989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/** Addendum to Data locator macros */ 23701e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten#define SL_DATALOCATOR_ANDROIDFD ((SLuint32) 0x800007BC) 238989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 2396c7bd2eda0843708a8f36773b13716ba479dd6fbJean-Michel Trivi#define SL_DATALOCATOR_ANDROIDFD_USE_FILE_SIZE ((SLAint64) 0xFFFFFFFFFFFFFFFFll) 240989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 241a7b79e766ec6d95e9236168c27461c2ebaef4659Glenn Kasten/** File Descriptor-based data locator definition, locatorType must be SL_DATALOCATOR_ANDROIDFD */ 242989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivitypedef struct SLDataLocator_AndroidFD_ { 243989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi SLuint32 locatorType; 244989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi SLint32 fd; 245989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi SLAint64 offset; 246989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi SLAint64 length; 247989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi} SLDataLocator_AndroidFD; 248989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 249989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 25001e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/*---------------------------------------------------------------------------*/ 25128bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi/* Android Streamer Data Locator */ 25228bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 25328bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi 25428bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi/** Addendum to Data locator macros */ 25528bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi#define SL_DATALOCATOR_ANDROIDSTREAMER ((SLuint32) 0x800007BD) 25628bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi 25728bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi/** Streamer-based data locator definition, locatorType must be SL_DATALOCATOR_ANDROIDSTREAMER */ 25828bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivitypedef struct SLDataLocator_AndroidStreamer_ { 25928bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi SLuint32 locatorType; 26028bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi void* pStreamer; 26128bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi} SLDataLocator_AndroidStreamer; 26228bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi 26328bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi 26428bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 26501e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/* Android Android Simple Buffer Queue Data Locator */ 26601e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/*---------------------------------------------------------------------------*/ 26701e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 26801e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/** Addendum to Data locator macros */ 26901e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten#define SL_DATALOCATOR_ANDROIDSIMPLEBUFFERQUEUE ((SLuint32) 0x800007BD) 27001e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 27101e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/** BufferQueue-based data locator definition where locatorType must be SL_DATALOCATOR_ANDROIDSIMPLEBUFFERQUEUE*/ 27201e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kastentypedef struct SLDataLocator_AndroidSimpleBufferQueue { 27301e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLuint32 locatorType; 27401e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLuint32 numBuffers; 27501e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten} SLDataLocator_AndroidSimpleBufferQueue; 27601e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 27701e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 278a7b79e766ec6d95e9236168c27461c2ebaef4659Glenn Kasten#ifdef __cplusplus 27905ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi} 28005ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi#endif /* __cplusplus */ 28105ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi 28205ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi#endif /* OPENSL_ES_ANDROID_H_ */ 283