1523f5352Sopenharmony_ci/* 2523f5352Sopenharmony_ci * Copyright (c) 2007-2009 The Khronos Group Inc. 3523f5352Sopenharmony_ci * 4523f5352Sopenharmony_ci * Permission is hereby granted, free of charge, to any person obtaining a copy of 5523f5352Sopenharmony_ci * this software and /or associated documentation files (the "Materials "), to 6523f5352Sopenharmony_ci * deal in the Materials without restriction, including without limitation the 7523f5352Sopenharmony_ci * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 8523f5352Sopenharmony_ci * sell copies of the Materials, and to permit persons to whom the Materials are 9523f5352Sopenharmony_ci * furnished to do so, subject to 10523f5352Sopenharmony_ci * the following conditions: 11523f5352Sopenharmony_ci * 12523f5352Sopenharmony_ci * The above copyright notice and this permission notice shall be included 13523f5352Sopenharmony_ci * in all copies or substantial portions of the Materials. 14523f5352Sopenharmony_ci * 15523f5352Sopenharmony_ci * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16523f5352Sopenharmony_ci * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17523f5352Sopenharmony_ci * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18523f5352Sopenharmony_ci * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19523f5352Sopenharmony_ci * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20523f5352Sopenharmony_ci * OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS IN THE 21523f5352Sopenharmony_ci * MATERIALS. 22523f5352Sopenharmony_ci * 23523f5352Sopenharmony_ci * OpenSLES.h - OpenSL ES version 1.0.1 24523f5352Sopenharmony_ci * 25523f5352Sopenharmony_ci */ 26523f5352Sopenharmony_ci 27523f5352Sopenharmony_ci/****************************************************************************/ 28523f5352Sopenharmony_ci/* NOTE: This file is a standard OpenSL ES header file and should not be */ 29523f5352Sopenharmony_ci/* modified in any way. */ 30523f5352Sopenharmony_ci/****************************************************************************/ 31523f5352Sopenharmony_ci 32523f5352Sopenharmony_ci#ifndef OPENSL_ES_H_ 33523f5352Sopenharmony_ci#define OPENSL_ES_H_ 34523f5352Sopenharmony_ci 35523f5352Sopenharmony_ci#ifdef __cplusplus 36523f5352Sopenharmony_ciextern "C" { 37523f5352Sopenharmony_ci#endif 38523f5352Sopenharmony_ci 39523f5352Sopenharmony_ci#include "OpenSLES_Platform.h" 40523f5352Sopenharmony_ci 41523f5352Sopenharmony_ci 42523f5352Sopenharmony_ci/*****************************************************************************/ 43523f5352Sopenharmony_ci/* Common types, structures, and defines */ 44523f5352Sopenharmony_ci/*****************************************************************************/ 45523f5352Sopenharmony_ci 46523f5352Sopenharmony_ci#ifndef _KHRONOS_KEYS_ 47523f5352Sopenharmony_ci#define _KHRONOS_KEYS_ 48523f5352Sopenharmony_ci 49523f5352Sopenharmony_ci#define KHRONOS_TITLE "KhronosTitle" 50523f5352Sopenharmony_ci#define KHRONOS_ALBUM "KhronosAlbum" 51523f5352Sopenharmony_ci#define KHRONOS_TRACK_NUMBER "KhronosTrackNumber" 52523f5352Sopenharmony_ci#define KHRONOS_ARTIST "KhronosArtist" 53523f5352Sopenharmony_ci#define KHRONOS_GENRE "KhronosGenre" 54523f5352Sopenharmony_ci#define KHRONOS_YEAR "KhronosYear" 55523f5352Sopenharmony_ci#define KHRONOS_COMMENT "KhronosComment" 56523f5352Sopenharmony_ci#define KHRONOS_ARTIST_URL "KhronosArtistURL" 57523f5352Sopenharmony_ci#define KHRONOS_CONTENT_URL "KhronosContentURL" 58523f5352Sopenharmony_ci#define KHRONOS_RATING "KhronosRating" 59523f5352Sopenharmony_ci#define KHRONOS_ALBUM_ART "KhronosAlbumArt" 60523f5352Sopenharmony_ci#define KHRONOS_COPYRIGHT "KhronosCopyright" 61523f5352Sopenharmony_ci 62523f5352Sopenharmony_ci#endif 63523f5352Sopenharmony_ci 64523f5352Sopenharmony_ci 65523f5352Sopenharmony_ci/* remap common types to SL types for clarity */ 66523f5352Sopenharmony_citypedef sl_int8_t SLint8; /* 8 bit signed integer */ 67523f5352Sopenharmony_citypedef sl_uint8_t SLuint8; /* 8 bit unsigned integer */ 68523f5352Sopenharmony_citypedef sl_int16_t SLint16; /* 16 bit signed integer */ 69523f5352Sopenharmony_citypedef sl_uint16_t SLuint16; /* 16 bit unsigned integer */ 70523f5352Sopenharmony_citypedef sl_int32_t SLint32; /* 32 bit signed integer */ 71523f5352Sopenharmony_citypedef sl_uint32_t SLuint32; /* 32 bit unsigned integer */ 72523f5352Sopenharmony_ci 73523f5352Sopenharmony_citypedef SLuint32 SLboolean; 74523f5352Sopenharmony_ci#define SL_BOOLEAN_FALSE ((SLboolean) 0x00000000) 75523f5352Sopenharmony_ci#define SL_BOOLEAN_TRUE ((SLboolean) 0x00000001) 76523f5352Sopenharmony_ci 77523f5352Sopenharmony_citypedef SLuint8 SLchar; /* UTF-8 is to be used */ 78523f5352Sopenharmony_citypedef SLint16 SLmillibel; 79523f5352Sopenharmony_citypedef SLuint32 SLmillisecond; 80523f5352Sopenharmony_citypedef SLuint32 SLmilliHertz; 81523f5352Sopenharmony_citypedef SLint32 SLmillimeter; 82523f5352Sopenharmony_citypedef SLint32 SLmillidegree; 83523f5352Sopenharmony_citypedef SLint16 SLpermille; 84523f5352Sopenharmony_citypedef SLuint32 SLmicrosecond; 85523f5352Sopenharmony_citypedef SLuint32 SLresult; 86523f5352Sopenharmony_ci 87523f5352Sopenharmony_ci#define SL_MILLIBEL_MAX ((SLmillibel) 0x7FFF) 88523f5352Sopenharmony_ci#define SL_MILLIBEL_MIN ((SLmillibel) (-SL_MILLIBEL_MAX-1)) 89523f5352Sopenharmony_ci 90523f5352Sopenharmony_ci#define SL_MILLIHERTZ_MAX ((SLmilliHertz) 0xFFFFFFFF) 91523f5352Sopenharmony_ci#define SL_MILLIMETER_MAX ((SLmillimeter) 0x7FFFFFFF) 92523f5352Sopenharmony_ci 93523f5352Sopenharmony_ci/** Interface ID defined as a UUID */ 94523f5352Sopenharmony_citypedef const struct SLInterfaceID_ { 95523f5352Sopenharmony_ci SLuint32 time_low; 96523f5352Sopenharmony_ci SLuint16 time_mid; 97523f5352Sopenharmony_ci SLuint16 time_hi_and_version; 98523f5352Sopenharmony_ci SLuint16 clock_seq; 99523f5352Sopenharmony_ci SLuint8 node[6]; 100523f5352Sopenharmony_ci} * SLInterfaceID; 101523f5352Sopenharmony_ci 102523f5352Sopenharmony_ci/* Forward declaration for the object interface */ 103523f5352Sopenharmony_cistruct SLObjectItf_; 104523f5352Sopenharmony_ci 105523f5352Sopenharmony_citypedef const struct SLObjectItf_ * const * SLObjectItf; 106523f5352Sopenharmony_ci 107523f5352Sopenharmony_ci/* Objects ID's */ 108523f5352Sopenharmony_ci 109523f5352Sopenharmony_ci#define SL_OBJECTID_ENGINE ((SLuint32) 0x00001001) 110523f5352Sopenharmony_ci#define SL_OBJECTID_LEDDEVICE ((SLuint32) 0x00001002) 111523f5352Sopenharmony_ci#define SL_OBJECTID_VIBRADEVICE ((SLuint32) 0x00001003) 112523f5352Sopenharmony_ci#define SL_OBJECTID_AUDIOPLAYER ((SLuint32) 0x00001004) 113523f5352Sopenharmony_ci#define SL_OBJECTID_AUDIORECORDER ((SLuint32) 0x00001005) 114523f5352Sopenharmony_ci#define SL_OBJECTID_MIDIPLAYER ((SLuint32) 0x00001006) 115523f5352Sopenharmony_ci#define SL_OBJECTID_LISTENER ((SLuint32) 0x00001007) 116523f5352Sopenharmony_ci#define SL_OBJECTID_3DGROUP ((SLuint32) 0x00001008) 117523f5352Sopenharmony_ci#define SL_OBJECTID_OUTPUTMIX ((SLuint32) 0x00001009) 118523f5352Sopenharmony_ci#define SL_OBJECTID_METADATAEXTRACTOR ((SLuint32) 0x0000100A) 119523f5352Sopenharmony_ci 120523f5352Sopenharmony_ci 121523f5352Sopenharmony_ci/* SL Profiles */ 122523f5352Sopenharmony_ci 123523f5352Sopenharmony_ci#define SL_PROFILES_PHONE ((SLuint16) 0x0001) 124523f5352Sopenharmony_ci#define SL_PROFILES_MUSIC ((SLuint16) 0x0002) 125523f5352Sopenharmony_ci#define SL_PROFILES_GAME ((SLuint16) 0x0004) 126523f5352Sopenharmony_ci 127523f5352Sopenharmony_ci/* Types of voices supported by the system */ 128523f5352Sopenharmony_ci 129523f5352Sopenharmony_ci#define SL_VOICETYPE_2D_AUDIO ((SLuint16) 0x0001) 130523f5352Sopenharmony_ci#define SL_VOICETYPE_MIDI ((SLuint16) 0x0002) 131523f5352Sopenharmony_ci#define SL_VOICETYPE_3D_AUDIO ((SLuint16) 0x0004) 132523f5352Sopenharmony_ci#define SL_VOICETYPE_3D_MIDIOUTPUT ((SLuint16) 0x0008) 133523f5352Sopenharmony_ci 134523f5352Sopenharmony_ci/* Convenient macros representing various different priority levels, for use with the SetPriority method */ 135523f5352Sopenharmony_ci 136523f5352Sopenharmony_ci#define SL_PRIORITY_LOWEST ((SLint32) (-0x7FFFFFFF-1)) 137523f5352Sopenharmony_ci#define SL_PRIORITY_VERYLOW ((SLint32) -0x60000000) 138523f5352Sopenharmony_ci#define SL_PRIORITY_LOW ((SLint32) -0x40000000) 139523f5352Sopenharmony_ci#define SL_PRIORITY_BELOWNORMAL ((SLint32) -0x20000000) 140523f5352Sopenharmony_ci#define SL_PRIORITY_NORMAL ((SLint32) 0x00000000) 141523f5352Sopenharmony_ci#define SL_PRIORITY_ABOVENORMAL ((SLint32) 0x20000000) 142523f5352Sopenharmony_ci#define SL_PRIORITY_HIGH ((SLint32) 0x40000000) 143523f5352Sopenharmony_ci#define SL_PRIORITY_VERYHIGH ((SLint32) 0x60000000) 144523f5352Sopenharmony_ci#define SL_PRIORITY_HIGHEST ((SLint32) 0x7FFFFFFF) 145523f5352Sopenharmony_ci 146523f5352Sopenharmony_ci 147523f5352Sopenharmony_ci/** These macros list the various sample formats that are possible on audio input and output devices. */ 148523f5352Sopenharmony_ci 149523f5352Sopenharmony_ci#define SL_PCMSAMPLEFORMAT_FIXED_8 ((SLuint16) 0x0008) 150523f5352Sopenharmony_ci#define SL_PCMSAMPLEFORMAT_FIXED_16 ((SLuint16) 0x0010) 151523f5352Sopenharmony_ci#define SL_PCMSAMPLEFORMAT_FIXED_20 ((SLuint16) 0x0014) 152523f5352Sopenharmony_ci#define SL_PCMSAMPLEFORMAT_FIXED_24 ((SLuint16) 0x0018) 153523f5352Sopenharmony_ci#define SL_PCMSAMPLEFORMAT_FIXED_28 ((SLuint16) 0x001C) 154523f5352Sopenharmony_ci#define SL_PCMSAMPLEFORMAT_FIXED_32 ((SLuint16) 0x0020) 155523f5352Sopenharmony_ci 156523f5352Sopenharmony_ci 157523f5352Sopenharmony_ci/** These macros specify the commonly used sampling rates (in milliHertz) supported by most audio I/O devices. */ 158523f5352Sopenharmony_ci 159523f5352Sopenharmony_ci#define SL_SAMPLINGRATE_8 ((SLuint32) 8000000) 160523f5352Sopenharmony_ci#define SL_SAMPLINGRATE_11_025 ((SLuint32) 11025000) 161523f5352Sopenharmony_ci#define SL_SAMPLINGRATE_12 ((SLuint32) 12000000) 162523f5352Sopenharmony_ci#define SL_SAMPLINGRATE_16 ((SLuint32) 16000000) 163523f5352Sopenharmony_ci#define SL_SAMPLINGRATE_22_05 ((SLuint32) 22050000) 164523f5352Sopenharmony_ci#define SL_SAMPLINGRATE_24 ((SLuint32) 24000000) 165523f5352Sopenharmony_ci#define SL_SAMPLINGRATE_32 ((SLuint32) 32000000) 166523f5352Sopenharmony_ci#define SL_SAMPLINGRATE_44_1 ((SLuint32) 44100000) 167523f5352Sopenharmony_ci#define SL_SAMPLINGRATE_48 ((SLuint32) 48000000) 168523f5352Sopenharmony_ci#define SL_SAMPLINGRATE_64 ((SLuint32) 64000000) 169523f5352Sopenharmony_ci#define SL_SAMPLINGRATE_88_2 ((SLuint32) 88200000) 170523f5352Sopenharmony_ci#define SL_SAMPLINGRATE_96 ((SLuint32) 96000000) 171523f5352Sopenharmony_ci#define SL_SAMPLINGRATE_192 ((SLuint32) 192000000) 172523f5352Sopenharmony_ci 173523f5352Sopenharmony_ci#define SL_SPEAKER_FRONT_LEFT ((SLuint32) 0x00000001) 174523f5352Sopenharmony_ci#define SL_SPEAKER_FRONT_RIGHT ((SLuint32) 0x00000002) 175523f5352Sopenharmony_ci#define SL_SPEAKER_FRONT_CENTER ((SLuint32) 0x00000004) 176523f5352Sopenharmony_ci#define SL_SPEAKER_LOW_FREQUENCY ((SLuint32) 0x00000008) 177523f5352Sopenharmony_ci#define SL_SPEAKER_BACK_LEFT ((SLuint32) 0x00000010) 178523f5352Sopenharmony_ci#define SL_SPEAKER_BACK_RIGHT ((SLuint32) 0x00000020) 179523f5352Sopenharmony_ci#define SL_SPEAKER_FRONT_LEFT_OF_CENTER ((SLuint32) 0x00000040) 180523f5352Sopenharmony_ci#define SL_SPEAKER_FRONT_RIGHT_OF_CENTER ((SLuint32) 0x00000080) 181523f5352Sopenharmony_ci#define SL_SPEAKER_BACK_CENTER ((SLuint32) 0x00000100) 182523f5352Sopenharmony_ci#define SL_SPEAKER_SIDE_LEFT ((SLuint32) 0x00000200) 183523f5352Sopenharmony_ci#define SL_SPEAKER_SIDE_RIGHT ((SLuint32) 0x00000400) 184523f5352Sopenharmony_ci#define SL_SPEAKER_TOP_CENTER ((SLuint32) 0x00000800) 185523f5352Sopenharmony_ci#define SL_SPEAKER_TOP_FRONT_LEFT ((SLuint32) 0x00001000) 186523f5352Sopenharmony_ci#define SL_SPEAKER_TOP_FRONT_CENTER ((SLuint32) 0x00002000) 187523f5352Sopenharmony_ci#define SL_SPEAKER_TOP_FRONT_RIGHT ((SLuint32) 0x00004000) 188523f5352Sopenharmony_ci#define SL_SPEAKER_TOP_BACK_LEFT ((SLuint32) 0x00008000) 189523f5352Sopenharmony_ci#define SL_SPEAKER_TOP_BACK_CENTER ((SLuint32) 0x00010000) 190523f5352Sopenharmony_ci#define SL_SPEAKER_TOP_BACK_RIGHT ((SLuint32) 0x00020000) 191523f5352Sopenharmony_ci 192523f5352Sopenharmony_ci 193523f5352Sopenharmony_ci/*****************************************************************************/ 194523f5352Sopenharmony_ci/* Errors */ 195523f5352Sopenharmony_ci/* */ 196523f5352Sopenharmony_ci/*****************************************************************************/ 197523f5352Sopenharmony_ci 198523f5352Sopenharmony_ci#define SL_RESULT_SUCCESS ((SLuint32) 0x00000000) 199523f5352Sopenharmony_ci#define SL_RESULT_PRECONDITIONS_VIOLATED ((SLuint32) 0x00000001) 200523f5352Sopenharmony_ci#define SL_RESULT_PARAMETER_INVALID ((SLuint32) 0x00000002) 201523f5352Sopenharmony_ci#define SL_RESULT_MEMORY_FAILURE ((SLuint32) 0x00000003) 202523f5352Sopenharmony_ci#define SL_RESULT_RESOURCE_ERROR ((SLuint32) 0x00000004) 203523f5352Sopenharmony_ci#define SL_RESULT_RESOURCE_LOST ((SLuint32) 0x00000005) 204523f5352Sopenharmony_ci#define SL_RESULT_IO_ERROR ((SLuint32) 0x00000006) 205523f5352Sopenharmony_ci#define SL_RESULT_BUFFER_INSUFFICIENT ((SLuint32) 0x00000007) 206523f5352Sopenharmony_ci#define SL_RESULT_CONTENT_CORRUPTED ((SLuint32) 0x00000008) 207523f5352Sopenharmony_ci#define SL_RESULT_CONTENT_UNSUPPORTED ((SLuint32) 0x00000009) 208523f5352Sopenharmony_ci#define SL_RESULT_CONTENT_NOT_FOUND ((SLuint32) 0x0000000A) 209523f5352Sopenharmony_ci#define SL_RESULT_PERMISSION_DENIED ((SLuint32) 0x0000000B) 210523f5352Sopenharmony_ci#define SL_RESULT_FEATURE_UNSUPPORTED ((SLuint32) 0x0000000C) 211523f5352Sopenharmony_ci#define SL_RESULT_INTERNAL_ERROR ((SLuint32) 0x0000000D) 212523f5352Sopenharmony_ci#define SL_RESULT_UNKNOWN_ERROR ((SLuint32) 0x0000000E) 213523f5352Sopenharmony_ci#define SL_RESULT_OPERATION_ABORTED ((SLuint32) 0x0000000F) 214523f5352Sopenharmony_ci#define SL_RESULT_CONTROL_LOST ((SLuint32) 0x00000010) 215523f5352Sopenharmony_ci 216523f5352Sopenharmony_ci 217523f5352Sopenharmony_ci/* Object state definitions */ 218523f5352Sopenharmony_ci 219523f5352Sopenharmony_ci#define SL_OBJECT_STATE_UNREALIZED ((SLuint32) 0x00000001) 220523f5352Sopenharmony_ci#define SL_OBJECT_STATE_REALIZED ((SLuint32) 0x00000002) 221523f5352Sopenharmony_ci#define SL_OBJECT_STATE_SUSPENDED ((SLuint32) 0x00000003) 222523f5352Sopenharmony_ci 223523f5352Sopenharmony_ci/* Object event definitions */ 224523f5352Sopenharmony_ci 225523f5352Sopenharmony_ci#define SL_OBJECT_EVENT_RUNTIME_ERROR ((SLuint32) 0x00000001) 226523f5352Sopenharmony_ci#define SL_OBJECT_EVENT_ASYNC_TERMINATION ((SLuint32) 0x00000002) 227523f5352Sopenharmony_ci#define SL_OBJECT_EVENT_RESOURCES_LOST ((SLuint32) 0x00000003) 228523f5352Sopenharmony_ci#define SL_OBJECT_EVENT_RESOURCES_AVAILABLE ((SLuint32) 0x00000004) 229523f5352Sopenharmony_ci#define SL_OBJECT_EVENT_ITF_CONTROL_TAKEN ((SLuint32) 0x00000005) 230523f5352Sopenharmony_ci#define SL_OBJECT_EVENT_ITF_CONTROL_RETURNED ((SLuint32) 0x00000006) 231523f5352Sopenharmony_ci#define SL_OBJECT_EVENT_ITF_PARAMETERS_CHANGED ((SLuint32) 0x00000007) 232523f5352Sopenharmony_ci 233523f5352Sopenharmony_ci 234523f5352Sopenharmony_ci/*****************************************************************************/ 235523f5352Sopenharmony_ci/* Interface definitions */ 236523f5352Sopenharmony_ci/*****************************************************************************/ 237523f5352Sopenharmony_ci 238523f5352Sopenharmony_ci/** NULL Interface */ 239523f5352Sopenharmony_ci 240523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_NULL; 241523f5352Sopenharmony_ci 242523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 243523f5352Sopenharmony_ci/* Data Source and Data Sink Structures */ 244523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 245523f5352Sopenharmony_ci 246523f5352Sopenharmony_ci/** Data locator macros */ 247523f5352Sopenharmony_ci#define SL_DATALOCATOR_URI ((SLuint32) 0x00000001) 248523f5352Sopenharmony_ci#define SL_DATALOCATOR_ADDRESS ((SLuint32) 0x00000002) 249523f5352Sopenharmony_ci#define SL_DATALOCATOR_IODEVICE ((SLuint32) 0x00000003) 250523f5352Sopenharmony_ci#define SL_DATALOCATOR_OUTPUTMIX ((SLuint32) 0x00000004) 251523f5352Sopenharmony_ci#define SL_DATALOCATOR_RESERVED5 ((SLuint32) 0x00000005) 252523f5352Sopenharmony_ci#define SL_DATALOCATOR_BUFFERQUEUE ((SLuint32) 0x00000006) 253523f5352Sopenharmony_ci#define SL_DATALOCATOR_MIDIBUFFERQUEUE ((SLuint32) 0x00000007) 254523f5352Sopenharmony_ci#define SL_DATALOCATOR_RESERVED8 ((SLuint32) 0x00000008) 255523f5352Sopenharmony_ci 256523f5352Sopenharmony_ci 257523f5352Sopenharmony_ci 258523f5352Sopenharmony_ci/** URI-based data locator definition where locatorType must be SL_DATALOCATOR_URI*/ 259523f5352Sopenharmony_citypedef struct SLDataLocator_URI_ { 260523f5352Sopenharmony_ci SLuint32 locatorType; 261523f5352Sopenharmony_ci SLchar * URI; 262523f5352Sopenharmony_ci} SLDataLocator_URI; 263523f5352Sopenharmony_ci 264523f5352Sopenharmony_ci/** Address-based data locator definition where locatorType must be SL_DATALOCATOR_ADDRESS*/ 265523f5352Sopenharmony_citypedef struct SLDataLocator_Address_ { 266523f5352Sopenharmony_ci SLuint32 locatorType; 267523f5352Sopenharmony_ci void *pAddress; 268523f5352Sopenharmony_ci SLuint32 length; 269523f5352Sopenharmony_ci} SLDataLocator_Address; 270523f5352Sopenharmony_ci 271523f5352Sopenharmony_ci/** IODevice-types */ 272523f5352Sopenharmony_ci#define SL_IODEVICE_AUDIOINPUT ((SLuint32) 0x00000001) 273523f5352Sopenharmony_ci#define SL_IODEVICE_LEDARRAY ((SLuint32) 0x00000002) 274523f5352Sopenharmony_ci#define SL_IODEVICE_VIBRA ((SLuint32) 0x00000003) 275523f5352Sopenharmony_ci#define SL_IODEVICE_RESERVED4 ((SLuint32) 0x00000004) 276523f5352Sopenharmony_ci#define SL_IODEVICE_RESERVED5 ((SLuint32) 0x00000005) 277523f5352Sopenharmony_ci 278523f5352Sopenharmony_ci/** IODevice-based data locator definition where locatorType must be SL_DATALOCATOR_IODEVICE*/ 279523f5352Sopenharmony_citypedef struct SLDataLocator_IODevice_ { 280523f5352Sopenharmony_ci SLuint32 locatorType; 281523f5352Sopenharmony_ci SLuint32 deviceType; 282523f5352Sopenharmony_ci SLuint32 deviceID; 283523f5352Sopenharmony_ci SLObjectItf device; 284523f5352Sopenharmony_ci} SLDataLocator_IODevice; 285523f5352Sopenharmony_ci 286523f5352Sopenharmony_ci/** OutputMix-based data locator definition where locatorType must be SL_DATALOCATOR_OUTPUTMIX*/ 287523f5352Sopenharmony_citypedef struct SLDataLocator_OutputMix { 288523f5352Sopenharmony_ci SLuint32 locatorType; 289523f5352Sopenharmony_ci SLObjectItf outputMix; 290523f5352Sopenharmony_ci} SLDataLocator_OutputMix; 291523f5352Sopenharmony_ci 292523f5352Sopenharmony_ci 293523f5352Sopenharmony_ci/** BufferQueue-based data locator definition where locatorType must be SL_DATALOCATOR_BUFFERQUEUE*/ 294523f5352Sopenharmony_citypedef struct SLDataLocator_BufferQueue { 295523f5352Sopenharmony_ci SLuint32 locatorType; 296523f5352Sopenharmony_ci SLuint32 numBuffers; 297523f5352Sopenharmony_ci} SLDataLocator_BufferQueue; 298523f5352Sopenharmony_ci 299523f5352Sopenharmony_ci/** MidiBufferQueue-based data locator definition where locatorType must be SL_DATALOCATOR_MIDIBUFFERQUEUE*/ 300523f5352Sopenharmony_citypedef struct SLDataLocator_MIDIBufferQueue { 301523f5352Sopenharmony_ci SLuint32 locatorType; 302523f5352Sopenharmony_ci SLuint32 tpqn; 303523f5352Sopenharmony_ci SLuint32 numBuffers; 304523f5352Sopenharmony_ci} SLDataLocator_MIDIBufferQueue; 305523f5352Sopenharmony_ci 306523f5352Sopenharmony_ci/** Data format defines */ 307523f5352Sopenharmony_ci#define SL_DATAFORMAT_MIME ((SLuint32) 0x00000001) 308523f5352Sopenharmony_ci#define SL_DATAFORMAT_PCM ((SLuint32) 0x00000002) 309523f5352Sopenharmony_ci#define SL_DATAFORMAT_RESERVED3 ((SLuint32) 0x00000003) 310523f5352Sopenharmony_ci 311523f5352Sopenharmony_ci 312523f5352Sopenharmony_ci/** MIME-type-based data format definition where formatType must be SL_DATAFORMAT_MIME*/ 313523f5352Sopenharmony_citypedef struct SLDataFormat_MIME_ { 314523f5352Sopenharmony_ci SLuint32 formatType; 315523f5352Sopenharmony_ci SLchar * mimeType; 316523f5352Sopenharmony_ci SLuint32 containerType; 317523f5352Sopenharmony_ci} SLDataFormat_MIME; 318523f5352Sopenharmony_ci 319523f5352Sopenharmony_ci/* Byte order of a block of 16- or 32-bit data */ 320523f5352Sopenharmony_ci#define SL_BYTEORDER_BIGENDIAN ((SLuint32) 0x00000001) 321523f5352Sopenharmony_ci#define SL_BYTEORDER_LITTLEENDIAN ((SLuint32) 0x00000002) 322523f5352Sopenharmony_ci 323523f5352Sopenharmony_ci/* Container type */ 324523f5352Sopenharmony_ci#define SL_CONTAINERTYPE_UNSPECIFIED ((SLuint32) 0x00000001) 325523f5352Sopenharmony_ci#define SL_CONTAINERTYPE_RAW ((SLuint32) 0x00000002) 326523f5352Sopenharmony_ci#define SL_CONTAINERTYPE_ASF ((SLuint32) 0x00000003) 327523f5352Sopenharmony_ci#define SL_CONTAINERTYPE_AVI ((SLuint32) 0x00000004) 328523f5352Sopenharmony_ci#define SL_CONTAINERTYPE_BMP ((SLuint32) 0x00000005) 329523f5352Sopenharmony_ci#define SL_CONTAINERTYPE_JPG ((SLuint32) 0x00000006) 330523f5352Sopenharmony_ci#define SL_CONTAINERTYPE_JPG2000 ((SLuint32) 0x00000007) 331523f5352Sopenharmony_ci#define SL_CONTAINERTYPE_M4A ((SLuint32) 0x00000008) 332523f5352Sopenharmony_ci#define SL_CONTAINERTYPE_MP3 ((SLuint32) 0x00000009) 333523f5352Sopenharmony_ci#define SL_CONTAINERTYPE_MP4 ((SLuint32) 0x0000000A) 334523f5352Sopenharmony_ci#define SL_CONTAINERTYPE_MPEG_ES ((SLuint32) 0x0000000B) 335523f5352Sopenharmony_ci#define SL_CONTAINERTYPE_MPEG_PS ((SLuint32) 0x0000000C) 336523f5352Sopenharmony_ci#define SL_CONTAINERTYPE_MPEG_TS ((SLuint32) 0x0000000D) 337523f5352Sopenharmony_ci#define SL_CONTAINERTYPE_QT ((SLuint32) 0x0000000E) 338523f5352Sopenharmony_ci#define SL_CONTAINERTYPE_WAV ((SLuint32) 0x0000000F) 339523f5352Sopenharmony_ci#define SL_CONTAINERTYPE_XMF_0 ((SLuint32) 0x00000010) 340523f5352Sopenharmony_ci#define SL_CONTAINERTYPE_XMF_1 ((SLuint32) 0x00000011) 341523f5352Sopenharmony_ci#define SL_CONTAINERTYPE_XMF_2 ((SLuint32) 0x00000012) 342523f5352Sopenharmony_ci#define SL_CONTAINERTYPE_XMF_3 ((SLuint32) 0x00000013) 343523f5352Sopenharmony_ci#define SL_CONTAINERTYPE_XMF_GENERIC ((SLuint32) 0x00000014) 344523f5352Sopenharmony_ci#define SL_CONTAINERTYPE_AMR ((SLuint32) 0x00000015) 345523f5352Sopenharmony_ci#define SL_CONTAINERTYPE_AAC ((SLuint32) 0x00000016) 346523f5352Sopenharmony_ci#define SL_CONTAINERTYPE_3GPP ((SLuint32) 0x00000017) 347523f5352Sopenharmony_ci#define SL_CONTAINERTYPE_3GA ((SLuint32) 0x00000018) 348523f5352Sopenharmony_ci#define SL_CONTAINERTYPE_RM ((SLuint32) 0x00000019) 349523f5352Sopenharmony_ci#define SL_CONTAINERTYPE_DMF ((SLuint32) 0x0000001A) 350523f5352Sopenharmony_ci#define SL_CONTAINERTYPE_SMF ((SLuint32) 0x0000001B) 351523f5352Sopenharmony_ci#define SL_CONTAINERTYPE_MOBILE_DLS ((SLuint32) 0x0000001C) 352523f5352Sopenharmony_ci#define SL_CONTAINERTYPE_OGG ((SLuint32) 0x0000001D) 353523f5352Sopenharmony_ci 354523f5352Sopenharmony_ci 355523f5352Sopenharmony_ci/** PCM-type-based data format definition where formatType must be SL_DATAFORMAT_PCM*/ 356523f5352Sopenharmony_citypedef struct SLDataFormat_PCM_ { 357523f5352Sopenharmony_ci SLuint32 formatType; 358523f5352Sopenharmony_ci SLuint32 numChannels; 359523f5352Sopenharmony_ci SLuint32 samplesPerSec; 360523f5352Sopenharmony_ci SLuint32 bitsPerSample; 361523f5352Sopenharmony_ci SLuint32 containerSize; 362523f5352Sopenharmony_ci SLuint32 channelMask; 363523f5352Sopenharmony_ci SLuint32 endianness; 364523f5352Sopenharmony_ci} SLDataFormat_PCM; 365523f5352Sopenharmony_ci 366523f5352Sopenharmony_citypedef struct SLDataSource_ { 367523f5352Sopenharmony_ci void *pLocator; 368523f5352Sopenharmony_ci void *pFormat; 369523f5352Sopenharmony_ci} SLDataSource; 370523f5352Sopenharmony_ci 371523f5352Sopenharmony_ci 372523f5352Sopenharmony_citypedef struct SLDataSink_ { 373523f5352Sopenharmony_ci void *pLocator; 374523f5352Sopenharmony_ci void *pFormat; 375523f5352Sopenharmony_ci} SLDataSink; 376523f5352Sopenharmony_ci 377523f5352Sopenharmony_ci 378523f5352Sopenharmony_ci 379523f5352Sopenharmony_ci 380523f5352Sopenharmony_ci 381523f5352Sopenharmony_ci 382523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 383523f5352Sopenharmony_ci/* Standard Object Interface */ 384523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 385523f5352Sopenharmony_ci 386523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_OBJECT; 387523f5352Sopenharmony_ci 388523f5352Sopenharmony_ci/** Object callback */ 389523f5352Sopenharmony_ci 390523f5352Sopenharmony_ci 391523f5352Sopenharmony_citypedef void (SLAPIENTRY *slObjectCallback) ( 392523f5352Sopenharmony_ci SLObjectItf caller, 393523f5352Sopenharmony_ci const void * pContext, 394523f5352Sopenharmony_ci SLuint32 event, 395523f5352Sopenharmony_ci SLresult result, 396523f5352Sopenharmony_ci SLuint32 param, 397523f5352Sopenharmony_ci void *pInterface 398523f5352Sopenharmony_ci); 399523f5352Sopenharmony_ci 400523f5352Sopenharmony_ci 401523f5352Sopenharmony_cistruct SLObjectItf_ { 402523f5352Sopenharmony_ci SLresult (*Realize) ( 403523f5352Sopenharmony_ci SLObjectItf self, 404523f5352Sopenharmony_ci SLboolean async 405523f5352Sopenharmony_ci ); 406523f5352Sopenharmony_ci SLresult (*Resume) ( 407523f5352Sopenharmony_ci SLObjectItf self, 408523f5352Sopenharmony_ci SLboolean async 409523f5352Sopenharmony_ci ); 410523f5352Sopenharmony_ci SLresult (*GetState) ( 411523f5352Sopenharmony_ci SLObjectItf self, 412523f5352Sopenharmony_ci SLuint32 * pState 413523f5352Sopenharmony_ci ); 414523f5352Sopenharmony_ci SLresult (*GetInterface) ( 415523f5352Sopenharmony_ci SLObjectItf self, 416523f5352Sopenharmony_ci const SLInterfaceID iid, 417523f5352Sopenharmony_ci void * pInterface 418523f5352Sopenharmony_ci ); 419523f5352Sopenharmony_ci SLresult (*RegisterCallback) ( 420523f5352Sopenharmony_ci SLObjectItf self, 421523f5352Sopenharmony_ci slObjectCallback callback, 422523f5352Sopenharmony_ci void * pContext 423523f5352Sopenharmony_ci ); 424523f5352Sopenharmony_ci void (*AbortAsyncOperation) ( 425523f5352Sopenharmony_ci SLObjectItf self 426523f5352Sopenharmony_ci ); 427523f5352Sopenharmony_ci void (*Destroy) ( 428523f5352Sopenharmony_ci SLObjectItf self 429523f5352Sopenharmony_ci ); 430523f5352Sopenharmony_ci SLresult (*SetPriority) ( 431523f5352Sopenharmony_ci SLObjectItf self, 432523f5352Sopenharmony_ci SLint32 priority, 433523f5352Sopenharmony_ci SLboolean preemptable 434523f5352Sopenharmony_ci ); 435523f5352Sopenharmony_ci SLresult (*GetPriority) ( 436523f5352Sopenharmony_ci SLObjectItf self, 437523f5352Sopenharmony_ci SLint32 *pPriority, 438523f5352Sopenharmony_ci SLboolean *pPreemptable 439523f5352Sopenharmony_ci ); 440523f5352Sopenharmony_ci SLresult (*SetLossOfControlInterfaces) ( 441523f5352Sopenharmony_ci SLObjectItf self, 442523f5352Sopenharmony_ci SLint16 numInterfaces, 443523f5352Sopenharmony_ci SLInterfaceID * pInterfaceIDs, 444523f5352Sopenharmony_ci SLboolean enabled 445523f5352Sopenharmony_ci ); 446523f5352Sopenharmony_ci}; 447523f5352Sopenharmony_ci 448523f5352Sopenharmony_ci 449523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 450523f5352Sopenharmony_ci/* Audio IO Device capabilities interface */ 451523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 452523f5352Sopenharmony_ci 453523f5352Sopenharmony_ci#define SL_DEFAULTDEVICEID_AUDIOINPUT ((SLuint32) 0xFFFFFFFF) 454523f5352Sopenharmony_ci#define SL_DEFAULTDEVICEID_AUDIOOUTPUT ((SLuint32) 0xFFFFFFFE) 455523f5352Sopenharmony_ci#define SL_DEFAULTDEVICEID_LED ((SLuint32) 0xFFFFFFFD) 456523f5352Sopenharmony_ci#define SL_DEFAULTDEVICEID_VIBRA ((SLuint32) 0xFFFFFFFC) 457523f5352Sopenharmony_ci#define SL_DEFAULTDEVICEID_RESERVED1 ((SLuint32) 0xFFFFFFFB) 458523f5352Sopenharmony_ci 459523f5352Sopenharmony_ci 460523f5352Sopenharmony_ci#define SL_DEVCONNECTION_INTEGRATED ((SLint16) 0x0001) 461523f5352Sopenharmony_ci#define SL_DEVCONNECTION_ATTACHED_WIRED ((SLint16) 0x0100) 462523f5352Sopenharmony_ci#define SL_DEVCONNECTION_ATTACHED_WIRELESS ((SLint16) 0x0200) 463523f5352Sopenharmony_ci#define SL_DEVCONNECTION_NETWORK ((SLint16) 0x0400) 464523f5352Sopenharmony_ci 465523f5352Sopenharmony_ci 466523f5352Sopenharmony_ci#define SL_DEVLOCATION_HANDSET ((SLuint16) 0x0001) 467523f5352Sopenharmony_ci#define SL_DEVLOCATION_HEADSET ((SLuint16) 0x0002) 468523f5352Sopenharmony_ci#define SL_DEVLOCATION_CARKIT ((SLuint16) 0x0003) 469523f5352Sopenharmony_ci#define SL_DEVLOCATION_DOCK ((SLuint16) 0x0004) 470523f5352Sopenharmony_ci#define SL_DEVLOCATION_REMOTE ((SLuint16) 0x0005) 471523f5352Sopenharmony_ci/* Note: SL_DEVLOCATION_RESLTE is deprecated, use SL_DEVLOCATION_REMOTE instead. */ 472523f5352Sopenharmony_ci#define SL_DEVLOCATION_RESLTE ((SLuint16) 0x0005) 473523f5352Sopenharmony_ci 474523f5352Sopenharmony_ci 475523f5352Sopenharmony_ci#define SL_DEVSCOPE_UNKNOWN ((SLuint16) 0x0001) 476523f5352Sopenharmony_ci#define SL_DEVSCOPE_ENVIRONMENT ((SLuint16) 0x0002) 477523f5352Sopenharmony_ci#define SL_DEVSCOPE_USER ((SLuint16) 0x0003) 478523f5352Sopenharmony_ci 479523f5352Sopenharmony_ci 480523f5352Sopenharmony_citypedef struct SLAudioInputDescriptor_ { 481523f5352Sopenharmony_ci SLchar *deviceName; 482523f5352Sopenharmony_ci SLint16 deviceConnection; 483523f5352Sopenharmony_ci SLint16 deviceScope; 484523f5352Sopenharmony_ci SLint16 deviceLocation; 485523f5352Sopenharmony_ci SLboolean isForTelephony; 486523f5352Sopenharmony_ci SLmilliHertz minSampleRate; 487523f5352Sopenharmony_ci SLmilliHertz maxSampleRate; 488523f5352Sopenharmony_ci SLboolean isFreqRangeContinuous; 489523f5352Sopenharmony_ci SLmilliHertz *samplingRatesSupported; 490523f5352Sopenharmony_ci SLint16 numOfSamplingRatesSupported; 491523f5352Sopenharmony_ci SLint16 maxChannels; 492523f5352Sopenharmony_ci} SLAudioInputDescriptor; 493523f5352Sopenharmony_ci 494523f5352Sopenharmony_ci 495523f5352Sopenharmony_citypedef struct SLAudioOutputDescriptor_ { 496523f5352Sopenharmony_ci SLchar *pDeviceName; 497523f5352Sopenharmony_ci SLint16 deviceConnection; 498523f5352Sopenharmony_ci SLint16 deviceScope; 499523f5352Sopenharmony_ci SLint16 deviceLocation; 500523f5352Sopenharmony_ci SLboolean isForTelephony; 501523f5352Sopenharmony_ci SLmilliHertz minSampleRate; 502523f5352Sopenharmony_ci SLmilliHertz maxSampleRate; 503523f5352Sopenharmony_ci SLboolean isFreqRangeContinuous; 504523f5352Sopenharmony_ci SLmilliHertz *samplingRatesSupported; 505523f5352Sopenharmony_ci SLint16 numOfSamplingRatesSupported; 506523f5352Sopenharmony_ci SLint16 maxChannels; 507523f5352Sopenharmony_ci} SLAudioOutputDescriptor; 508523f5352Sopenharmony_ci 509523f5352Sopenharmony_ci 510523f5352Sopenharmony_ci 511523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_AUDIOIODEVICECAPABILITIES; 512523f5352Sopenharmony_ci 513523f5352Sopenharmony_cistruct SLAudioIODeviceCapabilitiesItf_; 514523f5352Sopenharmony_citypedef const struct SLAudioIODeviceCapabilitiesItf_ * const * SLAudioIODeviceCapabilitiesItf; 515523f5352Sopenharmony_ci 516523f5352Sopenharmony_ci 517523f5352Sopenharmony_citypedef void (SLAPIENTRY *slAvailableAudioInputsChangedCallback) ( 518523f5352Sopenharmony_ci SLAudioIODeviceCapabilitiesItf caller, 519523f5352Sopenharmony_ci void *pContext, 520523f5352Sopenharmony_ci SLuint32 deviceID, 521523f5352Sopenharmony_ci SLint32 numInputs, 522523f5352Sopenharmony_ci SLboolean isNew 523523f5352Sopenharmony_ci); 524523f5352Sopenharmony_ci 525523f5352Sopenharmony_ci 526523f5352Sopenharmony_citypedef void (SLAPIENTRY *slAvailableAudioOutputsChangedCallback) ( 527523f5352Sopenharmony_ci SLAudioIODeviceCapabilitiesItf caller, 528523f5352Sopenharmony_ci void *pContext, 529523f5352Sopenharmony_ci SLuint32 deviceID, 530523f5352Sopenharmony_ci SLint32 numOutputs, 531523f5352Sopenharmony_ci SLboolean isNew 532523f5352Sopenharmony_ci); 533523f5352Sopenharmony_ci 534523f5352Sopenharmony_citypedef void (SLAPIENTRY *slDefaultDeviceIDMapChangedCallback) ( 535523f5352Sopenharmony_ci SLAudioIODeviceCapabilitiesItf caller, 536523f5352Sopenharmony_ci void *pContext, 537523f5352Sopenharmony_ci SLboolean isOutput, 538523f5352Sopenharmony_ci SLint32 numDevices 539523f5352Sopenharmony_ci); 540523f5352Sopenharmony_ci 541523f5352Sopenharmony_ci 542523f5352Sopenharmony_cistruct SLAudioIODeviceCapabilitiesItf_ { 543523f5352Sopenharmony_ci SLresult (*GetAvailableAudioInputs)( 544523f5352Sopenharmony_ci SLAudioIODeviceCapabilitiesItf self, 545523f5352Sopenharmony_ci SLint32 *pNumInputs, 546523f5352Sopenharmony_ci SLuint32 *pInputDeviceIDs 547523f5352Sopenharmony_ci ); 548523f5352Sopenharmony_ci SLresult (*QueryAudioInputCapabilities)( 549523f5352Sopenharmony_ci SLAudioIODeviceCapabilitiesItf self, 550523f5352Sopenharmony_ci SLuint32 deviceId, 551523f5352Sopenharmony_ci SLAudioInputDescriptor *pDescriptor 552523f5352Sopenharmony_ci ); 553523f5352Sopenharmony_ci SLresult (*RegisterAvailableAudioInputsChangedCallback) ( 554523f5352Sopenharmony_ci SLAudioIODeviceCapabilitiesItf self, 555523f5352Sopenharmony_ci slAvailableAudioInputsChangedCallback callback, 556523f5352Sopenharmony_ci void *pContext 557523f5352Sopenharmony_ci ); 558523f5352Sopenharmony_ci SLresult (*GetAvailableAudioOutputs)( 559523f5352Sopenharmony_ci SLAudioIODeviceCapabilitiesItf self, 560523f5352Sopenharmony_ci SLint32 *pNumOutputs, 561523f5352Sopenharmony_ci SLuint32 *pOutputDeviceIDs 562523f5352Sopenharmony_ci ); 563523f5352Sopenharmony_ci SLresult (*QueryAudioOutputCapabilities)( 564523f5352Sopenharmony_ci SLAudioIODeviceCapabilitiesItf self, 565523f5352Sopenharmony_ci SLuint32 deviceId, 566523f5352Sopenharmony_ci SLAudioOutputDescriptor *pDescriptor 567523f5352Sopenharmony_ci ); 568523f5352Sopenharmony_ci SLresult (*RegisterAvailableAudioOutputsChangedCallback) ( 569523f5352Sopenharmony_ci SLAudioIODeviceCapabilitiesItf self, 570523f5352Sopenharmony_ci slAvailableAudioOutputsChangedCallback callback, 571523f5352Sopenharmony_ci void *pContext 572523f5352Sopenharmony_ci ); 573523f5352Sopenharmony_ci SLresult (*RegisterDefaultDeviceIDMapChangedCallback) ( 574523f5352Sopenharmony_ci SLAudioIODeviceCapabilitiesItf self, 575523f5352Sopenharmony_ci slDefaultDeviceIDMapChangedCallback callback, 576523f5352Sopenharmony_ci void *pContext 577523f5352Sopenharmony_ci ); 578523f5352Sopenharmony_ci SLresult (*GetAssociatedAudioInputs) ( 579523f5352Sopenharmony_ci SLAudioIODeviceCapabilitiesItf self, 580523f5352Sopenharmony_ci SLuint32 deviceId, 581523f5352Sopenharmony_ci SLint32 *pNumAudioInputs, 582523f5352Sopenharmony_ci SLuint32 *pAudioInputDeviceIDs 583523f5352Sopenharmony_ci ); 584523f5352Sopenharmony_ci SLresult (*GetAssociatedAudioOutputs) ( 585523f5352Sopenharmony_ci SLAudioIODeviceCapabilitiesItf self, 586523f5352Sopenharmony_ci SLuint32 deviceId, 587523f5352Sopenharmony_ci SLint32 *pNumAudioOutputs, 588523f5352Sopenharmony_ci SLuint32 *pAudioOutputDeviceIDs 589523f5352Sopenharmony_ci ); 590523f5352Sopenharmony_ci SLresult (*GetDefaultAudioDevices) ( 591523f5352Sopenharmony_ci SLAudioIODeviceCapabilitiesItf self, 592523f5352Sopenharmony_ci SLuint32 defaultDeviceID, 593523f5352Sopenharmony_ci SLint32 *pNumAudioDevices, 594523f5352Sopenharmony_ci SLuint32 *pAudioDeviceIDs 595523f5352Sopenharmony_ci ); 596523f5352Sopenharmony_ci SLresult (*QuerySampleFormatsSupported)( 597523f5352Sopenharmony_ci SLAudioIODeviceCapabilitiesItf self, 598523f5352Sopenharmony_ci SLuint32 deviceId, 599523f5352Sopenharmony_ci SLmilliHertz samplingRate, 600523f5352Sopenharmony_ci SLint32 *pSampleFormats, 601523f5352Sopenharmony_ci SLint32 *pNumOfSampleFormats 602523f5352Sopenharmony_ci ); 603523f5352Sopenharmony_ci}; 604523f5352Sopenharmony_ci 605523f5352Sopenharmony_ci 606523f5352Sopenharmony_ci 607523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 608523f5352Sopenharmony_ci/* Capabilities of the LED array IODevice */ 609523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 610523f5352Sopenharmony_ci 611523f5352Sopenharmony_citypedef struct SLLEDDescriptor_ { 612523f5352Sopenharmony_ci SLuint8 ledCount; 613523f5352Sopenharmony_ci SLuint8 primaryLED; 614523f5352Sopenharmony_ci SLuint32 colorMask; 615523f5352Sopenharmony_ci} SLLEDDescriptor; 616523f5352Sopenharmony_ci 617523f5352Sopenharmony_ci 618523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 619523f5352Sopenharmony_ci/* LED Array interface */ 620523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 621523f5352Sopenharmony_ci 622523f5352Sopenharmony_citypedef struct SLHSL_ { 623523f5352Sopenharmony_ci SLmillidegree hue; 624523f5352Sopenharmony_ci SLpermille saturation; 625523f5352Sopenharmony_ci SLpermille lightness; 626523f5352Sopenharmony_ci} SLHSL; 627523f5352Sopenharmony_ci 628523f5352Sopenharmony_ci 629523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_LED; 630523f5352Sopenharmony_ci 631523f5352Sopenharmony_cistruct SLLEDArrayItf_; 632523f5352Sopenharmony_citypedef const struct SLLEDArrayItf_ * const * SLLEDArrayItf; 633523f5352Sopenharmony_ci 634523f5352Sopenharmony_cistruct SLLEDArrayItf_ { 635523f5352Sopenharmony_ci SLresult (*ActivateLEDArray) ( 636523f5352Sopenharmony_ci SLLEDArrayItf self, 637523f5352Sopenharmony_ci SLuint32 lightMask 638523f5352Sopenharmony_ci ); 639523f5352Sopenharmony_ci SLresult (*IsLEDArrayActivated) ( 640523f5352Sopenharmony_ci SLLEDArrayItf self, 641523f5352Sopenharmony_ci SLuint32 *lightMask 642523f5352Sopenharmony_ci ); 643523f5352Sopenharmony_ci SLresult (*SetColor) ( 644523f5352Sopenharmony_ci SLLEDArrayItf self, 645523f5352Sopenharmony_ci SLuint8 index, 646523f5352Sopenharmony_ci const SLHSL *color 647523f5352Sopenharmony_ci ); 648523f5352Sopenharmony_ci SLresult (*GetColor) ( 649523f5352Sopenharmony_ci SLLEDArrayItf self, 650523f5352Sopenharmony_ci SLuint8 index, 651523f5352Sopenharmony_ci SLHSL *color 652523f5352Sopenharmony_ci ); 653523f5352Sopenharmony_ci}; 654523f5352Sopenharmony_ci 655523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 656523f5352Sopenharmony_ci/* Capabilities of the Vibra IODevice */ 657523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 658523f5352Sopenharmony_ci 659523f5352Sopenharmony_citypedef struct SLVibraDescriptor_ { 660523f5352Sopenharmony_ci SLboolean supportsFrequency; 661523f5352Sopenharmony_ci SLboolean supportsIntensity; 662523f5352Sopenharmony_ci SLmilliHertz minFrequency; 663523f5352Sopenharmony_ci SLmilliHertz maxFrequency; 664523f5352Sopenharmony_ci} SLVibraDescriptor; 665523f5352Sopenharmony_ci 666523f5352Sopenharmony_ci 667523f5352Sopenharmony_ci 668523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 669523f5352Sopenharmony_ci/* Vibra interface */ 670523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 671523f5352Sopenharmony_ci 672523f5352Sopenharmony_ci 673523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_VIBRA; 674523f5352Sopenharmony_ci 675523f5352Sopenharmony_ci 676523f5352Sopenharmony_cistruct SLVibraItf_; 677523f5352Sopenharmony_citypedef const struct SLVibraItf_ * const * SLVibraItf; 678523f5352Sopenharmony_ci 679523f5352Sopenharmony_cistruct SLVibraItf_ { 680523f5352Sopenharmony_ci SLresult (*Vibrate) ( 681523f5352Sopenharmony_ci SLVibraItf self, 682523f5352Sopenharmony_ci SLboolean vibrate 683523f5352Sopenharmony_ci ); 684523f5352Sopenharmony_ci SLresult (*IsVibrating) ( 685523f5352Sopenharmony_ci SLVibraItf self, 686523f5352Sopenharmony_ci SLboolean *pVibrating 687523f5352Sopenharmony_ci ); 688523f5352Sopenharmony_ci SLresult (*SetFrequency) ( 689523f5352Sopenharmony_ci SLVibraItf self, 690523f5352Sopenharmony_ci SLmilliHertz frequency 691523f5352Sopenharmony_ci ); 692523f5352Sopenharmony_ci SLresult (*GetFrequency) ( 693523f5352Sopenharmony_ci SLVibraItf self, 694523f5352Sopenharmony_ci SLmilliHertz *pFrequency 695523f5352Sopenharmony_ci ); 696523f5352Sopenharmony_ci SLresult (*SetIntensity) ( 697523f5352Sopenharmony_ci SLVibraItf self, 698523f5352Sopenharmony_ci SLpermille intensity 699523f5352Sopenharmony_ci ); 700523f5352Sopenharmony_ci SLresult (*GetIntensity) ( 701523f5352Sopenharmony_ci SLVibraItf self, 702523f5352Sopenharmony_ci SLpermille *pIntensity 703523f5352Sopenharmony_ci ); 704523f5352Sopenharmony_ci}; 705523f5352Sopenharmony_ci 706523f5352Sopenharmony_ci 707523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 708523f5352Sopenharmony_ci/* Meta data extraction related types and interface */ 709523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 710523f5352Sopenharmony_ci 711523f5352Sopenharmony_ci#define SL_CHARACTERENCODING_UNKNOWN ((SLuint32) 0x00000000) 712523f5352Sopenharmony_ci#define SL_CHARACTERENCODING_BINARY ((SLuint32) 0x00000001) 713523f5352Sopenharmony_ci#define SL_CHARACTERENCODING_ASCII ((SLuint32) 0x00000002) 714523f5352Sopenharmony_ci#define SL_CHARACTERENCODING_BIG5 ((SLuint32) 0x00000003) 715523f5352Sopenharmony_ci#define SL_CHARACTERENCODING_CODEPAGE1252 ((SLuint32) 0x00000004) 716523f5352Sopenharmony_ci#define SL_CHARACTERENCODING_GB2312 ((SLuint32) 0x00000005) 717523f5352Sopenharmony_ci#define SL_CHARACTERENCODING_HZGB2312 ((SLuint32) 0x00000006) 718523f5352Sopenharmony_ci#define SL_CHARACTERENCODING_GB12345 ((SLuint32) 0x00000007) 719523f5352Sopenharmony_ci#define SL_CHARACTERENCODING_GB18030 ((SLuint32) 0x00000008) 720523f5352Sopenharmony_ci#define SL_CHARACTERENCODING_GBK ((SLuint32) 0x00000009) 721523f5352Sopenharmony_ci#define SL_CHARACTERENCODING_IMAPUTF7 ((SLuint32) 0x0000000A) 722523f5352Sopenharmony_ci#define SL_CHARACTERENCODING_ISO2022JP ((SLuint32) 0x0000000B) 723523f5352Sopenharmony_ci#define SL_CHARACTERENCODING_ISO2022JP1 ((SLuint32) 0x0000000B) 724523f5352Sopenharmony_ci#define SL_CHARACTERENCODING_ISO88591 ((SLuint32) 0x0000000C) 725523f5352Sopenharmony_ci#define SL_CHARACTERENCODING_ISO885910 ((SLuint32) 0x0000000D) 726523f5352Sopenharmony_ci#define SL_CHARACTERENCODING_ISO885913 ((SLuint32) 0x0000000E) 727523f5352Sopenharmony_ci#define SL_CHARACTERENCODING_ISO885914 ((SLuint32) 0x0000000F) 728523f5352Sopenharmony_ci#define SL_CHARACTERENCODING_ISO885915 ((SLuint32) 0x00000010) 729523f5352Sopenharmony_ci#define SL_CHARACTERENCODING_ISO88592 ((SLuint32) 0x00000011) 730523f5352Sopenharmony_ci#define SL_CHARACTERENCODING_ISO88593 ((SLuint32) 0x00000012) 731523f5352Sopenharmony_ci#define SL_CHARACTERENCODING_ISO88594 ((SLuint32) 0x00000013) 732523f5352Sopenharmony_ci#define SL_CHARACTERENCODING_ISO88595 ((SLuint32) 0x00000014) 733523f5352Sopenharmony_ci#define SL_CHARACTERENCODING_ISO88596 ((SLuint32) 0x00000015) 734523f5352Sopenharmony_ci#define SL_CHARACTERENCODING_ISO88597 ((SLuint32) 0x00000016) 735523f5352Sopenharmony_ci#define SL_CHARACTERENCODING_ISO88598 ((SLuint32) 0x00000017) 736523f5352Sopenharmony_ci#define SL_CHARACTERENCODING_ISO88599 ((SLuint32) 0x00000018) 737523f5352Sopenharmony_ci#define SL_CHARACTERENCODING_ISOEUCJP ((SLuint32) 0x00000019) 738523f5352Sopenharmony_ci#define SL_CHARACTERENCODING_SHIFTJIS ((SLuint32) 0x0000001A) 739523f5352Sopenharmony_ci#define SL_CHARACTERENCODING_SMS7BIT ((SLuint32) 0x0000001B) 740523f5352Sopenharmony_ci#define SL_CHARACTERENCODING_UTF7 ((SLuint32) 0x0000001C) 741523f5352Sopenharmony_ci#define SL_CHARACTERENCODING_UTF8 ((SLuint32) 0x0000001D) 742523f5352Sopenharmony_ci#define SL_CHARACTERENCODING_JAVACONFORMANTUTF8 ((SLuint32) 0x0000001E) 743523f5352Sopenharmony_ci#define SL_CHARACTERENCODING_UTF16BE ((SLuint32) 0x0000001F) 744523f5352Sopenharmony_ci#define SL_CHARACTERENCODING_UTF16LE ((SLuint32) 0x00000020) 745523f5352Sopenharmony_ci 746523f5352Sopenharmony_ci 747523f5352Sopenharmony_ci#define SL_METADATA_FILTER_KEY ((SLuint8) 0x01) 748523f5352Sopenharmony_ci#define SL_METADATA_FILTER_LANG ((SLuint8) 0x02) 749523f5352Sopenharmony_ci#define SL_METADATA_FILTER_ENCODING ((SLuint8) 0x04) 750523f5352Sopenharmony_ci 751523f5352Sopenharmony_ci 752523f5352Sopenharmony_citypedef struct SLMetadataInfo_ { 753523f5352Sopenharmony_ci SLuint32 size; 754523f5352Sopenharmony_ci SLuint32 encoding; 755523f5352Sopenharmony_ci SLchar langCountry[16]; 756523f5352Sopenharmony_ci SLuint8 data[1]; 757523f5352Sopenharmony_ci} SLMetadataInfo; 758523f5352Sopenharmony_ci 759523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_METADATAEXTRACTION; 760523f5352Sopenharmony_ci 761523f5352Sopenharmony_cistruct SLMetadataExtractionItf_; 762523f5352Sopenharmony_citypedef const struct SLMetadataExtractionItf_ * const * SLMetadataExtractionItf; 763523f5352Sopenharmony_ci 764523f5352Sopenharmony_ci 765523f5352Sopenharmony_cistruct SLMetadataExtractionItf_ { 766523f5352Sopenharmony_ci SLresult (*GetItemCount) ( 767523f5352Sopenharmony_ci SLMetadataExtractionItf self, 768523f5352Sopenharmony_ci SLuint32 *pItemCount 769523f5352Sopenharmony_ci ); 770523f5352Sopenharmony_ci SLresult (*GetKeySize) ( 771523f5352Sopenharmony_ci SLMetadataExtractionItf self, 772523f5352Sopenharmony_ci SLuint32 index, 773523f5352Sopenharmony_ci SLuint32 *pKeySize 774523f5352Sopenharmony_ci ); 775523f5352Sopenharmony_ci SLresult (*GetKey) ( 776523f5352Sopenharmony_ci SLMetadataExtractionItf self, 777523f5352Sopenharmony_ci SLuint32 index, 778523f5352Sopenharmony_ci SLuint32 keySize, 779523f5352Sopenharmony_ci SLMetadataInfo *pKey 780523f5352Sopenharmony_ci ); 781523f5352Sopenharmony_ci SLresult (*GetValueSize) ( 782523f5352Sopenharmony_ci SLMetadataExtractionItf self, 783523f5352Sopenharmony_ci SLuint32 index, 784523f5352Sopenharmony_ci SLuint32 *pValueSize 785523f5352Sopenharmony_ci ); 786523f5352Sopenharmony_ci SLresult (*GetValue) ( 787523f5352Sopenharmony_ci SLMetadataExtractionItf self, 788523f5352Sopenharmony_ci SLuint32 index, 789523f5352Sopenharmony_ci SLuint32 valueSize, 790523f5352Sopenharmony_ci SLMetadataInfo *pValue 791523f5352Sopenharmony_ci ); 792523f5352Sopenharmony_ci SLresult (*AddKeyFilter) ( 793523f5352Sopenharmony_ci SLMetadataExtractionItf self, 794523f5352Sopenharmony_ci SLuint32 keySize, 795523f5352Sopenharmony_ci const void *pKey, 796523f5352Sopenharmony_ci SLuint32 keyEncoding, 797523f5352Sopenharmony_ci const SLchar *pValueLangCountry, 798523f5352Sopenharmony_ci SLuint32 valueEncoding, 799523f5352Sopenharmony_ci SLuint8 filterMask 800523f5352Sopenharmony_ci ); 801523f5352Sopenharmony_ci SLresult (*ClearKeyFilter) ( 802523f5352Sopenharmony_ci SLMetadataExtractionItf self 803523f5352Sopenharmony_ci ); 804523f5352Sopenharmony_ci}; 805523f5352Sopenharmony_ci 806523f5352Sopenharmony_ci 807523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 808523f5352Sopenharmony_ci/* Meta data traversal related types and interface */ 809523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 810523f5352Sopenharmony_ci 811523f5352Sopenharmony_ci#define SL_METADATATRAVERSALMODE_ALL ((SLuint32) 0x00000001) 812523f5352Sopenharmony_ci#define SL_METADATATRAVERSALMODE_NODE ((SLuint32) 0x00000002) 813523f5352Sopenharmony_ci 814523f5352Sopenharmony_ci 815523f5352Sopenharmony_ci#define SL_NODETYPE_UNSPECIFIED ((SLuint32) 0x00000001) 816523f5352Sopenharmony_ci#define SL_NODETYPE_AUDIO ((SLuint32) 0x00000002) 817523f5352Sopenharmony_ci#define SL_NODETYPE_VIDEO ((SLuint32) 0x00000003) 818523f5352Sopenharmony_ci#define SL_NODETYPE_IMAGE ((SLuint32) 0x00000004) 819523f5352Sopenharmony_ci 820523f5352Sopenharmony_ci#define SL_NODE_PARENT 0xFFFFFFFF 821523f5352Sopenharmony_ci 822523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_METADATATRAVERSAL; 823523f5352Sopenharmony_ci 824523f5352Sopenharmony_cistruct SLMetadataTraversalItf_; 825523f5352Sopenharmony_citypedef const struct SLMetadataTraversalItf_ * const * SLMetadataTraversalItf; 826523f5352Sopenharmony_ci 827523f5352Sopenharmony_cistruct SLMetadataTraversalItf_ { 828523f5352Sopenharmony_ci SLresult (*SetMode) ( 829523f5352Sopenharmony_ci SLMetadataTraversalItf self, 830523f5352Sopenharmony_ci SLuint32 mode 831523f5352Sopenharmony_ci ); 832523f5352Sopenharmony_ci SLresult (*GetChildCount) ( 833523f5352Sopenharmony_ci SLMetadataTraversalItf self, 834523f5352Sopenharmony_ci SLuint32 *pCount 835523f5352Sopenharmony_ci ); 836523f5352Sopenharmony_ci SLresult (*GetChildMIMETypeSize) ( 837523f5352Sopenharmony_ci SLMetadataTraversalItf self, 838523f5352Sopenharmony_ci SLuint32 index, 839523f5352Sopenharmony_ci SLuint32 *pSize 840523f5352Sopenharmony_ci ); 841523f5352Sopenharmony_ci SLresult (*GetChildInfo) ( 842523f5352Sopenharmony_ci SLMetadataTraversalItf self, 843523f5352Sopenharmony_ci SLuint32 index, 844523f5352Sopenharmony_ci SLint32 *pNodeID, 845523f5352Sopenharmony_ci SLuint32 *pType, 846523f5352Sopenharmony_ci SLuint32 size, 847523f5352Sopenharmony_ci SLchar *pMimeType 848523f5352Sopenharmony_ci ); 849523f5352Sopenharmony_ci SLresult (*SetActiveNode) ( 850523f5352Sopenharmony_ci SLMetadataTraversalItf self, 851523f5352Sopenharmony_ci SLuint32 index 852523f5352Sopenharmony_ci ); 853523f5352Sopenharmony_ci}; 854523f5352Sopenharmony_ci 855523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 856523f5352Sopenharmony_ci/* Dynamic Source types and interface */ 857523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 858523f5352Sopenharmony_ci 859523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_DYNAMICSOURCE; 860523f5352Sopenharmony_ci 861523f5352Sopenharmony_cistruct SLDynamicSourceItf_; 862523f5352Sopenharmony_citypedef const struct SLDynamicSourceItf_ * const * SLDynamicSourceItf; 863523f5352Sopenharmony_ci 864523f5352Sopenharmony_cistruct SLDynamicSourceItf_ { 865523f5352Sopenharmony_ci SLresult (*SetSource) ( 866523f5352Sopenharmony_ci SLDynamicSourceItf self, 867523f5352Sopenharmony_ci SLDataSource *pDataSource 868523f5352Sopenharmony_ci ); 869523f5352Sopenharmony_ci}; 870523f5352Sopenharmony_ci 871523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 872523f5352Sopenharmony_ci/* Output Mix interface */ 873523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 874523f5352Sopenharmony_ci 875523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_OUTPUTMIX; 876523f5352Sopenharmony_ci 877523f5352Sopenharmony_cistruct SLOutputMixItf_; 878523f5352Sopenharmony_citypedef const struct SLOutputMixItf_ * const * SLOutputMixItf; 879523f5352Sopenharmony_ci 880523f5352Sopenharmony_citypedef void (SLAPIENTRY *slMixDeviceChangeCallback) ( 881523f5352Sopenharmony_ci SLOutputMixItf caller, 882523f5352Sopenharmony_ci void *pContext 883523f5352Sopenharmony_ci); 884523f5352Sopenharmony_ci 885523f5352Sopenharmony_ci 886523f5352Sopenharmony_cistruct SLOutputMixItf_ { 887523f5352Sopenharmony_ci SLresult (*GetDestinationOutputDeviceIDs) ( 888523f5352Sopenharmony_ci SLOutputMixItf self, 889523f5352Sopenharmony_ci SLint32 *pNumDevices, 890523f5352Sopenharmony_ci SLuint32 *pDeviceIDs 891523f5352Sopenharmony_ci ); 892523f5352Sopenharmony_ci SLresult (*RegisterDeviceChangeCallback) ( 893523f5352Sopenharmony_ci SLOutputMixItf self, 894523f5352Sopenharmony_ci slMixDeviceChangeCallback callback, 895523f5352Sopenharmony_ci void *pContext 896523f5352Sopenharmony_ci ); 897523f5352Sopenharmony_ci SLresult (*ReRoute)( 898523f5352Sopenharmony_ci SLOutputMixItf self, 899523f5352Sopenharmony_ci SLint32 numOutputDevices, 900523f5352Sopenharmony_ci SLuint32 *pOutputDeviceIDs 901523f5352Sopenharmony_ci ); 902523f5352Sopenharmony_ci}; 903523f5352Sopenharmony_ci 904523f5352Sopenharmony_ci 905523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 906523f5352Sopenharmony_ci/* Playback interface */ 907523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 908523f5352Sopenharmony_ci 909523f5352Sopenharmony_ci/** Playback states */ 910523f5352Sopenharmony_ci#define SL_PLAYSTATE_STOPPED ((SLuint32) 0x00000001) 911523f5352Sopenharmony_ci#define SL_PLAYSTATE_PAUSED ((SLuint32) 0x00000002) 912523f5352Sopenharmony_ci#define SL_PLAYSTATE_PLAYING ((SLuint32) 0x00000003) 913523f5352Sopenharmony_ci 914523f5352Sopenharmony_ci/** Play events **/ 915523f5352Sopenharmony_ci#define SL_PLAYEVENT_HEADATEND ((SLuint32) 0x00000001) 916523f5352Sopenharmony_ci#define SL_PLAYEVENT_HEADATMARKER ((SLuint32) 0x00000002) 917523f5352Sopenharmony_ci#define SL_PLAYEVENT_HEADATNEWPOS ((SLuint32) 0x00000004) 918523f5352Sopenharmony_ci#define SL_PLAYEVENT_HEADMOVING ((SLuint32) 0x00000008) 919523f5352Sopenharmony_ci#define SL_PLAYEVENT_HEADSTALLED ((SLuint32) 0x00000010) 920523f5352Sopenharmony_ci 921523f5352Sopenharmony_ci#define SL_TIME_UNKNOWN ((SLuint32) 0xFFFFFFFF) 922523f5352Sopenharmony_ci 923523f5352Sopenharmony_ci 924523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_PLAY; 925523f5352Sopenharmony_ci 926523f5352Sopenharmony_ci/** Playback interface methods */ 927523f5352Sopenharmony_ci 928523f5352Sopenharmony_cistruct SLPlayItf_; 929523f5352Sopenharmony_citypedef const struct SLPlayItf_ * const * SLPlayItf; 930523f5352Sopenharmony_ci 931523f5352Sopenharmony_citypedef void (SLAPIENTRY *slPlayCallback) ( 932523f5352Sopenharmony_ci SLPlayItf caller, 933523f5352Sopenharmony_ci void *pContext, 934523f5352Sopenharmony_ci SLuint32 event 935523f5352Sopenharmony_ci); 936523f5352Sopenharmony_ci 937523f5352Sopenharmony_cistruct SLPlayItf_ { 938523f5352Sopenharmony_ci SLresult (*SetPlayState) ( 939523f5352Sopenharmony_ci SLPlayItf self, 940523f5352Sopenharmony_ci SLuint32 state 941523f5352Sopenharmony_ci ); 942523f5352Sopenharmony_ci SLresult (*GetPlayState) ( 943523f5352Sopenharmony_ci SLPlayItf self, 944523f5352Sopenharmony_ci SLuint32 *pState 945523f5352Sopenharmony_ci ); 946523f5352Sopenharmony_ci SLresult (*GetDuration) ( 947523f5352Sopenharmony_ci SLPlayItf self, 948523f5352Sopenharmony_ci SLmillisecond *pMsec 949523f5352Sopenharmony_ci ); 950523f5352Sopenharmony_ci SLresult (*GetPosition) ( 951523f5352Sopenharmony_ci SLPlayItf self, 952523f5352Sopenharmony_ci SLmillisecond *pMsec 953523f5352Sopenharmony_ci ); 954523f5352Sopenharmony_ci SLresult (*RegisterCallback) ( 955523f5352Sopenharmony_ci SLPlayItf self, 956523f5352Sopenharmony_ci slPlayCallback callback, 957523f5352Sopenharmony_ci void *pContext 958523f5352Sopenharmony_ci ); 959523f5352Sopenharmony_ci SLresult (*SetCallbackEventsMask) ( 960523f5352Sopenharmony_ci SLPlayItf self, 961523f5352Sopenharmony_ci SLuint32 eventFlags 962523f5352Sopenharmony_ci ); 963523f5352Sopenharmony_ci SLresult (*GetCallbackEventsMask) ( 964523f5352Sopenharmony_ci SLPlayItf self, 965523f5352Sopenharmony_ci SLuint32 *pEventFlags 966523f5352Sopenharmony_ci ); 967523f5352Sopenharmony_ci SLresult (*SetMarkerPosition) ( 968523f5352Sopenharmony_ci SLPlayItf self, 969523f5352Sopenharmony_ci SLmillisecond mSec 970523f5352Sopenharmony_ci ); 971523f5352Sopenharmony_ci SLresult (*ClearMarkerPosition) ( 972523f5352Sopenharmony_ci SLPlayItf self 973523f5352Sopenharmony_ci ); 974523f5352Sopenharmony_ci SLresult (*GetMarkerPosition) ( 975523f5352Sopenharmony_ci SLPlayItf self, 976523f5352Sopenharmony_ci SLmillisecond *pMsec 977523f5352Sopenharmony_ci ); 978523f5352Sopenharmony_ci SLresult (*SetPositionUpdatePeriod) ( 979523f5352Sopenharmony_ci SLPlayItf self, 980523f5352Sopenharmony_ci SLmillisecond mSec 981523f5352Sopenharmony_ci ); 982523f5352Sopenharmony_ci SLresult (*GetPositionUpdatePeriod) ( 983523f5352Sopenharmony_ci SLPlayItf self, 984523f5352Sopenharmony_ci SLmillisecond *pMsec 985523f5352Sopenharmony_ci ); 986523f5352Sopenharmony_ci}; 987523f5352Sopenharmony_ci 988523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 989523f5352Sopenharmony_ci/* Prefetch status interface */ 990523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 991523f5352Sopenharmony_ci 992523f5352Sopenharmony_ci#define SL_PREFETCHEVENT_STATUSCHANGE ((SLuint32) 0x00000001) 993523f5352Sopenharmony_ci#define SL_PREFETCHEVENT_FILLLEVELCHANGE ((SLuint32) 0x00000002) 994523f5352Sopenharmony_ci 995523f5352Sopenharmony_ci#define SL_PREFETCHSTATUS_UNDERFLOW ((SLuint32) 0x00000001) 996523f5352Sopenharmony_ci#define SL_PREFETCHSTATUS_SUFFICIENTDATA ((SLuint32) 0x00000002) 997523f5352Sopenharmony_ci#define SL_PREFETCHSTATUS_OVERFLOW ((SLuint32) 0x00000003) 998523f5352Sopenharmony_ci 999523f5352Sopenharmony_ci 1000523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_PREFETCHSTATUS; 1001523f5352Sopenharmony_ci 1002523f5352Sopenharmony_ci 1003523f5352Sopenharmony_ci/** Prefetch status interface methods */ 1004523f5352Sopenharmony_ci 1005523f5352Sopenharmony_cistruct SLPrefetchStatusItf_; 1006523f5352Sopenharmony_citypedef const struct SLPrefetchStatusItf_ * const * SLPrefetchStatusItf; 1007523f5352Sopenharmony_ci 1008523f5352Sopenharmony_citypedef void (SLAPIENTRY *slPrefetchCallback) ( 1009523f5352Sopenharmony_ci SLPrefetchStatusItf caller, 1010523f5352Sopenharmony_ci void *pContext, 1011523f5352Sopenharmony_ci SLuint32 event 1012523f5352Sopenharmony_ci); 1013523f5352Sopenharmony_ci 1014523f5352Sopenharmony_cistruct SLPrefetchStatusItf_ { 1015523f5352Sopenharmony_ci SLresult (*GetPrefetchStatus) ( 1016523f5352Sopenharmony_ci SLPrefetchStatusItf self, 1017523f5352Sopenharmony_ci SLuint32 *pStatus 1018523f5352Sopenharmony_ci ); 1019523f5352Sopenharmony_ci SLresult (*GetFillLevel) ( 1020523f5352Sopenharmony_ci SLPrefetchStatusItf self, 1021523f5352Sopenharmony_ci SLpermille *pLevel 1022523f5352Sopenharmony_ci ); 1023523f5352Sopenharmony_ci SLresult (*RegisterCallback) ( 1024523f5352Sopenharmony_ci SLPrefetchStatusItf self, 1025523f5352Sopenharmony_ci slPrefetchCallback callback, 1026523f5352Sopenharmony_ci void *pContext 1027523f5352Sopenharmony_ci ); 1028523f5352Sopenharmony_ci SLresult (*SetCallbackEventsMask) ( 1029523f5352Sopenharmony_ci SLPrefetchStatusItf self, 1030523f5352Sopenharmony_ci SLuint32 eventFlags 1031523f5352Sopenharmony_ci ); 1032523f5352Sopenharmony_ci SLresult (*GetCallbackEventsMask) ( 1033523f5352Sopenharmony_ci SLPrefetchStatusItf self, 1034523f5352Sopenharmony_ci SLuint32 *pEventFlags 1035523f5352Sopenharmony_ci ); 1036523f5352Sopenharmony_ci SLresult (*SetFillUpdatePeriod) ( 1037523f5352Sopenharmony_ci SLPrefetchStatusItf self, 1038523f5352Sopenharmony_ci SLpermille period 1039523f5352Sopenharmony_ci ); 1040523f5352Sopenharmony_ci SLresult (*GetFillUpdatePeriod) ( 1041523f5352Sopenharmony_ci SLPrefetchStatusItf self, 1042523f5352Sopenharmony_ci SLpermille *pPeriod 1043523f5352Sopenharmony_ci ); 1044523f5352Sopenharmony_ci}; 1045523f5352Sopenharmony_ci 1046523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 1047523f5352Sopenharmony_ci/* Playback Rate interface */ 1048523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 1049523f5352Sopenharmony_ci 1050523f5352Sopenharmony_ci#define SL_RATEPROP_RESERVED1 ((SLuint32) 0x00000001) 1051523f5352Sopenharmony_ci#define SL_RATEPROP_RESERVED2 ((SLuint32) 0x00000002) 1052523f5352Sopenharmony_ci#define SL_RATEPROP_SILENTAUDIO ((SLuint32) 0x00000100) 1053523f5352Sopenharmony_ci#define SL_RATEPROP_STAGGEREDAUDIO ((SLuint32) 0x00000200) 1054523f5352Sopenharmony_ci#define SL_RATEPROP_NOPITCHCORAUDIO ((SLuint32) 0x00000400) 1055523f5352Sopenharmony_ci#define SL_RATEPROP_PITCHCORAUDIO ((SLuint32) 0x00000800) 1056523f5352Sopenharmony_ci 1057523f5352Sopenharmony_ci 1058523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_PLAYBACKRATE; 1059523f5352Sopenharmony_ci 1060523f5352Sopenharmony_cistruct SLPlaybackRateItf_; 1061523f5352Sopenharmony_citypedef const struct SLPlaybackRateItf_ * const * SLPlaybackRateItf; 1062523f5352Sopenharmony_ci 1063523f5352Sopenharmony_cistruct SLPlaybackRateItf_ { 1064523f5352Sopenharmony_ci SLresult (*SetRate)( 1065523f5352Sopenharmony_ci SLPlaybackRateItf self, 1066523f5352Sopenharmony_ci SLpermille rate 1067523f5352Sopenharmony_ci ); 1068523f5352Sopenharmony_ci SLresult (*GetRate)( 1069523f5352Sopenharmony_ci SLPlaybackRateItf self, 1070523f5352Sopenharmony_ci SLpermille *pRate 1071523f5352Sopenharmony_ci ); 1072523f5352Sopenharmony_ci SLresult (*SetPropertyConstraints)( 1073523f5352Sopenharmony_ci SLPlaybackRateItf self, 1074523f5352Sopenharmony_ci SLuint32 constraints 1075523f5352Sopenharmony_ci ); 1076523f5352Sopenharmony_ci SLresult (*GetProperties)( 1077523f5352Sopenharmony_ci SLPlaybackRateItf self, 1078523f5352Sopenharmony_ci SLuint32 *pProperties 1079523f5352Sopenharmony_ci ); 1080523f5352Sopenharmony_ci SLresult (*GetCapabilitiesOfRate)( 1081523f5352Sopenharmony_ci SLPlaybackRateItf self, 1082523f5352Sopenharmony_ci SLpermille rate, 1083523f5352Sopenharmony_ci SLuint32 *pCapabilities 1084523f5352Sopenharmony_ci ); 1085523f5352Sopenharmony_ci SLresult (*GetRateRange) ( 1086523f5352Sopenharmony_ci SLPlaybackRateItf self, 1087523f5352Sopenharmony_ci SLuint8 index, 1088523f5352Sopenharmony_ci SLpermille *pMinRate, 1089523f5352Sopenharmony_ci SLpermille *pMaxRate, 1090523f5352Sopenharmony_ci SLpermille *pStepSize, 1091523f5352Sopenharmony_ci SLuint32 *pCapabilities 1092523f5352Sopenharmony_ci ); 1093523f5352Sopenharmony_ci}; 1094523f5352Sopenharmony_ci 1095523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 1096523f5352Sopenharmony_ci/* Seek Interface */ 1097523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 1098523f5352Sopenharmony_ci 1099523f5352Sopenharmony_ci#define SL_SEEKMODE_FAST ((SLuint32) 0x0001) 1100523f5352Sopenharmony_ci#define SL_SEEKMODE_ACCURATE ((SLuint32) 0x0002) 1101523f5352Sopenharmony_ci 1102523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_SEEK; 1103523f5352Sopenharmony_ci 1104523f5352Sopenharmony_cistruct SLSeekItf_; 1105523f5352Sopenharmony_citypedef const struct SLSeekItf_ * const * SLSeekItf; 1106523f5352Sopenharmony_ci 1107523f5352Sopenharmony_cistruct SLSeekItf_ { 1108523f5352Sopenharmony_ci SLresult (*SetPosition)( 1109523f5352Sopenharmony_ci SLSeekItf self, 1110523f5352Sopenharmony_ci SLmillisecond pos, 1111523f5352Sopenharmony_ci SLuint32 seekMode 1112523f5352Sopenharmony_ci ); 1113523f5352Sopenharmony_ci SLresult (*SetLoop)( 1114523f5352Sopenharmony_ci SLSeekItf self, 1115523f5352Sopenharmony_ci SLboolean loopEnable, 1116523f5352Sopenharmony_ci SLmillisecond startPos, 1117523f5352Sopenharmony_ci SLmillisecond endPos 1118523f5352Sopenharmony_ci ); 1119523f5352Sopenharmony_ci SLresult (*GetLoop)( 1120523f5352Sopenharmony_ci SLSeekItf self, 1121523f5352Sopenharmony_ci SLboolean *pLoopEnabled, 1122523f5352Sopenharmony_ci SLmillisecond *pStartPos, 1123523f5352Sopenharmony_ci SLmillisecond *pEndPos 1124523f5352Sopenharmony_ci ); 1125523f5352Sopenharmony_ci}; 1126523f5352Sopenharmony_ci 1127523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 1128523f5352Sopenharmony_ci/* Standard Recording Interface */ 1129523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 1130523f5352Sopenharmony_ci 1131523f5352Sopenharmony_ci/** Recording states */ 1132523f5352Sopenharmony_ci#define SL_RECORDSTATE_STOPPED ((SLuint32) 0x00000001) 1133523f5352Sopenharmony_ci#define SL_RECORDSTATE_PAUSED ((SLuint32) 0x00000002) 1134523f5352Sopenharmony_ci#define SL_RECORDSTATE_RECORDING ((SLuint32) 0x00000003) 1135523f5352Sopenharmony_ci 1136523f5352Sopenharmony_ci 1137523f5352Sopenharmony_ci/** Record event **/ 1138523f5352Sopenharmony_ci#define SL_RECORDEVENT_HEADATLIMIT ((SLuint32) 0x00000001) 1139523f5352Sopenharmony_ci#define SL_RECORDEVENT_HEADATMARKER ((SLuint32) 0x00000002) 1140523f5352Sopenharmony_ci#define SL_RECORDEVENT_HEADATNEWPOS ((SLuint32) 0x00000004) 1141523f5352Sopenharmony_ci#define SL_RECORDEVENT_HEADMOVING ((SLuint32) 0x00000008) 1142523f5352Sopenharmony_ci#define SL_RECORDEVENT_HEADSTALLED ((SLuint32) 0x00000010) 1143523f5352Sopenharmony_ci/* Note: SL_RECORDEVENT_BUFFER_INSUFFICIENT is deprecated, use SL_RECORDEVENT_BUFFER_FULL instead. */ 1144523f5352Sopenharmony_ci#define SL_RECORDEVENT_BUFFER_INSUFFICIENT ((SLuint32) 0x00000020) 1145523f5352Sopenharmony_ci#define SL_RECORDEVENT_BUFFER_FULL ((SLuint32) 0x00000020) 1146523f5352Sopenharmony_ci 1147523f5352Sopenharmony_ci 1148523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_RECORD; 1149523f5352Sopenharmony_ci 1150523f5352Sopenharmony_cistruct SLRecordItf_; 1151523f5352Sopenharmony_citypedef const struct SLRecordItf_ * const * SLRecordItf; 1152523f5352Sopenharmony_ci 1153523f5352Sopenharmony_citypedef void (SLAPIENTRY *slRecordCallback) ( 1154523f5352Sopenharmony_ci SLRecordItf caller, 1155523f5352Sopenharmony_ci void *pContext, 1156523f5352Sopenharmony_ci SLuint32 event 1157523f5352Sopenharmony_ci); 1158523f5352Sopenharmony_ci 1159523f5352Sopenharmony_ci/** Recording interface methods */ 1160523f5352Sopenharmony_cistruct SLRecordItf_ { 1161523f5352Sopenharmony_ci SLresult (*SetRecordState) ( 1162523f5352Sopenharmony_ci SLRecordItf self, 1163523f5352Sopenharmony_ci SLuint32 state 1164523f5352Sopenharmony_ci ); 1165523f5352Sopenharmony_ci SLresult (*GetRecordState) ( 1166523f5352Sopenharmony_ci SLRecordItf self, 1167523f5352Sopenharmony_ci SLuint32 *pState 1168523f5352Sopenharmony_ci ); 1169523f5352Sopenharmony_ci SLresult (*SetDurationLimit) ( 1170523f5352Sopenharmony_ci SLRecordItf self, 1171523f5352Sopenharmony_ci SLmillisecond msec 1172523f5352Sopenharmony_ci ); 1173523f5352Sopenharmony_ci SLresult (*GetPosition) ( 1174523f5352Sopenharmony_ci SLRecordItf self, 1175523f5352Sopenharmony_ci SLmillisecond *pMsec 1176523f5352Sopenharmony_ci ); 1177523f5352Sopenharmony_ci SLresult (*RegisterCallback) ( 1178523f5352Sopenharmony_ci SLRecordItf self, 1179523f5352Sopenharmony_ci slRecordCallback callback, 1180523f5352Sopenharmony_ci void *pContext 1181523f5352Sopenharmony_ci ); 1182523f5352Sopenharmony_ci SLresult (*SetCallbackEventsMask) ( 1183523f5352Sopenharmony_ci SLRecordItf self, 1184523f5352Sopenharmony_ci SLuint32 eventFlags 1185523f5352Sopenharmony_ci ); 1186523f5352Sopenharmony_ci SLresult (*GetCallbackEventsMask) ( 1187523f5352Sopenharmony_ci SLRecordItf self, 1188523f5352Sopenharmony_ci SLuint32 *pEventFlags 1189523f5352Sopenharmony_ci ); 1190523f5352Sopenharmony_ci SLresult (*SetMarkerPosition) ( 1191523f5352Sopenharmony_ci SLRecordItf self, 1192523f5352Sopenharmony_ci SLmillisecond mSec 1193523f5352Sopenharmony_ci ); 1194523f5352Sopenharmony_ci SLresult (*ClearMarkerPosition) ( 1195523f5352Sopenharmony_ci SLRecordItf self 1196523f5352Sopenharmony_ci ); 1197523f5352Sopenharmony_ci SLresult (*GetMarkerPosition) ( 1198523f5352Sopenharmony_ci SLRecordItf self, 1199523f5352Sopenharmony_ci SLmillisecond *pMsec 1200523f5352Sopenharmony_ci ); 1201523f5352Sopenharmony_ci SLresult (*SetPositionUpdatePeriod) ( 1202523f5352Sopenharmony_ci SLRecordItf self, 1203523f5352Sopenharmony_ci SLmillisecond mSec 1204523f5352Sopenharmony_ci ); 1205523f5352Sopenharmony_ci SLresult (*GetPositionUpdatePeriod) ( 1206523f5352Sopenharmony_ci SLRecordItf self, 1207523f5352Sopenharmony_ci SLmillisecond *pMsec 1208523f5352Sopenharmony_ci ); 1209523f5352Sopenharmony_ci}; 1210523f5352Sopenharmony_ci 1211523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 1212523f5352Sopenharmony_ci/* Equalizer interface */ 1213523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 1214523f5352Sopenharmony_ci 1215523f5352Sopenharmony_ci#define SL_EQUALIZER_UNDEFINED ((SLuint16) 0xFFFF) 1216523f5352Sopenharmony_ci 1217523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_EQUALIZER; 1218523f5352Sopenharmony_ci 1219523f5352Sopenharmony_cistruct SLEqualizerItf_; 1220523f5352Sopenharmony_citypedef const struct SLEqualizerItf_ * const * SLEqualizerItf; 1221523f5352Sopenharmony_ci 1222523f5352Sopenharmony_cistruct SLEqualizerItf_ { 1223523f5352Sopenharmony_ci SLresult (*SetEnabled)( 1224523f5352Sopenharmony_ci SLEqualizerItf self, 1225523f5352Sopenharmony_ci SLboolean enabled 1226523f5352Sopenharmony_ci ); 1227523f5352Sopenharmony_ci SLresult (*IsEnabled)( 1228523f5352Sopenharmony_ci SLEqualizerItf self, 1229523f5352Sopenharmony_ci SLboolean *pEnabled 1230523f5352Sopenharmony_ci ); 1231523f5352Sopenharmony_ci SLresult (*GetNumberOfBands)( 1232523f5352Sopenharmony_ci SLEqualizerItf self, 1233523f5352Sopenharmony_ci SLuint16 *pAmount 1234523f5352Sopenharmony_ci ); 1235523f5352Sopenharmony_ci SLresult (*GetBandLevelRange)( 1236523f5352Sopenharmony_ci SLEqualizerItf self, 1237523f5352Sopenharmony_ci SLmillibel *pMin, 1238523f5352Sopenharmony_ci SLmillibel *pMax 1239523f5352Sopenharmony_ci ); 1240523f5352Sopenharmony_ci SLresult (*SetBandLevel)( 1241523f5352Sopenharmony_ci SLEqualizerItf self, 1242523f5352Sopenharmony_ci SLuint16 band, 1243523f5352Sopenharmony_ci SLmillibel level 1244523f5352Sopenharmony_ci ); 1245523f5352Sopenharmony_ci SLresult (*GetBandLevel)( 1246523f5352Sopenharmony_ci SLEqualizerItf self, 1247523f5352Sopenharmony_ci SLuint16 band, 1248523f5352Sopenharmony_ci SLmillibel *pLevel 1249523f5352Sopenharmony_ci ); 1250523f5352Sopenharmony_ci SLresult (*GetCenterFreq)( 1251523f5352Sopenharmony_ci SLEqualizerItf self, 1252523f5352Sopenharmony_ci SLuint16 band, 1253523f5352Sopenharmony_ci SLmilliHertz *pCenter 1254523f5352Sopenharmony_ci ); 1255523f5352Sopenharmony_ci SLresult (*GetBandFreqRange)( 1256523f5352Sopenharmony_ci SLEqualizerItf self, 1257523f5352Sopenharmony_ci SLuint16 band, 1258523f5352Sopenharmony_ci SLmilliHertz *pMin, 1259523f5352Sopenharmony_ci SLmilliHertz *pMax 1260523f5352Sopenharmony_ci ); 1261523f5352Sopenharmony_ci SLresult (*GetBand)( 1262523f5352Sopenharmony_ci SLEqualizerItf self, 1263523f5352Sopenharmony_ci SLmilliHertz frequency, 1264523f5352Sopenharmony_ci SLuint16 *pBand 1265523f5352Sopenharmony_ci ); 1266523f5352Sopenharmony_ci SLresult (*GetCurrentPreset)( 1267523f5352Sopenharmony_ci SLEqualizerItf self, 1268523f5352Sopenharmony_ci SLuint16 *pPreset 1269523f5352Sopenharmony_ci ); 1270523f5352Sopenharmony_ci SLresult (*UsePreset)( 1271523f5352Sopenharmony_ci SLEqualizerItf self, 1272523f5352Sopenharmony_ci SLuint16 index 1273523f5352Sopenharmony_ci ); 1274523f5352Sopenharmony_ci SLresult (*GetNumberOfPresets)( 1275523f5352Sopenharmony_ci SLEqualizerItf self, 1276523f5352Sopenharmony_ci SLuint16 *pNumPresets 1277523f5352Sopenharmony_ci ); 1278523f5352Sopenharmony_ci SLresult (*GetPresetName)( 1279523f5352Sopenharmony_ci SLEqualizerItf self, 1280523f5352Sopenharmony_ci SLuint16 index, 1281523f5352Sopenharmony_ci const SLchar ** ppName 1282523f5352Sopenharmony_ci ); 1283523f5352Sopenharmony_ci}; 1284523f5352Sopenharmony_ci 1285523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 1286523f5352Sopenharmony_ci/* Volume Interface */ 1287523f5352Sopenharmony_ci/* --------------------------------------------------------------------------*/ 1288523f5352Sopenharmony_ci 1289523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_VOLUME; 1290523f5352Sopenharmony_ci 1291523f5352Sopenharmony_cistruct SLVolumeItf_; 1292523f5352Sopenharmony_citypedef const struct SLVolumeItf_ * const * SLVolumeItf; 1293523f5352Sopenharmony_ci 1294523f5352Sopenharmony_cistruct SLVolumeItf_ { 1295523f5352Sopenharmony_ci SLresult (*SetVolumeLevel) ( 1296523f5352Sopenharmony_ci SLVolumeItf self, 1297523f5352Sopenharmony_ci SLmillibel level 1298523f5352Sopenharmony_ci ); 1299523f5352Sopenharmony_ci SLresult (*GetVolumeLevel) ( 1300523f5352Sopenharmony_ci SLVolumeItf self, 1301523f5352Sopenharmony_ci SLmillibel *pLevel 1302523f5352Sopenharmony_ci ); 1303523f5352Sopenharmony_ci SLresult (*GetMaxVolumeLevel) ( 1304523f5352Sopenharmony_ci SLVolumeItf self, 1305523f5352Sopenharmony_ci SLmillibel *pMaxLevel 1306523f5352Sopenharmony_ci ); 1307523f5352Sopenharmony_ci SLresult (*SetMute) ( 1308523f5352Sopenharmony_ci SLVolumeItf self, 1309523f5352Sopenharmony_ci SLboolean mute 1310523f5352Sopenharmony_ci ); 1311523f5352Sopenharmony_ci SLresult (*GetMute) ( 1312523f5352Sopenharmony_ci SLVolumeItf self, 1313523f5352Sopenharmony_ci SLboolean *pMute 1314523f5352Sopenharmony_ci ); 1315523f5352Sopenharmony_ci SLresult (*EnableStereoPosition) ( 1316523f5352Sopenharmony_ci SLVolumeItf self, 1317523f5352Sopenharmony_ci SLboolean enable 1318523f5352Sopenharmony_ci ); 1319523f5352Sopenharmony_ci SLresult (*IsEnabledStereoPosition) ( 1320523f5352Sopenharmony_ci SLVolumeItf self, 1321523f5352Sopenharmony_ci SLboolean *pEnable 1322523f5352Sopenharmony_ci ); 1323523f5352Sopenharmony_ci SLresult (*SetStereoPosition) ( 1324523f5352Sopenharmony_ci SLVolumeItf self, 1325523f5352Sopenharmony_ci SLpermille stereoPosition 1326523f5352Sopenharmony_ci ); 1327523f5352Sopenharmony_ci SLresult (*GetStereoPosition) ( 1328523f5352Sopenharmony_ci SLVolumeItf self, 1329523f5352Sopenharmony_ci SLpermille *pStereoPosition 1330523f5352Sopenharmony_ci ); 1331523f5352Sopenharmony_ci}; 1332523f5352Sopenharmony_ci 1333523f5352Sopenharmony_ci 1334523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 1335523f5352Sopenharmony_ci/* Device Volume Interface */ 1336523f5352Sopenharmony_ci/* --------------------------------------------------------------------------*/ 1337523f5352Sopenharmony_ci 1338523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_DEVICEVOLUME; 1339523f5352Sopenharmony_ci 1340523f5352Sopenharmony_cistruct SLDeviceVolumeItf_; 1341523f5352Sopenharmony_citypedef const struct SLDeviceVolumeItf_ * const * SLDeviceVolumeItf; 1342523f5352Sopenharmony_ci 1343523f5352Sopenharmony_cistruct SLDeviceVolumeItf_ { 1344523f5352Sopenharmony_ci SLresult (*GetVolumeScale) ( 1345523f5352Sopenharmony_ci SLDeviceVolumeItf self, 1346523f5352Sopenharmony_ci SLuint32 deviceID, 1347523f5352Sopenharmony_ci SLint32 *pMinValue, 1348523f5352Sopenharmony_ci SLint32 *pMaxValue, 1349523f5352Sopenharmony_ci SLboolean *pIsMillibelScale 1350523f5352Sopenharmony_ci ); 1351523f5352Sopenharmony_ci SLresult (*SetVolume) ( 1352523f5352Sopenharmony_ci SLDeviceVolumeItf self, 1353523f5352Sopenharmony_ci SLuint32 deviceID, 1354523f5352Sopenharmony_ci SLint32 volume 1355523f5352Sopenharmony_ci ); 1356523f5352Sopenharmony_ci SLresult (*GetVolume) ( 1357523f5352Sopenharmony_ci SLDeviceVolumeItf self, 1358523f5352Sopenharmony_ci SLuint32 deviceID, 1359523f5352Sopenharmony_ci SLint32 *pVolume 1360523f5352Sopenharmony_ci ); 1361523f5352Sopenharmony_ci}; 1362523f5352Sopenharmony_ci 1363523f5352Sopenharmony_ci 1364523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 1365523f5352Sopenharmony_ci/* Buffer Queue Interface */ 1366523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 1367523f5352Sopenharmony_ci 1368523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_BUFFERQUEUE; 1369523f5352Sopenharmony_ci 1370523f5352Sopenharmony_cistruct SLBufferQueueItf_; 1371523f5352Sopenharmony_citypedef const struct SLBufferQueueItf_ * const * SLBufferQueueItf; 1372523f5352Sopenharmony_ci 1373523f5352Sopenharmony_citypedef void (SLAPIENTRY *slBufferQueueCallback)( 1374523f5352Sopenharmony_ci SLBufferQueueItf caller, 1375523f5352Sopenharmony_ci void *pContext 1376523f5352Sopenharmony_ci); 1377523f5352Sopenharmony_ci 1378523f5352Sopenharmony_ci/** Buffer queue state **/ 1379523f5352Sopenharmony_ci 1380523f5352Sopenharmony_citypedef struct SLBufferQueueState_ { 1381523f5352Sopenharmony_ci SLuint32 count; 1382523f5352Sopenharmony_ci SLuint32 playIndex; 1383523f5352Sopenharmony_ci} SLBufferQueueState; 1384523f5352Sopenharmony_ci 1385523f5352Sopenharmony_ci 1386523f5352Sopenharmony_cistruct SLBufferQueueItf_ { 1387523f5352Sopenharmony_ci SLresult (*Enqueue) ( 1388523f5352Sopenharmony_ci SLBufferQueueItf self, 1389523f5352Sopenharmony_ci const void *pBuffer, 1390523f5352Sopenharmony_ci SLuint32 size 1391523f5352Sopenharmony_ci ); 1392523f5352Sopenharmony_ci SLresult (*Clear) ( 1393523f5352Sopenharmony_ci SLBufferQueueItf self 1394523f5352Sopenharmony_ci ); 1395523f5352Sopenharmony_ci SLresult (*GetState) ( 1396523f5352Sopenharmony_ci SLBufferQueueItf self, 1397523f5352Sopenharmony_ci SLBufferQueueState *pState 1398523f5352Sopenharmony_ci ); 1399523f5352Sopenharmony_ci SLresult (*RegisterCallback) ( 1400523f5352Sopenharmony_ci SLBufferQueueItf self, 1401523f5352Sopenharmony_ci slBufferQueueCallback callback, 1402523f5352Sopenharmony_ci void* pContext 1403523f5352Sopenharmony_ci ); 1404523f5352Sopenharmony_ci}; 1405523f5352Sopenharmony_ci 1406523f5352Sopenharmony_ci 1407523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 1408523f5352Sopenharmony_ci/* PresetReverb */ 1409523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 1410523f5352Sopenharmony_ci 1411523f5352Sopenharmony_ci#define SL_REVERBPRESET_NONE ((SLuint16) 0x0000) 1412523f5352Sopenharmony_ci#define SL_REVERBPRESET_SMALLROOM ((SLuint16) 0x0001) 1413523f5352Sopenharmony_ci#define SL_REVERBPRESET_MEDIUMROOM ((SLuint16) 0x0002) 1414523f5352Sopenharmony_ci#define SL_REVERBPRESET_LARGEROOM ((SLuint16) 0x0003) 1415523f5352Sopenharmony_ci#define SL_REVERBPRESET_MEDIUMHALL ((SLuint16) 0x0004) 1416523f5352Sopenharmony_ci#define SL_REVERBPRESET_LARGEHALL ((SLuint16) 0x0005) 1417523f5352Sopenharmony_ci#define SL_REVERBPRESET_PLATE ((SLuint16) 0x0006) 1418523f5352Sopenharmony_ci 1419523f5352Sopenharmony_ci 1420523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_PRESETREVERB; 1421523f5352Sopenharmony_ci 1422523f5352Sopenharmony_cistruct SLPresetReverbItf_; 1423523f5352Sopenharmony_citypedef const struct SLPresetReverbItf_ * const * SLPresetReverbItf; 1424523f5352Sopenharmony_ci 1425523f5352Sopenharmony_cistruct SLPresetReverbItf_ { 1426523f5352Sopenharmony_ci SLresult (*SetPreset) ( 1427523f5352Sopenharmony_ci SLPresetReverbItf self, 1428523f5352Sopenharmony_ci SLuint16 preset 1429523f5352Sopenharmony_ci ); 1430523f5352Sopenharmony_ci SLresult (*GetPreset) ( 1431523f5352Sopenharmony_ci SLPresetReverbItf self, 1432523f5352Sopenharmony_ci SLuint16 *pPreset 1433523f5352Sopenharmony_ci ); 1434523f5352Sopenharmony_ci}; 1435523f5352Sopenharmony_ci 1436523f5352Sopenharmony_ci 1437523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 1438523f5352Sopenharmony_ci/* EnvironmentalReverb */ 1439523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 1440523f5352Sopenharmony_ci 1441523f5352Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_DEFAULT \ 1442523f5352Sopenharmony_ci { SL_MILLIBEL_MIN, 0, 1000, 500, SL_MILLIBEL_MIN, 20, SL_MILLIBEL_MIN, 40, 1000,1000 } 1443523f5352Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_GENERIC \ 1444523f5352Sopenharmony_ci { -1000, -100, 1490, 830, -2602, 7, 200, 11, 1000,1000 } 1445523f5352Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_PADDEDCELL \ 1446523f5352Sopenharmony_ci { -1000,-6000, 170, 100, -1204, 1, 207, 2, 1000,1000 } 1447523f5352Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_ROOM \ 1448523f5352Sopenharmony_ci { -1000, -454, 400, 830, -1646, 2, 53, 3, 1000,1000 } 1449523f5352Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_BATHROOM \ 1450523f5352Sopenharmony_ci { -1000,-1200, 1490, 540, -370, 7, 1030, 11, 1000, 600 } 1451523f5352Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_LIVINGROOM \ 1452523f5352Sopenharmony_ci { -1000,-6000, 500, 100, -1376, 3, -1104, 4, 1000,1000 } 1453523f5352Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_STONEROOM \ 1454523f5352Sopenharmony_ci { -1000, -300, 2310, 640, -711, 12, 83, 17, 1000,1000 } 1455523f5352Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_AUDITORIUM \ 1456523f5352Sopenharmony_ci { -1000, -476, 4320, 590, -789, 20, -289, 30, 1000,1000 } 1457523f5352Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_CONCERTHALL \ 1458523f5352Sopenharmony_ci { -1000, -500, 3920, 700, -1230, 20, -2, 29, 1000,1000 } 1459523f5352Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_CAVE \ 1460523f5352Sopenharmony_ci { -1000, 0, 2910, 1300, -602, 15, -302, 22, 1000,1000 } 1461523f5352Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_ARENA \ 1462523f5352Sopenharmony_ci { -1000, -698, 7240, 330, -1166, 20, 16, 30, 1000,1000 } 1463523f5352Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_HANGAR \ 1464523f5352Sopenharmony_ci { -1000,-1000, 10050, 230, -602, 20, 198, 30, 1000,1000 } 1465523f5352Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_CARPETEDHALLWAY \ 1466523f5352Sopenharmony_ci { -1000,-4000, 300, 100, -1831, 2, -1630, 30, 1000,1000 } 1467523f5352Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_HALLWAY \ 1468523f5352Sopenharmony_ci { -1000, -300, 1490, 590, -1219, 7, 441, 11, 1000,1000 } 1469523f5352Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_STONECORRIDOR \ 1470523f5352Sopenharmony_ci { -1000, -237, 2700, 790, -1214, 13, 395, 20, 1000,1000 } 1471523f5352Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_ALLEY \ 1472523f5352Sopenharmony_ci { -1000, -270, 1490, 860, -1204, 7, -4, 11, 1000,1000 } 1473523f5352Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_FOREST \ 1474523f5352Sopenharmony_ci { -1000,-3300, 1490, 540, -2560, 162, -613, 88, 790,1000 } 1475523f5352Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_CITY \ 1476523f5352Sopenharmony_ci { -1000, -800, 1490, 670, -2273, 7, -2217, 11, 500,1000 } 1477523f5352Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_MOUNTAINS \ 1478523f5352Sopenharmony_ci { -1000,-2500, 1490, 210, -2780, 300, -2014, 100, 270,1000 } 1479523f5352Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_QUARRY \ 1480523f5352Sopenharmony_ci { -1000,-1000, 1490, 830, SL_MILLIBEL_MIN, 61, 500, 25, 1000,1000 } 1481523f5352Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_PLAIN \ 1482523f5352Sopenharmony_ci { -1000,-2000, 1490, 500, -2466, 179, -2514, 100, 210,1000 } 1483523f5352Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_PARKINGLOT \ 1484523f5352Sopenharmony_ci { -1000, 0, 1650, 1500, -1363, 8, -1153, 12, 1000,1000 } 1485523f5352Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_SEWERPIPE \ 1486523f5352Sopenharmony_ci { -1000,-1000, 2810, 140, 429, 14, 648, 21, 800, 600 } 1487523f5352Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_UNDERWATER \ 1488523f5352Sopenharmony_ci { -1000,-4000, 1490, 100, -449, 7, 1700, 11, 1000,1000 } 1489523f5352Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_SMALLROOM \ 1490523f5352Sopenharmony_ci { -1000,-600, 1100, 830, -400, 5, 500, 10, 1000, 1000 } 1491523f5352Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_MEDIUMROOM \ 1492523f5352Sopenharmony_ci { -1000,-600, 1300, 830, -1000, 20, -200, 20, 1000, 1000 } 1493523f5352Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_LARGEROOM \ 1494523f5352Sopenharmony_ci { -1000,-600, 1500, 830, -1600, 5, -1000, 40, 1000, 1000 } 1495523f5352Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_MEDIUMHALL \ 1496523f5352Sopenharmony_ci { -1000,-600, 1800, 700, -1300, 15, -800, 30, 1000, 1000 } 1497523f5352Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_LARGEHALL \ 1498523f5352Sopenharmony_ci { -1000,-600, 1800, 700, -2000, 30, -1400, 60, 1000, 1000 } 1499523f5352Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_PLATE \ 1500523f5352Sopenharmony_ci { -1000,-200, 1300, 900, 0, 2, 0, 10, 1000, 750 } 1501523f5352Sopenharmony_ci 1502523f5352Sopenharmony_ci 1503523f5352Sopenharmony_citypedef struct SLEnvironmentalReverbSettings_ { 1504523f5352Sopenharmony_ci SLmillibel roomLevel; 1505523f5352Sopenharmony_ci SLmillibel roomHFLevel; 1506523f5352Sopenharmony_ci SLmillisecond decayTime; 1507523f5352Sopenharmony_ci SLpermille decayHFRatio; 1508523f5352Sopenharmony_ci SLmillibel reflectionsLevel; 1509523f5352Sopenharmony_ci SLmillisecond reflectionsDelay; 1510523f5352Sopenharmony_ci SLmillibel reverbLevel; 1511523f5352Sopenharmony_ci SLmillisecond reverbDelay; 1512523f5352Sopenharmony_ci SLpermille diffusion; 1513523f5352Sopenharmony_ci SLpermille density; 1514523f5352Sopenharmony_ci} SLEnvironmentalReverbSettings; 1515523f5352Sopenharmony_ci 1516523f5352Sopenharmony_ci 1517523f5352Sopenharmony_ci 1518523f5352Sopenharmony_ci 1519523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_ENVIRONMENTALREVERB; 1520523f5352Sopenharmony_ci 1521523f5352Sopenharmony_ci 1522523f5352Sopenharmony_cistruct SLEnvironmentalReverbItf_; 1523523f5352Sopenharmony_citypedef const struct SLEnvironmentalReverbItf_ * const * SLEnvironmentalReverbItf; 1524523f5352Sopenharmony_ci 1525523f5352Sopenharmony_cistruct SLEnvironmentalReverbItf_ { 1526523f5352Sopenharmony_ci SLresult (*SetRoomLevel) ( 1527523f5352Sopenharmony_ci SLEnvironmentalReverbItf self, 1528523f5352Sopenharmony_ci SLmillibel room 1529523f5352Sopenharmony_ci ); 1530523f5352Sopenharmony_ci SLresult (*GetRoomLevel) ( 1531523f5352Sopenharmony_ci SLEnvironmentalReverbItf self, 1532523f5352Sopenharmony_ci SLmillibel *pRoom 1533523f5352Sopenharmony_ci ); 1534523f5352Sopenharmony_ci SLresult (*SetRoomHFLevel) ( 1535523f5352Sopenharmony_ci SLEnvironmentalReverbItf self, 1536523f5352Sopenharmony_ci SLmillibel roomHF 1537523f5352Sopenharmony_ci ); 1538523f5352Sopenharmony_ci SLresult (*GetRoomHFLevel) ( 1539523f5352Sopenharmony_ci SLEnvironmentalReverbItf self, 1540523f5352Sopenharmony_ci SLmillibel *pRoomHF 1541523f5352Sopenharmony_ci ); 1542523f5352Sopenharmony_ci SLresult (*SetDecayTime) ( 1543523f5352Sopenharmony_ci SLEnvironmentalReverbItf self, 1544523f5352Sopenharmony_ci SLmillisecond decayTime 1545523f5352Sopenharmony_ci ); 1546523f5352Sopenharmony_ci SLresult (*GetDecayTime) ( 1547523f5352Sopenharmony_ci SLEnvironmentalReverbItf self, 1548523f5352Sopenharmony_ci SLmillisecond *pDecayTime 1549523f5352Sopenharmony_ci ); 1550523f5352Sopenharmony_ci SLresult (*SetDecayHFRatio) ( 1551523f5352Sopenharmony_ci SLEnvironmentalReverbItf self, 1552523f5352Sopenharmony_ci SLpermille decayHFRatio 1553523f5352Sopenharmony_ci ); 1554523f5352Sopenharmony_ci SLresult (*GetDecayHFRatio) ( 1555523f5352Sopenharmony_ci SLEnvironmentalReverbItf self, 1556523f5352Sopenharmony_ci SLpermille *pDecayHFRatio 1557523f5352Sopenharmony_ci ); 1558523f5352Sopenharmony_ci SLresult (*SetReflectionsLevel) ( 1559523f5352Sopenharmony_ci SLEnvironmentalReverbItf self, 1560523f5352Sopenharmony_ci SLmillibel reflectionsLevel 1561523f5352Sopenharmony_ci ); 1562523f5352Sopenharmony_ci SLresult (*GetReflectionsLevel) ( 1563523f5352Sopenharmony_ci SLEnvironmentalReverbItf self, 1564523f5352Sopenharmony_ci SLmillibel *pReflectionsLevel 1565523f5352Sopenharmony_ci ); 1566523f5352Sopenharmony_ci SLresult (*SetReflectionsDelay) ( 1567523f5352Sopenharmony_ci SLEnvironmentalReverbItf self, 1568523f5352Sopenharmony_ci SLmillisecond reflectionsDelay 1569523f5352Sopenharmony_ci ); 1570523f5352Sopenharmony_ci SLresult (*GetReflectionsDelay) ( 1571523f5352Sopenharmony_ci SLEnvironmentalReverbItf self, 1572523f5352Sopenharmony_ci SLmillisecond *pReflectionsDelay 1573523f5352Sopenharmony_ci ); 1574523f5352Sopenharmony_ci SLresult (*SetReverbLevel) ( 1575523f5352Sopenharmony_ci SLEnvironmentalReverbItf self, 1576523f5352Sopenharmony_ci SLmillibel reverbLevel 1577523f5352Sopenharmony_ci ); 1578523f5352Sopenharmony_ci SLresult (*GetReverbLevel) ( 1579523f5352Sopenharmony_ci SLEnvironmentalReverbItf self, 1580523f5352Sopenharmony_ci SLmillibel *pReverbLevel 1581523f5352Sopenharmony_ci ); 1582523f5352Sopenharmony_ci SLresult (*SetReverbDelay) ( 1583523f5352Sopenharmony_ci SLEnvironmentalReverbItf self, 1584523f5352Sopenharmony_ci SLmillisecond reverbDelay 1585523f5352Sopenharmony_ci ); 1586523f5352Sopenharmony_ci SLresult (*GetReverbDelay) ( 1587523f5352Sopenharmony_ci SLEnvironmentalReverbItf self, 1588523f5352Sopenharmony_ci SLmillisecond *pReverbDelay 1589523f5352Sopenharmony_ci ); 1590523f5352Sopenharmony_ci SLresult (*SetDiffusion) ( 1591523f5352Sopenharmony_ci SLEnvironmentalReverbItf self, 1592523f5352Sopenharmony_ci SLpermille diffusion 1593523f5352Sopenharmony_ci ); 1594523f5352Sopenharmony_ci SLresult (*GetDiffusion) ( 1595523f5352Sopenharmony_ci SLEnvironmentalReverbItf self, 1596523f5352Sopenharmony_ci SLpermille *pDiffusion 1597523f5352Sopenharmony_ci ); 1598523f5352Sopenharmony_ci SLresult (*SetDensity) ( 1599523f5352Sopenharmony_ci SLEnvironmentalReverbItf self, 1600523f5352Sopenharmony_ci SLpermille density 1601523f5352Sopenharmony_ci ); 1602523f5352Sopenharmony_ci SLresult (*GetDensity) ( 1603523f5352Sopenharmony_ci SLEnvironmentalReverbItf self, 1604523f5352Sopenharmony_ci SLpermille *pDensity 1605523f5352Sopenharmony_ci ); 1606523f5352Sopenharmony_ci SLresult (*SetEnvironmentalReverbProperties) ( 1607523f5352Sopenharmony_ci SLEnvironmentalReverbItf self, 1608523f5352Sopenharmony_ci const SLEnvironmentalReverbSettings *pProperties 1609523f5352Sopenharmony_ci ); 1610523f5352Sopenharmony_ci SLresult (*GetEnvironmentalReverbProperties) ( 1611523f5352Sopenharmony_ci SLEnvironmentalReverbItf self, 1612523f5352Sopenharmony_ci SLEnvironmentalReverbSettings *pProperties 1613523f5352Sopenharmony_ci ); 1614523f5352Sopenharmony_ci}; 1615523f5352Sopenharmony_ci 1616523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 1617523f5352Sopenharmony_ci/* Effects Send Interface */ 1618523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 1619523f5352Sopenharmony_ci 1620523f5352Sopenharmony_ci 1621523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_EFFECTSEND; 1622523f5352Sopenharmony_ci 1623523f5352Sopenharmony_cistruct SLEffectSendItf_; 1624523f5352Sopenharmony_citypedef const struct SLEffectSendItf_ * const * SLEffectSendItf; 1625523f5352Sopenharmony_ci 1626523f5352Sopenharmony_cistruct SLEffectSendItf_ { 1627523f5352Sopenharmony_ci SLresult (*EnableEffectSend) ( 1628523f5352Sopenharmony_ci SLEffectSendItf self, 1629523f5352Sopenharmony_ci const void *pAuxEffect, 1630523f5352Sopenharmony_ci SLboolean enable, 1631523f5352Sopenharmony_ci SLmillibel initialLevel 1632523f5352Sopenharmony_ci ); 1633523f5352Sopenharmony_ci SLresult (*IsEnabled) ( 1634523f5352Sopenharmony_ci SLEffectSendItf self, 1635523f5352Sopenharmony_ci const void * pAuxEffect, 1636523f5352Sopenharmony_ci SLboolean *pEnable 1637523f5352Sopenharmony_ci ); 1638523f5352Sopenharmony_ci SLresult (*SetDirectLevel) ( 1639523f5352Sopenharmony_ci SLEffectSendItf self, 1640523f5352Sopenharmony_ci SLmillibel directLevel 1641523f5352Sopenharmony_ci ); 1642523f5352Sopenharmony_ci SLresult (*GetDirectLevel) ( 1643523f5352Sopenharmony_ci SLEffectSendItf self, 1644523f5352Sopenharmony_ci SLmillibel *pDirectLevel 1645523f5352Sopenharmony_ci ); 1646523f5352Sopenharmony_ci SLresult (*SetSendLevel) ( 1647523f5352Sopenharmony_ci SLEffectSendItf self, 1648523f5352Sopenharmony_ci const void *pAuxEffect, 1649523f5352Sopenharmony_ci SLmillibel sendLevel 1650523f5352Sopenharmony_ci ); 1651523f5352Sopenharmony_ci SLresult (*GetSendLevel)( 1652523f5352Sopenharmony_ci SLEffectSendItf self, 1653523f5352Sopenharmony_ci const void *pAuxEffect, 1654523f5352Sopenharmony_ci SLmillibel *pSendLevel 1655523f5352Sopenharmony_ci ); 1656523f5352Sopenharmony_ci}; 1657523f5352Sopenharmony_ci 1658523f5352Sopenharmony_ci 1659523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 1660523f5352Sopenharmony_ci/* 3D Grouping Interface */ 1661523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 1662523f5352Sopenharmony_ci 1663523f5352Sopenharmony_ci 1664523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_3DGROUPING; 1665523f5352Sopenharmony_ci 1666523f5352Sopenharmony_ci 1667523f5352Sopenharmony_cistruct SL3DGroupingItf_ ; 1668523f5352Sopenharmony_citypedef const struct SL3DGroupingItf_ * const * SL3DGroupingItf; 1669523f5352Sopenharmony_ci 1670523f5352Sopenharmony_cistruct SL3DGroupingItf_ { 1671523f5352Sopenharmony_ci SLresult (*Set3DGroup) ( 1672523f5352Sopenharmony_ci SL3DGroupingItf self, 1673523f5352Sopenharmony_ci SLObjectItf group 1674523f5352Sopenharmony_ci ); 1675523f5352Sopenharmony_ci SLresult (*Get3DGroup) ( 1676523f5352Sopenharmony_ci SL3DGroupingItf self, 1677523f5352Sopenharmony_ci SLObjectItf *pGroup 1678523f5352Sopenharmony_ci ); 1679523f5352Sopenharmony_ci}; 1680523f5352Sopenharmony_ci 1681523f5352Sopenharmony_ci 1682523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 1683523f5352Sopenharmony_ci/* 3D Commit Interface */ 1684523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 1685523f5352Sopenharmony_ci 1686523f5352Sopenharmony_ci 1687523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_3DCOMMIT; 1688523f5352Sopenharmony_ci 1689523f5352Sopenharmony_cistruct SL3DCommitItf_; 1690523f5352Sopenharmony_citypedef const struct SL3DCommitItf_* const * SL3DCommitItf; 1691523f5352Sopenharmony_ci 1692523f5352Sopenharmony_cistruct SL3DCommitItf_ { 1693523f5352Sopenharmony_ci SLresult (*Commit) ( 1694523f5352Sopenharmony_ci SL3DCommitItf self 1695523f5352Sopenharmony_ci ); 1696523f5352Sopenharmony_ci SLresult (*SetDeferred) ( 1697523f5352Sopenharmony_ci SL3DCommitItf self, 1698523f5352Sopenharmony_ci SLboolean deferred 1699523f5352Sopenharmony_ci ); 1700523f5352Sopenharmony_ci}; 1701523f5352Sopenharmony_ci 1702523f5352Sopenharmony_ci 1703523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 1704523f5352Sopenharmony_ci/* 3D Location Interface */ 1705523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 1706523f5352Sopenharmony_ci 1707523f5352Sopenharmony_citypedef struct SLVec3D_ { 1708523f5352Sopenharmony_ci SLint32 x; 1709523f5352Sopenharmony_ci SLint32 y; 1710523f5352Sopenharmony_ci SLint32 z; 1711523f5352Sopenharmony_ci} SLVec3D; 1712523f5352Sopenharmony_ci 1713523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_3DLOCATION; 1714523f5352Sopenharmony_ci 1715523f5352Sopenharmony_cistruct SL3DLocationItf_; 1716523f5352Sopenharmony_citypedef const struct SL3DLocationItf_ * const * SL3DLocationItf; 1717523f5352Sopenharmony_ci 1718523f5352Sopenharmony_cistruct SL3DLocationItf_ { 1719523f5352Sopenharmony_ci SLresult (*SetLocationCartesian) ( 1720523f5352Sopenharmony_ci SL3DLocationItf self, 1721523f5352Sopenharmony_ci const SLVec3D *pLocation 1722523f5352Sopenharmony_ci ); 1723523f5352Sopenharmony_ci SLresult (*SetLocationSpherical) ( 1724523f5352Sopenharmony_ci SL3DLocationItf self, 1725523f5352Sopenharmony_ci SLmillidegree azimuth, 1726523f5352Sopenharmony_ci SLmillidegree elevation, 1727523f5352Sopenharmony_ci SLmillimeter distance 1728523f5352Sopenharmony_ci ); 1729523f5352Sopenharmony_ci SLresult (*Move) ( 1730523f5352Sopenharmony_ci SL3DLocationItf self, 1731523f5352Sopenharmony_ci const SLVec3D *pMovement 1732523f5352Sopenharmony_ci ); 1733523f5352Sopenharmony_ci SLresult (*GetLocationCartesian) ( 1734523f5352Sopenharmony_ci SL3DLocationItf self, 1735523f5352Sopenharmony_ci SLVec3D *pLocation 1736523f5352Sopenharmony_ci ); 1737523f5352Sopenharmony_ci SLresult (*SetOrientationVectors) ( 1738523f5352Sopenharmony_ci SL3DLocationItf self, 1739523f5352Sopenharmony_ci const SLVec3D *pFront, 1740523f5352Sopenharmony_ci const SLVec3D *pAbove 1741523f5352Sopenharmony_ci ); 1742523f5352Sopenharmony_ci SLresult (*SetOrientationAngles) ( 1743523f5352Sopenharmony_ci SL3DLocationItf self, 1744523f5352Sopenharmony_ci SLmillidegree heading, 1745523f5352Sopenharmony_ci SLmillidegree pitch, 1746523f5352Sopenharmony_ci SLmillidegree roll 1747523f5352Sopenharmony_ci ); 1748523f5352Sopenharmony_ci SLresult (*Rotate) ( 1749523f5352Sopenharmony_ci SL3DLocationItf self, 1750523f5352Sopenharmony_ci SLmillidegree theta, 1751523f5352Sopenharmony_ci const SLVec3D *pAxis 1752523f5352Sopenharmony_ci ); 1753523f5352Sopenharmony_ci SLresult (*GetOrientationVectors) ( 1754523f5352Sopenharmony_ci SL3DLocationItf self, 1755523f5352Sopenharmony_ci SLVec3D *pFront, 1756523f5352Sopenharmony_ci SLVec3D *pUp 1757523f5352Sopenharmony_ci ); 1758523f5352Sopenharmony_ci}; 1759523f5352Sopenharmony_ci 1760523f5352Sopenharmony_ci 1761523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 1762523f5352Sopenharmony_ci/* 3D Doppler Interface */ 1763523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 1764523f5352Sopenharmony_ci 1765523f5352Sopenharmony_ci 1766523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_3DDOPPLER; 1767523f5352Sopenharmony_ci 1768523f5352Sopenharmony_cistruct SL3DDopplerItf_; 1769523f5352Sopenharmony_citypedef const struct SL3DDopplerItf_ * const * SL3DDopplerItf; 1770523f5352Sopenharmony_ci 1771523f5352Sopenharmony_cistruct SL3DDopplerItf_ { 1772523f5352Sopenharmony_ci SLresult (*SetVelocityCartesian) ( 1773523f5352Sopenharmony_ci SL3DDopplerItf self, 1774523f5352Sopenharmony_ci const SLVec3D *pVelocity 1775523f5352Sopenharmony_ci ); 1776523f5352Sopenharmony_ci SLresult (*SetVelocitySpherical) ( 1777523f5352Sopenharmony_ci SL3DDopplerItf self, 1778523f5352Sopenharmony_ci SLmillidegree azimuth, 1779523f5352Sopenharmony_ci SLmillidegree elevation, 1780523f5352Sopenharmony_ci SLmillimeter speed 1781523f5352Sopenharmony_ci ); 1782523f5352Sopenharmony_ci SLresult (*GetVelocityCartesian) ( 1783523f5352Sopenharmony_ci SL3DDopplerItf self, 1784523f5352Sopenharmony_ci SLVec3D *pVelocity 1785523f5352Sopenharmony_ci ); 1786523f5352Sopenharmony_ci SLresult (*SetDopplerFactor) ( 1787523f5352Sopenharmony_ci SL3DDopplerItf self, 1788523f5352Sopenharmony_ci SLpermille dopplerFactor 1789523f5352Sopenharmony_ci ); 1790523f5352Sopenharmony_ci SLresult (*GetDopplerFactor) ( 1791523f5352Sopenharmony_ci SL3DDopplerItf self, 1792523f5352Sopenharmony_ci SLpermille *pDopplerFactor 1793523f5352Sopenharmony_ci ); 1794523f5352Sopenharmony_ci}; 1795523f5352Sopenharmony_ci 1796523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 1797523f5352Sopenharmony_ci/* 3D Source Interface and associated defines */ 1798523f5352Sopenharmony_ci/* --------------------------------------------------------------------------*/ 1799523f5352Sopenharmony_ci 1800523f5352Sopenharmony_ci#define SL_ROLLOFFMODEL_EXPONENTIAL ((SLuint32) 0x00000000) 1801523f5352Sopenharmony_ci#define SL_ROLLOFFMODEL_LINEAR ((SLuint32) 0x00000001) 1802523f5352Sopenharmony_ci 1803523f5352Sopenharmony_ci 1804523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_3DSOURCE; 1805523f5352Sopenharmony_ci 1806523f5352Sopenharmony_cistruct SL3DSourceItf_; 1807523f5352Sopenharmony_citypedef const struct SL3DSourceItf_ * const * SL3DSourceItf; 1808523f5352Sopenharmony_ci 1809523f5352Sopenharmony_cistruct SL3DSourceItf_ { 1810523f5352Sopenharmony_ci SLresult (*SetHeadRelative) ( 1811523f5352Sopenharmony_ci SL3DSourceItf self, 1812523f5352Sopenharmony_ci SLboolean headRelative 1813523f5352Sopenharmony_ci ); 1814523f5352Sopenharmony_ci SLresult (*GetHeadRelative) ( 1815523f5352Sopenharmony_ci SL3DSourceItf self, 1816523f5352Sopenharmony_ci SLboolean *pHeadRelative 1817523f5352Sopenharmony_ci ); 1818523f5352Sopenharmony_ci SLresult (*SetRolloffDistances) ( 1819523f5352Sopenharmony_ci SL3DSourceItf self, 1820523f5352Sopenharmony_ci SLmillimeter minDistance, 1821523f5352Sopenharmony_ci SLmillimeter maxDistance 1822523f5352Sopenharmony_ci ); 1823523f5352Sopenharmony_ci SLresult (*GetRolloffDistances) ( 1824523f5352Sopenharmony_ci SL3DSourceItf self, 1825523f5352Sopenharmony_ci SLmillimeter *pMinDistance, 1826523f5352Sopenharmony_ci SLmillimeter *pMaxDistance 1827523f5352Sopenharmony_ci ); 1828523f5352Sopenharmony_ci SLresult (*SetRolloffMaxDistanceMute) ( 1829523f5352Sopenharmony_ci SL3DSourceItf self, 1830523f5352Sopenharmony_ci SLboolean mute 1831523f5352Sopenharmony_ci ); 1832523f5352Sopenharmony_ci SLresult (*GetRolloffMaxDistanceMute) ( 1833523f5352Sopenharmony_ci SL3DSourceItf self, 1834523f5352Sopenharmony_ci SLboolean *pMute 1835523f5352Sopenharmony_ci ); 1836523f5352Sopenharmony_ci SLresult (*SetRolloffFactor) ( 1837523f5352Sopenharmony_ci SL3DSourceItf self, 1838523f5352Sopenharmony_ci SLpermille rolloffFactor 1839523f5352Sopenharmony_ci ); 1840523f5352Sopenharmony_ci SLresult (*GetRolloffFactor) ( 1841523f5352Sopenharmony_ci SL3DSourceItf self, 1842523f5352Sopenharmony_ci SLpermille *pRolloffFactor 1843523f5352Sopenharmony_ci ); 1844523f5352Sopenharmony_ci SLresult (*SetRoomRolloffFactor) ( 1845523f5352Sopenharmony_ci SL3DSourceItf self, 1846523f5352Sopenharmony_ci SLpermille roomRolloffFactor 1847523f5352Sopenharmony_ci ); 1848523f5352Sopenharmony_ci SLresult (*GetRoomRolloffFactor) ( 1849523f5352Sopenharmony_ci SL3DSourceItf self, 1850523f5352Sopenharmony_ci SLpermille *pRoomRolloffFactor 1851523f5352Sopenharmony_ci ); 1852523f5352Sopenharmony_ci SLresult (*SetRolloffModel) ( 1853523f5352Sopenharmony_ci SL3DSourceItf self, 1854523f5352Sopenharmony_ci SLuint8 model 1855523f5352Sopenharmony_ci ); 1856523f5352Sopenharmony_ci SLresult (*GetRolloffModel) ( 1857523f5352Sopenharmony_ci SL3DSourceItf self, 1858523f5352Sopenharmony_ci SLuint8 *pModel 1859523f5352Sopenharmony_ci ); 1860523f5352Sopenharmony_ci SLresult (*SetCone) ( 1861523f5352Sopenharmony_ci SL3DSourceItf self, 1862523f5352Sopenharmony_ci SLmillidegree innerAngle, 1863523f5352Sopenharmony_ci SLmillidegree outerAngle, 1864523f5352Sopenharmony_ci SLmillibel outerLevel 1865523f5352Sopenharmony_ci ); 1866523f5352Sopenharmony_ci SLresult (*GetCone) ( 1867523f5352Sopenharmony_ci SL3DSourceItf self, 1868523f5352Sopenharmony_ci SLmillidegree *pInnerAngle, 1869523f5352Sopenharmony_ci SLmillidegree *pOuterAngle, 1870523f5352Sopenharmony_ci SLmillibel *pOuterLevel 1871523f5352Sopenharmony_ci ); 1872523f5352Sopenharmony_ci}; 1873523f5352Sopenharmony_ci 1874523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 1875523f5352Sopenharmony_ci/* 3D Macroscopic Interface */ 1876523f5352Sopenharmony_ci/* --------------------------------------------------------------------------*/ 1877523f5352Sopenharmony_ci 1878523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_3DMACROSCOPIC; 1879523f5352Sopenharmony_ci 1880523f5352Sopenharmony_cistruct SL3DMacroscopicItf_; 1881523f5352Sopenharmony_citypedef const struct SL3DMacroscopicItf_ * const * SL3DMacroscopicItf; 1882523f5352Sopenharmony_ci 1883523f5352Sopenharmony_cistruct SL3DMacroscopicItf_ { 1884523f5352Sopenharmony_ci SLresult (*SetSize) ( 1885523f5352Sopenharmony_ci SL3DMacroscopicItf self, 1886523f5352Sopenharmony_ci SLmillimeter width, 1887523f5352Sopenharmony_ci SLmillimeter height, 1888523f5352Sopenharmony_ci SLmillimeter depth 1889523f5352Sopenharmony_ci ); 1890523f5352Sopenharmony_ci SLresult (*GetSize) ( 1891523f5352Sopenharmony_ci SL3DMacroscopicItf self, 1892523f5352Sopenharmony_ci SLmillimeter *pWidth, 1893523f5352Sopenharmony_ci SLmillimeter *pHeight, 1894523f5352Sopenharmony_ci SLmillimeter *pDepth 1895523f5352Sopenharmony_ci ); 1896523f5352Sopenharmony_ci SLresult (*SetOrientationAngles) ( 1897523f5352Sopenharmony_ci SL3DMacroscopicItf self, 1898523f5352Sopenharmony_ci SLmillidegree heading, 1899523f5352Sopenharmony_ci SLmillidegree pitch, 1900523f5352Sopenharmony_ci SLmillidegree roll 1901523f5352Sopenharmony_ci ); 1902523f5352Sopenharmony_ci SLresult (*SetOrientationVectors) ( 1903523f5352Sopenharmony_ci SL3DMacroscopicItf self, 1904523f5352Sopenharmony_ci const SLVec3D *pFront, 1905523f5352Sopenharmony_ci const SLVec3D *pAbove 1906523f5352Sopenharmony_ci ); 1907523f5352Sopenharmony_ci SLresult (*Rotate) ( 1908523f5352Sopenharmony_ci SL3DMacroscopicItf self, 1909523f5352Sopenharmony_ci SLmillidegree theta, 1910523f5352Sopenharmony_ci const SLVec3D *pAxis 1911523f5352Sopenharmony_ci ); 1912523f5352Sopenharmony_ci SLresult (*GetOrientationVectors) ( 1913523f5352Sopenharmony_ci SL3DMacroscopicItf self, 1914523f5352Sopenharmony_ci SLVec3D *pFront, 1915523f5352Sopenharmony_ci SLVec3D *pUp 1916523f5352Sopenharmony_ci ); 1917523f5352Sopenharmony_ci}; 1918523f5352Sopenharmony_ci 1919523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 1920523f5352Sopenharmony_ci/* Mute Solo Interface */ 1921523f5352Sopenharmony_ci/* --------------------------------------------------------------------------*/ 1922523f5352Sopenharmony_ci 1923523f5352Sopenharmony_ci 1924523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_MUTESOLO; 1925523f5352Sopenharmony_ci 1926523f5352Sopenharmony_cistruct SLMuteSoloItf_; 1927523f5352Sopenharmony_citypedef const struct SLMuteSoloItf_ * const * SLMuteSoloItf; 1928523f5352Sopenharmony_ci 1929523f5352Sopenharmony_cistruct SLMuteSoloItf_ { 1930523f5352Sopenharmony_ci SLresult (*SetChannelMute) ( 1931523f5352Sopenharmony_ci SLMuteSoloItf self, 1932523f5352Sopenharmony_ci SLuint8 chan, 1933523f5352Sopenharmony_ci SLboolean mute 1934523f5352Sopenharmony_ci ); 1935523f5352Sopenharmony_ci SLresult (*GetChannelMute) ( 1936523f5352Sopenharmony_ci SLMuteSoloItf self, 1937523f5352Sopenharmony_ci SLuint8 chan, 1938523f5352Sopenharmony_ci SLboolean *pMute 1939523f5352Sopenharmony_ci ); 1940523f5352Sopenharmony_ci SLresult (*SetChannelSolo) ( 1941523f5352Sopenharmony_ci SLMuteSoloItf self, 1942523f5352Sopenharmony_ci SLuint8 chan, 1943523f5352Sopenharmony_ci SLboolean solo 1944523f5352Sopenharmony_ci ); 1945523f5352Sopenharmony_ci SLresult (*GetChannelSolo) ( 1946523f5352Sopenharmony_ci SLMuteSoloItf self, 1947523f5352Sopenharmony_ci SLuint8 chan, 1948523f5352Sopenharmony_ci SLboolean *pSolo 1949523f5352Sopenharmony_ci ); 1950523f5352Sopenharmony_ci SLresult (*GetNumChannels) ( 1951523f5352Sopenharmony_ci SLMuteSoloItf self, 1952523f5352Sopenharmony_ci SLuint8 *pNumChannels 1953523f5352Sopenharmony_ci ); 1954523f5352Sopenharmony_ci}; 1955523f5352Sopenharmony_ci 1956523f5352Sopenharmony_ci 1957523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 1958523f5352Sopenharmony_ci/* Dynamic Interface Management Interface and associated types and macros */ 1959523f5352Sopenharmony_ci/* --------------------------------------------------------------------------*/ 1960523f5352Sopenharmony_ci 1961523f5352Sopenharmony_ci#define SL_DYNAMIC_ITF_EVENT_RUNTIME_ERROR ((SLuint32) 0x00000001) 1962523f5352Sopenharmony_ci#define SL_DYNAMIC_ITF_EVENT_ASYNC_TERMINATION ((SLuint32) 0x00000002) 1963523f5352Sopenharmony_ci#define SL_DYNAMIC_ITF_EVENT_RESOURCES_LOST ((SLuint32) 0x00000003) 1964523f5352Sopenharmony_ci#define SL_DYNAMIC_ITF_EVENT_RESOURCES_LOST_PERMANENTLY ((SLuint32) 0x00000004) 1965523f5352Sopenharmony_ci#define SL_DYNAMIC_ITF_EVENT_RESOURCES_AVAILABLE ((SLuint32) 0x00000005) 1966523f5352Sopenharmony_ci 1967523f5352Sopenharmony_ci 1968523f5352Sopenharmony_ci 1969523f5352Sopenharmony_ci 1970523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_DYNAMICINTERFACEMANAGEMENT; 1971523f5352Sopenharmony_ci 1972523f5352Sopenharmony_cistruct SLDynamicInterfaceManagementItf_; 1973523f5352Sopenharmony_citypedef const struct SLDynamicInterfaceManagementItf_ * const * SLDynamicInterfaceManagementItf; 1974523f5352Sopenharmony_ci 1975523f5352Sopenharmony_citypedef void (SLAPIENTRY *slDynamicInterfaceManagementCallback) ( 1976523f5352Sopenharmony_ci SLDynamicInterfaceManagementItf caller, 1977523f5352Sopenharmony_ci void * pContext, 1978523f5352Sopenharmony_ci SLuint32 event, 1979523f5352Sopenharmony_ci SLresult result, 1980523f5352Sopenharmony_ci const SLInterfaceID iid 1981523f5352Sopenharmony_ci); 1982523f5352Sopenharmony_ci 1983523f5352Sopenharmony_ci 1984523f5352Sopenharmony_cistruct SLDynamicInterfaceManagementItf_ { 1985523f5352Sopenharmony_ci SLresult (*AddInterface) ( 1986523f5352Sopenharmony_ci SLDynamicInterfaceManagementItf self, 1987523f5352Sopenharmony_ci const SLInterfaceID iid, 1988523f5352Sopenharmony_ci SLboolean async 1989523f5352Sopenharmony_ci ); 1990523f5352Sopenharmony_ci SLresult (*RemoveInterface) ( 1991523f5352Sopenharmony_ci SLDynamicInterfaceManagementItf self, 1992523f5352Sopenharmony_ci const SLInterfaceID iid 1993523f5352Sopenharmony_ci ); 1994523f5352Sopenharmony_ci SLresult (*ResumeInterface) ( 1995523f5352Sopenharmony_ci SLDynamicInterfaceManagementItf self, 1996523f5352Sopenharmony_ci const SLInterfaceID iid, 1997523f5352Sopenharmony_ci SLboolean async 1998523f5352Sopenharmony_ci ); 1999523f5352Sopenharmony_ci SLresult (*RegisterCallback) ( 2000523f5352Sopenharmony_ci SLDynamicInterfaceManagementItf self, 2001523f5352Sopenharmony_ci slDynamicInterfaceManagementCallback callback, 2002523f5352Sopenharmony_ci void * pContext 2003523f5352Sopenharmony_ci ); 2004523f5352Sopenharmony_ci}; 2005523f5352Sopenharmony_ci 2006523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 2007523f5352Sopenharmony_ci/* Midi Message Interface and associated types */ 2008523f5352Sopenharmony_ci/* --------------------------------------------------------------------------*/ 2009523f5352Sopenharmony_ci 2010523f5352Sopenharmony_ci#define SL_MIDIMESSAGETYPE_NOTE_ON_OFF ((SLuint32) 0x00000001) 2011523f5352Sopenharmony_ci#define SL_MIDIMESSAGETYPE_POLY_PRESSURE ((SLuint32) 0x00000002) 2012523f5352Sopenharmony_ci#define SL_MIDIMESSAGETYPE_CONTROL_CHANGE ((SLuint32) 0x00000003) 2013523f5352Sopenharmony_ci#define SL_MIDIMESSAGETYPE_PROGRAM_CHANGE ((SLuint32) 0x00000004) 2014523f5352Sopenharmony_ci#define SL_MIDIMESSAGETYPE_CHANNEL_PRESSURE ((SLuint32) 0x00000005) 2015523f5352Sopenharmony_ci#define SL_MIDIMESSAGETYPE_PITCH_BEND ((SLuint32) 0x00000006) 2016523f5352Sopenharmony_ci#define SL_MIDIMESSAGETYPE_SYSTEM_MESSAGE ((SLuint32) 0x00000007) 2017523f5352Sopenharmony_ci 2018523f5352Sopenharmony_ci 2019523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_MIDIMESSAGE; 2020523f5352Sopenharmony_ci 2021523f5352Sopenharmony_cistruct SLMIDIMessageItf_; 2022523f5352Sopenharmony_citypedef const struct SLMIDIMessageItf_ * const * SLMIDIMessageItf; 2023523f5352Sopenharmony_ci 2024523f5352Sopenharmony_citypedef void (SLAPIENTRY *slMetaEventCallback) ( 2025523f5352Sopenharmony_ci SLMIDIMessageItf caller, 2026523f5352Sopenharmony_ci void *pContext, 2027523f5352Sopenharmony_ci SLuint8 type, 2028523f5352Sopenharmony_ci SLuint32 length, 2029523f5352Sopenharmony_ci const SLuint8 *pData, 2030523f5352Sopenharmony_ci SLuint32 tick, 2031523f5352Sopenharmony_ci SLuint16 track 2032523f5352Sopenharmony_ci); 2033523f5352Sopenharmony_ci 2034523f5352Sopenharmony_citypedef void (SLAPIENTRY *slMIDIMessageCallback) ( 2035523f5352Sopenharmony_ci SLMIDIMessageItf caller, 2036523f5352Sopenharmony_ci void *pContext, 2037523f5352Sopenharmony_ci SLuint8 statusByte, 2038523f5352Sopenharmony_ci SLuint32 length, 2039523f5352Sopenharmony_ci const SLuint8 *pData, 2040523f5352Sopenharmony_ci SLuint32 tick, 2041523f5352Sopenharmony_ci SLuint16 track 2042523f5352Sopenharmony_ci); 2043523f5352Sopenharmony_ci 2044523f5352Sopenharmony_cistruct SLMIDIMessageItf_ { 2045523f5352Sopenharmony_ci SLresult (*SendMessage) ( 2046523f5352Sopenharmony_ci SLMIDIMessageItf self, 2047523f5352Sopenharmony_ci const SLuint8 *data, 2048523f5352Sopenharmony_ci SLuint32 length 2049523f5352Sopenharmony_ci ); 2050523f5352Sopenharmony_ci SLresult (*RegisterMetaEventCallback) ( 2051523f5352Sopenharmony_ci SLMIDIMessageItf self, 2052523f5352Sopenharmony_ci slMetaEventCallback callback, 2053523f5352Sopenharmony_ci void *pContext 2054523f5352Sopenharmony_ci ); 2055523f5352Sopenharmony_ci SLresult (*RegisterMIDIMessageCallback) ( 2056523f5352Sopenharmony_ci SLMIDIMessageItf self, 2057523f5352Sopenharmony_ci slMIDIMessageCallback callback, 2058523f5352Sopenharmony_ci void *pContext 2059523f5352Sopenharmony_ci ); 2060523f5352Sopenharmony_ci SLresult (*AddMIDIMessageCallbackFilter) ( 2061523f5352Sopenharmony_ci SLMIDIMessageItf self, 2062523f5352Sopenharmony_ci SLuint32 messageType 2063523f5352Sopenharmony_ci ); 2064523f5352Sopenharmony_ci SLresult (*ClearMIDIMessageCallbackFilter) ( 2065523f5352Sopenharmony_ci SLMIDIMessageItf self 2066523f5352Sopenharmony_ci ); 2067523f5352Sopenharmony_ci}; 2068523f5352Sopenharmony_ci 2069523f5352Sopenharmony_ci 2070523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 2071523f5352Sopenharmony_ci/* Midi Mute Solo interface */ 2072523f5352Sopenharmony_ci/* --------------------------------------------------------------------------*/ 2073523f5352Sopenharmony_ci 2074523f5352Sopenharmony_ci 2075523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_MIDIMUTESOLO; 2076523f5352Sopenharmony_ci 2077523f5352Sopenharmony_cistruct SLMIDIMuteSoloItf_; 2078523f5352Sopenharmony_citypedef const struct SLMIDIMuteSoloItf_ * const * SLMIDIMuteSoloItf; 2079523f5352Sopenharmony_ci 2080523f5352Sopenharmony_cistruct SLMIDIMuteSoloItf_ { 2081523f5352Sopenharmony_ci SLresult (*SetChannelMute) ( 2082523f5352Sopenharmony_ci SLMIDIMuteSoloItf self, 2083523f5352Sopenharmony_ci SLuint8 channel, 2084523f5352Sopenharmony_ci SLboolean mute 2085523f5352Sopenharmony_ci ); 2086523f5352Sopenharmony_ci SLresult (*GetChannelMute) ( 2087523f5352Sopenharmony_ci SLMIDIMuteSoloItf self, 2088523f5352Sopenharmony_ci SLuint8 channel, 2089523f5352Sopenharmony_ci SLboolean *pMute 2090523f5352Sopenharmony_ci ); 2091523f5352Sopenharmony_ci SLresult (*SetChannelSolo) ( 2092523f5352Sopenharmony_ci SLMIDIMuteSoloItf self, 2093523f5352Sopenharmony_ci SLuint8 channel, 2094523f5352Sopenharmony_ci SLboolean solo 2095523f5352Sopenharmony_ci ); 2096523f5352Sopenharmony_ci SLresult (*GetChannelSolo) ( 2097523f5352Sopenharmony_ci SLMIDIMuteSoloItf self, 2098523f5352Sopenharmony_ci SLuint8 channel, 2099523f5352Sopenharmony_ci SLboolean *pSolo 2100523f5352Sopenharmony_ci ); 2101523f5352Sopenharmony_ci SLresult (*GetTrackCount) ( 2102523f5352Sopenharmony_ci SLMIDIMuteSoloItf self, 2103523f5352Sopenharmony_ci SLuint16 *pCount 2104523f5352Sopenharmony_ci ); 2105523f5352Sopenharmony_ci SLresult (*SetTrackMute) ( 2106523f5352Sopenharmony_ci SLMIDIMuteSoloItf self, 2107523f5352Sopenharmony_ci SLuint16 track, 2108523f5352Sopenharmony_ci SLboolean mute 2109523f5352Sopenharmony_ci ); 2110523f5352Sopenharmony_ci SLresult (*GetTrackMute) ( 2111523f5352Sopenharmony_ci SLMIDIMuteSoloItf self, 2112523f5352Sopenharmony_ci SLuint16 track, 2113523f5352Sopenharmony_ci SLboolean *pMute 2114523f5352Sopenharmony_ci ); 2115523f5352Sopenharmony_ci SLresult (*SetTrackSolo) ( 2116523f5352Sopenharmony_ci SLMIDIMuteSoloItf self, 2117523f5352Sopenharmony_ci SLuint16 track, 2118523f5352Sopenharmony_ci SLboolean solo 2119523f5352Sopenharmony_ci ); 2120523f5352Sopenharmony_ci SLresult (*GetTrackSolo) ( 2121523f5352Sopenharmony_ci SLMIDIMuteSoloItf self, 2122523f5352Sopenharmony_ci SLuint16 track, 2123523f5352Sopenharmony_ci SLboolean *pSolo 2124523f5352Sopenharmony_ci ); 2125523f5352Sopenharmony_ci}; 2126523f5352Sopenharmony_ci 2127523f5352Sopenharmony_ci 2128523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 2129523f5352Sopenharmony_ci/* Midi Tempo interface */ 2130523f5352Sopenharmony_ci/* --------------------------------------------------------------------------*/ 2131523f5352Sopenharmony_ci 2132523f5352Sopenharmony_ci 2133523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_MIDITEMPO; 2134523f5352Sopenharmony_ci 2135523f5352Sopenharmony_cistruct SLMIDITempoItf_; 2136523f5352Sopenharmony_citypedef const struct SLMIDITempoItf_ * const * SLMIDITempoItf; 2137523f5352Sopenharmony_ci 2138523f5352Sopenharmony_cistruct SLMIDITempoItf_ { 2139523f5352Sopenharmony_ci SLresult (*SetTicksPerQuarterNote) ( 2140523f5352Sopenharmony_ci SLMIDITempoItf self, 2141523f5352Sopenharmony_ci SLuint32 tpqn 2142523f5352Sopenharmony_ci ); 2143523f5352Sopenharmony_ci SLresult (*GetTicksPerQuarterNote) ( 2144523f5352Sopenharmony_ci SLMIDITempoItf self, 2145523f5352Sopenharmony_ci SLuint32 *pTpqn 2146523f5352Sopenharmony_ci ); 2147523f5352Sopenharmony_ci SLresult (*SetMicrosecondsPerQuarterNote) ( 2148523f5352Sopenharmony_ci SLMIDITempoItf self, 2149523f5352Sopenharmony_ci SLmicrosecond uspqn 2150523f5352Sopenharmony_ci ); 2151523f5352Sopenharmony_ci SLresult (*GetMicrosecondsPerQuarterNote) ( 2152523f5352Sopenharmony_ci SLMIDITempoItf self, 2153523f5352Sopenharmony_ci SLmicrosecond *uspqn 2154523f5352Sopenharmony_ci ); 2155523f5352Sopenharmony_ci}; 2156523f5352Sopenharmony_ci 2157523f5352Sopenharmony_ci 2158523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 2159523f5352Sopenharmony_ci/* Midi Time interface */ 2160523f5352Sopenharmony_ci/* --------------------------------------------------------------------------*/ 2161523f5352Sopenharmony_ci 2162523f5352Sopenharmony_ci 2163523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_MIDITIME; 2164523f5352Sopenharmony_ci 2165523f5352Sopenharmony_cistruct SLMIDITimeItf_; 2166523f5352Sopenharmony_citypedef const struct SLMIDITimeItf_ * const * SLMIDITimeItf; 2167523f5352Sopenharmony_ci 2168523f5352Sopenharmony_cistruct SLMIDITimeItf_ { 2169523f5352Sopenharmony_ci SLresult (*GetDuration) ( 2170523f5352Sopenharmony_ci SLMIDITimeItf self, 2171523f5352Sopenharmony_ci SLuint32 *pDuration 2172523f5352Sopenharmony_ci ); 2173523f5352Sopenharmony_ci SLresult (*SetPosition) ( 2174523f5352Sopenharmony_ci SLMIDITimeItf self, 2175523f5352Sopenharmony_ci SLuint32 position 2176523f5352Sopenharmony_ci ); 2177523f5352Sopenharmony_ci SLresult (*GetPosition) ( 2178523f5352Sopenharmony_ci SLMIDITimeItf self, 2179523f5352Sopenharmony_ci SLuint32 *pPosition 2180523f5352Sopenharmony_ci ); 2181523f5352Sopenharmony_ci SLresult (*SetLoopPoints) ( 2182523f5352Sopenharmony_ci SLMIDITimeItf self, 2183523f5352Sopenharmony_ci SLuint32 startTick, 2184523f5352Sopenharmony_ci SLuint32 numTicks 2185523f5352Sopenharmony_ci ); 2186523f5352Sopenharmony_ci SLresult (*GetLoopPoints) ( 2187523f5352Sopenharmony_ci SLMIDITimeItf self, 2188523f5352Sopenharmony_ci SLuint32 *pStartTick, 2189523f5352Sopenharmony_ci SLuint32 *pNumTicks 2190523f5352Sopenharmony_ci ); 2191523f5352Sopenharmony_ci}; 2192523f5352Sopenharmony_ci 2193523f5352Sopenharmony_ci 2194523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 2195523f5352Sopenharmony_ci/* Audio Decoder Capabilities Interface */ 2196523f5352Sopenharmony_ci/* --------------------------------------------------------------------------*/ 2197523f5352Sopenharmony_ci 2198523f5352Sopenharmony_ci/*Audio Codec related defines*/ 2199523f5352Sopenharmony_ci 2200523f5352Sopenharmony_ci#define SL_RATECONTROLMODE_CONSTANTBITRATE ((SLuint32) 0x00000001) 2201523f5352Sopenharmony_ci#define SL_RATECONTROLMODE_VARIABLEBITRATE ((SLuint32) 0x00000002) 2202523f5352Sopenharmony_ci 2203523f5352Sopenharmony_ci#define SL_AUDIOCODEC_PCM ((SLuint32) 0x00000001) 2204523f5352Sopenharmony_ci#define SL_AUDIOCODEC_MP3 ((SLuint32) 0x00000002) 2205523f5352Sopenharmony_ci#define SL_AUDIOCODEC_AMR ((SLuint32) 0x00000003) 2206523f5352Sopenharmony_ci#define SL_AUDIOCODEC_AMRWB ((SLuint32) 0x00000004) 2207523f5352Sopenharmony_ci#define SL_AUDIOCODEC_AMRWBPLUS ((SLuint32) 0x00000005) 2208523f5352Sopenharmony_ci#define SL_AUDIOCODEC_AAC ((SLuint32) 0x00000006) 2209523f5352Sopenharmony_ci#define SL_AUDIOCODEC_WMA ((SLuint32) 0x00000007) 2210523f5352Sopenharmony_ci#define SL_AUDIOCODEC_REAL ((SLuint32) 0x00000008) 2211523f5352Sopenharmony_ci 2212523f5352Sopenharmony_ci#define SL_AUDIOPROFILE_PCM ((SLuint32) 0x00000001) 2213523f5352Sopenharmony_ci 2214523f5352Sopenharmony_ci#define SL_AUDIOPROFILE_MPEG1_L3 ((SLuint32) 0x00000001) 2215523f5352Sopenharmony_ci#define SL_AUDIOPROFILE_MPEG2_L3 ((SLuint32) 0x00000002) 2216523f5352Sopenharmony_ci#define SL_AUDIOPROFILE_MPEG25_L3 ((SLuint32) 0x00000003) 2217523f5352Sopenharmony_ci 2218523f5352Sopenharmony_ci#define SL_AUDIOCHANMODE_MP3_MONO ((SLuint32) 0x00000001) 2219523f5352Sopenharmony_ci#define SL_AUDIOCHANMODE_MP3_STEREO ((SLuint32) 0x00000002) 2220523f5352Sopenharmony_ci#define SL_AUDIOCHANMODE_MP3_JOINTSTEREO ((SLuint32) 0x00000003) 2221523f5352Sopenharmony_ci#define SL_AUDIOCHANMODE_MP3_DUAL ((SLuint32) 0x00000004) 2222523f5352Sopenharmony_ci 2223523f5352Sopenharmony_ci#define SL_AUDIOPROFILE_AMR ((SLuint32) 0x00000001) 2224523f5352Sopenharmony_ci 2225523f5352Sopenharmony_ci#define SL_AUDIOSTREAMFORMAT_CONFORMANCE ((SLuint32) 0x00000001) 2226523f5352Sopenharmony_ci#define SL_AUDIOSTREAMFORMAT_IF1 ((SLuint32) 0x00000002) 2227523f5352Sopenharmony_ci#define SL_AUDIOSTREAMFORMAT_IF2 ((SLuint32) 0x00000003) 2228523f5352Sopenharmony_ci#define SL_AUDIOSTREAMFORMAT_FSF ((SLuint32) 0x00000004) 2229523f5352Sopenharmony_ci#define SL_AUDIOSTREAMFORMAT_RTPPAYLOAD ((SLuint32) 0x00000005) 2230523f5352Sopenharmony_ci#define SL_AUDIOSTREAMFORMAT_ITU ((SLuint32) 0x00000006) 2231523f5352Sopenharmony_ci 2232523f5352Sopenharmony_ci#define SL_AUDIOPROFILE_AMRWB ((SLuint32) 0x00000001) 2233523f5352Sopenharmony_ci 2234523f5352Sopenharmony_ci#define SL_AUDIOPROFILE_AMRWBPLUS ((SLuint32) 0x00000001) 2235523f5352Sopenharmony_ci 2236523f5352Sopenharmony_ci#define SL_AUDIOPROFILE_AAC_AAC ((SLuint32) 0x00000001) 2237523f5352Sopenharmony_ci 2238523f5352Sopenharmony_ci#define SL_AUDIOMODE_AAC_MAIN ((SLuint32) 0x00000001) 2239523f5352Sopenharmony_ci#define SL_AUDIOMODE_AAC_LC ((SLuint32) 0x00000002) 2240523f5352Sopenharmony_ci#define SL_AUDIOMODE_AAC_SSR ((SLuint32) 0x00000003) 2241523f5352Sopenharmony_ci#define SL_AUDIOMODE_AAC_LTP ((SLuint32) 0x00000004) 2242523f5352Sopenharmony_ci#define SL_AUDIOMODE_AAC_HE ((SLuint32) 0x00000005) 2243523f5352Sopenharmony_ci#define SL_AUDIOMODE_AAC_SCALABLE ((SLuint32) 0x00000006) 2244523f5352Sopenharmony_ci#define SL_AUDIOMODE_AAC_ERLC ((SLuint32) 0x00000007) 2245523f5352Sopenharmony_ci#define SL_AUDIOMODE_AAC_LD ((SLuint32) 0x00000008) 2246523f5352Sopenharmony_ci#define SL_AUDIOMODE_AAC_HE_PS ((SLuint32) 0x00000009) 2247523f5352Sopenharmony_ci#define SL_AUDIOMODE_AAC_HE_MPS ((SLuint32) 0x0000000A) 2248523f5352Sopenharmony_ci 2249523f5352Sopenharmony_ci#define SL_AUDIOSTREAMFORMAT_MP2ADTS ((SLuint32) 0x00000001) 2250523f5352Sopenharmony_ci#define SL_AUDIOSTREAMFORMAT_MP4ADTS ((SLuint32) 0x00000002) 2251523f5352Sopenharmony_ci#define SL_AUDIOSTREAMFORMAT_MP4LOAS ((SLuint32) 0x00000003) 2252523f5352Sopenharmony_ci#define SL_AUDIOSTREAMFORMAT_MP4LATM ((SLuint32) 0x00000004) 2253523f5352Sopenharmony_ci#define SL_AUDIOSTREAMFORMAT_ADIF ((SLuint32) 0x00000005) 2254523f5352Sopenharmony_ci#define SL_AUDIOSTREAMFORMAT_MP4FF ((SLuint32) 0x00000006) 2255523f5352Sopenharmony_ci#define SL_AUDIOSTREAMFORMAT_RAW ((SLuint32) 0x00000007) 2256523f5352Sopenharmony_ci 2257523f5352Sopenharmony_ci#define SL_AUDIOPROFILE_WMA7 ((SLuint32) 0x00000001) 2258523f5352Sopenharmony_ci#define SL_AUDIOPROFILE_WMA8 ((SLuint32) 0x00000002) 2259523f5352Sopenharmony_ci#define SL_AUDIOPROFILE_WMA9 ((SLuint32) 0x00000003) 2260523f5352Sopenharmony_ci#define SL_AUDIOPROFILE_WMA10 ((SLuint32) 0x00000004) 2261523f5352Sopenharmony_ci 2262523f5352Sopenharmony_ci#define SL_AUDIOMODE_WMA_LEVEL1 ((SLuint32) 0x00000001) 2263523f5352Sopenharmony_ci#define SL_AUDIOMODE_WMA_LEVEL2 ((SLuint32) 0x00000002) 2264523f5352Sopenharmony_ci#define SL_AUDIOMODE_WMA_LEVEL3 ((SLuint32) 0x00000003) 2265523f5352Sopenharmony_ci#define SL_AUDIOMODE_WMA_LEVEL4 ((SLuint32) 0x00000004) 2266523f5352Sopenharmony_ci#define SL_AUDIOMODE_WMAPRO_LEVELM0 ((SLuint32) 0x00000005) 2267523f5352Sopenharmony_ci#define SL_AUDIOMODE_WMAPRO_LEVELM1 ((SLuint32) 0x00000006) 2268523f5352Sopenharmony_ci#define SL_AUDIOMODE_WMAPRO_LEVELM2 ((SLuint32) 0x00000007) 2269523f5352Sopenharmony_ci#define SL_AUDIOMODE_WMAPRO_LEVELM3 ((SLuint32) 0x00000008) 2270523f5352Sopenharmony_ci 2271523f5352Sopenharmony_ci#define SL_AUDIOPROFILE_REALAUDIO ((SLuint32) 0x00000001) 2272523f5352Sopenharmony_ci 2273523f5352Sopenharmony_ci#define SL_AUDIOMODE_REALAUDIO_G2 ((SLuint32) 0x00000001) 2274523f5352Sopenharmony_ci#define SL_AUDIOMODE_REALAUDIO_8 ((SLuint32) 0x00000002) 2275523f5352Sopenharmony_ci#define SL_AUDIOMODE_REALAUDIO_10 ((SLuint32) 0x00000003) 2276523f5352Sopenharmony_ci#define SL_AUDIOMODE_REALAUDIO_SURROUND ((SLuint32) 0x00000004) 2277523f5352Sopenharmony_ci 2278523f5352Sopenharmony_citypedef struct SLAudioCodecDescriptor_ { 2279523f5352Sopenharmony_ci SLuint32 maxChannels; 2280523f5352Sopenharmony_ci SLuint32 minBitsPerSample; 2281523f5352Sopenharmony_ci SLuint32 maxBitsPerSample; 2282523f5352Sopenharmony_ci SLmilliHertz minSampleRate; 2283523f5352Sopenharmony_ci SLmilliHertz maxSampleRate; 2284523f5352Sopenharmony_ci SLboolean isFreqRangeContinuous; 2285523f5352Sopenharmony_ci SLmilliHertz *pSampleRatesSupported; 2286523f5352Sopenharmony_ci SLuint32 numSampleRatesSupported; 2287523f5352Sopenharmony_ci SLuint32 minBitRate; 2288523f5352Sopenharmony_ci SLuint32 maxBitRate; 2289523f5352Sopenharmony_ci SLboolean isBitrateRangeContinuous; 2290523f5352Sopenharmony_ci SLuint32 *pBitratesSupported; 2291523f5352Sopenharmony_ci SLuint32 numBitratesSupported; 2292523f5352Sopenharmony_ci SLuint32 profileSetting; 2293523f5352Sopenharmony_ci SLuint32 modeSetting; 2294523f5352Sopenharmony_ci} SLAudioCodecDescriptor; 2295523f5352Sopenharmony_ci 2296523f5352Sopenharmony_ci/*Structure used to retrieve the profile and level settings supported by an audio encoder */ 2297523f5352Sopenharmony_ci 2298523f5352Sopenharmony_citypedef struct SLAudioCodecProfileMode_ { 2299523f5352Sopenharmony_ci SLuint32 profileSetting; 2300523f5352Sopenharmony_ci SLuint32 modeSetting; 2301523f5352Sopenharmony_ci} SLAudioCodecProfileMode; 2302523f5352Sopenharmony_ci 2303523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_AUDIODECODERCAPABILITIES; 2304523f5352Sopenharmony_ci 2305523f5352Sopenharmony_cistruct SLAudioDecoderCapabilitiesItf_; 2306523f5352Sopenharmony_citypedef const struct SLAudioDecoderCapabilitiesItf_ * const * SLAudioDecoderCapabilitiesItf; 2307523f5352Sopenharmony_ci 2308523f5352Sopenharmony_cistruct SLAudioDecoderCapabilitiesItf_ { 2309523f5352Sopenharmony_ci SLresult (*GetAudioDecoders) ( 2310523f5352Sopenharmony_ci SLAudioDecoderCapabilitiesItf self, 2311523f5352Sopenharmony_ci SLuint32 * pNumDecoders , 2312523f5352Sopenharmony_ci SLuint32 *pDecoderIds 2313523f5352Sopenharmony_ci ); 2314523f5352Sopenharmony_ci SLresult (*GetAudioDecoderCapabilities) ( 2315523f5352Sopenharmony_ci SLAudioDecoderCapabilitiesItf self, 2316523f5352Sopenharmony_ci SLuint32 decoderId, 2317523f5352Sopenharmony_ci SLuint32 *pIndex, 2318523f5352Sopenharmony_ci SLAudioCodecDescriptor *pDescriptor 2319523f5352Sopenharmony_ci ); 2320523f5352Sopenharmony_ci}; 2321523f5352Sopenharmony_ci 2322523f5352Sopenharmony_ci 2323523f5352Sopenharmony_ci 2324523f5352Sopenharmony_ci 2325523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 2326523f5352Sopenharmony_ci/* Audio Encoder Capabilities Interface */ 2327523f5352Sopenharmony_ci/* --------------------------------------------------------------------------*/ 2328523f5352Sopenharmony_ci 2329523f5352Sopenharmony_ci/* Structure used when setting audio encoding parameters */ 2330523f5352Sopenharmony_ci 2331523f5352Sopenharmony_citypedef struct SLAudioEncoderSettings_ { 2332523f5352Sopenharmony_ci SLuint32 encoderId; 2333523f5352Sopenharmony_ci SLuint32 channelsIn; 2334523f5352Sopenharmony_ci SLuint32 channelsOut; 2335523f5352Sopenharmony_ci SLmilliHertz sampleRate; 2336523f5352Sopenharmony_ci SLuint32 bitRate; 2337523f5352Sopenharmony_ci SLuint32 bitsPerSample; 2338523f5352Sopenharmony_ci SLuint32 rateControl; 2339523f5352Sopenharmony_ci SLuint32 profileSetting; 2340523f5352Sopenharmony_ci SLuint32 levelSetting; 2341523f5352Sopenharmony_ci SLuint32 channelMode; 2342523f5352Sopenharmony_ci SLuint32 streamFormat; 2343523f5352Sopenharmony_ci SLuint32 encodeOptions; 2344523f5352Sopenharmony_ci SLuint32 blockAlignment; 2345523f5352Sopenharmony_ci} SLAudioEncoderSettings; 2346523f5352Sopenharmony_ci 2347523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_AUDIOENCODERCAPABILITIES; 2348523f5352Sopenharmony_ci 2349523f5352Sopenharmony_cistruct SLAudioEncoderCapabilitiesItf_; 2350523f5352Sopenharmony_citypedef const struct SLAudioEncoderCapabilitiesItf_ * const * SLAudioEncoderCapabilitiesItf; 2351523f5352Sopenharmony_ci 2352523f5352Sopenharmony_cistruct SLAudioEncoderCapabilitiesItf_ { 2353523f5352Sopenharmony_ci SLresult (*GetAudioEncoders) ( 2354523f5352Sopenharmony_ci SLAudioEncoderCapabilitiesItf self, 2355523f5352Sopenharmony_ci SLuint32 *pNumEncoders , 2356523f5352Sopenharmony_ci SLuint32 *pEncoderIds 2357523f5352Sopenharmony_ci ); 2358523f5352Sopenharmony_ci SLresult (*GetAudioEncoderCapabilities) ( 2359523f5352Sopenharmony_ci SLAudioEncoderCapabilitiesItf self, 2360523f5352Sopenharmony_ci SLuint32 encoderId, 2361523f5352Sopenharmony_ci SLuint32 *pIndex, 2362523f5352Sopenharmony_ci SLAudioCodecDescriptor * pDescriptor 2363523f5352Sopenharmony_ci ); 2364523f5352Sopenharmony_ci}; 2365523f5352Sopenharmony_ci 2366523f5352Sopenharmony_ci 2367523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 2368523f5352Sopenharmony_ci/* Audio Encoder Interface */ 2369523f5352Sopenharmony_ci/* --------------------------------------------------------------------------*/ 2370523f5352Sopenharmony_ci 2371523f5352Sopenharmony_ci 2372523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_AUDIOENCODER; 2373523f5352Sopenharmony_ci 2374523f5352Sopenharmony_cistruct SLAudioEncoderItf_; 2375523f5352Sopenharmony_citypedef const struct SLAudioEncoderItf_ * const * SLAudioEncoderItf; 2376523f5352Sopenharmony_ci 2377523f5352Sopenharmony_cistruct SLAudioEncoderItf_ { 2378523f5352Sopenharmony_ci SLresult (*SetEncoderSettings) ( 2379523f5352Sopenharmony_ci SLAudioEncoderItf self, 2380523f5352Sopenharmony_ci SLAudioEncoderSettings *pSettings 2381523f5352Sopenharmony_ci ); 2382523f5352Sopenharmony_ci SLresult (*GetEncoderSettings) ( 2383523f5352Sopenharmony_ci SLAudioEncoderItf self, 2384523f5352Sopenharmony_ci SLAudioEncoderSettings *pSettings 2385523f5352Sopenharmony_ci ); 2386523f5352Sopenharmony_ci}; 2387523f5352Sopenharmony_ci 2388523f5352Sopenharmony_ci 2389523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 2390523f5352Sopenharmony_ci/* Bass Boost Interface */ 2391523f5352Sopenharmony_ci/* --------------------------------------------------------------------------*/ 2392523f5352Sopenharmony_ci 2393523f5352Sopenharmony_ci 2394523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_BASSBOOST; 2395523f5352Sopenharmony_ci 2396523f5352Sopenharmony_cistruct SLBassBoostItf_; 2397523f5352Sopenharmony_citypedef const struct SLBassBoostItf_ * const * SLBassBoostItf; 2398523f5352Sopenharmony_ci 2399523f5352Sopenharmony_cistruct SLBassBoostItf_ { 2400523f5352Sopenharmony_ci SLresult (*SetEnabled)( 2401523f5352Sopenharmony_ci SLBassBoostItf self, 2402523f5352Sopenharmony_ci SLboolean enabled 2403523f5352Sopenharmony_ci ); 2404523f5352Sopenharmony_ci SLresult (*IsEnabled)( 2405523f5352Sopenharmony_ci SLBassBoostItf self, 2406523f5352Sopenharmony_ci SLboolean *pEnabled 2407523f5352Sopenharmony_ci ); 2408523f5352Sopenharmony_ci SLresult (*SetStrength)( 2409523f5352Sopenharmony_ci SLBassBoostItf self, 2410523f5352Sopenharmony_ci SLpermille strength 2411523f5352Sopenharmony_ci ); 2412523f5352Sopenharmony_ci SLresult (*GetRoundedStrength)( 2413523f5352Sopenharmony_ci SLBassBoostItf self, 2414523f5352Sopenharmony_ci SLpermille *pStrength 2415523f5352Sopenharmony_ci ); 2416523f5352Sopenharmony_ci SLresult (*IsStrengthSupported)( 2417523f5352Sopenharmony_ci SLBassBoostItf self, 2418523f5352Sopenharmony_ci SLboolean *pSupported 2419523f5352Sopenharmony_ci ); 2420523f5352Sopenharmony_ci}; 2421523f5352Sopenharmony_ci 2422523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 2423523f5352Sopenharmony_ci/* Pitch Interface */ 2424523f5352Sopenharmony_ci/* --------------------------------------------------------------------------*/ 2425523f5352Sopenharmony_ci 2426523f5352Sopenharmony_ci 2427523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_PITCH; 2428523f5352Sopenharmony_ci 2429523f5352Sopenharmony_cistruct SLPitchItf_; 2430523f5352Sopenharmony_citypedef const struct SLPitchItf_ * const * SLPitchItf; 2431523f5352Sopenharmony_ci 2432523f5352Sopenharmony_cistruct SLPitchItf_ { 2433523f5352Sopenharmony_ci SLresult (*SetPitch) ( 2434523f5352Sopenharmony_ci SLPitchItf self, 2435523f5352Sopenharmony_ci SLpermille pitch 2436523f5352Sopenharmony_ci ); 2437523f5352Sopenharmony_ci SLresult (*GetPitch) ( 2438523f5352Sopenharmony_ci SLPitchItf self, 2439523f5352Sopenharmony_ci SLpermille *pPitch 2440523f5352Sopenharmony_ci ); 2441523f5352Sopenharmony_ci SLresult (*GetPitchCapabilities) ( 2442523f5352Sopenharmony_ci SLPitchItf self, 2443523f5352Sopenharmony_ci SLpermille *pMinPitch, 2444523f5352Sopenharmony_ci SLpermille *pMaxPitch 2445523f5352Sopenharmony_ci ); 2446523f5352Sopenharmony_ci}; 2447523f5352Sopenharmony_ci 2448523f5352Sopenharmony_ci 2449523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 2450523f5352Sopenharmony_ci/* Rate Pitch Interface */ 2451523f5352Sopenharmony_ci/* RatePitchItf is an interface for controlling the rate a sound is played */ 2452523f5352Sopenharmony_ci/* back. A change in rate will cause a change in pitch. */ 2453523f5352Sopenharmony_ci/* --------------------------------------------------------------------------*/ 2454523f5352Sopenharmony_ci 2455523f5352Sopenharmony_ci 2456523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_RATEPITCH; 2457523f5352Sopenharmony_ci 2458523f5352Sopenharmony_cistruct SLRatePitchItf_; 2459523f5352Sopenharmony_citypedef const struct SLRatePitchItf_ * const * SLRatePitchItf; 2460523f5352Sopenharmony_ci 2461523f5352Sopenharmony_cistruct SLRatePitchItf_ { 2462523f5352Sopenharmony_ci SLresult (*SetRate) ( 2463523f5352Sopenharmony_ci SLRatePitchItf self, 2464523f5352Sopenharmony_ci SLpermille rate 2465523f5352Sopenharmony_ci ); 2466523f5352Sopenharmony_ci SLresult (*GetRate) ( 2467523f5352Sopenharmony_ci SLRatePitchItf self, 2468523f5352Sopenharmony_ci SLpermille *pRate 2469523f5352Sopenharmony_ci ); 2470523f5352Sopenharmony_ci SLresult (*GetRatePitchCapabilities) ( 2471523f5352Sopenharmony_ci SLRatePitchItf self, 2472523f5352Sopenharmony_ci SLpermille *pMinRate, 2473523f5352Sopenharmony_ci SLpermille *pMaxRate 2474523f5352Sopenharmony_ci ); 2475523f5352Sopenharmony_ci}; 2476523f5352Sopenharmony_ci 2477523f5352Sopenharmony_ci 2478523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 2479523f5352Sopenharmony_ci/* Virtualizer Interface */ 2480523f5352Sopenharmony_ci/* --------------------------------------------------------------------------*/ 2481523f5352Sopenharmony_ci 2482523f5352Sopenharmony_ci 2483523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_VIRTUALIZER; 2484523f5352Sopenharmony_ci 2485523f5352Sopenharmony_cistruct SLVirtualizerItf_; 2486523f5352Sopenharmony_citypedef const struct SLVirtualizerItf_ * const * SLVirtualizerItf; 2487523f5352Sopenharmony_ci 2488523f5352Sopenharmony_cistruct SLVirtualizerItf_ { 2489523f5352Sopenharmony_ci SLresult (*SetEnabled)( 2490523f5352Sopenharmony_ci SLVirtualizerItf self, 2491523f5352Sopenharmony_ci SLboolean enabled 2492523f5352Sopenharmony_ci ); 2493523f5352Sopenharmony_ci SLresult (*IsEnabled)( 2494523f5352Sopenharmony_ci SLVirtualizerItf self, 2495523f5352Sopenharmony_ci SLboolean *pEnabled 2496523f5352Sopenharmony_ci ); 2497523f5352Sopenharmony_ci SLresult (*SetStrength)( 2498523f5352Sopenharmony_ci SLVirtualizerItf self, 2499523f5352Sopenharmony_ci SLpermille strength 2500523f5352Sopenharmony_ci ); 2501523f5352Sopenharmony_ci SLresult (*GetRoundedStrength)( 2502523f5352Sopenharmony_ci SLVirtualizerItf self, 2503523f5352Sopenharmony_ci SLpermille *pStrength 2504523f5352Sopenharmony_ci ); 2505523f5352Sopenharmony_ci SLresult (*IsStrengthSupported)( 2506523f5352Sopenharmony_ci SLVirtualizerItf self, 2507523f5352Sopenharmony_ci SLboolean *pSupported 2508523f5352Sopenharmony_ci ); 2509523f5352Sopenharmony_ci}; 2510523f5352Sopenharmony_ci 2511523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 2512523f5352Sopenharmony_ci/* Visualization Interface */ 2513523f5352Sopenharmony_ci/* --------------------------------------------------------------------------*/ 2514523f5352Sopenharmony_ci 2515523f5352Sopenharmony_ci 2516523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_VISUALIZATION; 2517523f5352Sopenharmony_ci 2518523f5352Sopenharmony_cistruct SLVisualizationItf_; 2519523f5352Sopenharmony_citypedef const struct SLVisualizationItf_ * const * SLVisualizationItf; 2520523f5352Sopenharmony_ci 2521523f5352Sopenharmony_citypedef void (SLAPIENTRY *slVisualizationCallback) ( 2522523f5352Sopenharmony_ci void *pContext, 2523523f5352Sopenharmony_ci const SLuint8 waveform[], 2524523f5352Sopenharmony_ci const SLuint8 fft[], 2525523f5352Sopenharmony_ci SLmilliHertz samplerate 2526523f5352Sopenharmony_ci); 2527523f5352Sopenharmony_ci 2528523f5352Sopenharmony_cistruct SLVisualizationItf_{ 2529523f5352Sopenharmony_ci SLresult (*RegisterVisualizationCallback)( 2530523f5352Sopenharmony_ci SLVisualizationItf self, 2531523f5352Sopenharmony_ci slVisualizationCallback callback, 2532523f5352Sopenharmony_ci void *pContext, 2533523f5352Sopenharmony_ci SLmilliHertz rate 2534523f5352Sopenharmony_ci ); 2535523f5352Sopenharmony_ci SLresult (*GetMaxRate)( 2536523f5352Sopenharmony_ci SLVisualizationItf self, 2537523f5352Sopenharmony_ci SLmilliHertz* pRate 2538523f5352Sopenharmony_ci ); 2539523f5352Sopenharmony_ci}; 2540523f5352Sopenharmony_ci 2541523f5352Sopenharmony_ci 2542523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 2543523f5352Sopenharmony_ci/* Engine Interface */ 2544523f5352Sopenharmony_ci/* --------------------------------------------------------------------------*/ 2545523f5352Sopenharmony_ci 2546523f5352Sopenharmony_ci 2547523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_ENGINE; 2548523f5352Sopenharmony_ci 2549523f5352Sopenharmony_cistruct SLEngineItf_; 2550523f5352Sopenharmony_citypedef const struct SLEngineItf_ * const * SLEngineItf; 2551523f5352Sopenharmony_ci 2552523f5352Sopenharmony_ci 2553523f5352Sopenharmony_cistruct SLEngineItf_ { 2554523f5352Sopenharmony_ci 2555523f5352Sopenharmony_ci SLresult (*CreateLEDDevice) ( 2556523f5352Sopenharmony_ci SLEngineItf self, 2557523f5352Sopenharmony_ci SLObjectItf * pDevice, 2558523f5352Sopenharmony_ci SLuint32 deviceID, 2559523f5352Sopenharmony_ci SLuint32 numInterfaces, 2560523f5352Sopenharmony_ci const SLInterfaceID * pInterfaceIds, 2561523f5352Sopenharmony_ci const SLboolean * pInterfaceRequired 2562523f5352Sopenharmony_ci ); 2563523f5352Sopenharmony_ci SLresult (*CreateVibraDevice) ( 2564523f5352Sopenharmony_ci SLEngineItf self, 2565523f5352Sopenharmony_ci SLObjectItf * pDevice, 2566523f5352Sopenharmony_ci SLuint32 deviceID, 2567523f5352Sopenharmony_ci SLuint32 numInterfaces, 2568523f5352Sopenharmony_ci const SLInterfaceID * pInterfaceIds, 2569523f5352Sopenharmony_ci const SLboolean * pInterfaceRequired 2570523f5352Sopenharmony_ci ); 2571523f5352Sopenharmony_ci SLresult (*CreateAudioPlayer) ( 2572523f5352Sopenharmony_ci SLEngineItf self, 2573523f5352Sopenharmony_ci SLObjectItf * pPlayer, 2574523f5352Sopenharmony_ci SLDataSource *pAudioSrc, 2575523f5352Sopenharmony_ci SLDataSink *pAudioSnk, 2576523f5352Sopenharmony_ci SLuint32 numInterfaces, 2577523f5352Sopenharmony_ci const SLInterfaceID * pInterfaceIds, 2578523f5352Sopenharmony_ci const SLboolean * pInterfaceRequired 2579523f5352Sopenharmony_ci ); 2580523f5352Sopenharmony_ci SLresult (*CreateAudioRecorder) ( 2581523f5352Sopenharmony_ci SLEngineItf self, 2582523f5352Sopenharmony_ci SLObjectItf * pRecorder, 2583523f5352Sopenharmony_ci SLDataSource *pAudioSrc, 2584523f5352Sopenharmony_ci SLDataSink *pAudioSnk, 2585523f5352Sopenharmony_ci SLuint32 numInterfaces, 2586523f5352Sopenharmony_ci const SLInterfaceID * pInterfaceIds, 2587523f5352Sopenharmony_ci const SLboolean * pInterfaceRequired 2588523f5352Sopenharmony_ci ); 2589523f5352Sopenharmony_ci SLresult (*CreateMidiPlayer) ( 2590523f5352Sopenharmony_ci SLEngineItf self, 2591523f5352Sopenharmony_ci SLObjectItf * pPlayer, 2592523f5352Sopenharmony_ci SLDataSource *pMIDISrc, 2593523f5352Sopenharmony_ci SLDataSource *pBankSrc, 2594523f5352Sopenharmony_ci SLDataSink *pAudioOutput, 2595523f5352Sopenharmony_ci SLDataSink *pVibra, 2596523f5352Sopenharmony_ci SLDataSink *pLEDArray, 2597523f5352Sopenharmony_ci SLuint32 numInterfaces, 2598523f5352Sopenharmony_ci const SLInterfaceID * pInterfaceIds, 2599523f5352Sopenharmony_ci const SLboolean * pInterfaceRequired 2600523f5352Sopenharmony_ci ); 2601523f5352Sopenharmony_ci SLresult (*CreateListener) ( 2602523f5352Sopenharmony_ci SLEngineItf self, 2603523f5352Sopenharmony_ci SLObjectItf * pListener, 2604523f5352Sopenharmony_ci SLuint32 numInterfaces, 2605523f5352Sopenharmony_ci const SLInterfaceID * pInterfaceIds, 2606523f5352Sopenharmony_ci const SLboolean * pInterfaceRequired 2607523f5352Sopenharmony_ci ); 2608523f5352Sopenharmony_ci SLresult (*Create3DGroup) ( 2609523f5352Sopenharmony_ci SLEngineItf self, 2610523f5352Sopenharmony_ci SLObjectItf * pGroup, 2611523f5352Sopenharmony_ci SLuint32 numInterfaces, 2612523f5352Sopenharmony_ci const SLInterfaceID * pInterfaceIds, 2613523f5352Sopenharmony_ci const SLboolean * pInterfaceRequired 2614523f5352Sopenharmony_ci ); 2615523f5352Sopenharmony_ci SLresult (*CreateOutputMix) ( 2616523f5352Sopenharmony_ci SLEngineItf self, 2617523f5352Sopenharmony_ci SLObjectItf * pMix, 2618523f5352Sopenharmony_ci SLuint32 numInterfaces, 2619523f5352Sopenharmony_ci const SLInterfaceID * pInterfaceIds, 2620523f5352Sopenharmony_ci const SLboolean * pInterfaceRequired 2621523f5352Sopenharmony_ci ); 2622523f5352Sopenharmony_ci SLresult (*CreateMetadataExtractor) ( 2623523f5352Sopenharmony_ci SLEngineItf self, 2624523f5352Sopenharmony_ci SLObjectItf * pMetadataExtractor, 2625523f5352Sopenharmony_ci SLDataSource * pDataSource, 2626523f5352Sopenharmony_ci SLuint32 numInterfaces, 2627523f5352Sopenharmony_ci const SLInterfaceID * pInterfaceIds, 2628523f5352Sopenharmony_ci const SLboolean * pInterfaceRequired 2629523f5352Sopenharmony_ci ); 2630523f5352Sopenharmony_ci SLresult (*CreateExtensionObject) ( 2631523f5352Sopenharmony_ci SLEngineItf self, 2632523f5352Sopenharmony_ci SLObjectItf * pObject, 2633523f5352Sopenharmony_ci void * pParameters, 2634523f5352Sopenharmony_ci SLuint32 objectID, 2635523f5352Sopenharmony_ci SLuint32 numInterfaces, 2636523f5352Sopenharmony_ci const SLInterfaceID * pInterfaceIds, 2637523f5352Sopenharmony_ci const SLboolean * pInterfaceRequired 2638523f5352Sopenharmony_ci ); 2639523f5352Sopenharmony_ci SLresult (*QueryNumSupportedInterfaces) ( 2640523f5352Sopenharmony_ci SLEngineItf self, 2641523f5352Sopenharmony_ci SLuint32 objectID, 2642523f5352Sopenharmony_ci SLuint32 * pNumSupportedInterfaces 2643523f5352Sopenharmony_ci ); 2644523f5352Sopenharmony_ci SLresult (*QuerySupportedInterfaces) ( 2645523f5352Sopenharmony_ci SLEngineItf self, 2646523f5352Sopenharmony_ci SLuint32 objectID, 2647523f5352Sopenharmony_ci SLuint32 index, 2648523f5352Sopenharmony_ci SLInterfaceID * pInterfaceId 2649523f5352Sopenharmony_ci ); 2650523f5352Sopenharmony_ci SLresult (*QueryNumSupportedExtensions) ( 2651523f5352Sopenharmony_ci SLEngineItf self, 2652523f5352Sopenharmony_ci SLuint32 * pNumExtensions 2653523f5352Sopenharmony_ci ); 2654523f5352Sopenharmony_ci SLresult (*QuerySupportedExtension) ( 2655523f5352Sopenharmony_ci SLEngineItf self, 2656523f5352Sopenharmony_ci SLuint32 index, 2657523f5352Sopenharmony_ci SLchar * pExtensionName, 2658523f5352Sopenharmony_ci SLint16 * pNameLength 2659523f5352Sopenharmony_ci ); 2660523f5352Sopenharmony_ci SLresult (*IsExtensionSupported) ( 2661523f5352Sopenharmony_ci SLEngineItf self, 2662523f5352Sopenharmony_ci const SLchar * pExtensionName, 2663523f5352Sopenharmony_ci SLboolean * pSupported 2664523f5352Sopenharmony_ci ); 2665523f5352Sopenharmony_ci}; 2666523f5352Sopenharmony_ci 2667523f5352Sopenharmony_ci 2668523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 2669523f5352Sopenharmony_ci/* Engine Capabilities Interface */ 2670523f5352Sopenharmony_ci/* --------------------------------------------------------------------------*/ 2671523f5352Sopenharmony_ci 2672523f5352Sopenharmony_ci 2673523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_ENGINECAPABILITIES; 2674523f5352Sopenharmony_ci 2675523f5352Sopenharmony_cistruct SLEngineCapabilitiesItf_; 2676523f5352Sopenharmony_citypedef const struct SLEngineCapabilitiesItf_ * const * SLEngineCapabilitiesItf; 2677523f5352Sopenharmony_ci 2678523f5352Sopenharmony_cistruct SLEngineCapabilitiesItf_ { 2679523f5352Sopenharmony_ci SLresult (*QuerySupportedProfiles) ( 2680523f5352Sopenharmony_ci SLEngineCapabilitiesItf self, 2681523f5352Sopenharmony_ci SLuint16 *pProfilesSupported 2682523f5352Sopenharmony_ci ); 2683523f5352Sopenharmony_ci SLresult (*QueryAvailableVoices) ( 2684523f5352Sopenharmony_ci SLEngineCapabilitiesItf self, 2685523f5352Sopenharmony_ci SLuint16 voiceType, 2686523f5352Sopenharmony_ci SLint16 *pNumMaxVoices, 2687523f5352Sopenharmony_ci SLboolean *pIsAbsoluteMax, 2688523f5352Sopenharmony_ci SLint16 *pNumFreeVoices 2689523f5352Sopenharmony_ci ); 2690523f5352Sopenharmony_ci SLresult (*QueryNumberOfMIDISynthesizers) ( 2691523f5352Sopenharmony_ci SLEngineCapabilitiesItf self, 2692523f5352Sopenharmony_ci SLint16 *pNumMIDIsynthesizers 2693523f5352Sopenharmony_ci ); 2694523f5352Sopenharmony_ci SLresult (*QueryAPIVersion) ( 2695523f5352Sopenharmony_ci SLEngineCapabilitiesItf self, 2696523f5352Sopenharmony_ci SLint16 *pMajor, 2697523f5352Sopenharmony_ci SLint16 *pMinor, 2698523f5352Sopenharmony_ci SLint16 *pStep 2699523f5352Sopenharmony_ci ); 2700523f5352Sopenharmony_ci SLresult (*QueryLEDCapabilities) ( 2701523f5352Sopenharmony_ci SLEngineCapabilitiesItf self, 2702523f5352Sopenharmony_ci SLuint32 *pIndex, 2703523f5352Sopenharmony_ci SLuint32 *pLEDDeviceID, 2704523f5352Sopenharmony_ci SLLEDDescriptor *pDescriptor 2705523f5352Sopenharmony_ci ); 2706523f5352Sopenharmony_ci SLresult (*QueryVibraCapabilities) ( 2707523f5352Sopenharmony_ci SLEngineCapabilitiesItf self, 2708523f5352Sopenharmony_ci SLuint32 *pIndex, 2709523f5352Sopenharmony_ci SLuint32 *pVibraDeviceID, 2710523f5352Sopenharmony_ci SLVibraDescriptor *pDescriptor 2711523f5352Sopenharmony_ci ); 2712523f5352Sopenharmony_ci SLresult (*IsThreadSafe) ( 2713523f5352Sopenharmony_ci SLEngineCapabilitiesItf self, 2714523f5352Sopenharmony_ci SLboolean *pIsThreadSafe 2715523f5352Sopenharmony_ci ); 2716523f5352Sopenharmony_ci}; 2717523f5352Sopenharmony_ci 2718523f5352Sopenharmony_ci/*---------------------------------------------------------------------------*/ 2719523f5352Sopenharmony_ci/* Thread Sync Interface */ 2720523f5352Sopenharmony_ci/* --------------------------------------------------------------------------*/ 2721523f5352Sopenharmony_ci 2722523f5352Sopenharmony_ci 2723523f5352Sopenharmony_ciextern const SLInterfaceID SL_IID_THREADSYNC; 2724523f5352Sopenharmony_ci 2725523f5352Sopenharmony_cistruct SLThreadSyncItf_; 2726523f5352Sopenharmony_citypedef const struct SLThreadSyncItf_ * const * SLThreadSyncItf; 2727523f5352Sopenharmony_ci 2728523f5352Sopenharmony_ci 2729523f5352Sopenharmony_cistruct SLThreadSyncItf_ { 2730523f5352Sopenharmony_ci SLresult (*EnterCriticalSection) ( 2731523f5352Sopenharmony_ci SLThreadSyncItf self 2732523f5352Sopenharmony_ci ); 2733523f5352Sopenharmony_ci SLresult (*ExitCriticalSection) ( 2734523f5352Sopenharmony_ci SLThreadSyncItf self 2735523f5352Sopenharmony_ci ); 2736523f5352Sopenharmony_ci}; 2737523f5352Sopenharmony_ci 2738523f5352Sopenharmony_ci 2739523f5352Sopenharmony_ci/*****************************************************************************/ 2740523f5352Sopenharmony_ci/* SL engine constructor */ 2741523f5352Sopenharmony_ci/*****************************************************************************/ 2742523f5352Sopenharmony_ci 2743523f5352Sopenharmony_ci#define SL_ENGINEOPTION_THREADSAFE ((SLuint32) 0x00000001) 2744523f5352Sopenharmony_ci#define SL_ENGINEOPTION_LOSSOFCONTROL ((SLuint32) 0x00000002) 2745523f5352Sopenharmony_ci 2746523f5352Sopenharmony_citypedef struct SLEngineOption_ { 2747523f5352Sopenharmony_ci SLuint32 feature; 2748523f5352Sopenharmony_ci SLuint32 data; 2749523f5352Sopenharmony_ci} SLEngineOption; 2750523f5352Sopenharmony_ci 2751523f5352Sopenharmony_ci 2752523f5352Sopenharmony_ciSLresult SLAPIENTRY slCreateEngine( 2753523f5352Sopenharmony_ci SLObjectItf *pEngine, 2754523f5352Sopenharmony_ci SLuint32 numOptions, 2755523f5352Sopenharmony_ci const SLEngineOption *pEngineOptions, 2756523f5352Sopenharmony_ci SLuint32 numInterfaces, 2757523f5352Sopenharmony_ci const SLInterfaceID *pInterfaceIds, 2758523f5352Sopenharmony_ci const SLboolean * pInterfaceRequired 2759523f5352Sopenharmony_ci); 2760523f5352Sopenharmony_ci 2761523f5352Sopenharmony_ciSLresult SLAPIENTRY slQueryNumSupportedEngineInterfaces( 2762523f5352Sopenharmony_ci SLuint32 * pNumSupportedInterfaces 2763523f5352Sopenharmony_ci); 2764523f5352Sopenharmony_ci 2765523f5352Sopenharmony_ciSLresult SLAPIENTRY slQuerySupportedEngineInterfaces( 2766523f5352Sopenharmony_ci SLuint32 index, 2767523f5352Sopenharmony_ci SLInterfaceID * pInterfaceId 2768523f5352Sopenharmony_ci); 2769523f5352Sopenharmony_ci 2770523f5352Sopenharmony_ci#ifdef __cplusplus 2771523f5352Sopenharmony_ci} /* extern "C" */ 2772523f5352Sopenharmony_ci#endif 2773523f5352Sopenharmony_ci 2774523f5352Sopenharmony_ci#endif /* OPENSL_ES_H_ */ 2775