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