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