17777dab0Sopenharmony_ci/* 27777dab0Sopenharmony_ci * Copyright (c) 2007-2009 The Khronos Group Inc. 37777dab0Sopenharmony_ci * 47777dab0Sopenharmony_ci * Permission is hereby granted, free of charge, to any person obtaining a copy of 57777dab0Sopenharmony_ci * this software and /or associated documentation files (the "Materials "), to 67777dab0Sopenharmony_ci * deal in the Materials without restriction, including without limitation the 77777dab0Sopenharmony_ci * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 87777dab0Sopenharmony_ci * sell copies of the Materials, and to permit persons to whom the Materials are 97777dab0Sopenharmony_ci * furnished to do so, subject to 107777dab0Sopenharmony_ci * the following conditions: 117777dab0Sopenharmony_ci * 127777dab0Sopenharmony_ci * The above copyright notice and this permission notice shall be included 137777dab0Sopenharmony_ci * in all copies or substantial portions of the Materials. 147777dab0Sopenharmony_ci * 157777dab0Sopenharmony_ci * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 167777dab0Sopenharmony_ci * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 177777dab0Sopenharmony_ci * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 187777dab0Sopenharmony_ci * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 197777dab0Sopenharmony_ci * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 207777dab0Sopenharmony_ci * OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS IN THE 217777dab0Sopenharmony_ci * MATERIALS. 227777dab0Sopenharmony_ci * 237777dab0Sopenharmony_ci * OpenSLES.h - OpenSL ES version 1.0.1 247777dab0Sopenharmony_ci * 257777dab0Sopenharmony_ci */ 267777dab0Sopenharmony_ci 277777dab0Sopenharmony_ci/****************************************************************************/ 287777dab0Sopenharmony_ci/* NOTE: This file is a standard OpenSL ES header file and should not be */ 297777dab0Sopenharmony_ci/* modified in any way. */ 307777dab0Sopenharmony_ci/****************************************************************************/ 317777dab0Sopenharmony_ci 327777dab0Sopenharmony_ci#ifndef OPENSL_ES_H_ 337777dab0Sopenharmony_ci#define OPENSL_ES_H_ 347777dab0Sopenharmony_ci 357777dab0Sopenharmony_ci#ifdef __cplusplus 367777dab0Sopenharmony_ciextern "C" { 377777dab0Sopenharmony_ci#endif 387777dab0Sopenharmony_ci 397777dab0Sopenharmony_ci#include "OpenSLES_Platform.h" 407777dab0Sopenharmony_ci 417777dab0Sopenharmony_ci 427777dab0Sopenharmony_ci/*****************************************************************************/ 437777dab0Sopenharmony_ci/* Common types, structures, and defines */ 447777dab0Sopenharmony_ci/*****************************************************************************/ 457777dab0Sopenharmony_ci 467777dab0Sopenharmony_ci#ifndef _KHRONOS_KEYS_ 477777dab0Sopenharmony_ci#define _KHRONOS_KEYS_ 487777dab0Sopenharmony_ci 497777dab0Sopenharmony_ci#define KHRONOS_TITLE "KhronosTitle" 507777dab0Sopenharmony_ci#define KHRONOS_ALBUM "KhronosAlbum" 517777dab0Sopenharmony_ci#define KHRONOS_TRACK_NUMBER "KhronosTrackNumber" 527777dab0Sopenharmony_ci#define KHRONOS_ARTIST "KhronosArtist" 537777dab0Sopenharmony_ci#define KHRONOS_GENRE "KhronosGenre" 547777dab0Sopenharmony_ci#define KHRONOS_YEAR "KhronosYear" 557777dab0Sopenharmony_ci#define KHRONOS_COMMENT "KhronosComment" 567777dab0Sopenharmony_ci#define KHRONOS_ARTIST_URL "KhronosArtistURL" 577777dab0Sopenharmony_ci#define KHRONOS_CONTENT_URL "KhronosContentURL" 587777dab0Sopenharmony_ci#define KHRONOS_RATING "KhronosRating" 597777dab0Sopenharmony_ci#define KHRONOS_ALBUM_ART "KhronosAlbumArt" 607777dab0Sopenharmony_ci#define KHRONOS_COPYRIGHT "KhronosCopyright" 617777dab0Sopenharmony_ci 627777dab0Sopenharmony_ci#endif 637777dab0Sopenharmony_ci 647777dab0Sopenharmony_ci 657777dab0Sopenharmony_ci/* remap common types to SL types for clarity */ 667777dab0Sopenharmony_citypedef sl_int8_t SLint8; /* 8 bit signed integer */ 677777dab0Sopenharmony_citypedef sl_uint8_t SLuint8; /* 8 bit unsigned integer */ 687777dab0Sopenharmony_citypedef sl_int16_t SLint16; /* 16 bit signed integer */ 697777dab0Sopenharmony_citypedef sl_uint16_t SLuint16; /* 16 bit unsigned integer */ 707777dab0Sopenharmony_citypedef sl_int32_t SLint32; /* 32 bit signed integer */ 717777dab0Sopenharmony_citypedef sl_uint32_t SLuint32; /* 32 bit unsigned integer */ 727777dab0Sopenharmony_ci 737777dab0Sopenharmony_citypedef SLuint32 SLboolean; 747777dab0Sopenharmony_ci#define SL_BOOLEAN_FALSE ((SLboolean) 0x00000000) 757777dab0Sopenharmony_ci#define SL_BOOLEAN_TRUE ((SLboolean) 0x00000001) 767777dab0Sopenharmony_ci 777777dab0Sopenharmony_citypedef SLuint8 SLchar; /* UTF-8 is to be used */ 787777dab0Sopenharmony_citypedef SLint16 SLmillibel; 797777dab0Sopenharmony_citypedef SLuint32 SLmillisecond; 807777dab0Sopenharmony_citypedef SLuint32 SLmilliHertz; 817777dab0Sopenharmony_citypedef SLint32 SLmillimeter; 827777dab0Sopenharmony_citypedef SLint32 SLmillidegree; 837777dab0Sopenharmony_citypedef SLint16 SLpermille; 847777dab0Sopenharmony_citypedef SLuint32 SLmicrosecond; 857777dab0Sopenharmony_citypedef SLuint32 SLresult; 867777dab0Sopenharmony_ci 877777dab0Sopenharmony_ci#define SL_MILLIBEL_MAX ((SLmillibel) 0x7FFF) 887777dab0Sopenharmony_ci#define SL_MILLIBEL_MIN ((SLmillibel) (-SL_MILLIBEL_MAX-1)) 897777dab0Sopenharmony_ci 907777dab0Sopenharmony_ci#define SL_MILLIHERTZ_MAX ((SLmilliHertz) 0xFFFFFFFF) 917777dab0Sopenharmony_ci#define SL_MILLIMETER_MAX ((SLmillimeter) 0x7FFFFFFF) 927777dab0Sopenharmony_ci 937777dab0Sopenharmony_ci/** Interface ID defined as a UUID */ 947777dab0Sopenharmony_citypedef const struct SLInterfaceID_ { 957777dab0Sopenharmony_ci SLuint32 time_low; 967777dab0Sopenharmony_ci SLuint16 time_mid; 977777dab0Sopenharmony_ci SLuint16 time_hi_and_version; 987777dab0Sopenharmony_ci SLuint16 clock_seq; 997777dab0Sopenharmony_ci SLuint8 node[6]; 1007777dab0Sopenharmony_ci} * SLInterfaceID; 1017777dab0Sopenharmony_ci 1027777dab0Sopenharmony_ci/* Forward declaration for the object interface */ 1037777dab0Sopenharmony_cistruct SLObjectItf_; 1047777dab0Sopenharmony_ci 1057777dab0Sopenharmony_citypedef const struct SLObjectItf_ * const * SLObjectItf; 1067777dab0Sopenharmony_ci 1077777dab0Sopenharmony_ci/* Objects ID's */ 1087777dab0Sopenharmony_ci 1097777dab0Sopenharmony_ci#define SL_OBJECTID_ENGINE ((SLuint32) 0x00001001) 1107777dab0Sopenharmony_ci#define SL_OBJECTID_LEDDEVICE ((SLuint32) 0x00001002) 1117777dab0Sopenharmony_ci#define SL_OBJECTID_VIBRADEVICE ((SLuint32) 0x00001003) 1127777dab0Sopenharmony_ci#define SL_OBJECTID_AUDIOPLAYER ((SLuint32) 0x00001004) 1137777dab0Sopenharmony_ci#define SL_OBJECTID_AUDIORECORDER ((SLuint32) 0x00001005) 1147777dab0Sopenharmony_ci#define SL_OBJECTID_MIDIPLAYER ((SLuint32) 0x00001006) 1157777dab0Sopenharmony_ci#define SL_OBJECTID_LISTENER ((SLuint32) 0x00001007) 1167777dab0Sopenharmony_ci#define SL_OBJECTID_3DGROUP ((SLuint32) 0x00001008) 1177777dab0Sopenharmony_ci#define SL_OBJECTID_OUTPUTMIX ((SLuint32) 0x00001009) 1187777dab0Sopenharmony_ci#define SL_OBJECTID_METADATAEXTRACTOR ((SLuint32) 0x0000100A) 1197777dab0Sopenharmony_ci 1207777dab0Sopenharmony_ci 1217777dab0Sopenharmony_ci/* SL Profiles */ 1227777dab0Sopenharmony_ci 1237777dab0Sopenharmony_ci#define SL_PROFILES_PHONE ((SLuint16) 0x0001) 1247777dab0Sopenharmony_ci#define SL_PROFILES_MUSIC ((SLuint16) 0x0002) 1257777dab0Sopenharmony_ci#define SL_PROFILES_GAME ((SLuint16) 0x0004) 1267777dab0Sopenharmony_ci 1277777dab0Sopenharmony_ci/* Types of voices supported by the system */ 1287777dab0Sopenharmony_ci 1297777dab0Sopenharmony_ci#define SL_VOICETYPE_2D_AUDIO ((SLuint16) 0x0001) 1307777dab0Sopenharmony_ci#define SL_VOICETYPE_MIDI ((SLuint16) 0x0002) 1317777dab0Sopenharmony_ci#define SL_VOICETYPE_3D_AUDIO ((SLuint16) 0x0004) 1327777dab0Sopenharmony_ci#define SL_VOICETYPE_3D_MIDIOUTPUT ((SLuint16) 0x0008) 1337777dab0Sopenharmony_ci 1347777dab0Sopenharmony_ci/* Convenient macros representing various different priority levels, for use with the SetPriority method */ 1357777dab0Sopenharmony_ci 1367777dab0Sopenharmony_ci#define SL_PRIORITY_LOWEST ((SLint32) (-0x7FFFFFFF-1)) 1377777dab0Sopenharmony_ci#define SL_PRIORITY_VERYLOW ((SLint32) -0x60000000) 1387777dab0Sopenharmony_ci#define SL_PRIORITY_LOW ((SLint32) -0x40000000) 1397777dab0Sopenharmony_ci#define SL_PRIORITY_BELOWNORMAL ((SLint32) -0x20000000) 1407777dab0Sopenharmony_ci#define SL_PRIORITY_NORMAL ((SLint32) 0x00000000) 1417777dab0Sopenharmony_ci#define SL_PRIORITY_ABOVENORMAL ((SLint32) 0x20000000) 1427777dab0Sopenharmony_ci#define SL_PRIORITY_HIGH ((SLint32) 0x40000000) 1437777dab0Sopenharmony_ci#define SL_PRIORITY_VERYHIGH ((SLint32) 0x60000000) 1447777dab0Sopenharmony_ci#define SL_PRIORITY_HIGHEST ((SLint32) 0x7FFFFFFF) 1457777dab0Sopenharmony_ci 1467777dab0Sopenharmony_ci 1477777dab0Sopenharmony_ci/** These macros list the various sample formats that are possible on audio input and output devices. */ 1487777dab0Sopenharmony_ci 1497777dab0Sopenharmony_ci#define SL_PCMSAMPLEFORMAT_FIXED_8 ((SLuint16) 0x0008) 1507777dab0Sopenharmony_ci#define SL_PCMSAMPLEFORMAT_FIXED_16 ((SLuint16) 0x0010) 1517777dab0Sopenharmony_ci#define SL_PCMSAMPLEFORMAT_FIXED_20 ((SLuint16) 0x0014) 1527777dab0Sopenharmony_ci#define SL_PCMSAMPLEFORMAT_FIXED_24 ((SLuint16) 0x0018) 1537777dab0Sopenharmony_ci#define SL_PCMSAMPLEFORMAT_FIXED_28 ((SLuint16) 0x001C) 1547777dab0Sopenharmony_ci#define SL_PCMSAMPLEFORMAT_FIXED_32 ((SLuint16) 0x0020) 1557777dab0Sopenharmony_ci 1567777dab0Sopenharmony_ci 1577777dab0Sopenharmony_ci/** These macros specify the commonly used sampling rates (in milliHertz) supported by most audio I/O devices. */ 1587777dab0Sopenharmony_ci 1597777dab0Sopenharmony_ci#define SL_SAMPLINGRATE_8 ((SLuint32) 8000000) 1607777dab0Sopenharmony_ci#define SL_SAMPLINGRATE_11_025 ((SLuint32) 11025000) 1617777dab0Sopenharmony_ci#define SL_SAMPLINGRATE_12 ((SLuint32) 12000000) 1627777dab0Sopenharmony_ci#define SL_SAMPLINGRATE_16 ((SLuint32) 16000000) 1637777dab0Sopenharmony_ci#define SL_SAMPLINGRATE_22_05 ((SLuint32) 22050000) 1647777dab0Sopenharmony_ci#define SL_SAMPLINGRATE_24 ((SLuint32) 24000000) 1657777dab0Sopenharmony_ci#define SL_SAMPLINGRATE_32 ((SLuint32) 32000000) 1667777dab0Sopenharmony_ci#define SL_SAMPLINGRATE_44_1 ((SLuint32) 44100000) 1677777dab0Sopenharmony_ci#define SL_SAMPLINGRATE_48 ((SLuint32) 48000000) 1687777dab0Sopenharmony_ci#define SL_SAMPLINGRATE_64 ((SLuint32) 64000000) 1697777dab0Sopenharmony_ci#define SL_SAMPLINGRATE_88_2 ((SLuint32) 88200000) 1707777dab0Sopenharmony_ci#define SL_SAMPLINGRATE_96 ((SLuint32) 96000000) 1717777dab0Sopenharmony_ci#define SL_SAMPLINGRATE_192 ((SLuint32) 192000000) 1727777dab0Sopenharmony_ci 1737777dab0Sopenharmony_ci#define SL_SPEAKER_FRONT_LEFT ((SLuint32) 0x00000001) 1747777dab0Sopenharmony_ci#define SL_SPEAKER_FRONT_RIGHT ((SLuint32) 0x00000002) 1757777dab0Sopenharmony_ci#define SL_SPEAKER_FRONT_CENTER ((SLuint32) 0x00000004) 1767777dab0Sopenharmony_ci#define SL_SPEAKER_LOW_FREQUENCY ((SLuint32) 0x00000008) 1777777dab0Sopenharmony_ci#define SL_SPEAKER_BACK_LEFT ((SLuint32) 0x00000010) 1787777dab0Sopenharmony_ci#define SL_SPEAKER_BACK_RIGHT ((SLuint32) 0x00000020) 1797777dab0Sopenharmony_ci#define SL_SPEAKER_FRONT_LEFT_OF_CENTER ((SLuint32) 0x00000040) 1807777dab0Sopenharmony_ci#define SL_SPEAKER_FRONT_RIGHT_OF_CENTER ((SLuint32) 0x00000080) 1817777dab0Sopenharmony_ci#define SL_SPEAKER_BACK_CENTER ((SLuint32) 0x00000100) 1827777dab0Sopenharmony_ci#define SL_SPEAKER_SIDE_LEFT ((SLuint32) 0x00000200) 1837777dab0Sopenharmony_ci#define SL_SPEAKER_SIDE_RIGHT ((SLuint32) 0x00000400) 1847777dab0Sopenharmony_ci#define SL_SPEAKER_TOP_CENTER ((SLuint32) 0x00000800) 1857777dab0Sopenharmony_ci#define SL_SPEAKER_TOP_FRONT_LEFT ((SLuint32) 0x00001000) 1867777dab0Sopenharmony_ci#define SL_SPEAKER_TOP_FRONT_CENTER ((SLuint32) 0x00002000) 1877777dab0Sopenharmony_ci#define SL_SPEAKER_TOP_FRONT_RIGHT ((SLuint32) 0x00004000) 1887777dab0Sopenharmony_ci#define SL_SPEAKER_TOP_BACK_LEFT ((SLuint32) 0x00008000) 1897777dab0Sopenharmony_ci#define SL_SPEAKER_TOP_BACK_CENTER ((SLuint32) 0x00010000) 1907777dab0Sopenharmony_ci#define SL_SPEAKER_TOP_BACK_RIGHT ((SLuint32) 0x00020000) 1917777dab0Sopenharmony_ci 1927777dab0Sopenharmony_ci 1937777dab0Sopenharmony_ci/*****************************************************************************/ 1947777dab0Sopenharmony_ci/* Errors */ 1957777dab0Sopenharmony_ci/* */ 1967777dab0Sopenharmony_ci/*****************************************************************************/ 1977777dab0Sopenharmony_ci 1987777dab0Sopenharmony_ci#define SL_RESULT_SUCCESS ((SLuint32) 0x00000000) 1997777dab0Sopenharmony_ci#define SL_RESULT_PRECONDITIONS_VIOLATED ((SLuint32) 0x00000001) 2007777dab0Sopenharmony_ci#define SL_RESULT_PARAMETER_INVALID ((SLuint32) 0x00000002) 2017777dab0Sopenharmony_ci#define SL_RESULT_MEMORY_FAILURE ((SLuint32) 0x00000003) 2027777dab0Sopenharmony_ci#define SL_RESULT_RESOURCE_ERROR ((SLuint32) 0x00000004) 2037777dab0Sopenharmony_ci#define SL_RESULT_RESOURCE_LOST ((SLuint32) 0x00000005) 2047777dab0Sopenharmony_ci#define SL_RESULT_IO_ERROR ((SLuint32) 0x00000006) 2057777dab0Sopenharmony_ci#define SL_RESULT_BUFFER_INSUFFICIENT ((SLuint32) 0x00000007) 2067777dab0Sopenharmony_ci#define SL_RESULT_CONTENT_CORRUPTED ((SLuint32) 0x00000008) 2077777dab0Sopenharmony_ci#define SL_RESULT_CONTENT_UNSUPPORTED ((SLuint32) 0x00000009) 2087777dab0Sopenharmony_ci#define SL_RESULT_CONTENT_NOT_FOUND ((SLuint32) 0x0000000A) 2097777dab0Sopenharmony_ci#define SL_RESULT_PERMISSION_DENIED ((SLuint32) 0x0000000B) 2107777dab0Sopenharmony_ci#define SL_RESULT_FEATURE_UNSUPPORTED ((SLuint32) 0x0000000C) 2117777dab0Sopenharmony_ci#define SL_RESULT_INTERNAL_ERROR ((SLuint32) 0x0000000D) 2127777dab0Sopenharmony_ci#define SL_RESULT_UNKNOWN_ERROR ((SLuint32) 0x0000000E) 2137777dab0Sopenharmony_ci#define SL_RESULT_OPERATION_ABORTED ((SLuint32) 0x0000000F) 2147777dab0Sopenharmony_ci#define SL_RESULT_CONTROL_LOST ((SLuint32) 0x00000010) 2157777dab0Sopenharmony_ci 2167777dab0Sopenharmony_ci 2177777dab0Sopenharmony_ci/* Object state definitions */ 2187777dab0Sopenharmony_ci 2197777dab0Sopenharmony_ci#define SL_OBJECT_STATE_UNREALIZED ((SLuint32) 0x00000001) 2207777dab0Sopenharmony_ci#define SL_OBJECT_STATE_REALIZED ((SLuint32) 0x00000002) 2217777dab0Sopenharmony_ci#define SL_OBJECT_STATE_SUSPENDED ((SLuint32) 0x00000003) 2227777dab0Sopenharmony_ci 2237777dab0Sopenharmony_ci/* Object event definitions */ 2247777dab0Sopenharmony_ci 2257777dab0Sopenharmony_ci#define SL_OBJECT_EVENT_RUNTIME_ERROR ((SLuint32) 0x00000001) 2267777dab0Sopenharmony_ci#define SL_OBJECT_EVENT_ASYNC_TERMINATION ((SLuint32) 0x00000002) 2277777dab0Sopenharmony_ci#define SL_OBJECT_EVENT_RESOURCES_LOST ((SLuint32) 0x00000003) 2287777dab0Sopenharmony_ci#define SL_OBJECT_EVENT_RESOURCES_AVAILABLE ((SLuint32) 0x00000004) 2297777dab0Sopenharmony_ci#define SL_OBJECT_EVENT_ITF_CONTROL_TAKEN ((SLuint32) 0x00000005) 2307777dab0Sopenharmony_ci#define SL_OBJECT_EVENT_ITF_CONTROL_RETURNED ((SLuint32) 0x00000006) 2317777dab0Sopenharmony_ci#define SL_OBJECT_EVENT_ITF_PARAMETERS_CHANGED ((SLuint32) 0x00000007) 2327777dab0Sopenharmony_ci 2337777dab0Sopenharmony_ci 2347777dab0Sopenharmony_ci/*****************************************************************************/ 2357777dab0Sopenharmony_ci/* Interface definitions */ 2367777dab0Sopenharmony_ci/*****************************************************************************/ 2377777dab0Sopenharmony_ci 2387777dab0Sopenharmony_ci/** NULL Interface */ 2397777dab0Sopenharmony_ci 2407777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_NULL; 2417777dab0Sopenharmony_ci 2427777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 2437777dab0Sopenharmony_ci/* Data Source and Data Sink Structures */ 2447777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 2457777dab0Sopenharmony_ci 2467777dab0Sopenharmony_ci/** Data locator macros */ 2477777dab0Sopenharmony_ci#define SL_DATALOCATOR_URI ((SLuint32) 0x00000001) 2487777dab0Sopenharmony_ci#define SL_DATALOCATOR_ADDRESS ((SLuint32) 0x00000002) 2497777dab0Sopenharmony_ci#define SL_DATALOCATOR_IODEVICE ((SLuint32) 0x00000003) 2507777dab0Sopenharmony_ci#define SL_DATALOCATOR_OUTPUTMIX ((SLuint32) 0x00000004) 2517777dab0Sopenharmony_ci#define SL_DATALOCATOR_RESERVED5 ((SLuint32) 0x00000005) 2527777dab0Sopenharmony_ci#define SL_DATALOCATOR_BUFFERQUEUE ((SLuint32) 0x00000006) 2537777dab0Sopenharmony_ci#define SL_DATALOCATOR_MIDIBUFFERQUEUE ((SLuint32) 0x00000007) 2547777dab0Sopenharmony_ci#define SL_DATALOCATOR_RESERVED8 ((SLuint32) 0x00000008) 2557777dab0Sopenharmony_ci 2567777dab0Sopenharmony_ci 2577777dab0Sopenharmony_ci 2587777dab0Sopenharmony_ci/** URI-based data locator definition where locatorType must be SL_DATALOCATOR_URI*/ 2597777dab0Sopenharmony_citypedef struct SLDataLocator_URI_ { 2607777dab0Sopenharmony_ci SLuint32 locatorType; 2617777dab0Sopenharmony_ci SLchar * URI; 2627777dab0Sopenharmony_ci} SLDataLocator_URI; 2637777dab0Sopenharmony_ci 2647777dab0Sopenharmony_ci/** Address-based data locator definition where locatorType must be SL_DATALOCATOR_ADDRESS*/ 2657777dab0Sopenharmony_citypedef struct SLDataLocator_Address_ { 2667777dab0Sopenharmony_ci SLuint32 locatorType; 2677777dab0Sopenharmony_ci void *pAddress; 2687777dab0Sopenharmony_ci SLuint32 length; 2697777dab0Sopenharmony_ci} SLDataLocator_Address; 2707777dab0Sopenharmony_ci 2717777dab0Sopenharmony_ci/** IODevice-types */ 2727777dab0Sopenharmony_ci#define SL_IODEVICE_AUDIOINPUT ((SLuint32) 0x00000001) 2737777dab0Sopenharmony_ci#define SL_IODEVICE_LEDARRAY ((SLuint32) 0x00000002) 2747777dab0Sopenharmony_ci#define SL_IODEVICE_VIBRA ((SLuint32) 0x00000003) 2757777dab0Sopenharmony_ci#define SL_IODEVICE_RESERVED4 ((SLuint32) 0x00000004) 2767777dab0Sopenharmony_ci#define SL_IODEVICE_RESERVED5 ((SLuint32) 0x00000005) 2777777dab0Sopenharmony_ci 2787777dab0Sopenharmony_ci/** IODevice-based data locator definition where locatorType must be SL_DATALOCATOR_IODEVICE*/ 2797777dab0Sopenharmony_citypedef struct SLDataLocator_IODevice_ { 2807777dab0Sopenharmony_ci SLuint32 locatorType; 2817777dab0Sopenharmony_ci SLuint32 deviceType; 2827777dab0Sopenharmony_ci SLuint32 deviceID; 2837777dab0Sopenharmony_ci SLObjectItf device; 2847777dab0Sopenharmony_ci} SLDataLocator_IODevice; 2857777dab0Sopenharmony_ci 2867777dab0Sopenharmony_ci/** OutputMix-based data locator definition where locatorType must be SL_DATALOCATOR_OUTPUTMIX*/ 2877777dab0Sopenharmony_citypedef struct SLDataLocator_OutputMix { 2887777dab0Sopenharmony_ci SLuint32 locatorType; 2897777dab0Sopenharmony_ci SLObjectItf outputMix; 2907777dab0Sopenharmony_ci} SLDataLocator_OutputMix; 2917777dab0Sopenharmony_ci 2927777dab0Sopenharmony_ci 2937777dab0Sopenharmony_ci/** BufferQueue-based data locator definition where locatorType must be SL_DATALOCATOR_BUFFERQUEUE*/ 2947777dab0Sopenharmony_citypedef struct SLDataLocator_BufferQueue { 2957777dab0Sopenharmony_ci SLuint32 locatorType; 2967777dab0Sopenharmony_ci SLuint32 numBuffers; 2977777dab0Sopenharmony_ci} SLDataLocator_BufferQueue; 2987777dab0Sopenharmony_ci 2997777dab0Sopenharmony_ci/** MidiBufferQueue-based data locator definition where locatorType must be SL_DATALOCATOR_MIDIBUFFERQUEUE*/ 3007777dab0Sopenharmony_citypedef struct SLDataLocator_MIDIBufferQueue { 3017777dab0Sopenharmony_ci SLuint32 locatorType; 3027777dab0Sopenharmony_ci SLuint32 tpqn; 3037777dab0Sopenharmony_ci SLuint32 numBuffers; 3047777dab0Sopenharmony_ci} SLDataLocator_MIDIBufferQueue; 3057777dab0Sopenharmony_ci 3067777dab0Sopenharmony_ci/** Data format defines */ 3077777dab0Sopenharmony_ci#define SL_DATAFORMAT_MIME ((SLuint32) 0x00000001) 3087777dab0Sopenharmony_ci#define SL_DATAFORMAT_PCM ((SLuint32) 0x00000002) 3097777dab0Sopenharmony_ci#define SL_DATAFORMAT_RESERVED3 ((SLuint32) 0x00000003) 3107777dab0Sopenharmony_ci 3117777dab0Sopenharmony_ci 3127777dab0Sopenharmony_ci/** MIME-type-based data format definition where formatType must be SL_DATAFORMAT_MIME*/ 3137777dab0Sopenharmony_citypedef struct SLDataFormat_MIME_ { 3147777dab0Sopenharmony_ci SLuint32 formatType; 3157777dab0Sopenharmony_ci SLchar * mimeType; 3167777dab0Sopenharmony_ci SLuint32 containerType; 3177777dab0Sopenharmony_ci} SLDataFormat_MIME; 3187777dab0Sopenharmony_ci 3197777dab0Sopenharmony_ci/* Byte order of a block of 16- or 32-bit data */ 3207777dab0Sopenharmony_ci#define SL_BYTEORDER_BIGENDIAN ((SLuint32) 0x00000001) 3217777dab0Sopenharmony_ci#define SL_BYTEORDER_LITTLEENDIAN ((SLuint32) 0x00000002) 3227777dab0Sopenharmony_ci 3237777dab0Sopenharmony_ci/* Container type */ 3247777dab0Sopenharmony_ci#define SL_CONTAINERTYPE_UNSPECIFIED ((SLuint32) 0x00000001) 3257777dab0Sopenharmony_ci#define SL_CONTAINERTYPE_RAW ((SLuint32) 0x00000002) 3267777dab0Sopenharmony_ci#define SL_CONTAINERTYPE_ASF ((SLuint32) 0x00000003) 3277777dab0Sopenharmony_ci#define SL_CONTAINERTYPE_AVI ((SLuint32) 0x00000004) 3287777dab0Sopenharmony_ci#define SL_CONTAINERTYPE_BMP ((SLuint32) 0x00000005) 3297777dab0Sopenharmony_ci#define SL_CONTAINERTYPE_JPG ((SLuint32) 0x00000006) 3307777dab0Sopenharmony_ci#define SL_CONTAINERTYPE_JPG2000 ((SLuint32) 0x00000007) 3317777dab0Sopenharmony_ci#define SL_CONTAINERTYPE_M4A ((SLuint32) 0x00000008) 3327777dab0Sopenharmony_ci#define SL_CONTAINERTYPE_MP3 ((SLuint32) 0x00000009) 3337777dab0Sopenharmony_ci#define SL_CONTAINERTYPE_MP4 ((SLuint32) 0x0000000A) 3347777dab0Sopenharmony_ci#define SL_CONTAINERTYPE_MPEG_ES ((SLuint32) 0x0000000B) 3357777dab0Sopenharmony_ci#define SL_CONTAINERTYPE_MPEG_PS ((SLuint32) 0x0000000C) 3367777dab0Sopenharmony_ci#define SL_CONTAINERTYPE_MPEG_TS ((SLuint32) 0x0000000D) 3377777dab0Sopenharmony_ci#define SL_CONTAINERTYPE_QT ((SLuint32) 0x0000000E) 3387777dab0Sopenharmony_ci#define SL_CONTAINERTYPE_WAV ((SLuint32) 0x0000000F) 3397777dab0Sopenharmony_ci#define SL_CONTAINERTYPE_XMF_0 ((SLuint32) 0x00000010) 3407777dab0Sopenharmony_ci#define SL_CONTAINERTYPE_XMF_1 ((SLuint32) 0x00000011) 3417777dab0Sopenharmony_ci#define SL_CONTAINERTYPE_XMF_2 ((SLuint32) 0x00000012) 3427777dab0Sopenharmony_ci#define SL_CONTAINERTYPE_XMF_3 ((SLuint32) 0x00000013) 3437777dab0Sopenharmony_ci#define SL_CONTAINERTYPE_XMF_GENERIC ((SLuint32) 0x00000014) 3447777dab0Sopenharmony_ci#define SL_CONTAINERTYPE_AMR ((SLuint32) 0x00000015) 3457777dab0Sopenharmony_ci#define SL_CONTAINERTYPE_AAC ((SLuint32) 0x00000016) 3467777dab0Sopenharmony_ci#define SL_CONTAINERTYPE_3GPP ((SLuint32) 0x00000017) 3477777dab0Sopenharmony_ci#define SL_CONTAINERTYPE_3GA ((SLuint32) 0x00000018) 3487777dab0Sopenharmony_ci#define SL_CONTAINERTYPE_RM ((SLuint32) 0x00000019) 3497777dab0Sopenharmony_ci#define SL_CONTAINERTYPE_DMF ((SLuint32) 0x0000001A) 3507777dab0Sopenharmony_ci#define SL_CONTAINERTYPE_SMF ((SLuint32) 0x0000001B) 3517777dab0Sopenharmony_ci#define SL_CONTAINERTYPE_MOBILE_DLS ((SLuint32) 0x0000001C) 3527777dab0Sopenharmony_ci#define SL_CONTAINERTYPE_OGG ((SLuint32) 0x0000001D) 3537777dab0Sopenharmony_ci 3547777dab0Sopenharmony_ci 3557777dab0Sopenharmony_ci/** PCM-type-based data format definition where formatType must be SL_DATAFORMAT_PCM*/ 3567777dab0Sopenharmony_citypedef struct SLDataFormat_PCM_ { 3577777dab0Sopenharmony_ci SLuint32 formatType; 3587777dab0Sopenharmony_ci SLuint32 numChannels; 3597777dab0Sopenharmony_ci SLuint32 samplesPerSec; 3607777dab0Sopenharmony_ci SLuint32 bitsPerSample; 3617777dab0Sopenharmony_ci SLuint32 containerSize; 3627777dab0Sopenharmony_ci SLuint32 channelMask; 3637777dab0Sopenharmony_ci SLuint32 endianness; 3647777dab0Sopenharmony_ci} SLDataFormat_PCM; 3657777dab0Sopenharmony_ci 3667777dab0Sopenharmony_citypedef struct SLDataSource_ { 3677777dab0Sopenharmony_ci void *pLocator; 3687777dab0Sopenharmony_ci void *pFormat; 3697777dab0Sopenharmony_ci} SLDataSource; 3707777dab0Sopenharmony_ci 3717777dab0Sopenharmony_ci 3727777dab0Sopenharmony_citypedef struct SLDataSink_ { 3737777dab0Sopenharmony_ci void *pLocator; 3747777dab0Sopenharmony_ci void *pFormat; 3757777dab0Sopenharmony_ci} SLDataSink; 3767777dab0Sopenharmony_ci 3777777dab0Sopenharmony_ci 3787777dab0Sopenharmony_ci 3797777dab0Sopenharmony_ci 3807777dab0Sopenharmony_ci 3817777dab0Sopenharmony_ci 3827777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 3837777dab0Sopenharmony_ci/* Standard Object Interface */ 3847777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 3857777dab0Sopenharmony_ci 3867777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_OBJECT; 3877777dab0Sopenharmony_ci 3887777dab0Sopenharmony_ci/** Object callback */ 3897777dab0Sopenharmony_ci 3907777dab0Sopenharmony_ci 3917777dab0Sopenharmony_citypedef void (SLAPIENTRY *slObjectCallback) ( 3927777dab0Sopenharmony_ci SLObjectItf caller, 3937777dab0Sopenharmony_ci const void * pContext, 3947777dab0Sopenharmony_ci SLuint32 event, 3957777dab0Sopenharmony_ci SLresult result, 3967777dab0Sopenharmony_ci SLuint32 param, 3977777dab0Sopenharmony_ci void *pInterface 3987777dab0Sopenharmony_ci); 3997777dab0Sopenharmony_ci 4007777dab0Sopenharmony_ci 4017777dab0Sopenharmony_cistruct SLObjectItf_ { 4027777dab0Sopenharmony_ci SLresult (*Realize) ( 4037777dab0Sopenharmony_ci SLObjectItf self, 4047777dab0Sopenharmony_ci SLboolean async 4057777dab0Sopenharmony_ci ); 4067777dab0Sopenharmony_ci SLresult (*Resume) ( 4077777dab0Sopenharmony_ci SLObjectItf self, 4087777dab0Sopenharmony_ci SLboolean async 4097777dab0Sopenharmony_ci ); 4107777dab0Sopenharmony_ci SLresult (*GetState) ( 4117777dab0Sopenharmony_ci SLObjectItf self, 4127777dab0Sopenharmony_ci SLuint32 * pState 4137777dab0Sopenharmony_ci ); 4147777dab0Sopenharmony_ci SLresult (*GetInterface) ( 4157777dab0Sopenharmony_ci SLObjectItf self, 4167777dab0Sopenharmony_ci const SLInterfaceID iid, 4177777dab0Sopenharmony_ci void * pInterface 4187777dab0Sopenharmony_ci ); 4197777dab0Sopenharmony_ci SLresult (*RegisterCallback) ( 4207777dab0Sopenharmony_ci SLObjectItf self, 4217777dab0Sopenharmony_ci slObjectCallback callback, 4227777dab0Sopenharmony_ci void * pContext 4237777dab0Sopenharmony_ci ); 4247777dab0Sopenharmony_ci void (*AbortAsyncOperation) ( 4257777dab0Sopenharmony_ci SLObjectItf self 4267777dab0Sopenharmony_ci ); 4277777dab0Sopenharmony_ci void (*Destroy) ( 4287777dab0Sopenharmony_ci SLObjectItf self 4297777dab0Sopenharmony_ci ); 4307777dab0Sopenharmony_ci SLresult (*SetPriority) ( 4317777dab0Sopenharmony_ci SLObjectItf self, 4327777dab0Sopenharmony_ci SLint32 priority, 4337777dab0Sopenharmony_ci SLboolean preemptable 4347777dab0Sopenharmony_ci ); 4357777dab0Sopenharmony_ci SLresult (*GetPriority) ( 4367777dab0Sopenharmony_ci SLObjectItf self, 4377777dab0Sopenharmony_ci SLint32 *pPriority, 4387777dab0Sopenharmony_ci SLboolean *pPreemptable 4397777dab0Sopenharmony_ci ); 4407777dab0Sopenharmony_ci SLresult (*SetLossOfControlInterfaces) ( 4417777dab0Sopenharmony_ci SLObjectItf self, 4427777dab0Sopenharmony_ci SLint16 numInterfaces, 4437777dab0Sopenharmony_ci SLInterfaceID * pInterfaceIDs, 4447777dab0Sopenharmony_ci SLboolean enabled 4457777dab0Sopenharmony_ci ); 4467777dab0Sopenharmony_ci}; 4477777dab0Sopenharmony_ci 4487777dab0Sopenharmony_ci 4497777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 4507777dab0Sopenharmony_ci/* Audio IO Device capabilities interface */ 4517777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 4527777dab0Sopenharmony_ci 4537777dab0Sopenharmony_ci#define SL_DEFAULTDEVICEID_AUDIOINPUT ((SLuint32) 0xFFFFFFFF) 4547777dab0Sopenharmony_ci#define SL_DEFAULTDEVICEID_AUDIOOUTPUT ((SLuint32) 0xFFFFFFFE) 4557777dab0Sopenharmony_ci#define SL_DEFAULTDEVICEID_LED ((SLuint32) 0xFFFFFFFD) 4567777dab0Sopenharmony_ci#define SL_DEFAULTDEVICEID_VIBRA ((SLuint32) 0xFFFFFFFC) 4577777dab0Sopenharmony_ci#define SL_DEFAULTDEVICEID_RESERVED1 ((SLuint32) 0xFFFFFFFB) 4587777dab0Sopenharmony_ci 4597777dab0Sopenharmony_ci 4607777dab0Sopenharmony_ci#define SL_DEVCONNECTION_INTEGRATED ((SLint16) 0x0001) 4617777dab0Sopenharmony_ci#define SL_DEVCONNECTION_ATTACHED_WIRED ((SLint16) 0x0100) 4627777dab0Sopenharmony_ci#define SL_DEVCONNECTION_ATTACHED_WIRELESS ((SLint16) 0x0200) 4637777dab0Sopenharmony_ci#define SL_DEVCONNECTION_NETWORK ((SLint16) 0x0400) 4647777dab0Sopenharmony_ci 4657777dab0Sopenharmony_ci 4667777dab0Sopenharmony_ci#define SL_DEVLOCATION_HANDSET ((SLuint16) 0x0001) 4677777dab0Sopenharmony_ci#define SL_DEVLOCATION_HEADSET ((SLuint16) 0x0002) 4687777dab0Sopenharmony_ci#define SL_DEVLOCATION_CARKIT ((SLuint16) 0x0003) 4697777dab0Sopenharmony_ci#define SL_DEVLOCATION_DOCK ((SLuint16) 0x0004) 4707777dab0Sopenharmony_ci#define SL_DEVLOCATION_REMOTE ((SLuint16) 0x0005) 4717777dab0Sopenharmony_ci/* Note: SL_DEVLOCATION_RESLTE is deprecated, use SL_DEVLOCATION_REMOTE instead. */ 4727777dab0Sopenharmony_ci#define SL_DEVLOCATION_RESLTE ((SLuint16) 0x0005) 4737777dab0Sopenharmony_ci 4747777dab0Sopenharmony_ci 4757777dab0Sopenharmony_ci#define SL_DEVSCOPE_UNKNOWN ((SLuint16) 0x0001) 4767777dab0Sopenharmony_ci#define SL_DEVSCOPE_ENVIRONMENT ((SLuint16) 0x0002) 4777777dab0Sopenharmony_ci#define SL_DEVSCOPE_USER ((SLuint16) 0x0003) 4787777dab0Sopenharmony_ci 4797777dab0Sopenharmony_ci 4807777dab0Sopenharmony_citypedef struct SLAudioInputDescriptor_ { 4817777dab0Sopenharmony_ci SLchar *deviceName; 4827777dab0Sopenharmony_ci SLint16 deviceConnection; 4837777dab0Sopenharmony_ci SLint16 deviceScope; 4847777dab0Sopenharmony_ci SLint16 deviceLocation; 4857777dab0Sopenharmony_ci SLboolean isForTelephony; 4867777dab0Sopenharmony_ci SLmilliHertz minSampleRate; 4877777dab0Sopenharmony_ci SLmilliHertz maxSampleRate; 4887777dab0Sopenharmony_ci SLboolean isFreqRangeContinuous; 4897777dab0Sopenharmony_ci SLmilliHertz *samplingRatesSupported; 4907777dab0Sopenharmony_ci SLint16 numOfSamplingRatesSupported; 4917777dab0Sopenharmony_ci SLint16 maxChannels; 4927777dab0Sopenharmony_ci} SLAudioInputDescriptor; 4937777dab0Sopenharmony_ci 4947777dab0Sopenharmony_ci 4957777dab0Sopenharmony_citypedef struct SLAudioOutputDescriptor_ { 4967777dab0Sopenharmony_ci SLchar *pDeviceName; 4977777dab0Sopenharmony_ci SLint16 deviceConnection; 4987777dab0Sopenharmony_ci SLint16 deviceScope; 4997777dab0Sopenharmony_ci SLint16 deviceLocation; 5007777dab0Sopenharmony_ci SLboolean isForTelephony; 5017777dab0Sopenharmony_ci SLmilliHertz minSampleRate; 5027777dab0Sopenharmony_ci SLmilliHertz maxSampleRate; 5037777dab0Sopenharmony_ci SLboolean isFreqRangeContinuous; 5047777dab0Sopenharmony_ci SLmilliHertz *samplingRatesSupported; 5057777dab0Sopenharmony_ci SLint16 numOfSamplingRatesSupported; 5067777dab0Sopenharmony_ci SLint16 maxChannels; 5077777dab0Sopenharmony_ci} SLAudioOutputDescriptor; 5087777dab0Sopenharmony_ci 5097777dab0Sopenharmony_ci 5107777dab0Sopenharmony_ci 5117777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_AUDIOIODEVICECAPABILITIES; 5127777dab0Sopenharmony_ci 5137777dab0Sopenharmony_cistruct SLAudioIODeviceCapabilitiesItf_; 5147777dab0Sopenharmony_citypedef const struct SLAudioIODeviceCapabilitiesItf_ * const * SLAudioIODeviceCapabilitiesItf; 5157777dab0Sopenharmony_ci 5167777dab0Sopenharmony_ci 5177777dab0Sopenharmony_citypedef void (SLAPIENTRY *slAvailableAudioInputsChangedCallback) ( 5187777dab0Sopenharmony_ci SLAudioIODeviceCapabilitiesItf caller, 5197777dab0Sopenharmony_ci void *pContext, 5207777dab0Sopenharmony_ci SLuint32 deviceID, 5217777dab0Sopenharmony_ci SLint32 numInputs, 5227777dab0Sopenharmony_ci SLboolean isNew 5237777dab0Sopenharmony_ci); 5247777dab0Sopenharmony_ci 5257777dab0Sopenharmony_ci 5267777dab0Sopenharmony_citypedef void (SLAPIENTRY *slAvailableAudioOutputsChangedCallback) ( 5277777dab0Sopenharmony_ci SLAudioIODeviceCapabilitiesItf caller, 5287777dab0Sopenharmony_ci void *pContext, 5297777dab0Sopenharmony_ci SLuint32 deviceID, 5307777dab0Sopenharmony_ci SLint32 numOutputs, 5317777dab0Sopenharmony_ci SLboolean isNew 5327777dab0Sopenharmony_ci); 5337777dab0Sopenharmony_ci 5347777dab0Sopenharmony_citypedef void (SLAPIENTRY *slDefaultDeviceIDMapChangedCallback) ( 5357777dab0Sopenharmony_ci SLAudioIODeviceCapabilitiesItf caller, 5367777dab0Sopenharmony_ci void *pContext, 5377777dab0Sopenharmony_ci SLboolean isOutput, 5387777dab0Sopenharmony_ci SLint32 numDevices 5397777dab0Sopenharmony_ci); 5407777dab0Sopenharmony_ci 5417777dab0Sopenharmony_ci 5427777dab0Sopenharmony_cistruct SLAudioIODeviceCapabilitiesItf_ { 5437777dab0Sopenharmony_ci SLresult (*GetAvailableAudioInputs)( 5447777dab0Sopenharmony_ci SLAudioIODeviceCapabilitiesItf self, 5457777dab0Sopenharmony_ci SLint32 *pNumInputs, 5467777dab0Sopenharmony_ci SLuint32 *pInputDeviceIDs 5477777dab0Sopenharmony_ci ); 5487777dab0Sopenharmony_ci SLresult (*QueryAudioInputCapabilities)( 5497777dab0Sopenharmony_ci SLAudioIODeviceCapabilitiesItf self, 5507777dab0Sopenharmony_ci SLuint32 deviceId, 5517777dab0Sopenharmony_ci SLAudioInputDescriptor *pDescriptor 5527777dab0Sopenharmony_ci ); 5537777dab0Sopenharmony_ci SLresult (*RegisterAvailableAudioInputsChangedCallback) ( 5547777dab0Sopenharmony_ci SLAudioIODeviceCapabilitiesItf self, 5557777dab0Sopenharmony_ci slAvailableAudioInputsChangedCallback callback, 5567777dab0Sopenharmony_ci void *pContext 5577777dab0Sopenharmony_ci ); 5587777dab0Sopenharmony_ci SLresult (*GetAvailableAudioOutputs)( 5597777dab0Sopenharmony_ci SLAudioIODeviceCapabilitiesItf self, 5607777dab0Sopenharmony_ci SLint32 *pNumOutputs, 5617777dab0Sopenharmony_ci SLuint32 *pOutputDeviceIDs 5627777dab0Sopenharmony_ci ); 5637777dab0Sopenharmony_ci SLresult (*QueryAudioOutputCapabilities)( 5647777dab0Sopenharmony_ci SLAudioIODeviceCapabilitiesItf self, 5657777dab0Sopenharmony_ci SLuint32 deviceId, 5667777dab0Sopenharmony_ci SLAudioOutputDescriptor *pDescriptor 5677777dab0Sopenharmony_ci ); 5687777dab0Sopenharmony_ci SLresult (*RegisterAvailableAudioOutputsChangedCallback) ( 5697777dab0Sopenharmony_ci SLAudioIODeviceCapabilitiesItf self, 5707777dab0Sopenharmony_ci slAvailableAudioOutputsChangedCallback callback, 5717777dab0Sopenharmony_ci void *pContext 5727777dab0Sopenharmony_ci ); 5737777dab0Sopenharmony_ci SLresult (*RegisterDefaultDeviceIDMapChangedCallback) ( 5747777dab0Sopenharmony_ci SLAudioIODeviceCapabilitiesItf self, 5757777dab0Sopenharmony_ci slDefaultDeviceIDMapChangedCallback callback, 5767777dab0Sopenharmony_ci void *pContext 5777777dab0Sopenharmony_ci ); 5787777dab0Sopenharmony_ci SLresult (*GetAssociatedAudioInputs) ( 5797777dab0Sopenharmony_ci SLAudioIODeviceCapabilitiesItf self, 5807777dab0Sopenharmony_ci SLuint32 deviceId, 5817777dab0Sopenharmony_ci SLint32 *pNumAudioInputs, 5827777dab0Sopenharmony_ci SLuint32 *pAudioInputDeviceIDs 5837777dab0Sopenharmony_ci ); 5847777dab0Sopenharmony_ci SLresult (*GetAssociatedAudioOutputs) ( 5857777dab0Sopenharmony_ci SLAudioIODeviceCapabilitiesItf self, 5867777dab0Sopenharmony_ci SLuint32 deviceId, 5877777dab0Sopenharmony_ci SLint32 *pNumAudioOutputs, 5887777dab0Sopenharmony_ci SLuint32 *pAudioOutputDeviceIDs 5897777dab0Sopenharmony_ci ); 5907777dab0Sopenharmony_ci SLresult (*GetDefaultAudioDevices) ( 5917777dab0Sopenharmony_ci SLAudioIODeviceCapabilitiesItf self, 5927777dab0Sopenharmony_ci SLuint32 defaultDeviceID, 5937777dab0Sopenharmony_ci SLint32 *pNumAudioDevices, 5947777dab0Sopenharmony_ci SLuint32 *pAudioDeviceIDs 5957777dab0Sopenharmony_ci ); 5967777dab0Sopenharmony_ci SLresult (*QuerySampleFormatsSupported)( 5977777dab0Sopenharmony_ci SLAudioIODeviceCapabilitiesItf self, 5987777dab0Sopenharmony_ci SLuint32 deviceId, 5997777dab0Sopenharmony_ci SLmilliHertz samplingRate, 6007777dab0Sopenharmony_ci SLint32 *pSampleFormats, 6017777dab0Sopenharmony_ci SLint32 *pNumOfSampleFormats 6027777dab0Sopenharmony_ci ); 6037777dab0Sopenharmony_ci}; 6047777dab0Sopenharmony_ci 6057777dab0Sopenharmony_ci 6067777dab0Sopenharmony_ci 6077777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 6087777dab0Sopenharmony_ci/* Capabilities of the LED array IODevice */ 6097777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 6107777dab0Sopenharmony_ci 6117777dab0Sopenharmony_citypedef struct SLLEDDescriptor_ { 6127777dab0Sopenharmony_ci SLuint8 ledCount; 6137777dab0Sopenharmony_ci SLuint8 primaryLED; 6147777dab0Sopenharmony_ci SLuint32 colorMask; 6157777dab0Sopenharmony_ci} SLLEDDescriptor; 6167777dab0Sopenharmony_ci 6177777dab0Sopenharmony_ci 6187777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 6197777dab0Sopenharmony_ci/* LED Array interface */ 6207777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 6217777dab0Sopenharmony_ci 6227777dab0Sopenharmony_citypedef struct SLHSL_ { 6237777dab0Sopenharmony_ci SLmillidegree hue; 6247777dab0Sopenharmony_ci SLpermille saturation; 6257777dab0Sopenharmony_ci SLpermille lightness; 6267777dab0Sopenharmony_ci} SLHSL; 6277777dab0Sopenharmony_ci 6287777dab0Sopenharmony_ci 6297777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_LED; 6307777dab0Sopenharmony_ci 6317777dab0Sopenharmony_cistruct SLLEDArrayItf_; 6327777dab0Sopenharmony_citypedef const struct SLLEDArrayItf_ * const * SLLEDArrayItf; 6337777dab0Sopenharmony_ci 6347777dab0Sopenharmony_cistruct SLLEDArrayItf_ { 6357777dab0Sopenharmony_ci SLresult (*ActivateLEDArray) ( 6367777dab0Sopenharmony_ci SLLEDArrayItf self, 6377777dab0Sopenharmony_ci SLuint32 lightMask 6387777dab0Sopenharmony_ci ); 6397777dab0Sopenharmony_ci SLresult (*IsLEDArrayActivated) ( 6407777dab0Sopenharmony_ci SLLEDArrayItf self, 6417777dab0Sopenharmony_ci SLuint32 *lightMask 6427777dab0Sopenharmony_ci ); 6437777dab0Sopenharmony_ci SLresult (*SetColor) ( 6447777dab0Sopenharmony_ci SLLEDArrayItf self, 6457777dab0Sopenharmony_ci SLuint8 index, 6467777dab0Sopenharmony_ci const SLHSL *color 6477777dab0Sopenharmony_ci ); 6487777dab0Sopenharmony_ci SLresult (*GetColor) ( 6497777dab0Sopenharmony_ci SLLEDArrayItf self, 6507777dab0Sopenharmony_ci SLuint8 index, 6517777dab0Sopenharmony_ci SLHSL *color 6527777dab0Sopenharmony_ci ); 6537777dab0Sopenharmony_ci}; 6547777dab0Sopenharmony_ci 6557777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 6567777dab0Sopenharmony_ci/* Capabilities of the Vibra IODevice */ 6577777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 6587777dab0Sopenharmony_ci 6597777dab0Sopenharmony_citypedef struct SLVibraDescriptor_ { 6607777dab0Sopenharmony_ci SLboolean supportsFrequency; 6617777dab0Sopenharmony_ci SLboolean supportsIntensity; 6627777dab0Sopenharmony_ci SLmilliHertz minFrequency; 6637777dab0Sopenharmony_ci SLmilliHertz maxFrequency; 6647777dab0Sopenharmony_ci} SLVibraDescriptor; 6657777dab0Sopenharmony_ci 6667777dab0Sopenharmony_ci 6677777dab0Sopenharmony_ci 6687777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 6697777dab0Sopenharmony_ci/* Vibra interface */ 6707777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 6717777dab0Sopenharmony_ci 6727777dab0Sopenharmony_ci 6737777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_VIBRA; 6747777dab0Sopenharmony_ci 6757777dab0Sopenharmony_ci 6767777dab0Sopenharmony_cistruct SLVibraItf_; 6777777dab0Sopenharmony_citypedef const struct SLVibraItf_ * const * SLVibraItf; 6787777dab0Sopenharmony_ci 6797777dab0Sopenharmony_cistruct SLVibraItf_ { 6807777dab0Sopenharmony_ci SLresult (*Vibrate) ( 6817777dab0Sopenharmony_ci SLVibraItf self, 6827777dab0Sopenharmony_ci SLboolean vibrate 6837777dab0Sopenharmony_ci ); 6847777dab0Sopenharmony_ci SLresult (*IsVibrating) ( 6857777dab0Sopenharmony_ci SLVibraItf self, 6867777dab0Sopenharmony_ci SLboolean *pVibrating 6877777dab0Sopenharmony_ci ); 6887777dab0Sopenharmony_ci SLresult (*SetFrequency) ( 6897777dab0Sopenharmony_ci SLVibraItf self, 6907777dab0Sopenharmony_ci SLmilliHertz frequency 6917777dab0Sopenharmony_ci ); 6927777dab0Sopenharmony_ci SLresult (*GetFrequency) ( 6937777dab0Sopenharmony_ci SLVibraItf self, 6947777dab0Sopenharmony_ci SLmilliHertz *pFrequency 6957777dab0Sopenharmony_ci ); 6967777dab0Sopenharmony_ci SLresult (*SetIntensity) ( 6977777dab0Sopenharmony_ci SLVibraItf self, 6987777dab0Sopenharmony_ci SLpermille intensity 6997777dab0Sopenharmony_ci ); 7007777dab0Sopenharmony_ci SLresult (*GetIntensity) ( 7017777dab0Sopenharmony_ci SLVibraItf self, 7027777dab0Sopenharmony_ci SLpermille *pIntensity 7037777dab0Sopenharmony_ci ); 7047777dab0Sopenharmony_ci}; 7057777dab0Sopenharmony_ci 7067777dab0Sopenharmony_ci 7077777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 7087777dab0Sopenharmony_ci/* Meta data extraction related types and interface */ 7097777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 7107777dab0Sopenharmony_ci 7117777dab0Sopenharmony_ci#define SL_CHARACTERENCODING_UNKNOWN ((SLuint32) 0x00000000) 7127777dab0Sopenharmony_ci#define SL_CHARACTERENCODING_BINARY ((SLuint32) 0x00000001) 7137777dab0Sopenharmony_ci#define SL_CHARACTERENCODING_ASCII ((SLuint32) 0x00000002) 7147777dab0Sopenharmony_ci#define SL_CHARACTERENCODING_BIG5 ((SLuint32) 0x00000003) 7157777dab0Sopenharmony_ci#define SL_CHARACTERENCODING_CODEPAGE1252 ((SLuint32) 0x00000004) 7167777dab0Sopenharmony_ci#define SL_CHARACTERENCODING_GB2312 ((SLuint32) 0x00000005) 7177777dab0Sopenharmony_ci#define SL_CHARACTERENCODING_HZGB2312 ((SLuint32) 0x00000006) 7187777dab0Sopenharmony_ci#define SL_CHARACTERENCODING_GB12345 ((SLuint32) 0x00000007) 7197777dab0Sopenharmony_ci#define SL_CHARACTERENCODING_GB18030 ((SLuint32) 0x00000008) 7207777dab0Sopenharmony_ci#define SL_CHARACTERENCODING_GBK ((SLuint32) 0x00000009) 7217777dab0Sopenharmony_ci#define SL_CHARACTERENCODING_IMAPUTF7 ((SLuint32) 0x0000000A) 7227777dab0Sopenharmony_ci#define SL_CHARACTERENCODING_ISO2022JP ((SLuint32) 0x0000000B) 7237777dab0Sopenharmony_ci#define SL_CHARACTERENCODING_ISO2022JP1 ((SLuint32) 0x0000000B) 7247777dab0Sopenharmony_ci#define SL_CHARACTERENCODING_ISO88591 ((SLuint32) 0x0000000C) 7257777dab0Sopenharmony_ci#define SL_CHARACTERENCODING_ISO885910 ((SLuint32) 0x0000000D) 7267777dab0Sopenharmony_ci#define SL_CHARACTERENCODING_ISO885913 ((SLuint32) 0x0000000E) 7277777dab0Sopenharmony_ci#define SL_CHARACTERENCODING_ISO885914 ((SLuint32) 0x0000000F) 7287777dab0Sopenharmony_ci#define SL_CHARACTERENCODING_ISO885915 ((SLuint32) 0x00000010) 7297777dab0Sopenharmony_ci#define SL_CHARACTERENCODING_ISO88592 ((SLuint32) 0x00000011) 7307777dab0Sopenharmony_ci#define SL_CHARACTERENCODING_ISO88593 ((SLuint32) 0x00000012) 7317777dab0Sopenharmony_ci#define SL_CHARACTERENCODING_ISO88594 ((SLuint32) 0x00000013) 7327777dab0Sopenharmony_ci#define SL_CHARACTERENCODING_ISO88595 ((SLuint32) 0x00000014) 7337777dab0Sopenharmony_ci#define SL_CHARACTERENCODING_ISO88596 ((SLuint32) 0x00000015) 7347777dab0Sopenharmony_ci#define SL_CHARACTERENCODING_ISO88597 ((SLuint32) 0x00000016) 7357777dab0Sopenharmony_ci#define SL_CHARACTERENCODING_ISO88598 ((SLuint32) 0x00000017) 7367777dab0Sopenharmony_ci#define SL_CHARACTERENCODING_ISO88599 ((SLuint32) 0x00000018) 7377777dab0Sopenharmony_ci#define SL_CHARACTERENCODING_ISOEUCJP ((SLuint32) 0x00000019) 7387777dab0Sopenharmony_ci#define SL_CHARACTERENCODING_SHIFTJIS ((SLuint32) 0x0000001A) 7397777dab0Sopenharmony_ci#define SL_CHARACTERENCODING_SMS7BIT ((SLuint32) 0x0000001B) 7407777dab0Sopenharmony_ci#define SL_CHARACTERENCODING_UTF7 ((SLuint32) 0x0000001C) 7417777dab0Sopenharmony_ci#define SL_CHARACTERENCODING_UTF8 ((SLuint32) 0x0000001D) 7427777dab0Sopenharmony_ci#define SL_CHARACTERENCODING_JAVACONFORMANTUTF8 ((SLuint32) 0x0000001E) 7437777dab0Sopenharmony_ci#define SL_CHARACTERENCODING_UTF16BE ((SLuint32) 0x0000001F) 7447777dab0Sopenharmony_ci#define SL_CHARACTERENCODING_UTF16LE ((SLuint32) 0x00000020) 7457777dab0Sopenharmony_ci 7467777dab0Sopenharmony_ci 7477777dab0Sopenharmony_ci#define SL_METADATA_FILTER_KEY ((SLuint8) 0x01) 7487777dab0Sopenharmony_ci#define SL_METADATA_FILTER_LANG ((SLuint8) 0x02) 7497777dab0Sopenharmony_ci#define SL_METADATA_FILTER_ENCODING ((SLuint8) 0x04) 7507777dab0Sopenharmony_ci 7517777dab0Sopenharmony_ci 7527777dab0Sopenharmony_citypedef struct SLMetadataInfo_ { 7537777dab0Sopenharmony_ci SLuint32 size; 7547777dab0Sopenharmony_ci SLuint32 encoding; 7557777dab0Sopenharmony_ci SLchar langCountry[16]; 7567777dab0Sopenharmony_ci SLuint8 data[1]; 7577777dab0Sopenharmony_ci} SLMetadataInfo; 7587777dab0Sopenharmony_ci 7597777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_METADATAEXTRACTION; 7607777dab0Sopenharmony_ci 7617777dab0Sopenharmony_cistruct SLMetadataExtractionItf_; 7627777dab0Sopenharmony_citypedef const struct SLMetadataExtractionItf_ * const * SLMetadataExtractionItf; 7637777dab0Sopenharmony_ci 7647777dab0Sopenharmony_ci 7657777dab0Sopenharmony_cistruct SLMetadataExtractionItf_ { 7667777dab0Sopenharmony_ci SLresult (*GetItemCount) ( 7677777dab0Sopenharmony_ci SLMetadataExtractionItf self, 7687777dab0Sopenharmony_ci SLuint32 *pItemCount 7697777dab0Sopenharmony_ci ); 7707777dab0Sopenharmony_ci SLresult (*GetKeySize) ( 7717777dab0Sopenharmony_ci SLMetadataExtractionItf self, 7727777dab0Sopenharmony_ci SLuint32 index, 7737777dab0Sopenharmony_ci SLuint32 *pKeySize 7747777dab0Sopenharmony_ci ); 7757777dab0Sopenharmony_ci SLresult (*GetKey) ( 7767777dab0Sopenharmony_ci SLMetadataExtractionItf self, 7777777dab0Sopenharmony_ci SLuint32 index, 7787777dab0Sopenharmony_ci SLuint32 keySize, 7797777dab0Sopenharmony_ci SLMetadataInfo *pKey 7807777dab0Sopenharmony_ci ); 7817777dab0Sopenharmony_ci SLresult (*GetValueSize) ( 7827777dab0Sopenharmony_ci SLMetadataExtractionItf self, 7837777dab0Sopenharmony_ci SLuint32 index, 7847777dab0Sopenharmony_ci SLuint32 *pValueSize 7857777dab0Sopenharmony_ci ); 7867777dab0Sopenharmony_ci SLresult (*GetValue) ( 7877777dab0Sopenharmony_ci SLMetadataExtractionItf self, 7887777dab0Sopenharmony_ci SLuint32 index, 7897777dab0Sopenharmony_ci SLuint32 valueSize, 7907777dab0Sopenharmony_ci SLMetadataInfo *pValue 7917777dab0Sopenharmony_ci ); 7927777dab0Sopenharmony_ci SLresult (*AddKeyFilter) ( 7937777dab0Sopenharmony_ci SLMetadataExtractionItf self, 7947777dab0Sopenharmony_ci SLuint32 keySize, 7957777dab0Sopenharmony_ci const void *pKey, 7967777dab0Sopenharmony_ci SLuint32 keyEncoding, 7977777dab0Sopenharmony_ci const SLchar *pValueLangCountry, 7987777dab0Sopenharmony_ci SLuint32 valueEncoding, 7997777dab0Sopenharmony_ci SLuint8 filterMask 8007777dab0Sopenharmony_ci ); 8017777dab0Sopenharmony_ci SLresult (*ClearKeyFilter) ( 8027777dab0Sopenharmony_ci SLMetadataExtractionItf self 8037777dab0Sopenharmony_ci ); 8047777dab0Sopenharmony_ci}; 8057777dab0Sopenharmony_ci 8067777dab0Sopenharmony_ci 8077777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 8087777dab0Sopenharmony_ci/* Meta data traversal related types and interface */ 8097777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 8107777dab0Sopenharmony_ci 8117777dab0Sopenharmony_ci#define SL_METADATATRAVERSALMODE_ALL ((SLuint32) 0x00000001) 8127777dab0Sopenharmony_ci#define SL_METADATATRAVERSALMODE_NODE ((SLuint32) 0x00000002) 8137777dab0Sopenharmony_ci 8147777dab0Sopenharmony_ci 8157777dab0Sopenharmony_ci#define SL_NODETYPE_UNSPECIFIED ((SLuint32) 0x00000001) 8167777dab0Sopenharmony_ci#define SL_NODETYPE_AUDIO ((SLuint32) 0x00000002) 8177777dab0Sopenharmony_ci#define SL_NODETYPE_VIDEO ((SLuint32) 0x00000003) 8187777dab0Sopenharmony_ci#define SL_NODETYPE_IMAGE ((SLuint32) 0x00000004) 8197777dab0Sopenharmony_ci 8207777dab0Sopenharmony_ci#define SL_NODE_PARENT 0xFFFFFFFF 8217777dab0Sopenharmony_ci 8227777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_METADATATRAVERSAL; 8237777dab0Sopenharmony_ci 8247777dab0Sopenharmony_cistruct SLMetadataTraversalItf_; 8257777dab0Sopenharmony_citypedef const struct SLMetadataTraversalItf_ * const * SLMetadataTraversalItf; 8267777dab0Sopenharmony_ci 8277777dab0Sopenharmony_cistruct SLMetadataTraversalItf_ { 8287777dab0Sopenharmony_ci SLresult (*SetMode) ( 8297777dab0Sopenharmony_ci SLMetadataTraversalItf self, 8307777dab0Sopenharmony_ci SLuint32 mode 8317777dab0Sopenharmony_ci ); 8327777dab0Sopenharmony_ci SLresult (*GetChildCount) ( 8337777dab0Sopenharmony_ci SLMetadataTraversalItf self, 8347777dab0Sopenharmony_ci SLuint32 *pCount 8357777dab0Sopenharmony_ci ); 8367777dab0Sopenharmony_ci SLresult (*GetChildMIMETypeSize) ( 8377777dab0Sopenharmony_ci SLMetadataTraversalItf self, 8387777dab0Sopenharmony_ci SLuint32 index, 8397777dab0Sopenharmony_ci SLuint32 *pSize 8407777dab0Sopenharmony_ci ); 8417777dab0Sopenharmony_ci SLresult (*GetChildInfo) ( 8427777dab0Sopenharmony_ci SLMetadataTraversalItf self, 8437777dab0Sopenharmony_ci SLuint32 index, 8447777dab0Sopenharmony_ci SLint32 *pNodeID, 8457777dab0Sopenharmony_ci SLuint32 *pType, 8467777dab0Sopenharmony_ci SLuint32 size, 8477777dab0Sopenharmony_ci SLchar *pMimeType 8487777dab0Sopenharmony_ci ); 8497777dab0Sopenharmony_ci SLresult (*SetActiveNode) ( 8507777dab0Sopenharmony_ci SLMetadataTraversalItf self, 8517777dab0Sopenharmony_ci SLuint32 index 8527777dab0Sopenharmony_ci ); 8537777dab0Sopenharmony_ci}; 8547777dab0Sopenharmony_ci 8557777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 8567777dab0Sopenharmony_ci/* Dynamic Source types and interface */ 8577777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 8587777dab0Sopenharmony_ci 8597777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_DYNAMICSOURCE; 8607777dab0Sopenharmony_ci 8617777dab0Sopenharmony_cistruct SLDynamicSourceItf_; 8627777dab0Sopenharmony_citypedef const struct SLDynamicSourceItf_ * const * SLDynamicSourceItf; 8637777dab0Sopenharmony_ci 8647777dab0Sopenharmony_cistruct SLDynamicSourceItf_ { 8657777dab0Sopenharmony_ci SLresult (*SetSource) ( 8667777dab0Sopenharmony_ci SLDynamicSourceItf self, 8677777dab0Sopenharmony_ci SLDataSource *pDataSource 8687777dab0Sopenharmony_ci ); 8697777dab0Sopenharmony_ci}; 8707777dab0Sopenharmony_ci 8717777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 8727777dab0Sopenharmony_ci/* Output Mix interface */ 8737777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 8747777dab0Sopenharmony_ci 8757777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_OUTPUTMIX; 8767777dab0Sopenharmony_ci 8777777dab0Sopenharmony_cistruct SLOutputMixItf_; 8787777dab0Sopenharmony_citypedef const struct SLOutputMixItf_ * const * SLOutputMixItf; 8797777dab0Sopenharmony_ci 8807777dab0Sopenharmony_citypedef void (SLAPIENTRY *slMixDeviceChangeCallback) ( 8817777dab0Sopenharmony_ci SLOutputMixItf caller, 8827777dab0Sopenharmony_ci void *pContext 8837777dab0Sopenharmony_ci); 8847777dab0Sopenharmony_ci 8857777dab0Sopenharmony_ci 8867777dab0Sopenharmony_cistruct SLOutputMixItf_ { 8877777dab0Sopenharmony_ci SLresult (*GetDestinationOutputDeviceIDs) ( 8887777dab0Sopenharmony_ci SLOutputMixItf self, 8897777dab0Sopenharmony_ci SLint32 *pNumDevices, 8907777dab0Sopenharmony_ci SLuint32 *pDeviceIDs 8917777dab0Sopenharmony_ci ); 8927777dab0Sopenharmony_ci SLresult (*RegisterDeviceChangeCallback) ( 8937777dab0Sopenharmony_ci SLOutputMixItf self, 8947777dab0Sopenharmony_ci slMixDeviceChangeCallback callback, 8957777dab0Sopenharmony_ci void *pContext 8967777dab0Sopenharmony_ci ); 8977777dab0Sopenharmony_ci SLresult (*ReRoute)( 8987777dab0Sopenharmony_ci SLOutputMixItf self, 8997777dab0Sopenharmony_ci SLint32 numOutputDevices, 9007777dab0Sopenharmony_ci SLuint32 *pOutputDeviceIDs 9017777dab0Sopenharmony_ci ); 9027777dab0Sopenharmony_ci}; 9037777dab0Sopenharmony_ci 9047777dab0Sopenharmony_ci 9057777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 9067777dab0Sopenharmony_ci/* Playback interface */ 9077777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 9087777dab0Sopenharmony_ci 9097777dab0Sopenharmony_ci/** Playback states */ 9107777dab0Sopenharmony_ci#define SL_PLAYSTATE_STOPPED ((SLuint32) 0x00000001) 9117777dab0Sopenharmony_ci#define SL_PLAYSTATE_PAUSED ((SLuint32) 0x00000002) 9127777dab0Sopenharmony_ci#define SL_PLAYSTATE_PLAYING ((SLuint32) 0x00000003) 9137777dab0Sopenharmony_ci 9147777dab0Sopenharmony_ci/** Play events **/ 9157777dab0Sopenharmony_ci#define SL_PLAYEVENT_HEADATEND ((SLuint32) 0x00000001) 9167777dab0Sopenharmony_ci#define SL_PLAYEVENT_HEADATMARKER ((SLuint32) 0x00000002) 9177777dab0Sopenharmony_ci#define SL_PLAYEVENT_HEADATNEWPOS ((SLuint32) 0x00000004) 9187777dab0Sopenharmony_ci#define SL_PLAYEVENT_HEADMOVING ((SLuint32) 0x00000008) 9197777dab0Sopenharmony_ci#define SL_PLAYEVENT_HEADSTALLED ((SLuint32) 0x00000010) 9207777dab0Sopenharmony_ci 9217777dab0Sopenharmony_ci#define SL_TIME_UNKNOWN ((SLuint32) 0xFFFFFFFF) 9227777dab0Sopenharmony_ci 9237777dab0Sopenharmony_ci 9247777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_PLAY; 9257777dab0Sopenharmony_ci 9267777dab0Sopenharmony_ci/** Playback interface methods */ 9277777dab0Sopenharmony_ci 9287777dab0Sopenharmony_cistruct SLPlayItf_; 9297777dab0Sopenharmony_citypedef const struct SLPlayItf_ * const * SLPlayItf; 9307777dab0Sopenharmony_ci 9317777dab0Sopenharmony_citypedef void (SLAPIENTRY *slPlayCallback) ( 9327777dab0Sopenharmony_ci SLPlayItf caller, 9337777dab0Sopenharmony_ci void *pContext, 9347777dab0Sopenharmony_ci SLuint32 event 9357777dab0Sopenharmony_ci); 9367777dab0Sopenharmony_ci 9377777dab0Sopenharmony_cistruct SLPlayItf_ { 9387777dab0Sopenharmony_ci SLresult (*SetPlayState) ( 9397777dab0Sopenharmony_ci SLPlayItf self, 9407777dab0Sopenharmony_ci SLuint32 state 9417777dab0Sopenharmony_ci ); 9427777dab0Sopenharmony_ci SLresult (*GetPlayState) ( 9437777dab0Sopenharmony_ci SLPlayItf self, 9447777dab0Sopenharmony_ci SLuint32 *pState 9457777dab0Sopenharmony_ci ); 9467777dab0Sopenharmony_ci SLresult (*GetDuration) ( 9477777dab0Sopenharmony_ci SLPlayItf self, 9487777dab0Sopenharmony_ci SLmillisecond *pMsec 9497777dab0Sopenharmony_ci ); 9507777dab0Sopenharmony_ci SLresult (*GetPosition) ( 9517777dab0Sopenharmony_ci SLPlayItf self, 9527777dab0Sopenharmony_ci SLmillisecond *pMsec 9537777dab0Sopenharmony_ci ); 9547777dab0Sopenharmony_ci SLresult (*RegisterCallback) ( 9557777dab0Sopenharmony_ci SLPlayItf self, 9567777dab0Sopenharmony_ci slPlayCallback callback, 9577777dab0Sopenharmony_ci void *pContext 9587777dab0Sopenharmony_ci ); 9597777dab0Sopenharmony_ci SLresult (*SetCallbackEventsMask) ( 9607777dab0Sopenharmony_ci SLPlayItf self, 9617777dab0Sopenharmony_ci SLuint32 eventFlags 9627777dab0Sopenharmony_ci ); 9637777dab0Sopenharmony_ci SLresult (*GetCallbackEventsMask) ( 9647777dab0Sopenharmony_ci SLPlayItf self, 9657777dab0Sopenharmony_ci SLuint32 *pEventFlags 9667777dab0Sopenharmony_ci ); 9677777dab0Sopenharmony_ci SLresult (*SetMarkerPosition) ( 9687777dab0Sopenharmony_ci SLPlayItf self, 9697777dab0Sopenharmony_ci SLmillisecond mSec 9707777dab0Sopenharmony_ci ); 9717777dab0Sopenharmony_ci SLresult (*ClearMarkerPosition) ( 9727777dab0Sopenharmony_ci SLPlayItf self 9737777dab0Sopenharmony_ci ); 9747777dab0Sopenharmony_ci SLresult (*GetMarkerPosition) ( 9757777dab0Sopenharmony_ci SLPlayItf self, 9767777dab0Sopenharmony_ci SLmillisecond *pMsec 9777777dab0Sopenharmony_ci ); 9787777dab0Sopenharmony_ci SLresult (*SetPositionUpdatePeriod) ( 9797777dab0Sopenharmony_ci SLPlayItf self, 9807777dab0Sopenharmony_ci SLmillisecond mSec 9817777dab0Sopenharmony_ci ); 9827777dab0Sopenharmony_ci SLresult (*GetPositionUpdatePeriod) ( 9837777dab0Sopenharmony_ci SLPlayItf self, 9847777dab0Sopenharmony_ci SLmillisecond *pMsec 9857777dab0Sopenharmony_ci ); 9867777dab0Sopenharmony_ci}; 9877777dab0Sopenharmony_ci 9887777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 9897777dab0Sopenharmony_ci/* Prefetch status interface */ 9907777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 9917777dab0Sopenharmony_ci 9927777dab0Sopenharmony_ci#define SL_PREFETCHEVENT_STATUSCHANGE ((SLuint32) 0x00000001) 9937777dab0Sopenharmony_ci#define SL_PREFETCHEVENT_FILLLEVELCHANGE ((SLuint32) 0x00000002) 9947777dab0Sopenharmony_ci 9957777dab0Sopenharmony_ci#define SL_PREFETCHSTATUS_UNDERFLOW ((SLuint32) 0x00000001) 9967777dab0Sopenharmony_ci#define SL_PREFETCHSTATUS_SUFFICIENTDATA ((SLuint32) 0x00000002) 9977777dab0Sopenharmony_ci#define SL_PREFETCHSTATUS_OVERFLOW ((SLuint32) 0x00000003) 9987777dab0Sopenharmony_ci 9997777dab0Sopenharmony_ci 10007777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_PREFETCHSTATUS; 10017777dab0Sopenharmony_ci 10027777dab0Sopenharmony_ci 10037777dab0Sopenharmony_ci/** Prefetch status interface methods */ 10047777dab0Sopenharmony_ci 10057777dab0Sopenharmony_cistruct SLPrefetchStatusItf_; 10067777dab0Sopenharmony_citypedef const struct SLPrefetchStatusItf_ * const * SLPrefetchStatusItf; 10077777dab0Sopenharmony_ci 10087777dab0Sopenharmony_citypedef void (SLAPIENTRY *slPrefetchCallback) ( 10097777dab0Sopenharmony_ci SLPrefetchStatusItf caller, 10107777dab0Sopenharmony_ci void *pContext, 10117777dab0Sopenharmony_ci SLuint32 event 10127777dab0Sopenharmony_ci); 10137777dab0Sopenharmony_ci 10147777dab0Sopenharmony_cistruct SLPrefetchStatusItf_ { 10157777dab0Sopenharmony_ci SLresult (*GetPrefetchStatus) ( 10167777dab0Sopenharmony_ci SLPrefetchStatusItf self, 10177777dab0Sopenharmony_ci SLuint32 *pStatus 10187777dab0Sopenharmony_ci ); 10197777dab0Sopenharmony_ci SLresult (*GetFillLevel) ( 10207777dab0Sopenharmony_ci SLPrefetchStatusItf self, 10217777dab0Sopenharmony_ci SLpermille *pLevel 10227777dab0Sopenharmony_ci ); 10237777dab0Sopenharmony_ci SLresult (*RegisterCallback) ( 10247777dab0Sopenharmony_ci SLPrefetchStatusItf self, 10257777dab0Sopenharmony_ci slPrefetchCallback callback, 10267777dab0Sopenharmony_ci void *pContext 10277777dab0Sopenharmony_ci ); 10287777dab0Sopenharmony_ci SLresult (*SetCallbackEventsMask) ( 10297777dab0Sopenharmony_ci SLPrefetchStatusItf self, 10307777dab0Sopenharmony_ci SLuint32 eventFlags 10317777dab0Sopenharmony_ci ); 10327777dab0Sopenharmony_ci SLresult (*GetCallbackEventsMask) ( 10337777dab0Sopenharmony_ci SLPrefetchStatusItf self, 10347777dab0Sopenharmony_ci SLuint32 *pEventFlags 10357777dab0Sopenharmony_ci ); 10367777dab0Sopenharmony_ci SLresult (*SetFillUpdatePeriod) ( 10377777dab0Sopenharmony_ci SLPrefetchStatusItf self, 10387777dab0Sopenharmony_ci SLpermille period 10397777dab0Sopenharmony_ci ); 10407777dab0Sopenharmony_ci SLresult (*GetFillUpdatePeriod) ( 10417777dab0Sopenharmony_ci SLPrefetchStatusItf self, 10427777dab0Sopenharmony_ci SLpermille *pPeriod 10437777dab0Sopenharmony_ci ); 10447777dab0Sopenharmony_ci}; 10457777dab0Sopenharmony_ci 10467777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 10477777dab0Sopenharmony_ci/* Playback Rate interface */ 10487777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 10497777dab0Sopenharmony_ci 10507777dab0Sopenharmony_ci#define SL_RATEPROP_RESERVED1 ((SLuint32) 0x00000001) 10517777dab0Sopenharmony_ci#define SL_RATEPROP_RESERVED2 ((SLuint32) 0x00000002) 10527777dab0Sopenharmony_ci#define SL_RATEPROP_SILENTAUDIO ((SLuint32) 0x00000100) 10537777dab0Sopenharmony_ci#define SL_RATEPROP_STAGGEREDAUDIO ((SLuint32) 0x00000200) 10547777dab0Sopenharmony_ci#define SL_RATEPROP_NOPITCHCORAUDIO ((SLuint32) 0x00000400) 10557777dab0Sopenharmony_ci#define SL_RATEPROP_PITCHCORAUDIO ((SLuint32) 0x00000800) 10567777dab0Sopenharmony_ci 10577777dab0Sopenharmony_ci 10587777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_PLAYBACKRATE; 10597777dab0Sopenharmony_ci 10607777dab0Sopenharmony_cistruct SLPlaybackRateItf_; 10617777dab0Sopenharmony_citypedef const struct SLPlaybackRateItf_ * const * SLPlaybackRateItf; 10627777dab0Sopenharmony_ci 10637777dab0Sopenharmony_cistruct SLPlaybackRateItf_ { 10647777dab0Sopenharmony_ci SLresult (*SetRate)( 10657777dab0Sopenharmony_ci SLPlaybackRateItf self, 10667777dab0Sopenharmony_ci SLpermille rate 10677777dab0Sopenharmony_ci ); 10687777dab0Sopenharmony_ci SLresult (*GetRate)( 10697777dab0Sopenharmony_ci SLPlaybackRateItf self, 10707777dab0Sopenharmony_ci SLpermille *pRate 10717777dab0Sopenharmony_ci ); 10727777dab0Sopenharmony_ci SLresult (*SetPropertyConstraints)( 10737777dab0Sopenharmony_ci SLPlaybackRateItf self, 10747777dab0Sopenharmony_ci SLuint32 constraints 10757777dab0Sopenharmony_ci ); 10767777dab0Sopenharmony_ci SLresult (*GetProperties)( 10777777dab0Sopenharmony_ci SLPlaybackRateItf self, 10787777dab0Sopenharmony_ci SLuint32 *pProperties 10797777dab0Sopenharmony_ci ); 10807777dab0Sopenharmony_ci SLresult (*GetCapabilitiesOfRate)( 10817777dab0Sopenharmony_ci SLPlaybackRateItf self, 10827777dab0Sopenharmony_ci SLpermille rate, 10837777dab0Sopenharmony_ci SLuint32 *pCapabilities 10847777dab0Sopenharmony_ci ); 10857777dab0Sopenharmony_ci SLresult (*GetRateRange) ( 10867777dab0Sopenharmony_ci SLPlaybackRateItf self, 10877777dab0Sopenharmony_ci SLuint8 index, 10887777dab0Sopenharmony_ci SLpermille *pMinRate, 10897777dab0Sopenharmony_ci SLpermille *pMaxRate, 10907777dab0Sopenharmony_ci SLpermille *pStepSize, 10917777dab0Sopenharmony_ci SLuint32 *pCapabilities 10927777dab0Sopenharmony_ci ); 10937777dab0Sopenharmony_ci}; 10947777dab0Sopenharmony_ci 10957777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 10967777dab0Sopenharmony_ci/* Seek Interface */ 10977777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 10987777dab0Sopenharmony_ci 10997777dab0Sopenharmony_ci#define SL_SEEKMODE_FAST ((SLuint32) 0x0001) 11007777dab0Sopenharmony_ci#define SL_SEEKMODE_ACCURATE ((SLuint32) 0x0002) 11017777dab0Sopenharmony_ci 11027777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_SEEK; 11037777dab0Sopenharmony_ci 11047777dab0Sopenharmony_cistruct SLSeekItf_; 11057777dab0Sopenharmony_citypedef const struct SLSeekItf_ * const * SLSeekItf; 11067777dab0Sopenharmony_ci 11077777dab0Sopenharmony_cistruct SLSeekItf_ { 11087777dab0Sopenharmony_ci SLresult (*SetPosition)( 11097777dab0Sopenharmony_ci SLSeekItf self, 11107777dab0Sopenharmony_ci SLmillisecond pos, 11117777dab0Sopenharmony_ci SLuint32 seekMode 11127777dab0Sopenharmony_ci ); 11137777dab0Sopenharmony_ci SLresult (*SetLoop)( 11147777dab0Sopenharmony_ci SLSeekItf self, 11157777dab0Sopenharmony_ci SLboolean loopEnable, 11167777dab0Sopenharmony_ci SLmillisecond startPos, 11177777dab0Sopenharmony_ci SLmillisecond endPos 11187777dab0Sopenharmony_ci ); 11197777dab0Sopenharmony_ci SLresult (*GetLoop)( 11207777dab0Sopenharmony_ci SLSeekItf self, 11217777dab0Sopenharmony_ci SLboolean *pLoopEnabled, 11227777dab0Sopenharmony_ci SLmillisecond *pStartPos, 11237777dab0Sopenharmony_ci SLmillisecond *pEndPos 11247777dab0Sopenharmony_ci ); 11257777dab0Sopenharmony_ci}; 11267777dab0Sopenharmony_ci 11277777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 11287777dab0Sopenharmony_ci/* Standard Recording Interface */ 11297777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 11307777dab0Sopenharmony_ci 11317777dab0Sopenharmony_ci/** Recording states */ 11327777dab0Sopenharmony_ci#define SL_RECORDSTATE_STOPPED ((SLuint32) 0x00000001) 11337777dab0Sopenharmony_ci#define SL_RECORDSTATE_PAUSED ((SLuint32) 0x00000002) 11347777dab0Sopenharmony_ci#define SL_RECORDSTATE_RECORDING ((SLuint32) 0x00000003) 11357777dab0Sopenharmony_ci 11367777dab0Sopenharmony_ci 11377777dab0Sopenharmony_ci/** Record event **/ 11387777dab0Sopenharmony_ci#define SL_RECORDEVENT_HEADATLIMIT ((SLuint32) 0x00000001) 11397777dab0Sopenharmony_ci#define SL_RECORDEVENT_HEADATMARKER ((SLuint32) 0x00000002) 11407777dab0Sopenharmony_ci#define SL_RECORDEVENT_HEADATNEWPOS ((SLuint32) 0x00000004) 11417777dab0Sopenharmony_ci#define SL_RECORDEVENT_HEADMOVING ((SLuint32) 0x00000008) 11427777dab0Sopenharmony_ci#define SL_RECORDEVENT_HEADSTALLED ((SLuint32) 0x00000010) 11437777dab0Sopenharmony_ci/* Note: SL_RECORDEVENT_BUFFER_INSUFFICIENT is deprecated, use SL_RECORDEVENT_BUFFER_FULL instead. */ 11447777dab0Sopenharmony_ci#define SL_RECORDEVENT_BUFFER_INSUFFICIENT ((SLuint32) 0x00000020) 11457777dab0Sopenharmony_ci#define SL_RECORDEVENT_BUFFER_FULL ((SLuint32) 0x00000020) 11467777dab0Sopenharmony_ci 11477777dab0Sopenharmony_ci 11487777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_RECORD; 11497777dab0Sopenharmony_ci 11507777dab0Sopenharmony_cistruct SLRecordItf_; 11517777dab0Sopenharmony_citypedef const struct SLRecordItf_ * const * SLRecordItf; 11527777dab0Sopenharmony_ci 11537777dab0Sopenharmony_citypedef void (SLAPIENTRY *slRecordCallback) ( 11547777dab0Sopenharmony_ci SLRecordItf caller, 11557777dab0Sopenharmony_ci void *pContext, 11567777dab0Sopenharmony_ci SLuint32 event 11577777dab0Sopenharmony_ci); 11587777dab0Sopenharmony_ci 11597777dab0Sopenharmony_ci/** Recording interface methods */ 11607777dab0Sopenharmony_cistruct SLRecordItf_ { 11617777dab0Sopenharmony_ci SLresult (*SetRecordState) ( 11627777dab0Sopenharmony_ci SLRecordItf self, 11637777dab0Sopenharmony_ci SLuint32 state 11647777dab0Sopenharmony_ci ); 11657777dab0Sopenharmony_ci SLresult (*GetRecordState) ( 11667777dab0Sopenharmony_ci SLRecordItf self, 11677777dab0Sopenharmony_ci SLuint32 *pState 11687777dab0Sopenharmony_ci ); 11697777dab0Sopenharmony_ci SLresult (*SetDurationLimit) ( 11707777dab0Sopenharmony_ci SLRecordItf self, 11717777dab0Sopenharmony_ci SLmillisecond msec 11727777dab0Sopenharmony_ci ); 11737777dab0Sopenharmony_ci SLresult (*GetPosition) ( 11747777dab0Sopenharmony_ci SLRecordItf self, 11757777dab0Sopenharmony_ci SLmillisecond *pMsec 11767777dab0Sopenharmony_ci ); 11777777dab0Sopenharmony_ci SLresult (*RegisterCallback) ( 11787777dab0Sopenharmony_ci SLRecordItf self, 11797777dab0Sopenharmony_ci slRecordCallback callback, 11807777dab0Sopenharmony_ci void *pContext 11817777dab0Sopenharmony_ci ); 11827777dab0Sopenharmony_ci SLresult (*SetCallbackEventsMask) ( 11837777dab0Sopenharmony_ci SLRecordItf self, 11847777dab0Sopenharmony_ci SLuint32 eventFlags 11857777dab0Sopenharmony_ci ); 11867777dab0Sopenharmony_ci SLresult (*GetCallbackEventsMask) ( 11877777dab0Sopenharmony_ci SLRecordItf self, 11887777dab0Sopenharmony_ci SLuint32 *pEventFlags 11897777dab0Sopenharmony_ci ); 11907777dab0Sopenharmony_ci SLresult (*SetMarkerPosition) ( 11917777dab0Sopenharmony_ci SLRecordItf self, 11927777dab0Sopenharmony_ci SLmillisecond mSec 11937777dab0Sopenharmony_ci ); 11947777dab0Sopenharmony_ci SLresult (*ClearMarkerPosition) ( 11957777dab0Sopenharmony_ci SLRecordItf self 11967777dab0Sopenharmony_ci ); 11977777dab0Sopenharmony_ci SLresult (*GetMarkerPosition) ( 11987777dab0Sopenharmony_ci SLRecordItf self, 11997777dab0Sopenharmony_ci SLmillisecond *pMsec 12007777dab0Sopenharmony_ci ); 12017777dab0Sopenharmony_ci SLresult (*SetPositionUpdatePeriod) ( 12027777dab0Sopenharmony_ci SLRecordItf self, 12037777dab0Sopenharmony_ci SLmillisecond mSec 12047777dab0Sopenharmony_ci ); 12057777dab0Sopenharmony_ci SLresult (*GetPositionUpdatePeriod) ( 12067777dab0Sopenharmony_ci SLRecordItf self, 12077777dab0Sopenharmony_ci SLmillisecond *pMsec 12087777dab0Sopenharmony_ci ); 12097777dab0Sopenharmony_ci}; 12107777dab0Sopenharmony_ci 12117777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 12127777dab0Sopenharmony_ci/* Equalizer interface */ 12137777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 12147777dab0Sopenharmony_ci 12157777dab0Sopenharmony_ci#define SL_EQUALIZER_UNDEFINED ((SLuint16) 0xFFFF) 12167777dab0Sopenharmony_ci 12177777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_EQUALIZER; 12187777dab0Sopenharmony_ci 12197777dab0Sopenharmony_cistruct SLEqualizerItf_; 12207777dab0Sopenharmony_citypedef const struct SLEqualizerItf_ * const * SLEqualizerItf; 12217777dab0Sopenharmony_ci 12227777dab0Sopenharmony_cistruct SLEqualizerItf_ { 12237777dab0Sopenharmony_ci SLresult (*SetEnabled)( 12247777dab0Sopenharmony_ci SLEqualizerItf self, 12257777dab0Sopenharmony_ci SLboolean enabled 12267777dab0Sopenharmony_ci ); 12277777dab0Sopenharmony_ci SLresult (*IsEnabled)( 12287777dab0Sopenharmony_ci SLEqualizerItf self, 12297777dab0Sopenharmony_ci SLboolean *pEnabled 12307777dab0Sopenharmony_ci ); 12317777dab0Sopenharmony_ci SLresult (*GetNumberOfBands)( 12327777dab0Sopenharmony_ci SLEqualizerItf self, 12337777dab0Sopenharmony_ci SLuint16 *pAmount 12347777dab0Sopenharmony_ci ); 12357777dab0Sopenharmony_ci SLresult (*GetBandLevelRange)( 12367777dab0Sopenharmony_ci SLEqualizerItf self, 12377777dab0Sopenharmony_ci SLmillibel *pMin, 12387777dab0Sopenharmony_ci SLmillibel *pMax 12397777dab0Sopenharmony_ci ); 12407777dab0Sopenharmony_ci SLresult (*SetBandLevel)( 12417777dab0Sopenharmony_ci SLEqualizerItf self, 12427777dab0Sopenharmony_ci SLuint16 band, 12437777dab0Sopenharmony_ci SLmillibel level 12447777dab0Sopenharmony_ci ); 12457777dab0Sopenharmony_ci SLresult (*GetBandLevel)( 12467777dab0Sopenharmony_ci SLEqualizerItf self, 12477777dab0Sopenharmony_ci SLuint16 band, 12487777dab0Sopenharmony_ci SLmillibel *pLevel 12497777dab0Sopenharmony_ci ); 12507777dab0Sopenharmony_ci SLresult (*GetCenterFreq)( 12517777dab0Sopenharmony_ci SLEqualizerItf self, 12527777dab0Sopenharmony_ci SLuint16 band, 12537777dab0Sopenharmony_ci SLmilliHertz *pCenter 12547777dab0Sopenharmony_ci ); 12557777dab0Sopenharmony_ci SLresult (*GetBandFreqRange)( 12567777dab0Sopenharmony_ci SLEqualizerItf self, 12577777dab0Sopenharmony_ci SLuint16 band, 12587777dab0Sopenharmony_ci SLmilliHertz *pMin, 12597777dab0Sopenharmony_ci SLmilliHertz *pMax 12607777dab0Sopenharmony_ci ); 12617777dab0Sopenharmony_ci SLresult (*GetBand)( 12627777dab0Sopenharmony_ci SLEqualizerItf self, 12637777dab0Sopenharmony_ci SLmilliHertz frequency, 12647777dab0Sopenharmony_ci SLuint16 *pBand 12657777dab0Sopenharmony_ci ); 12667777dab0Sopenharmony_ci SLresult (*GetCurrentPreset)( 12677777dab0Sopenharmony_ci SLEqualizerItf self, 12687777dab0Sopenharmony_ci SLuint16 *pPreset 12697777dab0Sopenharmony_ci ); 12707777dab0Sopenharmony_ci SLresult (*UsePreset)( 12717777dab0Sopenharmony_ci SLEqualizerItf self, 12727777dab0Sopenharmony_ci SLuint16 index 12737777dab0Sopenharmony_ci ); 12747777dab0Sopenharmony_ci SLresult (*GetNumberOfPresets)( 12757777dab0Sopenharmony_ci SLEqualizerItf self, 12767777dab0Sopenharmony_ci SLuint16 *pNumPresets 12777777dab0Sopenharmony_ci ); 12787777dab0Sopenharmony_ci SLresult (*GetPresetName)( 12797777dab0Sopenharmony_ci SLEqualizerItf self, 12807777dab0Sopenharmony_ci SLuint16 index, 12817777dab0Sopenharmony_ci const SLchar ** ppName 12827777dab0Sopenharmony_ci ); 12837777dab0Sopenharmony_ci}; 12847777dab0Sopenharmony_ci 12857777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 12867777dab0Sopenharmony_ci/* Volume Interface */ 12877777dab0Sopenharmony_ci/* --------------------------------------------------------------------------*/ 12887777dab0Sopenharmony_ci 12897777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_VOLUME; 12907777dab0Sopenharmony_ci 12917777dab0Sopenharmony_cistruct SLVolumeItf_; 12927777dab0Sopenharmony_citypedef const struct SLVolumeItf_ * const * SLVolumeItf; 12937777dab0Sopenharmony_ci 12947777dab0Sopenharmony_cistruct SLVolumeItf_ { 12957777dab0Sopenharmony_ci SLresult (*SetVolumeLevel) ( 12967777dab0Sopenharmony_ci SLVolumeItf self, 12977777dab0Sopenharmony_ci SLmillibel level 12987777dab0Sopenharmony_ci ); 12997777dab0Sopenharmony_ci SLresult (*GetVolumeLevel) ( 13007777dab0Sopenharmony_ci SLVolumeItf self, 13017777dab0Sopenharmony_ci SLmillibel *pLevel 13027777dab0Sopenharmony_ci ); 13037777dab0Sopenharmony_ci SLresult (*GetMaxVolumeLevel) ( 13047777dab0Sopenharmony_ci SLVolumeItf self, 13057777dab0Sopenharmony_ci SLmillibel *pMaxLevel 13067777dab0Sopenharmony_ci ); 13077777dab0Sopenharmony_ci SLresult (*SetMute) ( 13087777dab0Sopenharmony_ci SLVolumeItf self, 13097777dab0Sopenharmony_ci SLboolean mute 13107777dab0Sopenharmony_ci ); 13117777dab0Sopenharmony_ci SLresult (*GetMute) ( 13127777dab0Sopenharmony_ci SLVolumeItf self, 13137777dab0Sopenharmony_ci SLboolean *pMute 13147777dab0Sopenharmony_ci ); 13157777dab0Sopenharmony_ci SLresult (*EnableStereoPosition) ( 13167777dab0Sopenharmony_ci SLVolumeItf self, 13177777dab0Sopenharmony_ci SLboolean enable 13187777dab0Sopenharmony_ci ); 13197777dab0Sopenharmony_ci SLresult (*IsEnabledStereoPosition) ( 13207777dab0Sopenharmony_ci SLVolumeItf self, 13217777dab0Sopenharmony_ci SLboolean *pEnable 13227777dab0Sopenharmony_ci ); 13237777dab0Sopenharmony_ci SLresult (*SetStereoPosition) ( 13247777dab0Sopenharmony_ci SLVolumeItf self, 13257777dab0Sopenharmony_ci SLpermille stereoPosition 13267777dab0Sopenharmony_ci ); 13277777dab0Sopenharmony_ci SLresult (*GetStereoPosition) ( 13287777dab0Sopenharmony_ci SLVolumeItf self, 13297777dab0Sopenharmony_ci SLpermille *pStereoPosition 13307777dab0Sopenharmony_ci ); 13317777dab0Sopenharmony_ci}; 13327777dab0Sopenharmony_ci 13337777dab0Sopenharmony_ci 13347777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 13357777dab0Sopenharmony_ci/* Device Volume Interface */ 13367777dab0Sopenharmony_ci/* --------------------------------------------------------------------------*/ 13377777dab0Sopenharmony_ci 13387777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_DEVICEVOLUME; 13397777dab0Sopenharmony_ci 13407777dab0Sopenharmony_cistruct SLDeviceVolumeItf_; 13417777dab0Sopenharmony_citypedef const struct SLDeviceVolumeItf_ * const * SLDeviceVolumeItf; 13427777dab0Sopenharmony_ci 13437777dab0Sopenharmony_cistruct SLDeviceVolumeItf_ { 13447777dab0Sopenharmony_ci SLresult (*GetVolumeScale) ( 13457777dab0Sopenharmony_ci SLDeviceVolumeItf self, 13467777dab0Sopenharmony_ci SLuint32 deviceID, 13477777dab0Sopenharmony_ci SLint32 *pMinValue, 13487777dab0Sopenharmony_ci SLint32 *pMaxValue, 13497777dab0Sopenharmony_ci SLboolean *pIsMillibelScale 13507777dab0Sopenharmony_ci ); 13517777dab0Sopenharmony_ci SLresult (*SetVolume) ( 13527777dab0Sopenharmony_ci SLDeviceVolumeItf self, 13537777dab0Sopenharmony_ci SLuint32 deviceID, 13547777dab0Sopenharmony_ci SLint32 volume 13557777dab0Sopenharmony_ci ); 13567777dab0Sopenharmony_ci SLresult (*GetVolume) ( 13577777dab0Sopenharmony_ci SLDeviceVolumeItf self, 13587777dab0Sopenharmony_ci SLuint32 deviceID, 13597777dab0Sopenharmony_ci SLint32 *pVolume 13607777dab0Sopenharmony_ci ); 13617777dab0Sopenharmony_ci}; 13627777dab0Sopenharmony_ci 13637777dab0Sopenharmony_ci 13647777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 13657777dab0Sopenharmony_ci/* Buffer Queue Interface */ 13667777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 13677777dab0Sopenharmony_ci 13687777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_BUFFERQUEUE; 13697777dab0Sopenharmony_ci 13707777dab0Sopenharmony_cistruct SLBufferQueueItf_; 13717777dab0Sopenharmony_citypedef const struct SLBufferQueueItf_ * const * SLBufferQueueItf; 13727777dab0Sopenharmony_ci 13737777dab0Sopenharmony_citypedef void (SLAPIENTRY *slBufferQueueCallback)( 13747777dab0Sopenharmony_ci SLBufferQueueItf caller, 13757777dab0Sopenharmony_ci void *pContext 13767777dab0Sopenharmony_ci); 13777777dab0Sopenharmony_ci 13787777dab0Sopenharmony_ci/** Buffer queue state **/ 13797777dab0Sopenharmony_ci 13807777dab0Sopenharmony_citypedef struct SLBufferQueueState_ { 13817777dab0Sopenharmony_ci SLuint32 count; 13827777dab0Sopenharmony_ci SLuint32 playIndex; 13837777dab0Sopenharmony_ci} SLBufferQueueState; 13847777dab0Sopenharmony_ci 13857777dab0Sopenharmony_ci 13867777dab0Sopenharmony_cistruct SLBufferQueueItf_ { 13877777dab0Sopenharmony_ci SLresult (*Enqueue) ( 13887777dab0Sopenharmony_ci SLBufferQueueItf self, 13897777dab0Sopenharmony_ci const void *pBuffer, 13907777dab0Sopenharmony_ci SLuint32 size 13917777dab0Sopenharmony_ci ); 13927777dab0Sopenharmony_ci SLresult (*Clear) ( 13937777dab0Sopenharmony_ci SLBufferQueueItf self 13947777dab0Sopenharmony_ci ); 13957777dab0Sopenharmony_ci SLresult (*GetState) ( 13967777dab0Sopenharmony_ci SLBufferQueueItf self, 13977777dab0Sopenharmony_ci SLBufferQueueState *pState 13987777dab0Sopenharmony_ci ); 13997777dab0Sopenharmony_ci SLresult (*RegisterCallback) ( 14007777dab0Sopenharmony_ci SLBufferQueueItf self, 14017777dab0Sopenharmony_ci slBufferQueueCallback callback, 14027777dab0Sopenharmony_ci void* pContext 14037777dab0Sopenharmony_ci ); 14047777dab0Sopenharmony_ci}; 14057777dab0Sopenharmony_ci 14067777dab0Sopenharmony_ci 14077777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 14087777dab0Sopenharmony_ci/* PresetReverb */ 14097777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 14107777dab0Sopenharmony_ci 14117777dab0Sopenharmony_ci#define SL_REVERBPRESET_NONE ((SLuint16) 0x0000) 14127777dab0Sopenharmony_ci#define SL_REVERBPRESET_SMALLROOM ((SLuint16) 0x0001) 14137777dab0Sopenharmony_ci#define SL_REVERBPRESET_MEDIUMROOM ((SLuint16) 0x0002) 14147777dab0Sopenharmony_ci#define SL_REVERBPRESET_LARGEROOM ((SLuint16) 0x0003) 14157777dab0Sopenharmony_ci#define SL_REVERBPRESET_MEDIUMHALL ((SLuint16) 0x0004) 14167777dab0Sopenharmony_ci#define SL_REVERBPRESET_LARGEHALL ((SLuint16) 0x0005) 14177777dab0Sopenharmony_ci#define SL_REVERBPRESET_PLATE ((SLuint16) 0x0006) 14187777dab0Sopenharmony_ci 14197777dab0Sopenharmony_ci 14207777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_PRESETREVERB; 14217777dab0Sopenharmony_ci 14227777dab0Sopenharmony_cistruct SLPresetReverbItf_; 14237777dab0Sopenharmony_citypedef const struct SLPresetReverbItf_ * const * SLPresetReverbItf; 14247777dab0Sopenharmony_ci 14257777dab0Sopenharmony_cistruct SLPresetReverbItf_ { 14267777dab0Sopenharmony_ci SLresult (*SetPreset) ( 14277777dab0Sopenharmony_ci SLPresetReverbItf self, 14287777dab0Sopenharmony_ci SLuint16 preset 14297777dab0Sopenharmony_ci ); 14307777dab0Sopenharmony_ci SLresult (*GetPreset) ( 14317777dab0Sopenharmony_ci SLPresetReverbItf self, 14327777dab0Sopenharmony_ci SLuint16 *pPreset 14337777dab0Sopenharmony_ci ); 14347777dab0Sopenharmony_ci}; 14357777dab0Sopenharmony_ci 14367777dab0Sopenharmony_ci 14377777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 14387777dab0Sopenharmony_ci/* EnvironmentalReverb */ 14397777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 14407777dab0Sopenharmony_ci 14417777dab0Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_DEFAULT \ 14427777dab0Sopenharmony_ci { SL_MILLIBEL_MIN, 0, 1000, 500, SL_MILLIBEL_MIN, 20, SL_MILLIBEL_MIN, 40, 1000,1000 } 14437777dab0Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_GENERIC \ 14447777dab0Sopenharmony_ci { -1000, -100, 1490, 830, -2602, 7, 200, 11, 1000,1000 } 14457777dab0Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_PADDEDCELL \ 14467777dab0Sopenharmony_ci { -1000,-6000, 170, 100, -1204, 1, 207, 2, 1000,1000 } 14477777dab0Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_ROOM \ 14487777dab0Sopenharmony_ci { -1000, -454, 400, 830, -1646, 2, 53, 3, 1000,1000 } 14497777dab0Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_BATHROOM \ 14507777dab0Sopenharmony_ci { -1000,-1200, 1490, 540, -370, 7, 1030, 11, 1000, 600 } 14517777dab0Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_LIVINGROOM \ 14527777dab0Sopenharmony_ci { -1000,-6000, 500, 100, -1376, 3, -1104, 4, 1000,1000 } 14537777dab0Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_STONEROOM \ 14547777dab0Sopenharmony_ci { -1000, -300, 2310, 640, -711, 12, 83, 17, 1000,1000 } 14557777dab0Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_AUDITORIUM \ 14567777dab0Sopenharmony_ci { -1000, -476, 4320, 590, -789, 20, -289, 30, 1000,1000 } 14577777dab0Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_CONCERTHALL \ 14587777dab0Sopenharmony_ci { -1000, -500, 3920, 700, -1230, 20, -2, 29, 1000,1000 } 14597777dab0Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_CAVE \ 14607777dab0Sopenharmony_ci { -1000, 0, 2910, 1300, -602, 15, -302, 22, 1000,1000 } 14617777dab0Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_ARENA \ 14627777dab0Sopenharmony_ci { -1000, -698, 7240, 330, -1166, 20, 16, 30, 1000,1000 } 14637777dab0Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_HANGAR \ 14647777dab0Sopenharmony_ci { -1000,-1000, 10050, 230, -602, 20, 198, 30, 1000,1000 } 14657777dab0Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_CARPETEDHALLWAY \ 14667777dab0Sopenharmony_ci { -1000,-4000, 300, 100, -1831, 2, -1630, 30, 1000,1000 } 14677777dab0Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_HALLWAY \ 14687777dab0Sopenharmony_ci { -1000, -300, 1490, 590, -1219, 7, 441, 11, 1000,1000 } 14697777dab0Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_STONECORRIDOR \ 14707777dab0Sopenharmony_ci { -1000, -237, 2700, 790, -1214, 13, 395, 20, 1000,1000 } 14717777dab0Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_ALLEY \ 14727777dab0Sopenharmony_ci { -1000, -270, 1490, 860, -1204, 7, -4, 11, 1000,1000 } 14737777dab0Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_FOREST \ 14747777dab0Sopenharmony_ci { -1000,-3300, 1490, 540, -2560, 162, -613, 88, 790,1000 } 14757777dab0Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_CITY \ 14767777dab0Sopenharmony_ci { -1000, -800, 1490, 670, -2273, 7, -2217, 11, 500,1000 } 14777777dab0Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_MOUNTAINS \ 14787777dab0Sopenharmony_ci { -1000,-2500, 1490, 210, -2780, 300, -2014, 100, 270,1000 } 14797777dab0Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_QUARRY \ 14807777dab0Sopenharmony_ci { -1000,-1000, 1490, 830, SL_MILLIBEL_MIN, 61, 500, 25, 1000,1000 } 14817777dab0Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_PLAIN \ 14827777dab0Sopenharmony_ci { -1000,-2000, 1490, 500, -2466, 179, -2514, 100, 210,1000 } 14837777dab0Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_PARKINGLOT \ 14847777dab0Sopenharmony_ci { -1000, 0, 1650, 1500, -1363, 8, -1153, 12, 1000,1000 } 14857777dab0Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_SEWERPIPE \ 14867777dab0Sopenharmony_ci { -1000,-1000, 2810, 140, 429, 14, 648, 21, 800, 600 } 14877777dab0Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_UNDERWATER \ 14887777dab0Sopenharmony_ci { -1000,-4000, 1490, 100, -449, 7, 1700, 11, 1000,1000 } 14897777dab0Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_SMALLROOM \ 14907777dab0Sopenharmony_ci { -1000,-600, 1100, 830, -400, 5, 500, 10, 1000, 1000 } 14917777dab0Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_MEDIUMROOM \ 14927777dab0Sopenharmony_ci { -1000,-600, 1300, 830, -1000, 20, -200, 20, 1000, 1000 } 14937777dab0Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_LARGEROOM \ 14947777dab0Sopenharmony_ci { -1000,-600, 1500, 830, -1600, 5, -1000, 40, 1000, 1000 } 14957777dab0Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_MEDIUMHALL \ 14967777dab0Sopenharmony_ci { -1000,-600, 1800, 700, -1300, 15, -800, 30, 1000, 1000 } 14977777dab0Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_LARGEHALL \ 14987777dab0Sopenharmony_ci { -1000,-600, 1800, 700, -2000, 30, -1400, 60, 1000, 1000 } 14997777dab0Sopenharmony_ci#define SL_I3DL2_ENVIRONMENT_PRESET_PLATE \ 15007777dab0Sopenharmony_ci { -1000,-200, 1300, 900, 0, 2, 0, 10, 1000, 750 } 15017777dab0Sopenharmony_ci 15027777dab0Sopenharmony_ci 15037777dab0Sopenharmony_citypedef struct SLEnvironmentalReverbSettings_ { 15047777dab0Sopenharmony_ci SLmillibel roomLevel; 15057777dab0Sopenharmony_ci SLmillibel roomHFLevel; 15067777dab0Sopenharmony_ci SLmillisecond decayTime; 15077777dab0Sopenharmony_ci SLpermille decayHFRatio; 15087777dab0Sopenharmony_ci SLmillibel reflectionsLevel; 15097777dab0Sopenharmony_ci SLmillisecond reflectionsDelay; 15107777dab0Sopenharmony_ci SLmillibel reverbLevel; 15117777dab0Sopenharmony_ci SLmillisecond reverbDelay; 15127777dab0Sopenharmony_ci SLpermille diffusion; 15137777dab0Sopenharmony_ci SLpermille density; 15147777dab0Sopenharmony_ci} SLEnvironmentalReverbSettings; 15157777dab0Sopenharmony_ci 15167777dab0Sopenharmony_ci 15177777dab0Sopenharmony_ci 15187777dab0Sopenharmony_ci 15197777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_ENVIRONMENTALREVERB; 15207777dab0Sopenharmony_ci 15217777dab0Sopenharmony_ci 15227777dab0Sopenharmony_cistruct SLEnvironmentalReverbItf_; 15237777dab0Sopenharmony_citypedef const struct SLEnvironmentalReverbItf_ * const * SLEnvironmentalReverbItf; 15247777dab0Sopenharmony_ci 15257777dab0Sopenharmony_cistruct SLEnvironmentalReverbItf_ { 15267777dab0Sopenharmony_ci SLresult (*SetRoomLevel) ( 15277777dab0Sopenharmony_ci SLEnvironmentalReverbItf self, 15287777dab0Sopenharmony_ci SLmillibel room 15297777dab0Sopenharmony_ci ); 15307777dab0Sopenharmony_ci SLresult (*GetRoomLevel) ( 15317777dab0Sopenharmony_ci SLEnvironmentalReverbItf self, 15327777dab0Sopenharmony_ci SLmillibel *pRoom 15337777dab0Sopenharmony_ci ); 15347777dab0Sopenharmony_ci SLresult (*SetRoomHFLevel) ( 15357777dab0Sopenharmony_ci SLEnvironmentalReverbItf self, 15367777dab0Sopenharmony_ci SLmillibel roomHF 15377777dab0Sopenharmony_ci ); 15387777dab0Sopenharmony_ci SLresult (*GetRoomHFLevel) ( 15397777dab0Sopenharmony_ci SLEnvironmentalReverbItf self, 15407777dab0Sopenharmony_ci SLmillibel *pRoomHF 15417777dab0Sopenharmony_ci ); 15427777dab0Sopenharmony_ci SLresult (*SetDecayTime) ( 15437777dab0Sopenharmony_ci SLEnvironmentalReverbItf self, 15447777dab0Sopenharmony_ci SLmillisecond decayTime 15457777dab0Sopenharmony_ci ); 15467777dab0Sopenharmony_ci SLresult (*GetDecayTime) ( 15477777dab0Sopenharmony_ci SLEnvironmentalReverbItf self, 15487777dab0Sopenharmony_ci SLmillisecond *pDecayTime 15497777dab0Sopenharmony_ci ); 15507777dab0Sopenharmony_ci SLresult (*SetDecayHFRatio) ( 15517777dab0Sopenharmony_ci SLEnvironmentalReverbItf self, 15527777dab0Sopenharmony_ci SLpermille decayHFRatio 15537777dab0Sopenharmony_ci ); 15547777dab0Sopenharmony_ci SLresult (*GetDecayHFRatio) ( 15557777dab0Sopenharmony_ci SLEnvironmentalReverbItf self, 15567777dab0Sopenharmony_ci SLpermille *pDecayHFRatio 15577777dab0Sopenharmony_ci ); 15587777dab0Sopenharmony_ci SLresult (*SetReflectionsLevel) ( 15597777dab0Sopenharmony_ci SLEnvironmentalReverbItf self, 15607777dab0Sopenharmony_ci SLmillibel reflectionsLevel 15617777dab0Sopenharmony_ci ); 15627777dab0Sopenharmony_ci SLresult (*GetReflectionsLevel) ( 15637777dab0Sopenharmony_ci SLEnvironmentalReverbItf self, 15647777dab0Sopenharmony_ci SLmillibel *pReflectionsLevel 15657777dab0Sopenharmony_ci ); 15667777dab0Sopenharmony_ci SLresult (*SetReflectionsDelay) ( 15677777dab0Sopenharmony_ci SLEnvironmentalReverbItf self, 15687777dab0Sopenharmony_ci SLmillisecond reflectionsDelay 15697777dab0Sopenharmony_ci ); 15707777dab0Sopenharmony_ci SLresult (*GetReflectionsDelay) ( 15717777dab0Sopenharmony_ci SLEnvironmentalReverbItf self, 15727777dab0Sopenharmony_ci SLmillisecond *pReflectionsDelay 15737777dab0Sopenharmony_ci ); 15747777dab0Sopenharmony_ci SLresult (*SetReverbLevel) ( 15757777dab0Sopenharmony_ci SLEnvironmentalReverbItf self, 15767777dab0Sopenharmony_ci SLmillibel reverbLevel 15777777dab0Sopenharmony_ci ); 15787777dab0Sopenharmony_ci SLresult (*GetReverbLevel) ( 15797777dab0Sopenharmony_ci SLEnvironmentalReverbItf self, 15807777dab0Sopenharmony_ci SLmillibel *pReverbLevel 15817777dab0Sopenharmony_ci ); 15827777dab0Sopenharmony_ci SLresult (*SetReverbDelay) ( 15837777dab0Sopenharmony_ci SLEnvironmentalReverbItf self, 15847777dab0Sopenharmony_ci SLmillisecond reverbDelay 15857777dab0Sopenharmony_ci ); 15867777dab0Sopenharmony_ci SLresult (*GetReverbDelay) ( 15877777dab0Sopenharmony_ci SLEnvironmentalReverbItf self, 15887777dab0Sopenharmony_ci SLmillisecond *pReverbDelay 15897777dab0Sopenharmony_ci ); 15907777dab0Sopenharmony_ci SLresult (*SetDiffusion) ( 15917777dab0Sopenharmony_ci SLEnvironmentalReverbItf self, 15927777dab0Sopenharmony_ci SLpermille diffusion 15937777dab0Sopenharmony_ci ); 15947777dab0Sopenharmony_ci SLresult (*GetDiffusion) ( 15957777dab0Sopenharmony_ci SLEnvironmentalReverbItf self, 15967777dab0Sopenharmony_ci SLpermille *pDiffusion 15977777dab0Sopenharmony_ci ); 15987777dab0Sopenharmony_ci SLresult (*SetDensity) ( 15997777dab0Sopenharmony_ci SLEnvironmentalReverbItf self, 16007777dab0Sopenharmony_ci SLpermille density 16017777dab0Sopenharmony_ci ); 16027777dab0Sopenharmony_ci SLresult (*GetDensity) ( 16037777dab0Sopenharmony_ci SLEnvironmentalReverbItf self, 16047777dab0Sopenharmony_ci SLpermille *pDensity 16057777dab0Sopenharmony_ci ); 16067777dab0Sopenharmony_ci SLresult (*SetEnvironmentalReverbProperties) ( 16077777dab0Sopenharmony_ci SLEnvironmentalReverbItf self, 16087777dab0Sopenharmony_ci const SLEnvironmentalReverbSettings *pProperties 16097777dab0Sopenharmony_ci ); 16107777dab0Sopenharmony_ci SLresult (*GetEnvironmentalReverbProperties) ( 16117777dab0Sopenharmony_ci SLEnvironmentalReverbItf self, 16127777dab0Sopenharmony_ci SLEnvironmentalReverbSettings *pProperties 16137777dab0Sopenharmony_ci ); 16147777dab0Sopenharmony_ci}; 16157777dab0Sopenharmony_ci 16167777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 16177777dab0Sopenharmony_ci/* Effects Send Interface */ 16187777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 16197777dab0Sopenharmony_ci 16207777dab0Sopenharmony_ci 16217777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_EFFECTSEND; 16227777dab0Sopenharmony_ci 16237777dab0Sopenharmony_cistruct SLEffectSendItf_; 16247777dab0Sopenharmony_citypedef const struct SLEffectSendItf_ * const * SLEffectSendItf; 16257777dab0Sopenharmony_ci 16267777dab0Sopenharmony_cistruct SLEffectSendItf_ { 16277777dab0Sopenharmony_ci SLresult (*EnableEffectSend) ( 16287777dab0Sopenharmony_ci SLEffectSendItf self, 16297777dab0Sopenharmony_ci const void *pAuxEffect, 16307777dab0Sopenharmony_ci SLboolean enable, 16317777dab0Sopenharmony_ci SLmillibel initialLevel 16327777dab0Sopenharmony_ci ); 16337777dab0Sopenharmony_ci SLresult (*IsEnabled) ( 16347777dab0Sopenharmony_ci SLEffectSendItf self, 16357777dab0Sopenharmony_ci const void * pAuxEffect, 16367777dab0Sopenharmony_ci SLboolean *pEnable 16377777dab0Sopenharmony_ci ); 16387777dab0Sopenharmony_ci SLresult (*SetDirectLevel) ( 16397777dab0Sopenharmony_ci SLEffectSendItf self, 16407777dab0Sopenharmony_ci SLmillibel directLevel 16417777dab0Sopenharmony_ci ); 16427777dab0Sopenharmony_ci SLresult (*GetDirectLevel) ( 16437777dab0Sopenharmony_ci SLEffectSendItf self, 16447777dab0Sopenharmony_ci SLmillibel *pDirectLevel 16457777dab0Sopenharmony_ci ); 16467777dab0Sopenharmony_ci SLresult (*SetSendLevel) ( 16477777dab0Sopenharmony_ci SLEffectSendItf self, 16487777dab0Sopenharmony_ci const void *pAuxEffect, 16497777dab0Sopenharmony_ci SLmillibel sendLevel 16507777dab0Sopenharmony_ci ); 16517777dab0Sopenharmony_ci SLresult (*GetSendLevel)( 16527777dab0Sopenharmony_ci SLEffectSendItf self, 16537777dab0Sopenharmony_ci const void *pAuxEffect, 16547777dab0Sopenharmony_ci SLmillibel *pSendLevel 16557777dab0Sopenharmony_ci ); 16567777dab0Sopenharmony_ci}; 16577777dab0Sopenharmony_ci 16587777dab0Sopenharmony_ci 16597777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 16607777dab0Sopenharmony_ci/* 3D Grouping Interface */ 16617777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 16627777dab0Sopenharmony_ci 16637777dab0Sopenharmony_ci 16647777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_3DGROUPING; 16657777dab0Sopenharmony_ci 16667777dab0Sopenharmony_ci 16677777dab0Sopenharmony_cistruct SL3DGroupingItf_ ; 16687777dab0Sopenharmony_citypedef const struct SL3DGroupingItf_ * const * SL3DGroupingItf; 16697777dab0Sopenharmony_ci 16707777dab0Sopenharmony_cistruct SL3DGroupingItf_ { 16717777dab0Sopenharmony_ci SLresult (*Set3DGroup) ( 16727777dab0Sopenharmony_ci SL3DGroupingItf self, 16737777dab0Sopenharmony_ci SLObjectItf group 16747777dab0Sopenharmony_ci ); 16757777dab0Sopenharmony_ci SLresult (*Get3DGroup) ( 16767777dab0Sopenharmony_ci SL3DGroupingItf self, 16777777dab0Sopenharmony_ci SLObjectItf *pGroup 16787777dab0Sopenharmony_ci ); 16797777dab0Sopenharmony_ci}; 16807777dab0Sopenharmony_ci 16817777dab0Sopenharmony_ci 16827777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 16837777dab0Sopenharmony_ci/* 3D Commit Interface */ 16847777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 16857777dab0Sopenharmony_ci 16867777dab0Sopenharmony_ci 16877777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_3DCOMMIT; 16887777dab0Sopenharmony_ci 16897777dab0Sopenharmony_cistruct SL3DCommitItf_; 16907777dab0Sopenharmony_citypedef const struct SL3DCommitItf_* const * SL3DCommitItf; 16917777dab0Sopenharmony_ci 16927777dab0Sopenharmony_cistruct SL3DCommitItf_ { 16937777dab0Sopenharmony_ci SLresult (*Commit) ( 16947777dab0Sopenharmony_ci SL3DCommitItf self 16957777dab0Sopenharmony_ci ); 16967777dab0Sopenharmony_ci SLresult (*SetDeferred) ( 16977777dab0Sopenharmony_ci SL3DCommitItf self, 16987777dab0Sopenharmony_ci SLboolean deferred 16997777dab0Sopenharmony_ci ); 17007777dab0Sopenharmony_ci}; 17017777dab0Sopenharmony_ci 17027777dab0Sopenharmony_ci 17037777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 17047777dab0Sopenharmony_ci/* 3D Location Interface */ 17057777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 17067777dab0Sopenharmony_ci 17077777dab0Sopenharmony_citypedef struct SLVec3D_ { 17087777dab0Sopenharmony_ci SLint32 x; 17097777dab0Sopenharmony_ci SLint32 y; 17107777dab0Sopenharmony_ci SLint32 z; 17117777dab0Sopenharmony_ci} SLVec3D; 17127777dab0Sopenharmony_ci 17137777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_3DLOCATION; 17147777dab0Sopenharmony_ci 17157777dab0Sopenharmony_cistruct SL3DLocationItf_; 17167777dab0Sopenharmony_citypedef const struct SL3DLocationItf_ * const * SL3DLocationItf; 17177777dab0Sopenharmony_ci 17187777dab0Sopenharmony_cistruct SL3DLocationItf_ { 17197777dab0Sopenharmony_ci SLresult (*SetLocationCartesian) ( 17207777dab0Sopenharmony_ci SL3DLocationItf self, 17217777dab0Sopenharmony_ci const SLVec3D *pLocation 17227777dab0Sopenharmony_ci ); 17237777dab0Sopenharmony_ci SLresult (*SetLocationSpherical) ( 17247777dab0Sopenharmony_ci SL3DLocationItf self, 17257777dab0Sopenharmony_ci SLmillidegree azimuth, 17267777dab0Sopenharmony_ci SLmillidegree elevation, 17277777dab0Sopenharmony_ci SLmillimeter distance 17287777dab0Sopenharmony_ci ); 17297777dab0Sopenharmony_ci SLresult (*Move) ( 17307777dab0Sopenharmony_ci SL3DLocationItf self, 17317777dab0Sopenharmony_ci const SLVec3D *pMovement 17327777dab0Sopenharmony_ci ); 17337777dab0Sopenharmony_ci SLresult (*GetLocationCartesian) ( 17347777dab0Sopenharmony_ci SL3DLocationItf self, 17357777dab0Sopenharmony_ci SLVec3D *pLocation 17367777dab0Sopenharmony_ci ); 17377777dab0Sopenharmony_ci SLresult (*SetOrientationVectors) ( 17387777dab0Sopenharmony_ci SL3DLocationItf self, 17397777dab0Sopenharmony_ci const SLVec3D *pFront, 17407777dab0Sopenharmony_ci const SLVec3D *pAbove 17417777dab0Sopenharmony_ci ); 17427777dab0Sopenharmony_ci SLresult (*SetOrientationAngles) ( 17437777dab0Sopenharmony_ci SL3DLocationItf self, 17447777dab0Sopenharmony_ci SLmillidegree heading, 17457777dab0Sopenharmony_ci SLmillidegree pitch, 17467777dab0Sopenharmony_ci SLmillidegree roll 17477777dab0Sopenharmony_ci ); 17487777dab0Sopenharmony_ci SLresult (*Rotate) ( 17497777dab0Sopenharmony_ci SL3DLocationItf self, 17507777dab0Sopenharmony_ci SLmillidegree theta, 17517777dab0Sopenharmony_ci const SLVec3D *pAxis 17527777dab0Sopenharmony_ci ); 17537777dab0Sopenharmony_ci SLresult (*GetOrientationVectors) ( 17547777dab0Sopenharmony_ci SL3DLocationItf self, 17557777dab0Sopenharmony_ci SLVec3D *pFront, 17567777dab0Sopenharmony_ci SLVec3D *pUp 17577777dab0Sopenharmony_ci ); 17587777dab0Sopenharmony_ci}; 17597777dab0Sopenharmony_ci 17607777dab0Sopenharmony_ci 17617777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 17627777dab0Sopenharmony_ci/* 3D Doppler Interface */ 17637777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 17647777dab0Sopenharmony_ci 17657777dab0Sopenharmony_ci 17667777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_3DDOPPLER; 17677777dab0Sopenharmony_ci 17687777dab0Sopenharmony_cistruct SL3DDopplerItf_; 17697777dab0Sopenharmony_citypedef const struct SL3DDopplerItf_ * const * SL3DDopplerItf; 17707777dab0Sopenharmony_ci 17717777dab0Sopenharmony_cistruct SL3DDopplerItf_ { 17727777dab0Sopenharmony_ci SLresult (*SetVelocityCartesian) ( 17737777dab0Sopenharmony_ci SL3DDopplerItf self, 17747777dab0Sopenharmony_ci const SLVec3D *pVelocity 17757777dab0Sopenharmony_ci ); 17767777dab0Sopenharmony_ci SLresult (*SetVelocitySpherical) ( 17777777dab0Sopenharmony_ci SL3DDopplerItf self, 17787777dab0Sopenharmony_ci SLmillidegree azimuth, 17797777dab0Sopenharmony_ci SLmillidegree elevation, 17807777dab0Sopenharmony_ci SLmillimeter speed 17817777dab0Sopenharmony_ci ); 17827777dab0Sopenharmony_ci SLresult (*GetVelocityCartesian) ( 17837777dab0Sopenharmony_ci SL3DDopplerItf self, 17847777dab0Sopenharmony_ci SLVec3D *pVelocity 17857777dab0Sopenharmony_ci ); 17867777dab0Sopenharmony_ci SLresult (*SetDopplerFactor) ( 17877777dab0Sopenharmony_ci SL3DDopplerItf self, 17887777dab0Sopenharmony_ci SLpermille dopplerFactor 17897777dab0Sopenharmony_ci ); 17907777dab0Sopenharmony_ci SLresult (*GetDopplerFactor) ( 17917777dab0Sopenharmony_ci SL3DDopplerItf self, 17927777dab0Sopenharmony_ci SLpermille *pDopplerFactor 17937777dab0Sopenharmony_ci ); 17947777dab0Sopenharmony_ci}; 17957777dab0Sopenharmony_ci 17967777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 17977777dab0Sopenharmony_ci/* 3D Source Interface and associated defines */ 17987777dab0Sopenharmony_ci/* --------------------------------------------------------------------------*/ 17997777dab0Sopenharmony_ci 18007777dab0Sopenharmony_ci#define SL_ROLLOFFMODEL_EXPONENTIAL ((SLuint32) 0x00000000) 18017777dab0Sopenharmony_ci#define SL_ROLLOFFMODEL_LINEAR ((SLuint32) 0x00000001) 18027777dab0Sopenharmony_ci 18037777dab0Sopenharmony_ci 18047777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_3DSOURCE; 18057777dab0Sopenharmony_ci 18067777dab0Sopenharmony_cistruct SL3DSourceItf_; 18077777dab0Sopenharmony_citypedef const struct SL3DSourceItf_ * const * SL3DSourceItf; 18087777dab0Sopenharmony_ci 18097777dab0Sopenharmony_cistruct SL3DSourceItf_ { 18107777dab0Sopenharmony_ci SLresult (*SetHeadRelative) ( 18117777dab0Sopenharmony_ci SL3DSourceItf self, 18127777dab0Sopenharmony_ci SLboolean headRelative 18137777dab0Sopenharmony_ci ); 18147777dab0Sopenharmony_ci SLresult (*GetHeadRelative) ( 18157777dab0Sopenharmony_ci SL3DSourceItf self, 18167777dab0Sopenharmony_ci SLboolean *pHeadRelative 18177777dab0Sopenharmony_ci ); 18187777dab0Sopenharmony_ci SLresult (*SetRolloffDistances) ( 18197777dab0Sopenharmony_ci SL3DSourceItf self, 18207777dab0Sopenharmony_ci SLmillimeter minDistance, 18217777dab0Sopenharmony_ci SLmillimeter maxDistance 18227777dab0Sopenharmony_ci ); 18237777dab0Sopenharmony_ci SLresult (*GetRolloffDistances) ( 18247777dab0Sopenharmony_ci SL3DSourceItf self, 18257777dab0Sopenharmony_ci SLmillimeter *pMinDistance, 18267777dab0Sopenharmony_ci SLmillimeter *pMaxDistance 18277777dab0Sopenharmony_ci ); 18287777dab0Sopenharmony_ci SLresult (*SetRolloffMaxDistanceMute) ( 18297777dab0Sopenharmony_ci SL3DSourceItf self, 18307777dab0Sopenharmony_ci SLboolean mute 18317777dab0Sopenharmony_ci ); 18327777dab0Sopenharmony_ci SLresult (*GetRolloffMaxDistanceMute) ( 18337777dab0Sopenharmony_ci SL3DSourceItf self, 18347777dab0Sopenharmony_ci SLboolean *pMute 18357777dab0Sopenharmony_ci ); 18367777dab0Sopenharmony_ci SLresult (*SetRolloffFactor) ( 18377777dab0Sopenharmony_ci SL3DSourceItf self, 18387777dab0Sopenharmony_ci SLpermille rolloffFactor 18397777dab0Sopenharmony_ci ); 18407777dab0Sopenharmony_ci SLresult (*GetRolloffFactor) ( 18417777dab0Sopenharmony_ci SL3DSourceItf self, 18427777dab0Sopenharmony_ci SLpermille *pRolloffFactor 18437777dab0Sopenharmony_ci ); 18447777dab0Sopenharmony_ci SLresult (*SetRoomRolloffFactor) ( 18457777dab0Sopenharmony_ci SL3DSourceItf self, 18467777dab0Sopenharmony_ci SLpermille roomRolloffFactor 18477777dab0Sopenharmony_ci ); 18487777dab0Sopenharmony_ci SLresult (*GetRoomRolloffFactor) ( 18497777dab0Sopenharmony_ci SL3DSourceItf self, 18507777dab0Sopenharmony_ci SLpermille *pRoomRolloffFactor 18517777dab0Sopenharmony_ci ); 18527777dab0Sopenharmony_ci SLresult (*SetRolloffModel) ( 18537777dab0Sopenharmony_ci SL3DSourceItf self, 18547777dab0Sopenharmony_ci SLuint8 model 18557777dab0Sopenharmony_ci ); 18567777dab0Sopenharmony_ci SLresult (*GetRolloffModel) ( 18577777dab0Sopenharmony_ci SL3DSourceItf self, 18587777dab0Sopenharmony_ci SLuint8 *pModel 18597777dab0Sopenharmony_ci ); 18607777dab0Sopenharmony_ci SLresult (*SetCone) ( 18617777dab0Sopenharmony_ci SL3DSourceItf self, 18627777dab0Sopenharmony_ci SLmillidegree innerAngle, 18637777dab0Sopenharmony_ci SLmillidegree outerAngle, 18647777dab0Sopenharmony_ci SLmillibel outerLevel 18657777dab0Sopenharmony_ci ); 18667777dab0Sopenharmony_ci SLresult (*GetCone) ( 18677777dab0Sopenharmony_ci SL3DSourceItf self, 18687777dab0Sopenharmony_ci SLmillidegree *pInnerAngle, 18697777dab0Sopenharmony_ci SLmillidegree *pOuterAngle, 18707777dab0Sopenharmony_ci SLmillibel *pOuterLevel 18717777dab0Sopenharmony_ci ); 18727777dab0Sopenharmony_ci}; 18737777dab0Sopenharmony_ci 18747777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 18757777dab0Sopenharmony_ci/* 3D Macroscopic Interface */ 18767777dab0Sopenharmony_ci/* --------------------------------------------------------------------------*/ 18777777dab0Sopenharmony_ci 18787777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_3DMACROSCOPIC; 18797777dab0Sopenharmony_ci 18807777dab0Sopenharmony_cistruct SL3DMacroscopicItf_; 18817777dab0Sopenharmony_citypedef const struct SL3DMacroscopicItf_ * const * SL3DMacroscopicItf; 18827777dab0Sopenharmony_ci 18837777dab0Sopenharmony_cistruct SL3DMacroscopicItf_ { 18847777dab0Sopenharmony_ci SLresult (*SetSize) ( 18857777dab0Sopenharmony_ci SL3DMacroscopicItf self, 18867777dab0Sopenharmony_ci SLmillimeter width, 18877777dab0Sopenharmony_ci SLmillimeter height, 18887777dab0Sopenharmony_ci SLmillimeter depth 18897777dab0Sopenharmony_ci ); 18907777dab0Sopenharmony_ci SLresult (*GetSize) ( 18917777dab0Sopenharmony_ci SL3DMacroscopicItf self, 18927777dab0Sopenharmony_ci SLmillimeter *pWidth, 18937777dab0Sopenharmony_ci SLmillimeter *pHeight, 18947777dab0Sopenharmony_ci SLmillimeter *pDepth 18957777dab0Sopenharmony_ci ); 18967777dab0Sopenharmony_ci SLresult (*SetOrientationAngles) ( 18977777dab0Sopenharmony_ci SL3DMacroscopicItf self, 18987777dab0Sopenharmony_ci SLmillidegree heading, 18997777dab0Sopenharmony_ci SLmillidegree pitch, 19007777dab0Sopenharmony_ci SLmillidegree roll 19017777dab0Sopenharmony_ci ); 19027777dab0Sopenharmony_ci SLresult (*SetOrientationVectors) ( 19037777dab0Sopenharmony_ci SL3DMacroscopicItf self, 19047777dab0Sopenharmony_ci const SLVec3D *pFront, 19057777dab0Sopenharmony_ci const SLVec3D *pAbove 19067777dab0Sopenharmony_ci ); 19077777dab0Sopenharmony_ci SLresult (*Rotate) ( 19087777dab0Sopenharmony_ci SL3DMacroscopicItf self, 19097777dab0Sopenharmony_ci SLmillidegree theta, 19107777dab0Sopenharmony_ci const SLVec3D *pAxis 19117777dab0Sopenharmony_ci ); 19127777dab0Sopenharmony_ci SLresult (*GetOrientationVectors) ( 19137777dab0Sopenharmony_ci SL3DMacroscopicItf self, 19147777dab0Sopenharmony_ci SLVec3D *pFront, 19157777dab0Sopenharmony_ci SLVec3D *pUp 19167777dab0Sopenharmony_ci ); 19177777dab0Sopenharmony_ci}; 19187777dab0Sopenharmony_ci 19197777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 19207777dab0Sopenharmony_ci/* Mute Solo Interface */ 19217777dab0Sopenharmony_ci/* --------------------------------------------------------------------------*/ 19227777dab0Sopenharmony_ci 19237777dab0Sopenharmony_ci 19247777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_MUTESOLO; 19257777dab0Sopenharmony_ci 19267777dab0Sopenharmony_cistruct SLMuteSoloItf_; 19277777dab0Sopenharmony_citypedef const struct SLMuteSoloItf_ * const * SLMuteSoloItf; 19287777dab0Sopenharmony_ci 19297777dab0Sopenharmony_cistruct SLMuteSoloItf_ { 19307777dab0Sopenharmony_ci SLresult (*SetChannelMute) ( 19317777dab0Sopenharmony_ci SLMuteSoloItf self, 19327777dab0Sopenharmony_ci SLuint8 chan, 19337777dab0Sopenharmony_ci SLboolean mute 19347777dab0Sopenharmony_ci ); 19357777dab0Sopenharmony_ci SLresult (*GetChannelMute) ( 19367777dab0Sopenharmony_ci SLMuteSoloItf self, 19377777dab0Sopenharmony_ci SLuint8 chan, 19387777dab0Sopenharmony_ci SLboolean *pMute 19397777dab0Sopenharmony_ci ); 19407777dab0Sopenharmony_ci SLresult (*SetChannelSolo) ( 19417777dab0Sopenharmony_ci SLMuteSoloItf self, 19427777dab0Sopenharmony_ci SLuint8 chan, 19437777dab0Sopenharmony_ci SLboolean solo 19447777dab0Sopenharmony_ci ); 19457777dab0Sopenharmony_ci SLresult (*GetChannelSolo) ( 19467777dab0Sopenharmony_ci SLMuteSoloItf self, 19477777dab0Sopenharmony_ci SLuint8 chan, 19487777dab0Sopenharmony_ci SLboolean *pSolo 19497777dab0Sopenharmony_ci ); 19507777dab0Sopenharmony_ci SLresult (*GetNumChannels) ( 19517777dab0Sopenharmony_ci SLMuteSoloItf self, 19527777dab0Sopenharmony_ci SLuint8 *pNumChannels 19537777dab0Sopenharmony_ci ); 19547777dab0Sopenharmony_ci}; 19557777dab0Sopenharmony_ci 19567777dab0Sopenharmony_ci 19577777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 19587777dab0Sopenharmony_ci/* Dynamic Interface Management Interface and associated types and macros */ 19597777dab0Sopenharmony_ci/* --------------------------------------------------------------------------*/ 19607777dab0Sopenharmony_ci 19617777dab0Sopenharmony_ci#define SL_DYNAMIC_ITF_EVENT_RUNTIME_ERROR ((SLuint32) 0x00000001) 19627777dab0Sopenharmony_ci#define SL_DYNAMIC_ITF_EVENT_ASYNC_TERMINATION ((SLuint32) 0x00000002) 19637777dab0Sopenharmony_ci#define SL_DYNAMIC_ITF_EVENT_RESOURCES_LOST ((SLuint32) 0x00000003) 19647777dab0Sopenharmony_ci#define SL_DYNAMIC_ITF_EVENT_RESOURCES_LOST_PERMANENTLY ((SLuint32) 0x00000004) 19657777dab0Sopenharmony_ci#define SL_DYNAMIC_ITF_EVENT_RESOURCES_AVAILABLE ((SLuint32) 0x00000005) 19667777dab0Sopenharmony_ci 19677777dab0Sopenharmony_ci 19687777dab0Sopenharmony_ci 19697777dab0Sopenharmony_ci 19707777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_DYNAMICINTERFACEMANAGEMENT; 19717777dab0Sopenharmony_ci 19727777dab0Sopenharmony_cistruct SLDynamicInterfaceManagementItf_; 19737777dab0Sopenharmony_citypedef const struct SLDynamicInterfaceManagementItf_ * const * SLDynamicInterfaceManagementItf; 19747777dab0Sopenharmony_ci 19757777dab0Sopenharmony_citypedef void (SLAPIENTRY *slDynamicInterfaceManagementCallback) ( 19767777dab0Sopenharmony_ci SLDynamicInterfaceManagementItf caller, 19777777dab0Sopenharmony_ci void * pContext, 19787777dab0Sopenharmony_ci SLuint32 event, 19797777dab0Sopenharmony_ci SLresult result, 19807777dab0Sopenharmony_ci const SLInterfaceID iid 19817777dab0Sopenharmony_ci); 19827777dab0Sopenharmony_ci 19837777dab0Sopenharmony_ci 19847777dab0Sopenharmony_cistruct SLDynamicInterfaceManagementItf_ { 19857777dab0Sopenharmony_ci SLresult (*AddInterface) ( 19867777dab0Sopenharmony_ci SLDynamicInterfaceManagementItf self, 19877777dab0Sopenharmony_ci const SLInterfaceID iid, 19887777dab0Sopenharmony_ci SLboolean async 19897777dab0Sopenharmony_ci ); 19907777dab0Sopenharmony_ci SLresult (*RemoveInterface) ( 19917777dab0Sopenharmony_ci SLDynamicInterfaceManagementItf self, 19927777dab0Sopenharmony_ci const SLInterfaceID iid 19937777dab0Sopenharmony_ci ); 19947777dab0Sopenharmony_ci SLresult (*ResumeInterface) ( 19957777dab0Sopenharmony_ci SLDynamicInterfaceManagementItf self, 19967777dab0Sopenharmony_ci const SLInterfaceID iid, 19977777dab0Sopenharmony_ci SLboolean async 19987777dab0Sopenharmony_ci ); 19997777dab0Sopenharmony_ci SLresult (*RegisterCallback) ( 20007777dab0Sopenharmony_ci SLDynamicInterfaceManagementItf self, 20017777dab0Sopenharmony_ci slDynamicInterfaceManagementCallback callback, 20027777dab0Sopenharmony_ci void * pContext 20037777dab0Sopenharmony_ci ); 20047777dab0Sopenharmony_ci}; 20057777dab0Sopenharmony_ci 20067777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 20077777dab0Sopenharmony_ci/* Midi Message Interface and associated types */ 20087777dab0Sopenharmony_ci/* --------------------------------------------------------------------------*/ 20097777dab0Sopenharmony_ci 20107777dab0Sopenharmony_ci#define SL_MIDIMESSAGETYPE_NOTE_ON_OFF ((SLuint32) 0x00000001) 20117777dab0Sopenharmony_ci#define SL_MIDIMESSAGETYPE_POLY_PRESSURE ((SLuint32) 0x00000002) 20127777dab0Sopenharmony_ci#define SL_MIDIMESSAGETYPE_CONTROL_CHANGE ((SLuint32) 0x00000003) 20137777dab0Sopenharmony_ci#define SL_MIDIMESSAGETYPE_PROGRAM_CHANGE ((SLuint32) 0x00000004) 20147777dab0Sopenharmony_ci#define SL_MIDIMESSAGETYPE_CHANNEL_PRESSURE ((SLuint32) 0x00000005) 20157777dab0Sopenharmony_ci#define SL_MIDIMESSAGETYPE_PITCH_BEND ((SLuint32) 0x00000006) 20167777dab0Sopenharmony_ci#define SL_MIDIMESSAGETYPE_SYSTEM_MESSAGE ((SLuint32) 0x00000007) 20177777dab0Sopenharmony_ci 20187777dab0Sopenharmony_ci 20197777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_MIDIMESSAGE; 20207777dab0Sopenharmony_ci 20217777dab0Sopenharmony_cistruct SLMIDIMessageItf_; 20227777dab0Sopenharmony_citypedef const struct SLMIDIMessageItf_ * const * SLMIDIMessageItf; 20237777dab0Sopenharmony_ci 20247777dab0Sopenharmony_citypedef void (SLAPIENTRY *slMetaEventCallback) ( 20257777dab0Sopenharmony_ci SLMIDIMessageItf caller, 20267777dab0Sopenharmony_ci void *pContext, 20277777dab0Sopenharmony_ci SLuint8 type, 20287777dab0Sopenharmony_ci SLuint32 length, 20297777dab0Sopenharmony_ci const SLuint8 *pData, 20307777dab0Sopenharmony_ci SLuint32 tick, 20317777dab0Sopenharmony_ci SLuint16 track 20327777dab0Sopenharmony_ci); 20337777dab0Sopenharmony_ci 20347777dab0Sopenharmony_citypedef void (SLAPIENTRY *slMIDIMessageCallback) ( 20357777dab0Sopenharmony_ci SLMIDIMessageItf caller, 20367777dab0Sopenharmony_ci void *pContext, 20377777dab0Sopenharmony_ci SLuint8 statusByte, 20387777dab0Sopenharmony_ci SLuint32 length, 20397777dab0Sopenharmony_ci const SLuint8 *pData, 20407777dab0Sopenharmony_ci SLuint32 tick, 20417777dab0Sopenharmony_ci SLuint16 track 20427777dab0Sopenharmony_ci); 20437777dab0Sopenharmony_ci 20447777dab0Sopenharmony_cistruct SLMIDIMessageItf_ { 20457777dab0Sopenharmony_ci SLresult (*SendMessage) ( 20467777dab0Sopenharmony_ci SLMIDIMessageItf self, 20477777dab0Sopenharmony_ci const SLuint8 *data, 20487777dab0Sopenharmony_ci SLuint32 length 20497777dab0Sopenharmony_ci ); 20507777dab0Sopenharmony_ci SLresult (*RegisterMetaEventCallback) ( 20517777dab0Sopenharmony_ci SLMIDIMessageItf self, 20527777dab0Sopenharmony_ci slMetaEventCallback callback, 20537777dab0Sopenharmony_ci void *pContext 20547777dab0Sopenharmony_ci ); 20557777dab0Sopenharmony_ci SLresult (*RegisterMIDIMessageCallback) ( 20567777dab0Sopenharmony_ci SLMIDIMessageItf self, 20577777dab0Sopenharmony_ci slMIDIMessageCallback callback, 20587777dab0Sopenharmony_ci void *pContext 20597777dab0Sopenharmony_ci ); 20607777dab0Sopenharmony_ci SLresult (*AddMIDIMessageCallbackFilter) ( 20617777dab0Sopenharmony_ci SLMIDIMessageItf self, 20627777dab0Sopenharmony_ci SLuint32 messageType 20637777dab0Sopenharmony_ci ); 20647777dab0Sopenharmony_ci SLresult (*ClearMIDIMessageCallbackFilter) ( 20657777dab0Sopenharmony_ci SLMIDIMessageItf self 20667777dab0Sopenharmony_ci ); 20677777dab0Sopenharmony_ci}; 20687777dab0Sopenharmony_ci 20697777dab0Sopenharmony_ci 20707777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 20717777dab0Sopenharmony_ci/* Midi Mute Solo interface */ 20727777dab0Sopenharmony_ci/* --------------------------------------------------------------------------*/ 20737777dab0Sopenharmony_ci 20747777dab0Sopenharmony_ci 20757777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_MIDIMUTESOLO; 20767777dab0Sopenharmony_ci 20777777dab0Sopenharmony_cistruct SLMIDIMuteSoloItf_; 20787777dab0Sopenharmony_citypedef const struct SLMIDIMuteSoloItf_ * const * SLMIDIMuteSoloItf; 20797777dab0Sopenharmony_ci 20807777dab0Sopenharmony_cistruct SLMIDIMuteSoloItf_ { 20817777dab0Sopenharmony_ci SLresult (*SetChannelMute) ( 20827777dab0Sopenharmony_ci SLMIDIMuteSoloItf self, 20837777dab0Sopenharmony_ci SLuint8 channel, 20847777dab0Sopenharmony_ci SLboolean mute 20857777dab0Sopenharmony_ci ); 20867777dab0Sopenharmony_ci SLresult (*GetChannelMute) ( 20877777dab0Sopenharmony_ci SLMIDIMuteSoloItf self, 20887777dab0Sopenharmony_ci SLuint8 channel, 20897777dab0Sopenharmony_ci SLboolean *pMute 20907777dab0Sopenharmony_ci ); 20917777dab0Sopenharmony_ci SLresult (*SetChannelSolo) ( 20927777dab0Sopenharmony_ci SLMIDIMuteSoloItf self, 20937777dab0Sopenharmony_ci SLuint8 channel, 20947777dab0Sopenharmony_ci SLboolean solo 20957777dab0Sopenharmony_ci ); 20967777dab0Sopenharmony_ci SLresult (*GetChannelSolo) ( 20977777dab0Sopenharmony_ci SLMIDIMuteSoloItf self, 20987777dab0Sopenharmony_ci SLuint8 channel, 20997777dab0Sopenharmony_ci SLboolean *pSolo 21007777dab0Sopenharmony_ci ); 21017777dab0Sopenharmony_ci SLresult (*GetTrackCount) ( 21027777dab0Sopenharmony_ci SLMIDIMuteSoloItf self, 21037777dab0Sopenharmony_ci SLuint16 *pCount 21047777dab0Sopenharmony_ci ); 21057777dab0Sopenharmony_ci SLresult (*SetTrackMute) ( 21067777dab0Sopenharmony_ci SLMIDIMuteSoloItf self, 21077777dab0Sopenharmony_ci SLuint16 track, 21087777dab0Sopenharmony_ci SLboolean mute 21097777dab0Sopenharmony_ci ); 21107777dab0Sopenharmony_ci SLresult (*GetTrackMute) ( 21117777dab0Sopenharmony_ci SLMIDIMuteSoloItf self, 21127777dab0Sopenharmony_ci SLuint16 track, 21137777dab0Sopenharmony_ci SLboolean *pMute 21147777dab0Sopenharmony_ci ); 21157777dab0Sopenharmony_ci SLresult (*SetTrackSolo) ( 21167777dab0Sopenharmony_ci SLMIDIMuteSoloItf self, 21177777dab0Sopenharmony_ci SLuint16 track, 21187777dab0Sopenharmony_ci SLboolean solo 21197777dab0Sopenharmony_ci ); 21207777dab0Sopenharmony_ci SLresult (*GetTrackSolo) ( 21217777dab0Sopenharmony_ci SLMIDIMuteSoloItf self, 21227777dab0Sopenharmony_ci SLuint16 track, 21237777dab0Sopenharmony_ci SLboolean *pSolo 21247777dab0Sopenharmony_ci ); 21257777dab0Sopenharmony_ci}; 21267777dab0Sopenharmony_ci 21277777dab0Sopenharmony_ci 21287777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 21297777dab0Sopenharmony_ci/* Midi Tempo interface */ 21307777dab0Sopenharmony_ci/* --------------------------------------------------------------------------*/ 21317777dab0Sopenharmony_ci 21327777dab0Sopenharmony_ci 21337777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_MIDITEMPO; 21347777dab0Sopenharmony_ci 21357777dab0Sopenharmony_cistruct SLMIDITempoItf_; 21367777dab0Sopenharmony_citypedef const struct SLMIDITempoItf_ * const * SLMIDITempoItf; 21377777dab0Sopenharmony_ci 21387777dab0Sopenharmony_cistruct SLMIDITempoItf_ { 21397777dab0Sopenharmony_ci SLresult (*SetTicksPerQuarterNote) ( 21407777dab0Sopenharmony_ci SLMIDITempoItf self, 21417777dab0Sopenharmony_ci SLuint32 tpqn 21427777dab0Sopenharmony_ci ); 21437777dab0Sopenharmony_ci SLresult (*GetTicksPerQuarterNote) ( 21447777dab0Sopenharmony_ci SLMIDITempoItf self, 21457777dab0Sopenharmony_ci SLuint32 *pTpqn 21467777dab0Sopenharmony_ci ); 21477777dab0Sopenharmony_ci SLresult (*SetMicrosecondsPerQuarterNote) ( 21487777dab0Sopenharmony_ci SLMIDITempoItf self, 21497777dab0Sopenharmony_ci SLmicrosecond uspqn 21507777dab0Sopenharmony_ci ); 21517777dab0Sopenharmony_ci SLresult (*GetMicrosecondsPerQuarterNote) ( 21527777dab0Sopenharmony_ci SLMIDITempoItf self, 21537777dab0Sopenharmony_ci SLmicrosecond *uspqn 21547777dab0Sopenharmony_ci ); 21557777dab0Sopenharmony_ci}; 21567777dab0Sopenharmony_ci 21577777dab0Sopenharmony_ci 21587777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 21597777dab0Sopenharmony_ci/* Midi Time interface */ 21607777dab0Sopenharmony_ci/* --------------------------------------------------------------------------*/ 21617777dab0Sopenharmony_ci 21627777dab0Sopenharmony_ci 21637777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_MIDITIME; 21647777dab0Sopenharmony_ci 21657777dab0Sopenharmony_cistruct SLMIDITimeItf_; 21667777dab0Sopenharmony_citypedef const struct SLMIDITimeItf_ * const * SLMIDITimeItf; 21677777dab0Sopenharmony_ci 21687777dab0Sopenharmony_cistruct SLMIDITimeItf_ { 21697777dab0Sopenharmony_ci SLresult (*GetDuration) ( 21707777dab0Sopenharmony_ci SLMIDITimeItf self, 21717777dab0Sopenharmony_ci SLuint32 *pDuration 21727777dab0Sopenharmony_ci ); 21737777dab0Sopenharmony_ci SLresult (*SetPosition) ( 21747777dab0Sopenharmony_ci SLMIDITimeItf self, 21757777dab0Sopenharmony_ci SLuint32 position 21767777dab0Sopenharmony_ci ); 21777777dab0Sopenharmony_ci SLresult (*GetPosition) ( 21787777dab0Sopenharmony_ci SLMIDITimeItf self, 21797777dab0Sopenharmony_ci SLuint32 *pPosition 21807777dab0Sopenharmony_ci ); 21817777dab0Sopenharmony_ci SLresult (*SetLoopPoints) ( 21827777dab0Sopenharmony_ci SLMIDITimeItf self, 21837777dab0Sopenharmony_ci SLuint32 startTick, 21847777dab0Sopenharmony_ci SLuint32 numTicks 21857777dab0Sopenharmony_ci ); 21867777dab0Sopenharmony_ci SLresult (*GetLoopPoints) ( 21877777dab0Sopenharmony_ci SLMIDITimeItf self, 21887777dab0Sopenharmony_ci SLuint32 *pStartTick, 21897777dab0Sopenharmony_ci SLuint32 *pNumTicks 21907777dab0Sopenharmony_ci ); 21917777dab0Sopenharmony_ci}; 21927777dab0Sopenharmony_ci 21937777dab0Sopenharmony_ci 21947777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 21957777dab0Sopenharmony_ci/* Audio Decoder Capabilities Interface */ 21967777dab0Sopenharmony_ci/* --------------------------------------------------------------------------*/ 21977777dab0Sopenharmony_ci 21987777dab0Sopenharmony_ci/*Audio Codec related defines*/ 21997777dab0Sopenharmony_ci 22007777dab0Sopenharmony_ci#define SL_RATECONTROLMODE_CONSTANTBITRATE ((SLuint32) 0x00000001) 22017777dab0Sopenharmony_ci#define SL_RATECONTROLMODE_VARIABLEBITRATE ((SLuint32) 0x00000002) 22027777dab0Sopenharmony_ci 22037777dab0Sopenharmony_ci#define SL_AUDIOCODEC_PCM ((SLuint32) 0x00000001) 22047777dab0Sopenharmony_ci#define SL_AUDIOCODEC_MP3 ((SLuint32) 0x00000002) 22057777dab0Sopenharmony_ci#define SL_AUDIOCODEC_AMR ((SLuint32) 0x00000003) 22067777dab0Sopenharmony_ci#define SL_AUDIOCODEC_AMRWB ((SLuint32) 0x00000004) 22077777dab0Sopenharmony_ci#define SL_AUDIOCODEC_AMRWBPLUS ((SLuint32) 0x00000005) 22087777dab0Sopenharmony_ci#define SL_AUDIOCODEC_AAC ((SLuint32) 0x00000006) 22097777dab0Sopenharmony_ci#define SL_AUDIOCODEC_WMA ((SLuint32) 0x00000007) 22107777dab0Sopenharmony_ci#define SL_AUDIOCODEC_REAL ((SLuint32) 0x00000008) 22117777dab0Sopenharmony_ci 22127777dab0Sopenharmony_ci#define SL_AUDIOPROFILE_PCM ((SLuint32) 0x00000001) 22137777dab0Sopenharmony_ci 22147777dab0Sopenharmony_ci#define SL_AUDIOPROFILE_MPEG1_L3 ((SLuint32) 0x00000001) 22157777dab0Sopenharmony_ci#define SL_AUDIOPROFILE_MPEG2_L3 ((SLuint32) 0x00000002) 22167777dab0Sopenharmony_ci#define SL_AUDIOPROFILE_MPEG25_L3 ((SLuint32) 0x00000003) 22177777dab0Sopenharmony_ci 22187777dab0Sopenharmony_ci#define SL_AUDIOCHANMODE_MP3_MONO ((SLuint32) 0x00000001) 22197777dab0Sopenharmony_ci#define SL_AUDIOCHANMODE_MP3_STEREO ((SLuint32) 0x00000002) 22207777dab0Sopenharmony_ci#define SL_AUDIOCHANMODE_MP3_JOINTSTEREO ((SLuint32) 0x00000003) 22217777dab0Sopenharmony_ci#define SL_AUDIOCHANMODE_MP3_DUAL ((SLuint32) 0x00000004) 22227777dab0Sopenharmony_ci 22237777dab0Sopenharmony_ci#define SL_AUDIOPROFILE_AMR ((SLuint32) 0x00000001) 22247777dab0Sopenharmony_ci 22257777dab0Sopenharmony_ci#define SL_AUDIOSTREAMFORMAT_CONFORMANCE ((SLuint32) 0x00000001) 22267777dab0Sopenharmony_ci#define SL_AUDIOSTREAMFORMAT_IF1 ((SLuint32) 0x00000002) 22277777dab0Sopenharmony_ci#define SL_AUDIOSTREAMFORMAT_IF2 ((SLuint32) 0x00000003) 22287777dab0Sopenharmony_ci#define SL_AUDIOSTREAMFORMAT_FSF ((SLuint32) 0x00000004) 22297777dab0Sopenharmony_ci#define SL_AUDIOSTREAMFORMAT_RTPPAYLOAD ((SLuint32) 0x00000005) 22307777dab0Sopenharmony_ci#define SL_AUDIOSTREAMFORMAT_ITU ((SLuint32) 0x00000006) 22317777dab0Sopenharmony_ci 22327777dab0Sopenharmony_ci#define SL_AUDIOPROFILE_AMRWB ((SLuint32) 0x00000001) 22337777dab0Sopenharmony_ci 22347777dab0Sopenharmony_ci#define SL_AUDIOPROFILE_AMRWBPLUS ((SLuint32) 0x00000001) 22357777dab0Sopenharmony_ci 22367777dab0Sopenharmony_ci#define SL_AUDIOPROFILE_AAC_AAC ((SLuint32) 0x00000001) 22377777dab0Sopenharmony_ci 22387777dab0Sopenharmony_ci#define SL_AUDIOMODE_AAC_MAIN ((SLuint32) 0x00000001) 22397777dab0Sopenharmony_ci#define SL_AUDIOMODE_AAC_LC ((SLuint32) 0x00000002) 22407777dab0Sopenharmony_ci#define SL_AUDIOMODE_AAC_SSR ((SLuint32) 0x00000003) 22417777dab0Sopenharmony_ci#define SL_AUDIOMODE_AAC_LTP ((SLuint32) 0x00000004) 22427777dab0Sopenharmony_ci#define SL_AUDIOMODE_AAC_HE ((SLuint32) 0x00000005) 22437777dab0Sopenharmony_ci#define SL_AUDIOMODE_AAC_SCALABLE ((SLuint32) 0x00000006) 22447777dab0Sopenharmony_ci#define SL_AUDIOMODE_AAC_ERLC ((SLuint32) 0x00000007) 22457777dab0Sopenharmony_ci#define SL_AUDIOMODE_AAC_LD ((SLuint32) 0x00000008) 22467777dab0Sopenharmony_ci#define SL_AUDIOMODE_AAC_HE_PS ((SLuint32) 0x00000009) 22477777dab0Sopenharmony_ci#define SL_AUDIOMODE_AAC_HE_MPS ((SLuint32) 0x0000000A) 22487777dab0Sopenharmony_ci 22497777dab0Sopenharmony_ci#define SL_AUDIOSTREAMFORMAT_MP2ADTS ((SLuint32) 0x00000001) 22507777dab0Sopenharmony_ci#define SL_AUDIOSTREAMFORMAT_MP4ADTS ((SLuint32) 0x00000002) 22517777dab0Sopenharmony_ci#define SL_AUDIOSTREAMFORMAT_MP4LOAS ((SLuint32) 0x00000003) 22527777dab0Sopenharmony_ci#define SL_AUDIOSTREAMFORMAT_MP4LATM ((SLuint32) 0x00000004) 22537777dab0Sopenharmony_ci#define SL_AUDIOSTREAMFORMAT_ADIF ((SLuint32) 0x00000005) 22547777dab0Sopenharmony_ci#define SL_AUDIOSTREAMFORMAT_MP4FF ((SLuint32) 0x00000006) 22557777dab0Sopenharmony_ci#define SL_AUDIOSTREAMFORMAT_RAW ((SLuint32) 0x00000007) 22567777dab0Sopenharmony_ci 22577777dab0Sopenharmony_ci#define SL_AUDIOPROFILE_WMA7 ((SLuint32) 0x00000001) 22587777dab0Sopenharmony_ci#define SL_AUDIOPROFILE_WMA8 ((SLuint32) 0x00000002) 22597777dab0Sopenharmony_ci#define SL_AUDIOPROFILE_WMA9 ((SLuint32) 0x00000003) 22607777dab0Sopenharmony_ci#define SL_AUDIOPROFILE_WMA10 ((SLuint32) 0x00000004) 22617777dab0Sopenharmony_ci 22627777dab0Sopenharmony_ci#define SL_AUDIOMODE_WMA_LEVEL1 ((SLuint32) 0x00000001) 22637777dab0Sopenharmony_ci#define SL_AUDIOMODE_WMA_LEVEL2 ((SLuint32) 0x00000002) 22647777dab0Sopenharmony_ci#define SL_AUDIOMODE_WMA_LEVEL3 ((SLuint32) 0x00000003) 22657777dab0Sopenharmony_ci#define SL_AUDIOMODE_WMA_LEVEL4 ((SLuint32) 0x00000004) 22667777dab0Sopenharmony_ci#define SL_AUDIOMODE_WMAPRO_LEVELM0 ((SLuint32) 0x00000005) 22677777dab0Sopenharmony_ci#define SL_AUDIOMODE_WMAPRO_LEVELM1 ((SLuint32) 0x00000006) 22687777dab0Sopenharmony_ci#define SL_AUDIOMODE_WMAPRO_LEVELM2 ((SLuint32) 0x00000007) 22697777dab0Sopenharmony_ci#define SL_AUDIOMODE_WMAPRO_LEVELM3 ((SLuint32) 0x00000008) 22707777dab0Sopenharmony_ci 22717777dab0Sopenharmony_ci#define SL_AUDIOPROFILE_REALAUDIO ((SLuint32) 0x00000001) 22727777dab0Sopenharmony_ci 22737777dab0Sopenharmony_ci#define SL_AUDIOMODE_REALAUDIO_G2 ((SLuint32) 0x00000001) 22747777dab0Sopenharmony_ci#define SL_AUDIOMODE_REALAUDIO_8 ((SLuint32) 0x00000002) 22757777dab0Sopenharmony_ci#define SL_AUDIOMODE_REALAUDIO_10 ((SLuint32) 0x00000003) 22767777dab0Sopenharmony_ci#define SL_AUDIOMODE_REALAUDIO_SURROUND ((SLuint32) 0x00000004) 22777777dab0Sopenharmony_ci 22787777dab0Sopenharmony_citypedef struct SLAudioCodecDescriptor_ { 22797777dab0Sopenharmony_ci SLuint32 maxChannels; 22807777dab0Sopenharmony_ci SLuint32 minBitsPerSample; 22817777dab0Sopenharmony_ci SLuint32 maxBitsPerSample; 22827777dab0Sopenharmony_ci SLmilliHertz minSampleRate; 22837777dab0Sopenharmony_ci SLmilliHertz maxSampleRate; 22847777dab0Sopenharmony_ci SLboolean isFreqRangeContinuous; 22857777dab0Sopenharmony_ci SLmilliHertz *pSampleRatesSupported; 22867777dab0Sopenharmony_ci SLuint32 numSampleRatesSupported; 22877777dab0Sopenharmony_ci SLuint32 minBitRate; 22887777dab0Sopenharmony_ci SLuint32 maxBitRate; 22897777dab0Sopenharmony_ci SLboolean isBitrateRangeContinuous; 22907777dab0Sopenharmony_ci SLuint32 *pBitratesSupported; 22917777dab0Sopenharmony_ci SLuint32 numBitratesSupported; 22927777dab0Sopenharmony_ci SLuint32 profileSetting; 22937777dab0Sopenharmony_ci SLuint32 modeSetting; 22947777dab0Sopenharmony_ci} SLAudioCodecDescriptor; 22957777dab0Sopenharmony_ci 22967777dab0Sopenharmony_ci/*Structure used to retrieve the profile and level settings supported by an audio encoder */ 22977777dab0Sopenharmony_ci 22987777dab0Sopenharmony_citypedef struct SLAudioCodecProfileMode_ { 22997777dab0Sopenharmony_ci SLuint32 profileSetting; 23007777dab0Sopenharmony_ci SLuint32 modeSetting; 23017777dab0Sopenharmony_ci} SLAudioCodecProfileMode; 23027777dab0Sopenharmony_ci 23037777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_AUDIODECODERCAPABILITIES; 23047777dab0Sopenharmony_ci 23057777dab0Sopenharmony_cistruct SLAudioDecoderCapabilitiesItf_; 23067777dab0Sopenharmony_citypedef const struct SLAudioDecoderCapabilitiesItf_ * const * SLAudioDecoderCapabilitiesItf; 23077777dab0Sopenharmony_ci 23087777dab0Sopenharmony_cistruct SLAudioDecoderCapabilitiesItf_ { 23097777dab0Sopenharmony_ci SLresult (*GetAudioDecoders) ( 23107777dab0Sopenharmony_ci SLAudioDecoderCapabilitiesItf self, 23117777dab0Sopenharmony_ci SLuint32 * pNumDecoders , 23127777dab0Sopenharmony_ci SLuint32 *pDecoderIds 23137777dab0Sopenharmony_ci ); 23147777dab0Sopenharmony_ci SLresult (*GetAudioDecoderCapabilities) ( 23157777dab0Sopenharmony_ci SLAudioDecoderCapabilitiesItf self, 23167777dab0Sopenharmony_ci SLuint32 decoderId, 23177777dab0Sopenharmony_ci SLuint32 *pIndex, 23187777dab0Sopenharmony_ci SLAudioCodecDescriptor *pDescriptor 23197777dab0Sopenharmony_ci ); 23207777dab0Sopenharmony_ci}; 23217777dab0Sopenharmony_ci 23227777dab0Sopenharmony_ci 23237777dab0Sopenharmony_ci 23247777dab0Sopenharmony_ci 23257777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 23267777dab0Sopenharmony_ci/* Audio Encoder Capabilities Interface */ 23277777dab0Sopenharmony_ci/* --------------------------------------------------------------------------*/ 23287777dab0Sopenharmony_ci 23297777dab0Sopenharmony_ci/* Structure used when setting audio encoding parameters */ 23307777dab0Sopenharmony_ci 23317777dab0Sopenharmony_citypedef struct SLAudioEncoderSettings_ { 23327777dab0Sopenharmony_ci SLuint32 encoderId; 23337777dab0Sopenharmony_ci SLuint32 channelsIn; 23347777dab0Sopenharmony_ci SLuint32 channelsOut; 23357777dab0Sopenharmony_ci SLmilliHertz sampleRate; 23367777dab0Sopenharmony_ci SLuint32 bitRate; 23377777dab0Sopenharmony_ci SLuint32 bitsPerSample; 23387777dab0Sopenharmony_ci SLuint32 rateControl; 23397777dab0Sopenharmony_ci SLuint32 profileSetting; 23407777dab0Sopenharmony_ci SLuint32 levelSetting; 23417777dab0Sopenharmony_ci SLuint32 channelMode; 23427777dab0Sopenharmony_ci SLuint32 streamFormat; 23437777dab0Sopenharmony_ci SLuint32 encodeOptions; 23447777dab0Sopenharmony_ci SLuint32 blockAlignment; 23457777dab0Sopenharmony_ci} SLAudioEncoderSettings; 23467777dab0Sopenharmony_ci 23477777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_AUDIOENCODERCAPABILITIES; 23487777dab0Sopenharmony_ci 23497777dab0Sopenharmony_cistruct SLAudioEncoderCapabilitiesItf_; 23507777dab0Sopenharmony_citypedef const struct SLAudioEncoderCapabilitiesItf_ * const * SLAudioEncoderCapabilitiesItf; 23517777dab0Sopenharmony_ci 23527777dab0Sopenharmony_cistruct SLAudioEncoderCapabilitiesItf_ { 23537777dab0Sopenharmony_ci SLresult (*GetAudioEncoders) ( 23547777dab0Sopenharmony_ci SLAudioEncoderCapabilitiesItf self, 23557777dab0Sopenharmony_ci SLuint32 *pNumEncoders , 23567777dab0Sopenharmony_ci SLuint32 *pEncoderIds 23577777dab0Sopenharmony_ci ); 23587777dab0Sopenharmony_ci SLresult (*GetAudioEncoderCapabilities) ( 23597777dab0Sopenharmony_ci SLAudioEncoderCapabilitiesItf self, 23607777dab0Sopenharmony_ci SLuint32 encoderId, 23617777dab0Sopenharmony_ci SLuint32 *pIndex, 23627777dab0Sopenharmony_ci SLAudioCodecDescriptor * pDescriptor 23637777dab0Sopenharmony_ci ); 23647777dab0Sopenharmony_ci}; 23657777dab0Sopenharmony_ci 23667777dab0Sopenharmony_ci 23677777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 23687777dab0Sopenharmony_ci/* Audio Encoder Interface */ 23697777dab0Sopenharmony_ci/* --------------------------------------------------------------------------*/ 23707777dab0Sopenharmony_ci 23717777dab0Sopenharmony_ci 23727777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_AUDIOENCODER; 23737777dab0Sopenharmony_ci 23747777dab0Sopenharmony_cistruct SLAudioEncoderItf_; 23757777dab0Sopenharmony_citypedef const struct SLAudioEncoderItf_ * const * SLAudioEncoderItf; 23767777dab0Sopenharmony_ci 23777777dab0Sopenharmony_cistruct SLAudioEncoderItf_ { 23787777dab0Sopenharmony_ci SLresult (*SetEncoderSettings) ( 23797777dab0Sopenharmony_ci SLAudioEncoderItf self, 23807777dab0Sopenharmony_ci SLAudioEncoderSettings *pSettings 23817777dab0Sopenharmony_ci ); 23827777dab0Sopenharmony_ci SLresult (*GetEncoderSettings) ( 23837777dab0Sopenharmony_ci SLAudioEncoderItf self, 23847777dab0Sopenharmony_ci SLAudioEncoderSettings *pSettings 23857777dab0Sopenharmony_ci ); 23867777dab0Sopenharmony_ci}; 23877777dab0Sopenharmony_ci 23887777dab0Sopenharmony_ci 23897777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 23907777dab0Sopenharmony_ci/* Bass Boost Interface */ 23917777dab0Sopenharmony_ci/* --------------------------------------------------------------------------*/ 23927777dab0Sopenharmony_ci 23937777dab0Sopenharmony_ci 23947777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_BASSBOOST; 23957777dab0Sopenharmony_ci 23967777dab0Sopenharmony_cistruct SLBassBoostItf_; 23977777dab0Sopenharmony_citypedef const struct SLBassBoostItf_ * const * SLBassBoostItf; 23987777dab0Sopenharmony_ci 23997777dab0Sopenharmony_cistruct SLBassBoostItf_ { 24007777dab0Sopenharmony_ci SLresult (*SetEnabled)( 24017777dab0Sopenharmony_ci SLBassBoostItf self, 24027777dab0Sopenharmony_ci SLboolean enabled 24037777dab0Sopenharmony_ci ); 24047777dab0Sopenharmony_ci SLresult (*IsEnabled)( 24057777dab0Sopenharmony_ci SLBassBoostItf self, 24067777dab0Sopenharmony_ci SLboolean *pEnabled 24077777dab0Sopenharmony_ci ); 24087777dab0Sopenharmony_ci SLresult (*SetStrength)( 24097777dab0Sopenharmony_ci SLBassBoostItf self, 24107777dab0Sopenharmony_ci SLpermille strength 24117777dab0Sopenharmony_ci ); 24127777dab0Sopenharmony_ci SLresult (*GetRoundedStrength)( 24137777dab0Sopenharmony_ci SLBassBoostItf self, 24147777dab0Sopenharmony_ci SLpermille *pStrength 24157777dab0Sopenharmony_ci ); 24167777dab0Sopenharmony_ci SLresult (*IsStrengthSupported)( 24177777dab0Sopenharmony_ci SLBassBoostItf self, 24187777dab0Sopenharmony_ci SLboolean *pSupported 24197777dab0Sopenharmony_ci ); 24207777dab0Sopenharmony_ci}; 24217777dab0Sopenharmony_ci 24227777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 24237777dab0Sopenharmony_ci/* Pitch Interface */ 24247777dab0Sopenharmony_ci/* --------------------------------------------------------------------------*/ 24257777dab0Sopenharmony_ci 24267777dab0Sopenharmony_ci 24277777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_PITCH; 24287777dab0Sopenharmony_ci 24297777dab0Sopenharmony_cistruct SLPitchItf_; 24307777dab0Sopenharmony_citypedef const struct SLPitchItf_ * const * SLPitchItf; 24317777dab0Sopenharmony_ci 24327777dab0Sopenharmony_cistruct SLPitchItf_ { 24337777dab0Sopenharmony_ci SLresult (*SetPitch) ( 24347777dab0Sopenharmony_ci SLPitchItf self, 24357777dab0Sopenharmony_ci SLpermille pitch 24367777dab0Sopenharmony_ci ); 24377777dab0Sopenharmony_ci SLresult (*GetPitch) ( 24387777dab0Sopenharmony_ci SLPitchItf self, 24397777dab0Sopenharmony_ci SLpermille *pPitch 24407777dab0Sopenharmony_ci ); 24417777dab0Sopenharmony_ci SLresult (*GetPitchCapabilities) ( 24427777dab0Sopenharmony_ci SLPitchItf self, 24437777dab0Sopenharmony_ci SLpermille *pMinPitch, 24447777dab0Sopenharmony_ci SLpermille *pMaxPitch 24457777dab0Sopenharmony_ci ); 24467777dab0Sopenharmony_ci}; 24477777dab0Sopenharmony_ci 24487777dab0Sopenharmony_ci 24497777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 24507777dab0Sopenharmony_ci/* Rate Pitch Interface */ 24517777dab0Sopenharmony_ci/* RatePitchItf is an interface for controlling the rate a sound is played */ 24527777dab0Sopenharmony_ci/* back. A change in rate will cause a change in pitch. */ 24537777dab0Sopenharmony_ci/* --------------------------------------------------------------------------*/ 24547777dab0Sopenharmony_ci 24557777dab0Sopenharmony_ci 24567777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_RATEPITCH; 24577777dab0Sopenharmony_ci 24587777dab0Sopenharmony_cistruct SLRatePitchItf_; 24597777dab0Sopenharmony_citypedef const struct SLRatePitchItf_ * const * SLRatePitchItf; 24607777dab0Sopenharmony_ci 24617777dab0Sopenharmony_cistruct SLRatePitchItf_ { 24627777dab0Sopenharmony_ci SLresult (*SetRate) ( 24637777dab0Sopenharmony_ci SLRatePitchItf self, 24647777dab0Sopenharmony_ci SLpermille rate 24657777dab0Sopenharmony_ci ); 24667777dab0Sopenharmony_ci SLresult (*GetRate) ( 24677777dab0Sopenharmony_ci SLRatePitchItf self, 24687777dab0Sopenharmony_ci SLpermille *pRate 24697777dab0Sopenharmony_ci ); 24707777dab0Sopenharmony_ci SLresult (*GetRatePitchCapabilities) ( 24717777dab0Sopenharmony_ci SLRatePitchItf self, 24727777dab0Sopenharmony_ci SLpermille *pMinRate, 24737777dab0Sopenharmony_ci SLpermille *pMaxRate 24747777dab0Sopenharmony_ci ); 24757777dab0Sopenharmony_ci}; 24767777dab0Sopenharmony_ci 24777777dab0Sopenharmony_ci 24787777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 24797777dab0Sopenharmony_ci/* Virtualizer Interface */ 24807777dab0Sopenharmony_ci/* --------------------------------------------------------------------------*/ 24817777dab0Sopenharmony_ci 24827777dab0Sopenharmony_ci 24837777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_VIRTUALIZER; 24847777dab0Sopenharmony_ci 24857777dab0Sopenharmony_cistruct SLVirtualizerItf_; 24867777dab0Sopenharmony_citypedef const struct SLVirtualizerItf_ * const * SLVirtualizerItf; 24877777dab0Sopenharmony_ci 24887777dab0Sopenharmony_cistruct SLVirtualizerItf_ { 24897777dab0Sopenharmony_ci SLresult (*SetEnabled)( 24907777dab0Sopenharmony_ci SLVirtualizerItf self, 24917777dab0Sopenharmony_ci SLboolean enabled 24927777dab0Sopenharmony_ci ); 24937777dab0Sopenharmony_ci SLresult (*IsEnabled)( 24947777dab0Sopenharmony_ci SLVirtualizerItf self, 24957777dab0Sopenharmony_ci SLboolean *pEnabled 24967777dab0Sopenharmony_ci ); 24977777dab0Sopenharmony_ci SLresult (*SetStrength)( 24987777dab0Sopenharmony_ci SLVirtualizerItf self, 24997777dab0Sopenharmony_ci SLpermille strength 25007777dab0Sopenharmony_ci ); 25017777dab0Sopenharmony_ci SLresult (*GetRoundedStrength)( 25027777dab0Sopenharmony_ci SLVirtualizerItf self, 25037777dab0Sopenharmony_ci SLpermille *pStrength 25047777dab0Sopenharmony_ci ); 25057777dab0Sopenharmony_ci SLresult (*IsStrengthSupported)( 25067777dab0Sopenharmony_ci SLVirtualizerItf self, 25077777dab0Sopenharmony_ci SLboolean *pSupported 25087777dab0Sopenharmony_ci ); 25097777dab0Sopenharmony_ci}; 25107777dab0Sopenharmony_ci 25117777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 25127777dab0Sopenharmony_ci/* Visualization Interface */ 25137777dab0Sopenharmony_ci/* --------------------------------------------------------------------------*/ 25147777dab0Sopenharmony_ci 25157777dab0Sopenharmony_ci 25167777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_VISUALIZATION; 25177777dab0Sopenharmony_ci 25187777dab0Sopenharmony_cistruct SLVisualizationItf_; 25197777dab0Sopenharmony_citypedef const struct SLVisualizationItf_ * const * SLVisualizationItf; 25207777dab0Sopenharmony_ci 25217777dab0Sopenharmony_citypedef void (SLAPIENTRY *slVisualizationCallback) ( 25227777dab0Sopenharmony_ci void *pContext, 25237777dab0Sopenharmony_ci const SLuint8 waveform[], 25247777dab0Sopenharmony_ci const SLuint8 fft[], 25257777dab0Sopenharmony_ci SLmilliHertz samplerate 25267777dab0Sopenharmony_ci); 25277777dab0Sopenharmony_ci 25287777dab0Sopenharmony_cistruct SLVisualizationItf_{ 25297777dab0Sopenharmony_ci SLresult (*RegisterVisualizationCallback)( 25307777dab0Sopenharmony_ci SLVisualizationItf self, 25317777dab0Sopenharmony_ci slVisualizationCallback callback, 25327777dab0Sopenharmony_ci void *pContext, 25337777dab0Sopenharmony_ci SLmilliHertz rate 25347777dab0Sopenharmony_ci ); 25357777dab0Sopenharmony_ci SLresult (*GetMaxRate)( 25367777dab0Sopenharmony_ci SLVisualizationItf self, 25377777dab0Sopenharmony_ci SLmilliHertz* pRate 25387777dab0Sopenharmony_ci ); 25397777dab0Sopenharmony_ci}; 25407777dab0Sopenharmony_ci 25417777dab0Sopenharmony_ci 25427777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 25437777dab0Sopenharmony_ci/* Engine Interface */ 25447777dab0Sopenharmony_ci/* --------------------------------------------------------------------------*/ 25457777dab0Sopenharmony_ci 25467777dab0Sopenharmony_ci 25477777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_ENGINE; 25487777dab0Sopenharmony_ci 25497777dab0Sopenharmony_cistruct SLEngineItf_; 25507777dab0Sopenharmony_citypedef const struct SLEngineItf_ * const * SLEngineItf; 25517777dab0Sopenharmony_ci 25527777dab0Sopenharmony_ci 25537777dab0Sopenharmony_cistruct SLEngineItf_ { 25547777dab0Sopenharmony_ci 25557777dab0Sopenharmony_ci SLresult (*CreateLEDDevice) ( 25567777dab0Sopenharmony_ci SLEngineItf self, 25577777dab0Sopenharmony_ci SLObjectItf * pDevice, 25587777dab0Sopenharmony_ci SLuint32 deviceID, 25597777dab0Sopenharmony_ci SLuint32 numInterfaces, 25607777dab0Sopenharmony_ci const SLInterfaceID * pInterfaceIds, 25617777dab0Sopenharmony_ci const SLboolean * pInterfaceRequired 25627777dab0Sopenharmony_ci ); 25637777dab0Sopenharmony_ci SLresult (*CreateVibraDevice) ( 25647777dab0Sopenharmony_ci SLEngineItf self, 25657777dab0Sopenharmony_ci SLObjectItf * pDevice, 25667777dab0Sopenharmony_ci SLuint32 deviceID, 25677777dab0Sopenharmony_ci SLuint32 numInterfaces, 25687777dab0Sopenharmony_ci const SLInterfaceID * pInterfaceIds, 25697777dab0Sopenharmony_ci const SLboolean * pInterfaceRequired 25707777dab0Sopenharmony_ci ); 25717777dab0Sopenharmony_ci SLresult (*CreateAudioPlayer) ( 25727777dab0Sopenharmony_ci SLEngineItf self, 25737777dab0Sopenharmony_ci SLObjectItf * pPlayer, 25747777dab0Sopenharmony_ci SLDataSource *pAudioSrc, 25757777dab0Sopenharmony_ci SLDataSink *pAudioSnk, 25767777dab0Sopenharmony_ci SLuint32 numInterfaces, 25777777dab0Sopenharmony_ci const SLInterfaceID * pInterfaceIds, 25787777dab0Sopenharmony_ci const SLboolean * pInterfaceRequired 25797777dab0Sopenharmony_ci ); 25807777dab0Sopenharmony_ci SLresult (*CreateAudioRecorder) ( 25817777dab0Sopenharmony_ci SLEngineItf self, 25827777dab0Sopenharmony_ci SLObjectItf * pRecorder, 25837777dab0Sopenharmony_ci SLDataSource *pAudioSrc, 25847777dab0Sopenharmony_ci SLDataSink *pAudioSnk, 25857777dab0Sopenharmony_ci SLuint32 numInterfaces, 25867777dab0Sopenharmony_ci const SLInterfaceID * pInterfaceIds, 25877777dab0Sopenharmony_ci const SLboolean * pInterfaceRequired 25887777dab0Sopenharmony_ci ); 25897777dab0Sopenharmony_ci SLresult (*CreateMidiPlayer) ( 25907777dab0Sopenharmony_ci SLEngineItf self, 25917777dab0Sopenharmony_ci SLObjectItf * pPlayer, 25927777dab0Sopenharmony_ci SLDataSource *pMIDISrc, 25937777dab0Sopenharmony_ci SLDataSource *pBankSrc, 25947777dab0Sopenharmony_ci SLDataSink *pAudioOutput, 25957777dab0Sopenharmony_ci SLDataSink *pVibra, 25967777dab0Sopenharmony_ci SLDataSink *pLEDArray, 25977777dab0Sopenharmony_ci SLuint32 numInterfaces, 25987777dab0Sopenharmony_ci const SLInterfaceID * pInterfaceIds, 25997777dab0Sopenharmony_ci const SLboolean * pInterfaceRequired 26007777dab0Sopenharmony_ci ); 26017777dab0Sopenharmony_ci SLresult (*CreateListener) ( 26027777dab0Sopenharmony_ci SLEngineItf self, 26037777dab0Sopenharmony_ci SLObjectItf * pListener, 26047777dab0Sopenharmony_ci SLuint32 numInterfaces, 26057777dab0Sopenharmony_ci const SLInterfaceID * pInterfaceIds, 26067777dab0Sopenharmony_ci const SLboolean * pInterfaceRequired 26077777dab0Sopenharmony_ci ); 26087777dab0Sopenharmony_ci SLresult (*Create3DGroup) ( 26097777dab0Sopenharmony_ci SLEngineItf self, 26107777dab0Sopenharmony_ci SLObjectItf * pGroup, 26117777dab0Sopenharmony_ci SLuint32 numInterfaces, 26127777dab0Sopenharmony_ci const SLInterfaceID * pInterfaceIds, 26137777dab0Sopenharmony_ci const SLboolean * pInterfaceRequired 26147777dab0Sopenharmony_ci ); 26157777dab0Sopenharmony_ci SLresult (*CreateOutputMix) ( 26167777dab0Sopenharmony_ci SLEngineItf self, 26177777dab0Sopenharmony_ci SLObjectItf * pMix, 26187777dab0Sopenharmony_ci SLuint32 numInterfaces, 26197777dab0Sopenharmony_ci const SLInterfaceID * pInterfaceIds, 26207777dab0Sopenharmony_ci const SLboolean * pInterfaceRequired 26217777dab0Sopenharmony_ci ); 26227777dab0Sopenharmony_ci SLresult (*CreateMetadataExtractor) ( 26237777dab0Sopenharmony_ci SLEngineItf self, 26247777dab0Sopenharmony_ci SLObjectItf * pMetadataExtractor, 26257777dab0Sopenharmony_ci SLDataSource * pDataSource, 26267777dab0Sopenharmony_ci SLuint32 numInterfaces, 26277777dab0Sopenharmony_ci const SLInterfaceID * pInterfaceIds, 26287777dab0Sopenharmony_ci const SLboolean * pInterfaceRequired 26297777dab0Sopenharmony_ci ); 26307777dab0Sopenharmony_ci SLresult (*CreateExtensionObject) ( 26317777dab0Sopenharmony_ci SLEngineItf self, 26327777dab0Sopenharmony_ci SLObjectItf * pObject, 26337777dab0Sopenharmony_ci void * pParameters, 26347777dab0Sopenharmony_ci SLuint32 objectID, 26357777dab0Sopenharmony_ci SLuint32 numInterfaces, 26367777dab0Sopenharmony_ci const SLInterfaceID * pInterfaceIds, 26377777dab0Sopenharmony_ci const SLboolean * pInterfaceRequired 26387777dab0Sopenharmony_ci ); 26397777dab0Sopenharmony_ci SLresult (*QueryNumSupportedInterfaces) ( 26407777dab0Sopenharmony_ci SLEngineItf self, 26417777dab0Sopenharmony_ci SLuint32 objectID, 26427777dab0Sopenharmony_ci SLuint32 * pNumSupportedInterfaces 26437777dab0Sopenharmony_ci ); 26447777dab0Sopenharmony_ci SLresult (*QuerySupportedInterfaces) ( 26457777dab0Sopenharmony_ci SLEngineItf self, 26467777dab0Sopenharmony_ci SLuint32 objectID, 26477777dab0Sopenharmony_ci SLuint32 index, 26487777dab0Sopenharmony_ci SLInterfaceID * pInterfaceId 26497777dab0Sopenharmony_ci ); 26507777dab0Sopenharmony_ci SLresult (*QueryNumSupportedExtensions) ( 26517777dab0Sopenharmony_ci SLEngineItf self, 26527777dab0Sopenharmony_ci SLuint32 * pNumExtensions 26537777dab0Sopenharmony_ci ); 26547777dab0Sopenharmony_ci SLresult (*QuerySupportedExtension) ( 26557777dab0Sopenharmony_ci SLEngineItf self, 26567777dab0Sopenharmony_ci SLuint32 index, 26577777dab0Sopenharmony_ci SLchar * pExtensionName, 26587777dab0Sopenharmony_ci SLint16 * pNameLength 26597777dab0Sopenharmony_ci ); 26607777dab0Sopenharmony_ci SLresult (*IsExtensionSupported) ( 26617777dab0Sopenharmony_ci SLEngineItf self, 26627777dab0Sopenharmony_ci const SLchar * pExtensionName, 26637777dab0Sopenharmony_ci SLboolean * pSupported 26647777dab0Sopenharmony_ci ); 26657777dab0Sopenharmony_ci}; 26667777dab0Sopenharmony_ci 26677777dab0Sopenharmony_ci 26687777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 26697777dab0Sopenharmony_ci/* Engine Capabilities Interface */ 26707777dab0Sopenharmony_ci/* --------------------------------------------------------------------------*/ 26717777dab0Sopenharmony_ci 26727777dab0Sopenharmony_ci 26737777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_ENGINECAPABILITIES; 26747777dab0Sopenharmony_ci 26757777dab0Sopenharmony_cistruct SLEngineCapabilitiesItf_; 26767777dab0Sopenharmony_citypedef const struct SLEngineCapabilitiesItf_ * const * SLEngineCapabilitiesItf; 26777777dab0Sopenharmony_ci 26787777dab0Sopenharmony_cistruct SLEngineCapabilitiesItf_ { 26797777dab0Sopenharmony_ci SLresult (*QuerySupportedProfiles) ( 26807777dab0Sopenharmony_ci SLEngineCapabilitiesItf self, 26817777dab0Sopenharmony_ci SLuint16 *pProfilesSupported 26827777dab0Sopenharmony_ci ); 26837777dab0Sopenharmony_ci SLresult (*QueryAvailableVoices) ( 26847777dab0Sopenharmony_ci SLEngineCapabilitiesItf self, 26857777dab0Sopenharmony_ci SLuint16 voiceType, 26867777dab0Sopenharmony_ci SLint16 *pNumMaxVoices, 26877777dab0Sopenharmony_ci SLboolean *pIsAbsoluteMax, 26887777dab0Sopenharmony_ci SLint16 *pNumFreeVoices 26897777dab0Sopenharmony_ci ); 26907777dab0Sopenharmony_ci SLresult (*QueryNumberOfMIDISynthesizers) ( 26917777dab0Sopenharmony_ci SLEngineCapabilitiesItf self, 26927777dab0Sopenharmony_ci SLint16 *pNumMIDIsynthesizers 26937777dab0Sopenharmony_ci ); 26947777dab0Sopenharmony_ci SLresult (*QueryAPIVersion) ( 26957777dab0Sopenharmony_ci SLEngineCapabilitiesItf self, 26967777dab0Sopenharmony_ci SLint16 *pMajor, 26977777dab0Sopenharmony_ci SLint16 *pMinor, 26987777dab0Sopenharmony_ci SLint16 *pStep 26997777dab0Sopenharmony_ci ); 27007777dab0Sopenharmony_ci SLresult (*QueryLEDCapabilities) ( 27017777dab0Sopenharmony_ci SLEngineCapabilitiesItf self, 27027777dab0Sopenharmony_ci SLuint32 *pIndex, 27037777dab0Sopenharmony_ci SLuint32 *pLEDDeviceID, 27047777dab0Sopenharmony_ci SLLEDDescriptor *pDescriptor 27057777dab0Sopenharmony_ci ); 27067777dab0Sopenharmony_ci SLresult (*QueryVibraCapabilities) ( 27077777dab0Sopenharmony_ci SLEngineCapabilitiesItf self, 27087777dab0Sopenharmony_ci SLuint32 *pIndex, 27097777dab0Sopenharmony_ci SLuint32 *pVibraDeviceID, 27107777dab0Sopenharmony_ci SLVibraDescriptor *pDescriptor 27117777dab0Sopenharmony_ci ); 27127777dab0Sopenharmony_ci SLresult (*IsThreadSafe) ( 27137777dab0Sopenharmony_ci SLEngineCapabilitiesItf self, 27147777dab0Sopenharmony_ci SLboolean *pIsThreadSafe 27157777dab0Sopenharmony_ci ); 27167777dab0Sopenharmony_ci}; 27177777dab0Sopenharmony_ci 27187777dab0Sopenharmony_ci/*---------------------------------------------------------------------------*/ 27197777dab0Sopenharmony_ci/* Thread Sync Interface */ 27207777dab0Sopenharmony_ci/* --------------------------------------------------------------------------*/ 27217777dab0Sopenharmony_ci 27227777dab0Sopenharmony_ci 27237777dab0Sopenharmony_ciextern const SLInterfaceID SL_IID_THREADSYNC; 27247777dab0Sopenharmony_ci 27257777dab0Sopenharmony_cistruct SLThreadSyncItf_; 27267777dab0Sopenharmony_citypedef const struct SLThreadSyncItf_ * const * SLThreadSyncItf; 27277777dab0Sopenharmony_ci 27287777dab0Sopenharmony_ci 27297777dab0Sopenharmony_cistruct SLThreadSyncItf_ { 27307777dab0Sopenharmony_ci SLresult (*EnterCriticalSection) ( 27317777dab0Sopenharmony_ci SLThreadSyncItf self 27327777dab0Sopenharmony_ci ); 27337777dab0Sopenharmony_ci SLresult (*ExitCriticalSection) ( 27347777dab0Sopenharmony_ci SLThreadSyncItf self 27357777dab0Sopenharmony_ci ); 27367777dab0Sopenharmony_ci}; 27377777dab0Sopenharmony_ci 27387777dab0Sopenharmony_ci 27397777dab0Sopenharmony_ci/*****************************************************************************/ 27407777dab0Sopenharmony_ci/* SL engine constructor */ 27417777dab0Sopenharmony_ci/*****************************************************************************/ 27427777dab0Sopenharmony_ci 27437777dab0Sopenharmony_ci#define SL_ENGINEOPTION_THREADSAFE ((SLuint32) 0x00000001) 27447777dab0Sopenharmony_ci#define SL_ENGINEOPTION_LOSSOFCONTROL ((SLuint32) 0x00000002) 27457777dab0Sopenharmony_ci 27467777dab0Sopenharmony_citypedef struct SLEngineOption_ { 27477777dab0Sopenharmony_ci SLuint32 feature; 27487777dab0Sopenharmony_ci SLuint32 data; 27497777dab0Sopenharmony_ci} SLEngineOption; 27507777dab0Sopenharmony_ci 27517777dab0Sopenharmony_ci 27527777dab0Sopenharmony_ciSLresult SLAPIENTRY slCreateEngine( 27537777dab0Sopenharmony_ci SLObjectItf *pEngine, 27547777dab0Sopenharmony_ci SLuint32 numOptions, 27557777dab0Sopenharmony_ci const SLEngineOption *pEngineOptions, 27567777dab0Sopenharmony_ci SLuint32 numInterfaces, 27577777dab0Sopenharmony_ci const SLInterfaceID *pInterfaceIds, 27587777dab0Sopenharmony_ci const SLboolean * pInterfaceRequired 27597777dab0Sopenharmony_ci); 27607777dab0Sopenharmony_ci 27617777dab0Sopenharmony_ciSLresult SLAPIENTRY slQueryNumSupportedEngineInterfaces( 27627777dab0Sopenharmony_ci SLuint32 * pNumSupportedInterfaces 27637777dab0Sopenharmony_ci); 27647777dab0Sopenharmony_ci 27657777dab0Sopenharmony_ciSLresult SLAPIENTRY slQuerySupportedEngineInterfaces( 27667777dab0Sopenharmony_ci SLuint32 index, 27677777dab0Sopenharmony_ci SLInterfaceID * pInterfaceId 27687777dab0Sopenharmony_ci); 27697777dab0Sopenharmony_ci 27707777dab0Sopenharmony_ci#ifdef __cplusplus 27717777dab0Sopenharmony_ci} /* extern "C" */ 27727777dab0Sopenharmony_ci#endif 27737777dab0Sopenharmony_ci 27747777dab0Sopenharmony_ci#endif /* OPENSL_ES_H_ */ 2775