OpenSLES_Android.h revision 6f0f5640d190b0187c356eb53bd96d9f9e49da60
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 28e9236d046fdb5cac0696c42e03443a2439188146Jean-Michel Trivitypedef sl_int64_t SLAint64; /* 64 bit signed integer */ 29989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 30e9236d046fdb5cac0696c42e03443a2439188146Jean-Michel Trivitypedef sl_uint64_t SLAuint64; /* 64 bit unsigned integer */ 31989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 32989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/*---------------------------------------------------------------------------*/ 3367bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi/* Android Effect interface */ 3467bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 3567bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 36ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_ANDROIDEFFECT; 3767bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 3867bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi/** Android Effect interface methods */ 3967bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 405b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivistruct SLAndroidEffectItf_; 415b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivitypedef const struct SLAndroidEffectItf_ * const * SLAndroidEffectItf; 4267bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 435b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivistruct SLAndroidEffectItf_ { 4467bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 455b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*CreateEffect) (SLAndroidEffectItf self, 46fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId); 4767bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 485b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*ReleaseEffect) (SLAndroidEffectItf self, 49fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId); 5067bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 515b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*SetEnabled) (SLAndroidEffectItf self, 52fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 535b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLboolean enabled); 5467bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 555b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*IsEnabled) (SLAndroidEffectItf self, 56fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 575b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLboolean *pEnabled); 5867bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 595b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*SendCommand) (SLAndroidEffectItf self, 60fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 615b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint32 command, 625b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint32 commandSize, 635b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi void *pCommandData, 645b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint32 *replySize, 655b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi void *pReplyData); 665b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi}; 675b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 685b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 695b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 70884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi/* Android Effect Send interface */ 71884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 72884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 73ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_ANDROIDEFFECTSEND; 74884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 75884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi/** Android Effect Send interface methods */ 76884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 77884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivistruct SLAndroidEffectSendItf_; 78884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivitypedef const struct SLAndroidEffectSendItf_ * const * SLAndroidEffectSendItf; 79884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 80884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivistruct SLAndroidEffectSendItf_ { 81884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*EnableEffectSend) ( 82fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 83fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 84884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLboolean enable, 85884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLmillibel initialLevel 86884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 87884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*IsEnabled) ( 88fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 89fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 90884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLboolean *pEnable 91884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 92884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*SetDirectLevel) ( 93fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 94884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLmillibel directLevel 95884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 96884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*GetDirectLevel) ( 97fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 98884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLmillibel *pDirectLevel 99884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 100884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*SetSendLevel) ( 101fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 102fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 103884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLmillibel sendLevel 104884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 105884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLresult (*GetSendLevel)( 106fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLAndroidEffectSendItf self, 107fef6033d852daec8d88060b252e72f322724dca1Jean-Michel Trivi SLInterfaceID effectImplementationId, 108884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi SLmillibel *pSendLevel 109884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi ); 110884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi}; 111884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 112884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi 113884ed8e6ccaf395f7b57e1cf16c2779c651eb800Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 1145b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi/* Android Effect Capabilities interface */ 1155b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 1165b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 117ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_ANDROIDEFFECTCAPABILITIES; 1185b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 1195b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi/** Android Effect Capabilities interface methods */ 1205b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 1215b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivistruct SLAndroidEffectCapabilitiesItf_; 1225b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivitypedef const struct SLAndroidEffectCapabilitiesItf_ * const * SLAndroidEffectCapabilitiesItf; 1235b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 1245b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivistruct SLAndroidEffectCapabilitiesItf_ { 1255b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi 1265b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*QueryNumEffects) (SLAndroidEffectCapabilitiesItf self, 1275b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint32 *pNumSupportedEffects); 12867bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 12967bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 1305b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLresult (*QueryEffect) (SLAndroidEffectCapabilitiesItf self, 1315b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint32 index, 1325b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLInterfaceID *pEffectType, 1335b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLInterfaceID *pEffectImplementation, 1347fc9e14cb8d840df7242d37b55acff0b58d269c7Jean-Michel Trivi SLchar *pName, 1355b09aa864215690580b18eb802927e8cc7eb4861Jean-Michel Trivi SLuint16 *pNameSize); 13667bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi}; 13767bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 13867bdf8a2fbd1024ab50c4513e1504325475368e0Jean-Michel Trivi 139989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/*---------------------------------------------------------------------------*/ 14042309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi/* Android Configuration interface */ 14142309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi/*---------------------------------------------------------------------------*/ 142ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_ANDROIDCONFIGURATION; 14342309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 14442309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi/** Android Configuration interface methods */ 14542309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 14642309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivistruct SLAndroidConfigurationItf_; 14742309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivitypedef const struct SLAndroidConfigurationItf_ * const * SLAndroidConfigurationItf; 14842309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 14942309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivistruct SLAndroidConfigurationItf_ { 15042309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 15142309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi SLresult (*SetConfiguration) (SLAndroidConfigurationItf self, 15242309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi const SLchar *configKey, 15342309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi const void *pConfigValue, 15442309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi SLuint32 valueSize); 15542309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 15642309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi SLresult (*GetConfiguration) (SLAndroidConfigurationItf self, 15742309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi const SLchar *configKey, 15842309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi SLuint32 *pValueSize, 15942309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi void *pConfigValue 16042309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi ); 16142309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi}; 16242309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi 16301e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 16401e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/*---------------------------------------------------------------------------*/ 16501e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/* Android Simple Buffer Queue Interface */ 16601e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/*---------------------------------------------------------------------------*/ 16701e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 168ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_ANDROIDSIMPLEBUFFERQUEUE; 16901e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 17001e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kastenstruct SLAndroidSimpleBufferQueueItf_; 17101e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kastentypedef const struct SLAndroidSimpleBufferQueueItf_ * const * SLAndroidSimpleBufferQueueItf; 17201e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 173ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastentypedef void (SLAPIENTRY *slAndroidSimpleBufferQueueCallback)( 17401e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLAndroidSimpleBufferQueueItf caller, 17501e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten void *pContext 17601e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten); 17701e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 17801e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/** Android simple buffer queue state **/ 17901e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 18001e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kastentypedef struct SLAndroidSimpleBufferQueueState_ { 18101e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLuint32 count; 18201e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLuint32 index; 18301e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten} SLAndroidSimpleBufferQueueState; 18401e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 18501e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 18601e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kastenstruct SLAndroidSimpleBufferQueueItf_ { 18701e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLresult (*Enqueue) ( 18801e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLAndroidSimpleBufferQueueItf self, 18901e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten const void *pBuffer, 19001e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLuint32 size 19101e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten ); 19201e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLresult (*Clear) ( 19301e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLAndroidSimpleBufferQueueItf self 19401e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten ); 19501e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLresult (*GetState) ( 19601e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLAndroidSimpleBufferQueueItf self, 19701e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLAndroidSimpleBufferQueueState *pState 19801e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten ); 19901e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLresult (*RegisterCallback) ( 20001e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLAndroidSimpleBufferQueueItf self, 20101e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten slAndroidSimpleBufferQueueCallback callback, 20201e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten void* pContext 20301e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten ); 20401e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten}; 20501e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 20601e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 20742309377d1ed17b557fab30f1bf26b8ba31a96fdJean-Michel Trivi/*---------------------------------------------------------------------------*/ 208d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi/* Android Buffer Queue Interface */ 20928bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 21028bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi 211ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_ANDROIDBUFFERQUEUE; 21228bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi 213fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivistruct SLAndroidBufferQueueItf_; 214fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivitypedef const struct SLAndroidBufferQueueItf_ * const * SLAndroidBufferQueueItf; 21528bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi 2161c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi#define SL_ANDROID_ITEMKEY_NONE ((SLuint32) 0x00000000) 2171c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi#define SL_ANDROID_ITEMKEY_EOS ((SLuint32) 0x00000001) 2181c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi#define SL_ANDROID_ITEMKEY_DISCONTINUITY ((SLuint32) 0x00000002) 2191c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi#define SL_ANDROID_ITEMKEY_BUFFERQUEUEEVENT ((SLuint32) 0x00000003) 2206f0f5640d190b0187c356eb53bd96d9f9e49da60Jean-Michel Trivi#define SL_ANDROID_ITEMKEY_FORMAT_CHANGE ((SLuint32) 0x00000004) 2211c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi 2221c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi#define SL_ANDROIDBUFFERQUEUEEVENT_NONE ((SLuint32) 0x00000000) 2231c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi#define SL_ANDROIDBUFFERQUEUEEVENT_PROCESSED ((SLuint32) 0x00000001) 2241c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi#define SL_ANDROIDBUFFERQUEUEEVENT_UNREALIZED ((SLuint32) 0x00000002) 2251c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi#define SL_ANDROIDBUFFERQUEUEEVENT_CLEARED ((SLuint32) 0x00000004) 2261c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi#define SL_ANDROIDBUFFERQUEUEEVENT_STOPPED ((SLuint32) 0x00000008) 2271c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi#define SL_ANDROIDBUFFERQUEUEEVENT_ERROR ((SLuint32) 0x00000010) 2281c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi#define SL_ANDROIDBUFFERQUEUEEVENT_CONTENT_END ((SLuint32) 0x00000020) 229d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi 230d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivitypedef struct SLAndroidBufferItem_ { 231d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi SLuint32 itemKey; // identifies the item 232d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi SLuint32 itemSize; 233d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi SLuint8 itemData[0]; 234d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi} SLAndroidBufferItem; 235ad887a253969ac2017a1dbe062d0b76d505594c0Jean-Michel Trivi 236ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastentypedef SLresult (SLAPIENTRY *slAndroidBufferQueueCallback)( 237fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLAndroidBufferQueueItf caller,/* input */ 23837dc2fccf3f122b79ebd554de209d0a3c94ae161Jean-Michel Trivi void *pCallbackContext, /* input */ 23937dc2fccf3f122b79ebd554de209d0a3c94ae161Jean-Michel Trivi void *pBufferContext, /* input */ 24037dc2fccf3f122b79ebd554de209d0a3c94ae161Jean-Michel Trivi void *pBufferData, /* input */ 241d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi SLuint32 dataSize, /* input */ 242d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi SLuint32 dataUsed, /* input */ 243d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi const SLAndroidBufferItem *pItems,/* input */ 244d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi SLuint32 itemsLength /* input */ 24528bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi); 24628bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi 247d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivitypedef struct SLAndroidBufferQueueState_ { 248d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi SLuint32 count; 249d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi SLuint32 index; 250d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi} SLAndroidBufferQueueState; 251d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi 252fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivistruct SLAndroidBufferQueueItf_ { 25328bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi SLresult (*RegisterCallback) ( 254fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLAndroidBufferQueueItf self, 255fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi slAndroidBufferQueueCallback callback, 25637dc2fccf3f122b79ebd554de209d0a3c94ae161Jean-Michel Trivi void* pCallbackContext 25728bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi ); 258fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi 259fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLresult (*Clear) ( 260fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLAndroidBufferQueueItf self 261fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi ); 262fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi 263fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLresult (*Enqueue) ( 264fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLAndroidBufferQueueItf self, 26537dc2fccf3f122b79ebd554de209d0a3c94ae161Jean-Michel Trivi void *pBufferContext, 26637dc2fccf3f122b79ebd554de209d0a3c94ae161Jean-Michel Trivi void *pData, 267d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi SLuint32 dataLength, 268d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi const SLAndroidBufferItem *pItems, 269d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi SLuint32 itemsLength 270fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi ); 271fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi 272e7bfcdc183454ec959ff51342f0973cabba219b2Jean-Michel Trivi SLresult (*GetState) ( 273fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLAndroidBufferQueueItf self, 274e7bfcdc183454ec959ff51342f0973cabba219b2Jean-Michel Trivi SLAndroidBufferQueueState *pState 275fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi ); 276e7bfcdc183454ec959ff51342f0973cabba219b2Jean-Michel Trivi 2771c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi SLresult (*SetCallbackEventsMask) ( 2781c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi SLAndroidBufferQueueItf self, 2791c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi SLuint32 eventFlags 2801c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi ); 2811c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi 2821c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi SLresult (*GetCallbackEventsMask) ( 2831c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi SLAndroidBufferQueueItf self, 2841c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi SLuint32 *pEventFlags 2851c853a41d9d9886e60618a7c878ce3912f46bf3cJean-Michel Trivi ); 28628bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi}; 28728bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi 28828bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi 28928bc6b725c207fb8fbd618caea4aa127f35ce1e1Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 290989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/* Android File Descriptor Data Locator */ 291989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/*---------------------------------------------------------------------------*/ 29201e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 293989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi/** Addendum to Data locator macros */ 29401e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten#define SL_DATALOCATOR_ANDROIDFD ((SLuint32) 0x800007BC) 295989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 2966c7bd2eda0843708a8f36773b13716ba479dd6fbJean-Michel Trivi#define SL_DATALOCATOR_ANDROIDFD_USE_FILE_SIZE ((SLAint64) 0xFFFFFFFFFFFFFFFFll) 297989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 298a7b79e766ec6d95e9236168c27461c2ebaef4659Glenn Kasten/** File Descriptor-based data locator definition, locatorType must be SL_DATALOCATOR_ANDROIDFD */ 299989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivitypedef struct SLDataLocator_AndroidFD_ { 300989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi SLuint32 locatorType; 301989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi SLint32 fd; 302989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi SLAint64 offset; 303989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi SLAint64 length; 304989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi} SLDataLocator_AndroidFD; 305989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 306989ab369777ef514ac3ba6cdb893de9ae0c976bcJean-Michel Trivi 30701e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/*---------------------------------------------------------------------------*/ 30801e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/* Android Android Simple Buffer Queue Data Locator */ 30901e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/*---------------------------------------------------------------------------*/ 31001e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 31101e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/** Addendum to Data locator macros */ 31201e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten#define SL_DATALOCATOR_ANDROIDSIMPLEBUFFERQUEUE ((SLuint32) 0x800007BD) 31301e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 31401e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten/** BufferQueue-based data locator definition where locatorType must be SL_DATALOCATOR_ANDROIDSIMPLEBUFFERQUEUE*/ 31501e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kastentypedef struct SLDataLocator_AndroidSimpleBufferQueue { 31601e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLuint32 locatorType; 31701e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten SLuint32 numBuffers; 31801e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten} SLDataLocator_AndroidSimpleBufferQueue; 31901e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 32001e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten 321fe6f6b9ed3683119721618e1aeaa8c7d6baee188Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 322fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi/* Android Buffer Queue Data Locator */ 323fe6f6b9ed3683119721618e1aeaa8c7d6baee188Jean-Michel Trivi/*---------------------------------------------------------------------------*/ 324fe6f6b9ed3683119721618e1aeaa8c7d6baee188Jean-Michel Trivi 325fe6f6b9ed3683119721618e1aeaa8c7d6baee188Jean-Michel Trivi/** Addendum to Data locator macros */ 326fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi#define SL_DATALOCATOR_ANDROIDBUFFERQUEUE ((SLuint32) 0x800007BE) 327fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi 328fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi/** Android Buffer Queue-based data locator definition, 329fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi * locatorType must be SL_DATALOCATOR_ANDROIDBUFFERQUEUE */ 330fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivitypedef struct SLDataLocator_AndroidBufferQueue_ { 331fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi SLuint32 locatorType; 332d158d31a6bbb06426b71c3d097b7768bc3fb79a3Jean-Michel Trivi SLuint32 numBuffers; 333fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi} SLDataLocator_AndroidBufferQueue; 334fe6f6b9ed3683119721618e1aeaa8c7d6baee188Jean-Michel Trivi 335a7b79e766ec6d95e9236168c27461c2ebaef4659Glenn Kasten#ifdef __cplusplus 33605ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi} 33705ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi#endif /* __cplusplus */ 33805ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi 33905ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi#endif /* OPENSL_ES_ANDROID_H_ */ 340