19c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* 229ecc091f988ce8e6d95296a5f47377007ad77feGlenn Kasten * Copyright (c) 2007-2009 The Khronos Group Inc. 39c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten * 49c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten * Permission is hereby granted, free of charge, to any person obtaining a copy of 59c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten * this software and /or associated documentation files (the "Materials "), to 69c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten * deal in the Materials without restriction, including without limitation the 79c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 89c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten * sell copies of the Materials, and to permit persons to whom the Materials are 99c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten * furnished to do so, subject to 109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten * the following conditions: 119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten * 129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten * The above copyright notice and this permission notice shall be included 139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten * in all copies or substantial portions of the Materials. 149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten * 159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten * OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS IN THE 219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten * MATERIALS. 229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten * 2329ecc091f988ce8e6d95296a5f47377007ad77feGlenn Kasten * OpenSLES.h - OpenSL ES version 1.0.1 249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten * 259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten */ 269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/****************************************************************************/ 289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* NOTE: This file is a standard OpenSL ES header file and should not be */ 299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* modified in any way. */ 309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/****************************************************************************/ 319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#ifndef OPENSL_ES_H_ 339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define OPENSL_ES_H_ 349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#ifdef __cplusplus 369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenextern "C" { 379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#endif 389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#include "OpenSLES_Platform.h" 409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*****************************************************************************/ 439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Common types, structures, and defines */ 449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*****************************************************************************/ 459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#ifndef _KHRONOS_KEYS_ 479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define _KHRONOS_KEYS_ 489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define KHRONOS_TITLE "KhronosTitle" 509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define KHRONOS_ALBUM "KhronosAlbum" 519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define KHRONOS_TRACK_NUMBER "KhronosTrackNumber" 529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define KHRONOS_ARTIST "KhronosArtist" 539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define KHRONOS_GENRE "KhronosGenre" 549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define KHRONOS_YEAR "KhronosYear" 559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define KHRONOS_COMMENT "KhronosComment" 569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define KHRONOS_ARTIST_URL "KhronosArtistURL" 579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define KHRONOS_CONTENT_URL "KhronosContentURL" 589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define KHRONOS_RATING "KhronosRating" 599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define KHRONOS_ALBUM_ART "KhronosAlbumArt" 609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define KHRONOS_COPYRIGHT "KhronosCopyright" 619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#endif 639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* remap common types to SL types for clarity */ 669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef sl_int8_t SLint8; /* 8 bit signed integer */ 679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef sl_uint8_t SLuint8; /* 8 bit unsigned integer */ 689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef sl_int16_t SLint16; /* 16 bit signed integer */ 699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef sl_uint16_t SLuint16; /* 16 bit unsigned integer */ 709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef sl_int32_t SLint32; /* 32 bit signed integer */ 719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef sl_uint32_t SLuint32; /* 32 bit unsigned integer */ 729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef SLuint32 SLboolean; 749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_BOOLEAN_FALSE ((SLboolean) 0x00000000) 759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_BOOLEAN_TRUE ((SLboolean) 0x00000001) 769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef SLuint8 SLchar; /* UTF-8 is to be used */ 789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef SLint16 SLmillibel; 799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef SLuint32 SLmillisecond; 809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef SLuint32 SLmilliHertz; 819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef SLint32 SLmillimeter; 829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef SLint32 SLmillidegree; 839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef SLint16 SLpermille; 849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef SLuint32 SLmicrosecond; 859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef SLuint32 SLresult; 869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_MILLIBEL_MAX ((SLmillibel) 0x7FFF) 889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_MILLIBEL_MIN ((SLmillibel) (-SL_MILLIBEL_MAX-1)) 899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_MILLIHERTZ_MAX ((SLmilliHertz) 0xFFFFFFFF) 919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_MILLIMETER_MAX ((SLmillimeter) 0x7FFFFFFF) 929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/** Interface ID defined as a UUID */ 949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLInterfaceID_ { 959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 time_low; 969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 time_mid; 979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 time_hi_and_version; 989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 clock_seq; 999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint8 node[6]; 1009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten} * SLInterfaceID; 1019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Forward declaration for the object interface */ 1039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLObjectItf_; 1049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLObjectItf_ * const * SLObjectItf; 1069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Objects ID's */ 1089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_OBJECTID_ENGINE ((SLuint32) 0x00001001) 1109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_OBJECTID_LEDDEVICE ((SLuint32) 0x00001002) 1119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_OBJECTID_VIBRADEVICE ((SLuint32) 0x00001003) 1129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_OBJECTID_AUDIOPLAYER ((SLuint32) 0x00001004) 1139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_OBJECTID_AUDIORECORDER ((SLuint32) 0x00001005) 1149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_OBJECTID_MIDIPLAYER ((SLuint32) 0x00001006) 1159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_OBJECTID_LISTENER ((SLuint32) 0x00001007) 1169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_OBJECTID_3DGROUP ((SLuint32) 0x00001008) 1179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_OBJECTID_OUTPUTMIX ((SLuint32) 0x00001009) 1189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_OBJECTID_METADATAEXTRACTOR ((SLuint32) 0x0000100A) 1199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* SL Profiles */ 1229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_PROFILES_PHONE ((SLuint16) 0x0001) 1249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_PROFILES_MUSIC ((SLuint16) 0x0002) 1259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_PROFILES_GAME ((SLuint16) 0x0004) 1269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Types of voices supported by the system */ 1289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_VOICETYPE_2D_AUDIO ((SLuint16) 0x0001) 1309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_VOICETYPE_MIDI ((SLuint16) 0x0002) 1319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_VOICETYPE_3D_AUDIO ((SLuint16) 0x0004) 1329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_VOICETYPE_3D_MIDIOUTPUT ((SLuint16) 0x0008) 1339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Convenient macros representing various different priority levels, for use with the SetPriority method */ 1359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_PRIORITY_LOWEST ((SLint32) (-0x7FFFFFFF-1)) 1379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_PRIORITY_VERYLOW ((SLint32) -0x60000000) 1389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_PRIORITY_LOW ((SLint32) -0x40000000) 1399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_PRIORITY_BELOWNORMAL ((SLint32) -0x20000000) 1409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_PRIORITY_NORMAL ((SLint32) 0x00000000) 1419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_PRIORITY_ABOVENORMAL ((SLint32) 0x20000000) 1429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_PRIORITY_HIGH ((SLint32) 0x40000000) 1439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_PRIORITY_VERYHIGH ((SLint32) 0x60000000) 1449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_PRIORITY_HIGHEST ((SLint32) 0x7FFFFFFF) 1459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/** These macros list the various sample formats that are possible on audio input and output devices. */ 1489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_PCMSAMPLEFORMAT_FIXED_8 ((SLuint16) 0x0008) 1509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_PCMSAMPLEFORMAT_FIXED_16 ((SLuint16) 0x0010) 1519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_PCMSAMPLEFORMAT_FIXED_20 ((SLuint16) 0x0014) 1529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_PCMSAMPLEFORMAT_FIXED_24 ((SLuint16) 0x0018) 1539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_PCMSAMPLEFORMAT_FIXED_28 ((SLuint16) 0x001C) 1549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_PCMSAMPLEFORMAT_FIXED_32 ((SLuint16) 0x0020) 1559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/** These macros specify the commonly used sampling rates (in milliHertz) supported by most audio I/O devices. */ 1589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_SAMPLINGRATE_8 ((SLuint32) 8000000) 1609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_SAMPLINGRATE_11_025 ((SLuint32) 11025000) 1619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_SAMPLINGRATE_12 ((SLuint32) 12000000) 1629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_SAMPLINGRATE_16 ((SLuint32) 16000000) 1639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_SAMPLINGRATE_22_05 ((SLuint32) 22050000) 1649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_SAMPLINGRATE_24 ((SLuint32) 24000000) 1659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_SAMPLINGRATE_32 ((SLuint32) 32000000) 1669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_SAMPLINGRATE_44_1 ((SLuint32) 44100000) 1679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_SAMPLINGRATE_48 ((SLuint32) 48000000) 1689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_SAMPLINGRATE_64 ((SLuint32) 64000000) 1699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_SAMPLINGRATE_88_2 ((SLuint32) 88200000) 1709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_SAMPLINGRATE_96 ((SLuint32) 96000000) 1719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_SAMPLINGRATE_192 ((SLuint32) 192000000) 1729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_SPEAKER_FRONT_LEFT ((SLuint32) 0x00000001) 1749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_SPEAKER_FRONT_RIGHT ((SLuint32) 0x00000002) 1759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_SPEAKER_FRONT_CENTER ((SLuint32) 0x00000004) 1769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_SPEAKER_LOW_FREQUENCY ((SLuint32) 0x00000008) 1779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_SPEAKER_BACK_LEFT ((SLuint32) 0x00000010) 1789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_SPEAKER_BACK_RIGHT ((SLuint32) 0x00000020) 1799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_SPEAKER_FRONT_LEFT_OF_CENTER ((SLuint32) 0x00000040) 1809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_SPEAKER_FRONT_RIGHT_OF_CENTER ((SLuint32) 0x00000080) 1819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_SPEAKER_BACK_CENTER ((SLuint32) 0x00000100) 1829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_SPEAKER_SIDE_LEFT ((SLuint32) 0x00000200) 1839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_SPEAKER_SIDE_RIGHT ((SLuint32) 0x00000400) 1849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_SPEAKER_TOP_CENTER ((SLuint32) 0x00000800) 1859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_SPEAKER_TOP_FRONT_LEFT ((SLuint32) 0x00001000) 1869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_SPEAKER_TOP_FRONT_CENTER ((SLuint32) 0x00002000) 1879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_SPEAKER_TOP_FRONT_RIGHT ((SLuint32) 0x00004000) 1889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_SPEAKER_TOP_BACK_LEFT ((SLuint32) 0x00008000) 1899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_SPEAKER_TOP_BACK_CENTER ((SLuint32) 0x00010000) 1909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_SPEAKER_TOP_BACK_RIGHT ((SLuint32) 0x00020000) 1919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*****************************************************************************/ 1949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Errors */ 1959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* */ 1969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*****************************************************************************/ 1979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RESULT_SUCCESS ((SLuint32) 0x00000000) 1999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RESULT_PRECONDITIONS_VIOLATED ((SLuint32) 0x00000001) 2009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RESULT_PARAMETER_INVALID ((SLuint32) 0x00000002) 2019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RESULT_MEMORY_FAILURE ((SLuint32) 0x00000003) 2029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RESULT_RESOURCE_ERROR ((SLuint32) 0x00000004) 2039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RESULT_RESOURCE_LOST ((SLuint32) 0x00000005) 2049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RESULT_IO_ERROR ((SLuint32) 0x00000006) 2059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RESULT_BUFFER_INSUFFICIENT ((SLuint32) 0x00000007) 2069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RESULT_CONTENT_CORRUPTED ((SLuint32) 0x00000008) 2079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RESULT_CONTENT_UNSUPPORTED ((SLuint32) 0x00000009) 2089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RESULT_CONTENT_NOT_FOUND ((SLuint32) 0x0000000A) 2099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RESULT_PERMISSION_DENIED ((SLuint32) 0x0000000B) 2109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RESULT_FEATURE_UNSUPPORTED ((SLuint32) 0x0000000C) 2119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RESULT_INTERNAL_ERROR ((SLuint32) 0x0000000D) 2129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RESULT_UNKNOWN_ERROR ((SLuint32) 0x0000000E) 2139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RESULT_OPERATION_ABORTED ((SLuint32) 0x0000000F) 2149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RESULT_CONTROL_LOST ((SLuint32) 0x00000010) 2159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Object state definitions */ 2189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_OBJECT_STATE_UNREALIZED ((SLuint32) 0x00000001) 2209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_OBJECT_STATE_REALIZED ((SLuint32) 0x00000002) 2219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_OBJECT_STATE_SUSPENDED ((SLuint32) 0x00000003) 2229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Object event definitions */ 2249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_OBJECT_EVENT_RUNTIME_ERROR ((SLuint32) 0x00000001) 2269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_OBJECT_EVENT_ASYNC_TERMINATION ((SLuint32) 0x00000002) 2279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_OBJECT_EVENT_RESOURCES_LOST ((SLuint32) 0x00000003) 2289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_OBJECT_EVENT_RESOURCES_AVAILABLE ((SLuint32) 0x00000004) 2299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_OBJECT_EVENT_ITF_CONTROL_TAKEN ((SLuint32) 0x00000005) 2309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_OBJECT_EVENT_ITF_CONTROL_RETURNED ((SLuint32) 0x00000006) 2319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_OBJECT_EVENT_ITF_PARAMETERS_CHANGED ((SLuint32) 0x00000007) 2329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*****************************************************************************/ 2359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Interface definitions */ 2369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*****************************************************************************/ 2379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/** NULL Interface */ 2399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 240ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_NULL; 2419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 2439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Data Source and Data Sink Structures */ 2449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 2459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/** Data locator macros */ 2479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_DATALOCATOR_URI ((SLuint32) 0x00000001) 2489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_DATALOCATOR_ADDRESS ((SLuint32) 0x00000002) 2499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_DATALOCATOR_IODEVICE ((SLuint32) 0x00000003) 2509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_DATALOCATOR_OUTPUTMIX ((SLuint32) 0x00000004) 2519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_DATALOCATOR_RESERVED5 ((SLuint32) 0x00000005) 2529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_DATALOCATOR_BUFFERQUEUE ((SLuint32) 0x00000006) 2539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_DATALOCATOR_MIDIBUFFERQUEUE ((SLuint32) 0x00000007) 2549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_DATALOCATOR_RESERVED8 ((SLuint32) 0x00000008) 2559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/** URI-based data locator definition where locatorType must be SL_DATALOCATOR_URI*/ 2599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef struct SLDataLocator_URI_ { 2609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 locatorType; 2619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLchar * URI; 2629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten} SLDataLocator_URI; 2639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/** Address-based data locator definition where locatorType must be SL_DATALOCATOR_ADDRESS*/ 2659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef struct SLDataLocator_Address_ { 2669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 locatorType; 2679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pAddress; 2689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 length; 2699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten} SLDataLocator_Address; 2709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/** IODevice-types */ 2729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_IODEVICE_AUDIOINPUT ((SLuint32) 0x00000001) 2739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_IODEVICE_LEDARRAY ((SLuint32) 0x00000002) 2749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_IODEVICE_VIBRA ((SLuint32) 0x00000003) 2759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_IODEVICE_RESERVED4 ((SLuint32) 0x00000004) 2769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_IODEVICE_RESERVED5 ((SLuint32) 0x00000005) 2779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/** IODevice-based data locator definition where locatorType must be SL_DATALOCATOR_IODEVICE*/ 2799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef struct SLDataLocator_IODevice_ { 2809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 locatorType; 2819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 deviceType; 2829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 deviceID; 2839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf device; 2849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten} SLDataLocator_IODevice; 2859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/** OutputMix-based data locator definition where locatorType must be SL_DATALOCATOR_OUTPUTMIX*/ 2879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef struct SLDataLocator_OutputMix { 2889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 locatorType; 2899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf outputMix; 2909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten} SLDataLocator_OutputMix; 2919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/** BufferQueue-based data locator definition where locatorType must be SL_DATALOCATOR_BUFFERQUEUE*/ 2949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef struct SLDataLocator_BufferQueue { 2959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 locatorType; 2969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 numBuffers; 2979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten} SLDataLocator_BufferQueue; 2989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/** MidiBufferQueue-based data locator definition where locatorType must be SL_DATALOCATOR_MIDIBUFFERQUEUE*/ 3009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef struct SLDataLocator_MIDIBufferQueue { 3019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 locatorType; 3029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 tpqn; 3039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 numBuffers; 3049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten} SLDataLocator_MIDIBufferQueue; 3059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 3069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/** Data format defines */ 3079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_DATAFORMAT_MIME ((SLuint32) 0x00000001) 3089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_DATAFORMAT_PCM ((SLuint32) 0x00000002) 3099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_DATAFORMAT_RESERVED3 ((SLuint32) 0x00000003) 3109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 3119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 3129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/** MIME-type-based data format definition where formatType must be SL_DATAFORMAT_MIME*/ 3139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef struct SLDataFormat_MIME_ { 3149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 formatType; 3159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLchar * mimeType; 3169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 containerType; 3179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten} SLDataFormat_MIME; 3189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 3199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Byte order of a block of 16- or 32-bit data */ 3209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_BYTEORDER_BIGENDIAN ((SLuint32) 0x00000001) 3219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_BYTEORDER_LITTLEENDIAN ((SLuint32) 0x00000002) 3229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 3239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Container type */ 3249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CONTAINERTYPE_UNSPECIFIED ((SLuint32) 0x00000001) 3259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CONTAINERTYPE_RAW ((SLuint32) 0x00000002) 3269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CONTAINERTYPE_ASF ((SLuint32) 0x00000003) 3279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CONTAINERTYPE_AVI ((SLuint32) 0x00000004) 3289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CONTAINERTYPE_BMP ((SLuint32) 0x00000005) 3299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CONTAINERTYPE_JPG ((SLuint32) 0x00000006) 3309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CONTAINERTYPE_JPG2000 ((SLuint32) 0x00000007) 3319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CONTAINERTYPE_M4A ((SLuint32) 0x00000008) 3329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CONTAINERTYPE_MP3 ((SLuint32) 0x00000009) 3339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CONTAINERTYPE_MP4 ((SLuint32) 0x0000000A) 3349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CONTAINERTYPE_MPEG_ES ((SLuint32) 0x0000000B) 3359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CONTAINERTYPE_MPEG_PS ((SLuint32) 0x0000000C) 3369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CONTAINERTYPE_MPEG_TS ((SLuint32) 0x0000000D) 3379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CONTAINERTYPE_QT ((SLuint32) 0x0000000E) 3389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CONTAINERTYPE_WAV ((SLuint32) 0x0000000F) 3399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CONTAINERTYPE_XMF_0 ((SLuint32) 0x00000010) 3409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CONTAINERTYPE_XMF_1 ((SLuint32) 0x00000011) 3419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CONTAINERTYPE_XMF_2 ((SLuint32) 0x00000012) 3429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CONTAINERTYPE_XMF_3 ((SLuint32) 0x00000013) 3439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CONTAINERTYPE_XMF_GENERIC ((SLuint32) 0x00000014) 3449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CONTAINERTYPE_AMR ((SLuint32) 0x00000015) 3459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CONTAINERTYPE_AAC ((SLuint32) 0x00000016) 3469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CONTAINERTYPE_3GPP ((SLuint32) 0x00000017) 3479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CONTAINERTYPE_3GA ((SLuint32) 0x00000018) 3489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CONTAINERTYPE_RM ((SLuint32) 0x00000019) 3499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CONTAINERTYPE_DMF ((SLuint32) 0x0000001A) 3509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CONTAINERTYPE_SMF ((SLuint32) 0x0000001B) 3519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CONTAINERTYPE_MOBILE_DLS ((SLuint32) 0x0000001C) 35229ecc091f988ce8e6d95296a5f47377007ad77feGlenn Kasten#define SL_CONTAINERTYPE_OGG ((SLuint32) 0x0000001D) 3539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 3549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 3559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/** PCM-type-based data format definition where formatType must be SL_DATAFORMAT_PCM*/ 3569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef struct SLDataFormat_PCM_ { 3579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 formatType; 3589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 numChannels; 3599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 samplesPerSec; 3609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 bitsPerSample; 3619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 containerSize; 3629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 channelMask; 3639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 endianness; 3649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten} SLDataFormat_PCM; 3659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 3669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef struct SLDataSource_ { 3679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pLocator; 3689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pFormat; 3699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten} SLDataSource; 3709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 3719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 3729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef struct SLDataSink_ { 3739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pLocator; 3749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pFormat; 3759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten} SLDataSink; 3769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 3779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 3789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 3799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 3809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 3819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 3829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 3839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Standard Object Interface */ 3849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 3859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 386ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_OBJECT; 3879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 3889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/** Object callback */ 3899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 3909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 391ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastentypedef void (SLAPIENTRY *slObjectCallback) ( 3929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf caller, 3939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const void * pContext, 3949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 event, 3959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult result, 3969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 param, 3979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pInterface 3989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten); 3999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 4009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 4019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLObjectItf_ { 4029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*Realize) ( 4039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf self, 4049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean async 4059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 4069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*Resume) ( 4079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf self, 4089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean async 4099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 4109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetState) ( 4119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf self, 4129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 * pState 4139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 4149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetInterface) ( 4159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf self, 4169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLInterfaceID iid, 4179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void * pInterface 4189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 4199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*RegisterCallback) ( 4209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf self, 4219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten slObjectCallback callback, 4229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void * pContext 4239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 4249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void (*AbortAsyncOperation) ( 4259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf self 4269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 4279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void (*Destroy) ( 4289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf self 4299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 4309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetPriority) ( 4319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf self, 4329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint32 priority, 4339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean preemptable 4349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 4359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetPriority) ( 4369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf self, 4379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint32 *pPriority, 4389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pPreemptable 4399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 4409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetLossOfControlInterfaces) ( 4419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf self, 4429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint16 numInterfaces, 4439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLInterfaceID * pInterfaceIDs, 4449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean enabled 4459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 4469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 4479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 4489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 4499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 4509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Audio IO Device capabilities interface */ 4519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 4529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 4539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_DEFAULTDEVICEID_AUDIOINPUT ((SLuint32) 0xFFFFFFFF) 4549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_DEFAULTDEVICEID_AUDIOOUTPUT ((SLuint32) 0xFFFFFFFE) 4559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_DEFAULTDEVICEID_LED ((SLuint32) 0xFFFFFFFD) 4569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_DEFAULTDEVICEID_VIBRA ((SLuint32) 0xFFFFFFFC) 4579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_DEFAULTDEVICEID_RESERVED1 ((SLuint32) 0xFFFFFFFB) 4589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 4599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 46029ecc091f988ce8e6d95296a5f47377007ad77feGlenn Kasten#define SL_DEVCONNECTION_INTEGRATED ((SLint16) 0x0001) 46129ecc091f988ce8e6d95296a5f47377007ad77feGlenn Kasten#define SL_DEVCONNECTION_ATTACHED_WIRED ((SLint16) 0x0100) 46229ecc091f988ce8e6d95296a5f47377007ad77feGlenn Kasten#define SL_DEVCONNECTION_ATTACHED_WIRELESS ((SLint16) 0x0200) 46329ecc091f988ce8e6d95296a5f47377007ad77feGlenn Kasten#define SL_DEVCONNECTION_NETWORK ((SLint16) 0x0400) 4649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 4659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 4669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_DEVLOCATION_HANDSET ((SLuint16) 0x0001) 4679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_DEVLOCATION_HEADSET ((SLuint16) 0x0002) 4689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_DEVLOCATION_CARKIT ((SLuint16) 0x0003) 4699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_DEVLOCATION_DOCK ((SLuint16) 0x0004) 47029ecc091f988ce8e6d95296a5f47377007ad77feGlenn Kasten#define SL_DEVLOCATION_REMOTE ((SLuint16) 0x0005) 47129ecc091f988ce8e6d95296a5f47377007ad77feGlenn Kasten/* Note: SL_DEVLOCATION_RESLTE is deprecated, use SL_DEVLOCATION_REMOTE instead. */ 4729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_DEVLOCATION_RESLTE ((SLuint16) 0x0005) 4739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 4749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 4759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_DEVSCOPE_UNKNOWN ((SLuint16) 0x0001) 4769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_DEVSCOPE_ENVIRONMENT ((SLuint16) 0x0002) 4779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_DEVSCOPE_USER ((SLuint16) 0x0003) 4789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 4799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 4809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef struct SLAudioInputDescriptor_ { 4819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLchar *deviceName; 4829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint16 deviceConnection; 4839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint16 deviceScope; 4849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint16 deviceLocation; 4859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean isForTelephony; 4869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmilliHertz minSampleRate; 4879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmilliHertz maxSampleRate; 4889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean isFreqRangeContinuous; 4899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmilliHertz *samplingRatesSupported; 4909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint16 numOfSamplingRatesSupported; 4919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint16 maxChannels; 4929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten} SLAudioInputDescriptor; 4939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 4949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 4959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef struct SLAudioOutputDescriptor_ { 4969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLchar *pDeviceName; 4979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint16 deviceConnection; 4989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint16 deviceScope; 4999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint16 deviceLocation; 5009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean isForTelephony; 5019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmilliHertz minSampleRate; 5029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmilliHertz maxSampleRate; 5039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean isFreqRangeContinuous; 5049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmilliHertz *samplingRatesSupported; 5059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint16 numOfSamplingRatesSupported; 5069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint16 maxChannels; 5079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten} SLAudioOutputDescriptor; 5089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 5099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 5109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 511ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_AUDIOIODEVICECAPABILITIES; 5129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 5139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLAudioIODeviceCapabilitiesItf_; 5149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLAudioIODeviceCapabilitiesItf_ * const * SLAudioIODeviceCapabilitiesItf; 5159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 5169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 517ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastentypedef void (SLAPIENTRY *slAvailableAudioInputsChangedCallback) ( 5189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioIODeviceCapabilitiesItf caller, 5199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pContext, 5209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 deviceID, 5219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint32 numInputs, 5229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean isNew 5239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten); 5249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 5259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 526ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastentypedef void (SLAPIENTRY *slAvailableAudioOutputsChangedCallback) ( 5279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioIODeviceCapabilitiesItf caller, 5289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pContext, 5299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 deviceID, 5309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint32 numOutputs, 5319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean isNew 5329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten); 5339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 534ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastentypedef void (SLAPIENTRY *slDefaultDeviceIDMapChangedCallback) ( 5359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioIODeviceCapabilitiesItf caller, 5369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pContext, 5379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean isOutput, 5389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint32 numDevices 5399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten); 5409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 5419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 5429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLAudioIODeviceCapabilitiesItf_ { 5439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetAvailableAudioInputs)( 5449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioIODeviceCapabilitiesItf self, 5459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint32 *pNumInputs, 5469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pInputDeviceIDs 5479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 5489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*QueryAudioInputCapabilities)( 5499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioIODeviceCapabilitiesItf self, 5509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 deviceId, 5519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioInputDescriptor *pDescriptor 5529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 5539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*RegisterAvailableAudioInputsChangedCallback) ( 5549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioIODeviceCapabilitiesItf self, 5559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten slAvailableAudioInputsChangedCallback callback, 5569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pContext 5579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 5589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetAvailableAudioOutputs)( 5599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioIODeviceCapabilitiesItf self, 5609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint32 *pNumOutputs, 5619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pOutputDeviceIDs 5629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 5639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*QueryAudioOutputCapabilities)( 5649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioIODeviceCapabilitiesItf self, 5659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 deviceId, 5669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioOutputDescriptor *pDescriptor 5679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 5689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*RegisterAvailableAudioOutputsChangedCallback) ( 5699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioIODeviceCapabilitiesItf self, 5709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten slAvailableAudioOutputsChangedCallback callback, 5719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pContext 5729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 5739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*RegisterDefaultDeviceIDMapChangedCallback) ( 5749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioIODeviceCapabilitiesItf self, 5759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten slDefaultDeviceIDMapChangedCallback callback, 5769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pContext 5779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 5789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetAssociatedAudioInputs) ( 5799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioIODeviceCapabilitiesItf self, 5809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 deviceId, 5819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint32 *pNumAudioInputs, 5829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pAudioInputDeviceIDs 5839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 5849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetAssociatedAudioOutputs) ( 5859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioIODeviceCapabilitiesItf self, 5869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 deviceId, 5879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint32 *pNumAudioOutputs, 5889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pAudioOutputDeviceIDs 5899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 5909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetDefaultAudioDevices) ( 5919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioIODeviceCapabilitiesItf self, 5929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 defaultDeviceID, 5939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint32 *pNumAudioDevices, 5949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pAudioDeviceIDs 5959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 5969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*QuerySampleFormatsSupported)( 5979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioIODeviceCapabilitiesItf self, 5989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 deviceId, 5999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmilliHertz samplingRate, 6009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint32 *pSampleFormats, 6019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint32 *pNumOfSampleFormats 6029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 6039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 6049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 6059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 6069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 6079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 6089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Capabilities of the LED array IODevice */ 6099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 6109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 6119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef struct SLLEDDescriptor_ { 6129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint8 ledCount; 6139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint8 primaryLED; 6149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 colorMask; 6159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten} SLLEDDescriptor; 6169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 6179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 6189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 6199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* LED Array interface */ 6209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 6219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 6229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef struct SLHSL_ { 6239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillidegree hue; 6249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille saturation; 6259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille lightness; 6269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten} SLHSL; 6279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 6289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 629ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_LED; 6309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 6319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLLEDArrayItf_; 6329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLLEDArrayItf_ * const * SLLEDArrayItf; 6339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 6349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLLEDArrayItf_ { 6359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*ActivateLEDArray) ( 6369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLLEDArrayItf self, 6379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 lightMask 6389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 6399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*IsLEDArrayActivated) ( 6409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLLEDArrayItf self, 6419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *lightMask 6429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 6439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetColor) ( 6449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLLEDArrayItf self, 6459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint8 index, 6469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLHSL *color 6479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 6489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetColor) ( 6499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLLEDArrayItf self, 6509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint8 index, 6519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLHSL *color 6529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 6539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 6549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 6559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 6569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Capabilities of the Vibra IODevice */ 6579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 6589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 6599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef struct SLVibraDescriptor_ { 6609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean supportsFrequency; 6619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean supportsIntensity; 6629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmilliHertz minFrequency; 6639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmilliHertz maxFrequency; 6649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten} SLVibraDescriptor; 6659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 6669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 6679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 6689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 6699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Vibra interface */ 6709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 6719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 6729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 673ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_VIBRA; 6749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 6759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 6769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLVibraItf_; 6779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLVibraItf_ * const * SLVibraItf; 6789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 6799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLVibraItf_ { 6809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*Vibrate) ( 6819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVibraItf self, 6829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean vibrate 6839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 6849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*IsVibrating) ( 6859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVibraItf self, 6869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pVibrating 6879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 6889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetFrequency) ( 6899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVibraItf self, 6909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmilliHertz frequency 6919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 6929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetFrequency) ( 6939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVibraItf self, 6949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmilliHertz *pFrequency 6959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 6969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetIntensity) ( 6979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVibraItf self, 6989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille intensity 6999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 7009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetIntensity) ( 7019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVibraItf self, 7029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pIntensity 7039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 7049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 7059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 7069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 7079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 7089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Meta data extraction related types and interface */ 7099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 7109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 7119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CHARACTERENCODING_UNKNOWN ((SLuint32) 0x00000000) 7129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CHARACTERENCODING_BINARY ((SLuint32) 0x00000001) 7139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CHARACTERENCODING_ASCII ((SLuint32) 0x00000002) 7149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CHARACTERENCODING_BIG5 ((SLuint32) 0x00000003) 7159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CHARACTERENCODING_CODEPAGE1252 ((SLuint32) 0x00000004) 7169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CHARACTERENCODING_GB2312 ((SLuint32) 0x00000005) 7179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CHARACTERENCODING_HZGB2312 ((SLuint32) 0x00000006) 7189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CHARACTERENCODING_GB12345 ((SLuint32) 0x00000007) 7199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CHARACTERENCODING_GB18030 ((SLuint32) 0x00000008) 7209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CHARACTERENCODING_GBK ((SLuint32) 0x00000009) 7219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CHARACTERENCODING_IMAPUTF7 ((SLuint32) 0x0000000A) 7229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CHARACTERENCODING_ISO2022JP ((SLuint32) 0x0000000B) 7239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CHARACTERENCODING_ISO2022JP1 ((SLuint32) 0x0000000B) 7249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CHARACTERENCODING_ISO88591 ((SLuint32) 0x0000000C) 7259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CHARACTERENCODING_ISO885910 ((SLuint32) 0x0000000D) 7269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CHARACTERENCODING_ISO885913 ((SLuint32) 0x0000000E) 7279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CHARACTERENCODING_ISO885914 ((SLuint32) 0x0000000F) 7289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CHARACTERENCODING_ISO885915 ((SLuint32) 0x00000010) 7299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CHARACTERENCODING_ISO88592 ((SLuint32) 0x00000011) 7309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CHARACTERENCODING_ISO88593 ((SLuint32) 0x00000012) 7319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CHARACTERENCODING_ISO88594 ((SLuint32) 0x00000013) 7329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CHARACTERENCODING_ISO88595 ((SLuint32) 0x00000014) 7339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CHARACTERENCODING_ISO88596 ((SLuint32) 0x00000015) 7349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CHARACTERENCODING_ISO88597 ((SLuint32) 0x00000016) 7359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CHARACTERENCODING_ISO88598 ((SLuint32) 0x00000017) 7369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CHARACTERENCODING_ISO88599 ((SLuint32) 0x00000018) 7379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CHARACTERENCODING_ISOEUCJP ((SLuint32) 0x00000019) 7389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CHARACTERENCODING_SHIFTJIS ((SLuint32) 0x0000001A) 7399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CHARACTERENCODING_SMS7BIT ((SLuint32) 0x0000001B) 7409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CHARACTERENCODING_UTF7 ((SLuint32) 0x0000001C) 7419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CHARACTERENCODING_UTF8 ((SLuint32) 0x0000001D) 7429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CHARACTERENCODING_JAVACONFORMANTUTF8 ((SLuint32) 0x0000001E) 7439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CHARACTERENCODING_UTF16BE ((SLuint32) 0x0000001F) 7449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_CHARACTERENCODING_UTF16LE ((SLuint32) 0x00000020) 7459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 7469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 7479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_METADATA_FILTER_KEY ((SLuint8) 0x01) 7489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_METADATA_FILTER_LANG ((SLuint8) 0x02) 7499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_METADATA_FILTER_ENCODING ((SLuint8) 0x04) 7509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 7519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 7529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef struct SLMetadataInfo_ { 7539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 size; 7549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 encoding; 7559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLchar langCountry[16]; 7569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint8 data[1]; 7579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten} SLMetadataInfo; 7589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 759ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_METADATAEXTRACTION; 7609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 7619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLMetadataExtractionItf_; 7629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLMetadataExtractionItf_ * const * SLMetadataExtractionItf; 7639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 7649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 7659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLMetadataExtractionItf_ { 7669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetItemCount) ( 7679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMetadataExtractionItf self, 7689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pItemCount 7699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 7709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetKeySize) ( 7719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMetadataExtractionItf self, 7729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 index, 7739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pKeySize 7749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 7759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetKey) ( 7769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMetadataExtractionItf self, 7779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 index, 7789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 keySize, 7799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMetadataInfo *pKey 7809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 7819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetValueSize) ( 7829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMetadataExtractionItf self, 7839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 index, 7849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pValueSize 7859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 7869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetValue) ( 7879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMetadataExtractionItf self, 7889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 index, 7899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 valueSize, 7909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMetadataInfo *pValue 7919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 7929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*AddKeyFilter) ( 7939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMetadataExtractionItf self, 7949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 keySize, 7959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const void *pKey, 7969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 keyEncoding, 7979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLchar *pValueLangCountry, 7989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 valueEncoding, 7999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint8 filterMask 8009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 8019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*ClearKeyFilter) ( 8029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMetadataExtractionItf self 8039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 8049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 8059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 8069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 8079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 8089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Meta data traversal related types and interface */ 8099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 8109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 8119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_METADATATRAVERSALMODE_ALL ((SLuint32) 0x00000001) 8129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_METADATATRAVERSALMODE_NODE ((SLuint32) 0x00000002) 8139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 8149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 8159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_NODETYPE_UNSPECIFIED ((SLuint32) 0x00000001) 8169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_NODETYPE_AUDIO ((SLuint32) 0x00000002) 8179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_NODETYPE_VIDEO ((SLuint32) 0x00000003) 8189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_NODETYPE_IMAGE ((SLuint32) 0x00000004) 8199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 8209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_NODE_PARENT 0xFFFFFFFF 8219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 822ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_METADATATRAVERSAL; 8239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 8249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLMetadataTraversalItf_; 8259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLMetadataTraversalItf_ * const * SLMetadataTraversalItf; 8269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 8279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLMetadataTraversalItf_ { 8289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetMode) ( 8299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMetadataTraversalItf self, 8309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 mode 8319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 8329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetChildCount) ( 8339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMetadataTraversalItf self, 8349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pCount 8359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 8369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetChildMIMETypeSize) ( 8379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMetadataTraversalItf self, 8389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 index, 8399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pSize 8409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 8419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetChildInfo) ( 8429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMetadataTraversalItf self, 8439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 index, 8449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint32 *pNodeID, 8459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pType, 8469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 size, 8479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLchar *pMimeType 8489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 8499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetActiveNode) ( 8509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMetadataTraversalItf self, 8519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 index 8529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 8539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 8549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 8559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 8569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Dynamic Source types and interface */ 8579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 8589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 859ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_DYNAMICSOURCE; 8609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 8619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLDynamicSourceItf_; 8629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLDynamicSourceItf_ * const * SLDynamicSourceItf; 8639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 8649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLDynamicSourceItf_ { 8659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetSource) ( 8669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDynamicSourceItf self, 8679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDataSource *pDataSource 8689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 8699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 8709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 8719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 8729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Output Mix interface */ 8739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 8749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 875ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_OUTPUTMIX; 8769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 8779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLOutputMixItf_; 8789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLOutputMixItf_ * const * SLOutputMixItf; 8799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 880ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastentypedef void (SLAPIENTRY *slMixDeviceChangeCallback) ( 8819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLOutputMixItf caller, 8829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pContext 8839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten); 8849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 8859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 8869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLOutputMixItf_ { 8879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetDestinationOutputDeviceIDs) ( 8889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLOutputMixItf self, 8899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint32 *pNumDevices, 8909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pDeviceIDs 8919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 8929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*RegisterDeviceChangeCallback) ( 8939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLOutputMixItf self, 8949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten slMixDeviceChangeCallback callback, 8959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pContext 8969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 8979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*ReRoute)( 8989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLOutputMixItf self, 8999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint32 numOutputDevices, 9009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pOutputDeviceIDs 9019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 9029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 9039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 9049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 9059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 9069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Playback interface */ 9079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 9089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 9099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/** Playback states */ 9109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_PLAYSTATE_STOPPED ((SLuint32) 0x00000001) 9119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_PLAYSTATE_PAUSED ((SLuint32) 0x00000002) 9129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_PLAYSTATE_PLAYING ((SLuint32) 0x00000003) 9139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 9149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/** Play events **/ 9159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_PLAYEVENT_HEADATEND ((SLuint32) 0x00000001) 9169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_PLAYEVENT_HEADATMARKER ((SLuint32) 0x00000002) 9179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_PLAYEVENT_HEADATNEWPOS ((SLuint32) 0x00000004) 9189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_PLAYEVENT_HEADMOVING ((SLuint32) 0x00000008) 91929ecc091f988ce8e6d95296a5f47377007ad77feGlenn Kasten#define SL_PLAYEVENT_HEADSTALLED ((SLuint32) 0x00000010) 9209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 9219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_TIME_UNKNOWN ((SLuint32) 0xFFFFFFFF) 9229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 9239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 924ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_PLAY; 9259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 9269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/** Playback interface methods */ 9279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 9289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLPlayItf_; 9299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLPlayItf_ * const * SLPlayItf; 9309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 931ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastentypedef void (SLAPIENTRY *slPlayCallback) ( 9329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPlayItf caller, 9339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pContext, 9349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 event 9359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten); 9369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 9379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLPlayItf_ { 9389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetPlayState) ( 9399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPlayItf self, 9409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 state 9419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 9429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetPlayState) ( 9439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPlayItf self, 9449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pState 9459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 9469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetDuration) ( 9479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPlayItf self, 9489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond *pMsec 9499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 9509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetPosition) ( 9519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPlayItf self, 9529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond *pMsec 9539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 9549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*RegisterCallback) ( 9559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPlayItf self, 9569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten slPlayCallback callback, 9579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pContext 9589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 9599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetCallbackEventsMask) ( 9609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPlayItf self, 9619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 eventFlags 9629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 9639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetCallbackEventsMask) ( 9649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPlayItf self, 9659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pEventFlags 9669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 9679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetMarkerPosition) ( 9689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPlayItf self, 9699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond mSec 9709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 9719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*ClearMarkerPosition) ( 9729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPlayItf self 9739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 9749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetMarkerPosition) ( 9759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPlayItf self, 9769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond *pMsec 9779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 9789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetPositionUpdatePeriod) ( 9799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPlayItf self, 9809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond mSec 9819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 9829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetPositionUpdatePeriod) ( 9839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPlayItf self, 9849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond *pMsec 9859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 9869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 9879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 9889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 9899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Prefetch status interface */ 9909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 9919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 9929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_PREFETCHEVENT_STATUSCHANGE ((SLuint32) 0x00000001) 9939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_PREFETCHEVENT_FILLLEVELCHANGE ((SLuint32) 0x00000002) 9949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 9959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_PREFETCHSTATUS_UNDERFLOW ((SLuint32) 0x00000001) 9969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_PREFETCHSTATUS_SUFFICIENTDATA ((SLuint32) 0x00000002) 9979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_PREFETCHSTATUS_OVERFLOW ((SLuint32) 0x00000003) 9989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 9999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1000ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_PREFETCHSTATUS; 10019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 10029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 10039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/** Prefetch status interface methods */ 10049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 10059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLPrefetchStatusItf_; 10069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLPrefetchStatusItf_ * const * SLPrefetchStatusItf; 10079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1008ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastentypedef void (SLAPIENTRY *slPrefetchCallback) ( 10099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPrefetchStatusItf caller, 10109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pContext, 10119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 event 10129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten); 10139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 10149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLPrefetchStatusItf_ { 10159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetPrefetchStatus) ( 10169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPrefetchStatusItf self, 10179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pStatus 10189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 10199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetFillLevel) ( 10209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPrefetchStatusItf self, 10219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pLevel 10229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 10239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*RegisterCallback) ( 10249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPrefetchStatusItf self, 10259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten slPrefetchCallback callback, 10269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pContext 10279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 10289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetCallbackEventsMask) ( 10299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPrefetchStatusItf self, 10309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 eventFlags 10319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 10329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetCallbackEventsMask) ( 10339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPrefetchStatusItf self, 10349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pEventFlags 10359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 10369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetFillUpdatePeriod) ( 10379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPrefetchStatusItf self, 10389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille period 10399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 10409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetFillUpdatePeriod) ( 10419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPrefetchStatusItf self, 10429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pPeriod 10439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 10449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 10459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 10469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 10479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Playback Rate interface */ 10489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 10499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 10509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RATEPROP_RESERVED1 ((SLuint32) 0x00000001) 10519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RATEPROP_RESERVED2 ((SLuint32) 0x00000002) 10529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RATEPROP_SILENTAUDIO ((SLuint32) 0x00000100) 10539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RATEPROP_STAGGEREDAUDIO ((SLuint32) 0x00000200) 10549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RATEPROP_NOPITCHCORAUDIO ((SLuint32) 0x00000400) 10559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RATEPROP_PITCHCORAUDIO ((SLuint32) 0x00000800) 10569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 10579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1058ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_PLAYBACKRATE; 10599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 10609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLPlaybackRateItf_; 10619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLPlaybackRateItf_ * const * SLPlaybackRateItf; 10629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 10639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLPlaybackRateItf_ { 10649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetRate)( 10659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPlaybackRateItf self, 10669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille rate 10679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 10689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetRate)( 10699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPlaybackRateItf self, 10709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pRate 10719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 10729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetPropertyConstraints)( 10739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPlaybackRateItf self, 10749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 constraints 10759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 10769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetProperties)( 10779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPlaybackRateItf self, 10789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pProperties 10799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 10809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetCapabilitiesOfRate)( 10819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPlaybackRateItf self, 10829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille rate, 10839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pCapabilities 10849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 10859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetRateRange) ( 10869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPlaybackRateItf self, 10879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint8 index, 10889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pMinRate, 10899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pMaxRate, 10909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pStepSize, 10919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pCapabilities 10929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 10939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 10949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 10959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 10969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Seek Interface */ 10979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 10989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 109929ecc091f988ce8e6d95296a5f47377007ad77feGlenn Kasten#define SL_SEEKMODE_FAST ((SLuint32) 0x0001) 110029ecc091f988ce8e6d95296a5f47377007ad77feGlenn Kasten#define SL_SEEKMODE_ACCURATE ((SLuint32) 0x0002) 11019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1102ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_SEEK; 11039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 11049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLSeekItf_; 11059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLSeekItf_ * const * SLSeekItf; 11069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 11079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLSeekItf_ { 11089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetPosition)( 11099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLSeekItf self, 11109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond pos, 11119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 seekMode 11129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 11139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetLoop)( 11149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLSeekItf self, 11159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean loopEnable, 11169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond startPos, 11179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond endPos 11189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 11199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetLoop)( 11209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLSeekItf self, 11219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pLoopEnabled, 11229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond *pStartPos, 11239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond *pEndPos 11249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 11259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 11269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 11279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 11289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Standard Recording Interface */ 11299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 11309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 11319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/** Recording states */ 11329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RECORDSTATE_STOPPED ((SLuint32) 0x00000001) 11339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RECORDSTATE_PAUSED ((SLuint32) 0x00000002) 11349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RECORDSTATE_RECORDING ((SLuint32) 0x00000003) 11359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 11369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 11379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/** Record event **/ 11389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RECORDEVENT_HEADATLIMIT ((SLuint32) 0x00000001) 11399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RECORDEVENT_HEADATMARKER ((SLuint32) 0x00000002) 11409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RECORDEVENT_HEADATNEWPOS ((SLuint32) 0x00000004) 11419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RECORDEVENT_HEADMOVING ((SLuint32) 0x00000008) 11429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RECORDEVENT_HEADSTALLED ((SLuint32) 0x00000010) 114329ecc091f988ce8e6d95296a5f47377007ad77feGlenn Kasten/* Note: SL_RECORDEVENT_BUFFER_INSUFFICIENT is deprecated, use SL_RECORDEVENT_BUFFER_FULL instead. */ 114429ecc091f988ce8e6d95296a5f47377007ad77feGlenn Kasten#define SL_RECORDEVENT_BUFFER_INSUFFICIENT ((SLuint32) 0x00000020) 114529ecc091f988ce8e6d95296a5f47377007ad77feGlenn Kasten#define SL_RECORDEVENT_BUFFER_FULL ((SLuint32) 0x00000020) 11469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 11479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1148ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_RECORD; 11499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 11509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLRecordItf_; 11519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLRecordItf_ * const * SLRecordItf; 11529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1153ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastentypedef void (SLAPIENTRY *slRecordCallback) ( 11549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLRecordItf caller, 11559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pContext, 11569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 event 11579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten); 11589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 11599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/** Recording interface methods */ 11609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLRecordItf_ { 11619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetRecordState) ( 11629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLRecordItf self, 11639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 state 11649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 11659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetRecordState) ( 11669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLRecordItf self, 11679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pState 11689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 11699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetDurationLimit) ( 11709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLRecordItf self, 11719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond msec 11729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 11739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetPosition) ( 11749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLRecordItf self, 11759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond *pMsec 11769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 11779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*RegisterCallback) ( 11789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLRecordItf self, 11799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten slRecordCallback callback, 11809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pContext 11819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 11829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetCallbackEventsMask) ( 11839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLRecordItf self, 11849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 eventFlags 11859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 11869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetCallbackEventsMask) ( 11879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLRecordItf self, 11889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pEventFlags 11899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 11909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetMarkerPosition) ( 11919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLRecordItf self, 11929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond mSec 11939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 11949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*ClearMarkerPosition) ( 11959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLRecordItf self 11969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 11979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetMarkerPosition) ( 11989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLRecordItf self, 11999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond *pMsec 12009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 12019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetPositionUpdatePeriod) ( 12029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLRecordItf self, 12039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond mSec 12049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 12059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetPositionUpdatePeriod) ( 12069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLRecordItf self, 12079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond *pMsec 12089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 12099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 12109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 12119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 12129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Equalizer interface */ 12139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 12149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 12159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_EQUALIZER_UNDEFINED ((SLuint16) 0xFFFF) 12169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1217ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_EQUALIZER; 12189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 12199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLEqualizerItf_; 12209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLEqualizerItf_ * const * SLEqualizerItf; 12219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 12229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLEqualizerItf_ { 12239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetEnabled)( 12249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEqualizerItf self, 12259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean enabled 12269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 12279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*IsEnabled)( 12289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEqualizerItf self, 12299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pEnabled 12309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 12319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetNumberOfBands)( 12329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEqualizerItf self, 12339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 *pAmount 12349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 12359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetBandLevelRange)( 12369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEqualizerItf self, 12379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel *pMin, 12389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel *pMax 12399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 12409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetBandLevel)( 12419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEqualizerItf self, 12429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 band, 12439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel level 12449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 12459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetBandLevel)( 12469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEqualizerItf self, 12479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 band, 12489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel *pLevel 12499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 12509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetCenterFreq)( 12519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEqualizerItf self, 12529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 band, 12539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmilliHertz *pCenter 12549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 12559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetBandFreqRange)( 12569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEqualizerItf self, 12579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 band, 12589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmilliHertz *pMin, 12599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmilliHertz *pMax 12609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 12619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetBand)( 12629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEqualizerItf self, 12639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmilliHertz frequency, 12649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 *pBand 12659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 12669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetCurrentPreset)( 12679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEqualizerItf self, 12689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 *pPreset 12699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 12709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*UsePreset)( 12719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEqualizerItf self, 12729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 index 12739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 12749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetNumberOfPresets)( 12759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEqualizerItf self, 12769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 *pNumPresets 12779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 12789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetPresetName)( 12799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEqualizerItf self, 12809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 index, 12819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLchar ** ppName 12829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 12839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 12849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 12859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 12869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Volume Interface */ 12879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 12889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1289ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_VOLUME; 12909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 12919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLVolumeItf_; 12929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLVolumeItf_ * const * SLVolumeItf; 12939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 12949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLVolumeItf_ { 12959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetVolumeLevel) ( 12969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVolumeItf self, 12979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel level 12989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 12999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetVolumeLevel) ( 13009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVolumeItf self, 13019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel *pLevel 13029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 13039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetMaxVolumeLevel) ( 13049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVolumeItf self, 13059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel *pMaxLevel 13069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 13079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetMute) ( 13089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVolumeItf self, 13099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean mute 13109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 13119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetMute) ( 13129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVolumeItf self, 13139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pMute 13149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 13159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*EnableStereoPosition) ( 13169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVolumeItf self, 13179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean enable 13189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 13199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*IsEnabledStereoPosition) ( 13209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVolumeItf self, 13219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pEnable 13229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 13239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetStereoPosition) ( 13249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVolumeItf self, 13259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille stereoPosition 13269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 13279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetStereoPosition) ( 13289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVolumeItf self, 13299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pStereoPosition 13309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 13319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 13329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 13339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 13349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 13359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Device Volume Interface */ 13369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 13379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1338ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_DEVICEVOLUME; 13399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 13409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLDeviceVolumeItf_; 13419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLDeviceVolumeItf_ * const * SLDeviceVolumeItf; 13429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 13439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLDeviceVolumeItf_ { 13449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetVolumeScale) ( 13459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDeviceVolumeItf self, 13469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 deviceID, 13479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint32 *pMinValue, 13489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint32 *pMaxValue, 13499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pIsMillibelScale 13509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 13519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetVolume) ( 13529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDeviceVolumeItf self, 13539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 deviceID, 13549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint32 volume 13559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 13569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetVolume) ( 13579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDeviceVolumeItf self, 13589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 deviceID, 13599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint32 *pVolume 13609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 13619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 13629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 13639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 13649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 13659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Buffer Queue Interface */ 13669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 13679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1368ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_BUFFERQUEUE; 13699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 13709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLBufferQueueItf_; 13719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLBufferQueueItf_ * const * SLBufferQueueItf; 13729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1373ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastentypedef void (SLAPIENTRY *slBufferQueueCallback)( 13749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLBufferQueueItf caller, 13759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pContext 13769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten); 13779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 13789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/** Buffer queue state **/ 13799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 13809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef struct SLBufferQueueState_ { 13819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 count; 13829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 playIndex; 13839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten} SLBufferQueueState; 13849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 13859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 13869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLBufferQueueItf_ { 13879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*Enqueue) ( 13889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLBufferQueueItf self, 13899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const void *pBuffer, 13909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 size 13919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 13929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*Clear) ( 13939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLBufferQueueItf self 13949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 13959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetState) ( 13969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLBufferQueueItf self, 13979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLBufferQueueState *pState 13989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 13999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*RegisterCallback) ( 14009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLBufferQueueItf self, 14019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten slBufferQueueCallback callback, 14029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void* pContext 14039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 14049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 14059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 14069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 14079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 14089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* PresetReverb */ 14099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 14109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 14119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_REVERBPRESET_NONE ((SLuint16) 0x0000) 14129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_REVERBPRESET_SMALLROOM ((SLuint16) 0x0001) 14139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_REVERBPRESET_MEDIUMROOM ((SLuint16) 0x0002) 14149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_REVERBPRESET_LARGEROOM ((SLuint16) 0x0003) 14159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_REVERBPRESET_MEDIUMHALL ((SLuint16) 0x0004) 14169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_REVERBPRESET_LARGEHALL ((SLuint16) 0x0005) 14179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_REVERBPRESET_PLATE ((SLuint16) 0x0006) 14189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 14199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1420ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_PRESETREVERB; 14219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 14229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLPresetReverbItf_; 14239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLPresetReverbItf_ * const * SLPresetReverbItf; 14249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 14259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLPresetReverbItf_ { 14269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetPreset) ( 14279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPresetReverbItf self, 14289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 preset 14299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 14309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetPreset) ( 14319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPresetReverbItf self, 14329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 *pPreset 14339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 14349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 14359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 14369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 14379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 14389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* EnvironmentalReverb */ 14399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 14409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 14419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_DEFAULT \ 14429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { SL_MILLIBEL_MIN, 0, 1000, 500, SL_MILLIBEL_MIN, 20, SL_MILLIBEL_MIN, 40, 1000,1000 } 14439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_GENERIC \ 14449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000, -100, 1490, 830, -2602, 7, 200, 11, 1000,1000 } 14459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_PADDEDCELL \ 14469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000,-6000, 170, 100, -1204, 1, 207, 2, 1000,1000 } 14479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_ROOM \ 14489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000, -454, 400, 830, -1646, 2, 53, 3, 1000,1000 } 14499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_BATHROOM \ 14509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000,-1200, 1490, 540, -370, 7, 1030, 11, 1000, 600 } 14519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_LIVINGROOM \ 14529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000,-6000, 500, 100, -1376, 3, -1104, 4, 1000,1000 } 14539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_STONEROOM \ 14549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000, -300, 2310, 640, -711, 12, 83, 17, 1000,1000 } 14559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_AUDITORIUM \ 14569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000, -476, 4320, 590, -789, 20, -289, 30, 1000,1000 } 14579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_CONCERTHALL \ 14589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000, -500, 3920, 700, -1230, 20, -2, 29, 1000,1000 } 14599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_CAVE \ 14609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000, 0, 2910, 1300, -602, 15, -302, 22, 1000,1000 } 14619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_ARENA \ 14629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000, -698, 7240, 330, -1166, 20, 16, 30, 1000,1000 } 14639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_HANGAR \ 14649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000,-1000, 10050, 230, -602, 20, 198, 30, 1000,1000 } 14659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_CARPETEDHALLWAY \ 14669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000,-4000, 300, 100, -1831, 2, -1630, 30, 1000,1000 } 14679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_HALLWAY \ 14689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000, -300, 1490, 590, -1219, 7, 441, 11, 1000,1000 } 14699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_STONECORRIDOR \ 14709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000, -237, 2700, 790, -1214, 13, 395, 20, 1000,1000 } 14719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_ALLEY \ 14729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000, -270, 1490, 860, -1204, 7, -4, 11, 1000,1000 } 14739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_FOREST \ 14749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000,-3300, 1490, 540, -2560, 162, -613, 88, 790,1000 } 14759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_CITY \ 14769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000, -800, 1490, 670, -2273, 7, -2217, 11, 500,1000 } 14779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_MOUNTAINS \ 14789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000,-2500, 1490, 210, -2780, 300, -2014, 100, 270,1000 } 14799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_QUARRY \ 14809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000,-1000, 1490, 830, SL_MILLIBEL_MIN, 61, 500, 25, 1000,1000 } 14819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_PLAIN \ 14829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000,-2000, 1490, 500, -2466, 179, -2514, 100, 210,1000 } 14839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_PARKINGLOT \ 14849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000, 0, 1650, 1500, -1363, 8, -1153, 12, 1000,1000 } 14859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_SEWERPIPE \ 14869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000,-1000, 2810, 140, 429, 14, 648, 21, 800, 600 } 14879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_UNDERWATER \ 14889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000,-4000, 1490, 100, -449, 7, 1700, 11, 1000,1000 } 14899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_SMALLROOM \ 14909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000,-600, 1100, 830, -400, 5, 500, 10, 1000, 1000 } 14919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_MEDIUMROOM \ 14929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000,-600, 1300, 830, -1000, 20, -200, 20, 1000, 1000 } 14939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_LARGEROOM \ 14949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000,-600, 1500, 830, -1600, 5, -1000, 40, 1000, 1000 } 14959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_MEDIUMHALL \ 14969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000,-600, 1800, 700, -1300, 15, -800, 30, 1000, 1000 } 14979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_LARGEHALL \ 14989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000,-600, 1800, 700, -2000, 30, -1400, 60, 1000, 1000 } 14999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_PLATE \ 15009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000,-200, 1300, 900, 0, 2, 0, 10, 1000, 750 } 15019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 15029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 15039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef struct SLEnvironmentalReverbSettings_ { 15049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel roomLevel; 15059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel roomHFLevel; 15069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond decayTime; 15079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille decayHFRatio; 15089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel reflectionsLevel; 15099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond reflectionsDelay; 15109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel reverbLevel; 15119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond reverbDelay; 15129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille diffusion; 15139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille density; 15149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten} SLEnvironmentalReverbSettings; 15159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 15169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 15179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 15189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1519ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_ENVIRONMENTALREVERB; 15209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 15219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 15229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLEnvironmentalReverbItf_; 15239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLEnvironmentalReverbItf_ * const * SLEnvironmentalReverbItf; 15249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 15259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLEnvironmentalReverbItf_ { 15269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetRoomLevel) ( 15279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel room 15299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 15309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetRoomLevel) ( 15319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel *pRoom 15339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 15349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetRoomHFLevel) ( 15359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel roomHF 15379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 15389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetRoomHFLevel) ( 15399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel *pRoomHF 15419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 15429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetDecayTime) ( 15439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond decayTime 15459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 15469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetDecayTime) ( 15479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond *pDecayTime 15499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 15509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetDecayHFRatio) ( 15519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille decayHFRatio 15539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 15549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetDecayHFRatio) ( 15559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pDecayHFRatio 15579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 15589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetReflectionsLevel) ( 15599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel reflectionsLevel 15619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 15629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetReflectionsLevel) ( 15639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel *pReflectionsLevel 15659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 15669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetReflectionsDelay) ( 15679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond reflectionsDelay 15699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 15709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetReflectionsDelay) ( 15719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond *pReflectionsDelay 15739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 15749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetReverbLevel) ( 15759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel reverbLevel 15779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 15789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetReverbLevel) ( 15799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel *pReverbLevel 15819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 15829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetReverbDelay) ( 15839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond reverbDelay 15859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 15869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetReverbDelay) ( 15879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond *pReverbDelay 15899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 15909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetDiffusion) ( 15919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille diffusion 15939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 15949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetDiffusion) ( 15959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pDiffusion 15979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 15989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetDensity) ( 15999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 16009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille density 16019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 16029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetDensity) ( 16039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 16049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pDensity 16059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 16069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetEnvironmentalReverbProperties) ( 16079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 16089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLEnvironmentalReverbSettings *pProperties 16099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 16109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetEnvironmentalReverbProperties) ( 16119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 16129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbSettings *pProperties 16139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 16149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 16159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 16169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 16179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Effects Send Interface */ 16189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 16199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 16209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1621ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_EFFECTSEND; 16229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 16239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLEffectSendItf_; 16249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLEffectSendItf_ * const * SLEffectSendItf; 16259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 16269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLEffectSendItf_ { 16279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*EnableEffectSend) ( 16289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEffectSendItf self, 16299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const void *pAuxEffect, 16309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean enable, 16319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel initialLevel 16329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 16339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*IsEnabled) ( 16349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEffectSendItf self, 16359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const void * pAuxEffect, 16369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pEnable 16379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 16389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetDirectLevel) ( 16399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEffectSendItf self, 16409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel directLevel 16419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 16429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetDirectLevel) ( 16439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEffectSendItf self, 16449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel *pDirectLevel 16459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 16469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetSendLevel) ( 16479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEffectSendItf self, 16489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const void *pAuxEffect, 16499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel sendLevel 16509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 16519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetSendLevel)( 16529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEffectSendItf self, 16539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const void *pAuxEffect, 16549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel *pSendLevel 16559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 16569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 16579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 16589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 16599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 16609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* 3D Grouping Interface */ 16619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 16629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 16639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1664ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_3DGROUPING; 16659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 16669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 16679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SL3DGroupingItf_ ; 16689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SL3DGroupingItf_ * const * SL3DGroupingItf; 16699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 16709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SL3DGroupingItf_ { 16719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*Set3DGroup) ( 16729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DGroupingItf self, 16739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf group 16749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 16759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*Get3DGroup) ( 16769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DGroupingItf self, 16779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf *pGroup 16789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 16799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 16809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 16819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 16829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 16839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* 3D Commit Interface */ 16849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 16859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 16869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1687ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_3DCOMMIT; 16889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 16899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SL3DCommitItf_; 16909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SL3DCommitItf_* const * SL3DCommitItf; 16919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 16929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SL3DCommitItf_ { 16939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*Commit) ( 16949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DCommitItf self 16959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 16969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetDeferred) ( 16979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DCommitItf self, 16989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean deferred 16999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 17009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 17019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 17029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 17039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 17049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* 3D Location Interface */ 17059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 17069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 17079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef struct SLVec3D_ { 17089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint32 x; 17099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint32 y; 17109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint32 z; 17119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten} SLVec3D; 17129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1713ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_3DLOCATION; 17149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 17159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SL3DLocationItf_; 17169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SL3DLocationItf_ * const * SL3DLocationItf; 17179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 17189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SL3DLocationItf_ { 17199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetLocationCartesian) ( 17209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DLocationItf self, 17219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLVec3D *pLocation 17229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 17239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetLocationSpherical) ( 17249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DLocationItf self, 17259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillidegree azimuth, 17269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillidegree elevation, 17279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillimeter distance 17289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 17299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*Move) ( 17309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DLocationItf self, 17319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLVec3D *pMovement 17329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 17339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetLocationCartesian) ( 17349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DLocationItf self, 17359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVec3D *pLocation 17369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 17379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetOrientationVectors) ( 17389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DLocationItf self, 17399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLVec3D *pFront, 17409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLVec3D *pAbove 17419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 17429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetOrientationAngles) ( 17439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DLocationItf self, 17449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillidegree heading, 17459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillidegree pitch, 17469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillidegree roll 17479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 17489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*Rotate) ( 17499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DLocationItf self, 17509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillidegree theta, 17519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLVec3D *pAxis 17529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 17539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetOrientationVectors) ( 17549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DLocationItf self, 17559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVec3D *pFront, 17569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVec3D *pUp 17579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 17589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 17599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 17609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 17619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 17629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* 3D Doppler Interface */ 17639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 17649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 17659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1766ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_3DDOPPLER; 17679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 17689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SL3DDopplerItf_; 17699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SL3DDopplerItf_ * const * SL3DDopplerItf; 17709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 17719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SL3DDopplerItf_ { 17729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetVelocityCartesian) ( 17739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DDopplerItf self, 17749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLVec3D *pVelocity 17759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 17769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetVelocitySpherical) ( 17779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DDopplerItf self, 17789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillidegree azimuth, 17799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillidegree elevation, 17809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillimeter speed 17819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 17829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetVelocityCartesian) ( 17839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DDopplerItf self, 17849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVec3D *pVelocity 17859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 17869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetDopplerFactor) ( 17879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DDopplerItf self, 17889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille dopplerFactor 17899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 17909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetDopplerFactor) ( 17919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DDopplerItf self, 17929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pDopplerFactor 17939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 17949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 17959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 17969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 17979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* 3D Source Interface and associated defines */ 17989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 17999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 18009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_ROLLOFFMODEL_EXPONENTIAL ((SLuint32) 0x00000000) 18019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_ROLLOFFMODEL_LINEAR ((SLuint32) 0x00000001) 18029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 18039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1804ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_3DSOURCE; 18059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 18069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SL3DSourceItf_; 18079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SL3DSourceItf_ * const * SL3DSourceItf; 18089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 18099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SL3DSourceItf_ { 18109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetHeadRelative) ( 18119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DSourceItf self, 18129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean headRelative 18139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 18149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetHeadRelative) ( 18159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DSourceItf self, 18169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pHeadRelative 18179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 18189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetRolloffDistances) ( 18199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DSourceItf self, 18209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillimeter minDistance, 18219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillimeter maxDistance 18229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 18239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetRolloffDistances) ( 18249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DSourceItf self, 18259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillimeter *pMinDistance, 18269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillimeter *pMaxDistance 18279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 18289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetRolloffMaxDistanceMute) ( 18299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DSourceItf self, 18309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean mute 18319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 18329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetRolloffMaxDistanceMute) ( 18339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DSourceItf self, 18349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pMute 18359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 18369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetRolloffFactor) ( 18379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DSourceItf self, 18389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille rolloffFactor 18399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 18409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetRolloffFactor) ( 18419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DSourceItf self, 18429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pRolloffFactor 18439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 18449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetRoomRolloffFactor) ( 18459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DSourceItf self, 18469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille roomRolloffFactor 18479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 18489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetRoomRolloffFactor) ( 18499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DSourceItf self, 18509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pRoomRolloffFactor 18519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 18529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetRolloffModel) ( 18539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DSourceItf self, 18549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint8 model 18559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 18569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetRolloffModel) ( 18579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DSourceItf self, 18589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint8 *pModel 18599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 18609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetCone) ( 18619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DSourceItf self, 18629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillidegree innerAngle, 18639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillidegree outerAngle, 18649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel outerLevel 18659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 18669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetCone) ( 18679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DSourceItf self, 18689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillidegree *pInnerAngle, 18699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillidegree *pOuterAngle, 18709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel *pOuterLevel 18719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 18729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 18739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 18749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 18759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* 3D Macroscopic Interface */ 18769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 18779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1878ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_3DMACROSCOPIC; 18799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 18809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SL3DMacroscopicItf_; 18819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SL3DMacroscopicItf_ * const * SL3DMacroscopicItf; 18829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 18839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SL3DMacroscopicItf_ { 18849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetSize) ( 18859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DMacroscopicItf self, 18869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillimeter width, 18879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillimeter height, 18889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillimeter depth 18899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 18909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetSize) ( 18919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DMacroscopicItf self, 18929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillimeter *pWidth, 18939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillimeter *pHeight, 18949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillimeter *pDepth 18959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 18969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetOrientationAngles) ( 18979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DMacroscopicItf self, 18989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillidegree heading, 18999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillidegree pitch, 19009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillidegree roll 19019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 19029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetOrientationVectors) ( 19039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DMacroscopicItf self, 19049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLVec3D *pFront, 19059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLVec3D *pAbove 19069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 19079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*Rotate) ( 19089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DMacroscopicItf self, 19099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillidegree theta, 19109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLVec3D *pAxis 19119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 19129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetOrientationVectors) ( 19139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DMacroscopicItf self, 19149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVec3D *pFront, 19159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVec3D *pUp 19169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 19179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 19189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 19199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 19209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Mute Solo Interface */ 19219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 19229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 19239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1924ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_MUTESOLO; 19259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 19269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLMuteSoloItf_; 19279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLMuteSoloItf_ * const * SLMuteSoloItf; 19289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 19299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLMuteSoloItf_ { 19309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetChannelMute) ( 19319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMuteSoloItf self, 19329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint8 chan, 19339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean mute 19349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 19359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetChannelMute) ( 19369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMuteSoloItf self, 19379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint8 chan, 19389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pMute 19399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 19409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetChannelSolo) ( 19419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMuteSoloItf self, 19429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint8 chan, 19439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean solo 19449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 19459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetChannelSolo) ( 19469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMuteSoloItf self, 19479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint8 chan, 19489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pSolo 19499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 19509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetNumChannels) ( 19519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMuteSoloItf self, 19529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint8 *pNumChannels 19539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 19549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 19559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 19569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 19579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 19589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Dynamic Interface Management Interface and associated types and macros */ 19599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 19609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 19619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_DYNAMIC_ITF_EVENT_RUNTIME_ERROR ((SLuint32) 0x00000001) 19629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_DYNAMIC_ITF_EVENT_ASYNC_TERMINATION ((SLuint32) 0x00000002) 19639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_DYNAMIC_ITF_EVENT_RESOURCES_LOST ((SLuint32) 0x00000003) 19649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_DYNAMIC_ITF_EVENT_RESOURCES_LOST_PERMANENTLY ((SLuint32) 0x00000004) 19659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_DYNAMIC_ITF_EVENT_RESOURCES_AVAILABLE ((SLuint32) 0x00000005) 19669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 19679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 19689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 19699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1970ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_DYNAMICINTERFACEMANAGEMENT; 19719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 19729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLDynamicInterfaceManagementItf_; 19739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLDynamicInterfaceManagementItf_ * const * SLDynamicInterfaceManagementItf; 19749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 1975ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastentypedef void (SLAPIENTRY *slDynamicInterfaceManagementCallback) ( 19769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDynamicInterfaceManagementItf caller, 19779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void * pContext, 19789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 event, 19799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult result, 19809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLInterfaceID iid 19819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten); 19829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 19839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 19849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLDynamicInterfaceManagementItf_ { 19859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*AddInterface) ( 19869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDynamicInterfaceManagementItf self, 19879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLInterfaceID iid, 19889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean async 19899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 19909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*RemoveInterface) ( 19919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDynamicInterfaceManagementItf self, 19929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLInterfaceID iid 19939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 19949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*ResumeInterface) ( 19959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDynamicInterfaceManagementItf self, 19969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLInterfaceID iid, 19979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean async 19989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 19999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*RegisterCallback) ( 20009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDynamicInterfaceManagementItf self, 20019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten slDynamicInterfaceManagementCallback callback, 20029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void * pContext 20039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 20049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 20059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 20069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 20079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Midi Message Interface and associated types */ 20089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 20099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 20109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_MIDIMESSAGETYPE_NOTE_ON_OFF ((SLuint32) 0x00000001) 20119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_MIDIMESSAGETYPE_POLY_PRESSURE ((SLuint32) 0x00000002) 20129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_MIDIMESSAGETYPE_CONTROL_CHANGE ((SLuint32) 0x00000003) 20139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_MIDIMESSAGETYPE_PROGRAM_CHANGE ((SLuint32) 0x00000004) 20149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_MIDIMESSAGETYPE_CHANNEL_PRESSURE ((SLuint32) 0x00000005) 20159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_MIDIMESSAGETYPE_PITCH_BEND ((SLuint32) 0x00000006) 20169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_MIDIMESSAGETYPE_SYSTEM_MESSAGE ((SLuint32) 0x00000007) 20179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 20189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2019ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_MIDIMESSAGE; 20209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 20219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLMIDIMessageItf_; 20229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLMIDIMessageItf_ * const * SLMIDIMessageItf; 20239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2024ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastentypedef void (SLAPIENTRY *slMetaEventCallback) ( 20259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDIMessageItf caller, 20269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pContext, 20279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint8 type, 20289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 length, 20299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLuint8 *pData, 20309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 tick, 20319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 track 20329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten); 20339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2034ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastentypedef void (SLAPIENTRY *slMIDIMessageCallback) ( 20359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDIMessageItf caller, 20369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pContext, 20379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint8 statusByte, 20389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 length, 20399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLuint8 *pData, 20409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 tick, 20419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 track 20429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten); 20439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 20449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLMIDIMessageItf_ { 20459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SendMessage) ( 20469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDIMessageItf self, 20479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLuint8 *data, 20489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 length 20499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 20509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*RegisterMetaEventCallback) ( 20519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDIMessageItf self, 20529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten slMetaEventCallback callback, 20539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pContext 20549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 20559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*RegisterMIDIMessageCallback) ( 20569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDIMessageItf self, 20579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten slMIDIMessageCallback callback, 20589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pContext 20599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 20609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*AddMIDIMessageCallbackFilter) ( 20619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDIMessageItf self, 20629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 messageType 20639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 20649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*ClearMIDIMessageCallbackFilter) ( 20659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDIMessageItf self 20669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 20679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 20689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 20699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 20709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 20719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Midi Mute Solo interface */ 20729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 20739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 20749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2075ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_MIDIMUTESOLO; 20769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 20779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLMIDIMuteSoloItf_; 20789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLMIDIMuteSoloItf_ * const * SLMIDIMuteSoloItf; 20799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 20809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLMIDIMuteSoloItf_ { 20819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetChannelMute) ( 20829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDIMuteSoloItf self, 20839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint8 channel, 20849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean mute 20859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 20869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetChannelMute) ( 20879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDIMuteSoloItf self, 20889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint8 channel, 20899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pMute 20909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 20919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetChannelSolo) ( 20929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDIMuteSoloItf self, 20939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint8 channel, 20949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean solo 20959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 20969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetChannelSolo) ( 20979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDIMuteSoloItf self, 20989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint8 channel, 20999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pSolo 21009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 21019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetTrackCount) ( 21029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDIMuteSoloItf self, 21039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 *pCount 21049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 21059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetTrackMute) ( 21069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDIMuteSoloItf self, 21079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 track, 21089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean mute 21099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 21109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetTrackMute) ( 21119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDIMuteSoloItf self, 21129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 track, 21139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pMute 21149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 21159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetTrackSolo) ( 21169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDIMuteSoloItf self, 21179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 track, 21189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean solo 21199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 21209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetTrackSolo) ( 21219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDIMuteSoloItf self, 21229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 track, 21239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pSolo 21249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 21259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 21269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 21279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 21289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 21299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Midi Tempo interface */ 21309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 21319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 21329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2133ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_MIDITEMPO; 21349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 21359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLMIDITempoItf_; 21369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLMIDITempoItf_ * const * SLMIDITempoItf; 21379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 21389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLMIDITempoItf_ { 21399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetTicksPerQuarterNote) ( 21409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDITempoItf self, 21419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 tpqn 21429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 21439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetTicksPerQuarterNote) ( 21449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDITempoItf self, 21459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pTpqn 21469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 21479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetMicrosecondsPerQuarterNote) ( 21489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDITempoItf self, 21499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmicrosecond uspqn 21509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 21519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetMicrosecondsPerQuarterNote) ( 21529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDITempoItf self, 21539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmicrosecond *uspqn 21549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 21559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 21569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 21579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 21589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 21599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Midi Time interface */ 21609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 21619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 21629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2163ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_MIDITIME; 21649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 21659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLMIDITimeItf_; 21669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLMIDITimeItf_ * const * SLMIDITimeItf; 21679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 21689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLMIDITimeItf_ { 21699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetDuration) ( 21709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDITimeItf self, 21719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pDuration 21729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 21739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetPosition) ( 21749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDITimeItf self, 21759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 position 21769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 21779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetPosition) ( 21789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDITimeItf self, 21799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pPosition 21809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 21819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetLoopPoints) ( 21829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDITimeItf self, 21839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 startTick, 21849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 numTicks 21859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 21869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetLoopPoints) ( 21879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDITimeItf self, 21889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pStartTick, 21899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pNumTicks 21909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 21919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 21929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 21939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 21949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 21959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Audio Decoder Capabilities Interface */ 21969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 21979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 21989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*Audio Codec related defines*/ 21999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RATECONTROLMODE_CONSTANTBITRATE ((SLuint32) 0x00000001) 22019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RATECONTROLMODE_VARIABLEBITRATE ((SLuint32) 0x00000002) 22029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOCODEC_PCM ((SLuint32) 0x00000001) 22049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOCODEC_MP3 ((SLuint32) 0x00000002) 22059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOCODEC_AMR ((SLuint32) 0x00000003) 22069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOCODEC_AMRWB ((SLuint32) 0x00000004) 22079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOCODEC_AMRWBPLUS ((SLuint32) 0x00000005) 22089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOCODEC_AAC ((SLuint32) 0x00000006) 22099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOCODEC_WMA ((SLuint32) 0x00000007) 22109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOCODEC_REAL ((SLuint32) 0x00000008) 22119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOPROFILE_PCM ((SLuint32) 0x00000001) 22139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOPROFILE_MPEG1_L3 ((SLuint32) 0x00000001) 22159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOPROFILE_MPEG2_L3 ((SLuint32) 0x00000002) 22169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOPROFILE_MPEG25_L3 ((SLuint32) 0x00000003) 22179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOCHANMODE_MP3_MONO ((SLuint32) 0x00000001) 22199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOCHANMODE_MP3_STEREO ((SLuint32) 0x00000002) 22209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOCHANMODE_MP3_JOINTSTEREO ((SLuint32) 0x00000003) 22219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOCHANMODE_MP3_DUAL ((SLuint32) 0x00000004) 22229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOPROFILE_AMR ((SLuint32) 0x00000001) 22249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOSTREAMFORMAT_CONFORMANCE ((SLuint32) 0x00000001) 22269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOSTREAMFORMAT_IF1 ((SLuint32) 0x00000002) 22279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOSTREAMFORMAT_IF2 ((SLuint32) 0x00000003) 22289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOSTREAMFORMAT_FSF ((SLuint32) 0x00000004) 22299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOSTREAMFORMAT_RTPPAYLOAD ((SLuint32) 0x00000005) 22309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOSTREAMFORMAT_ITU ((SLuint32) 0x00000006) 22319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOPROFILE_AMRWB ((SLuint32) 0x00000001) 22339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOPROFILE_AMRWBPLUS ((SLuint32) 0x00000001) 22359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOPROFILE_AAC_AAC ((SLuint32) 0x00000001) 22379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_AAC_MAIN ((SLuint32) 0x00000001) 22399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_AAC_LC ((SLuint32) 0x00000002) 22409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_AAC_SSR ((SLuint32) 0x00000003) 22419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_AAC_LTP ((SLuint32) 0x00000004) 22429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_AAC_HE ((SLuint32) 0x00000005) 22439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_AAC_SCALABLE ((SLuint32) 0x00000006) 22449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_AAC_ERLC ((SLuint32) 0x00000007) 22459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_AAC_LD ((SLuint32) 0x00000008) 22469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_AAC_HE_PS ((SLuint32) 0x00000009) 22479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_AAC_HE_MPS ((SLuint32) 0x0000000A) 22489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOSTREAMFORMAT_MP2ADTS ((SLuint32) 0x00000001) 22509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOSTREAMFORMAT_MP4ADTS ((SLuint32) 0x00000002) 22519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOSTREAMFORMAT_MP4LOAS ((SLuint32) 0x00000003) 22529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOSTREAMFORMAT_MP4LATM ((SLuint32) 0x00000004) 22539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOSTREAMFORMAT_ADIF ((SLuint32) 0x00000005) 22549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOSTREAMFORMAT_MP4FF ((SLuint32) 0x00000006) 22559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOSTREAMFORMAT_RAW ((SLuint32) 0x00000007) 22569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOPROFILE_WMA7 ((SLuint32) 0x00000001) 22589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOPROFILE_WMA8 ((SLuint32) 0x00000002) 22599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOPROFILE_WMA9 ((SLuint32) 0x00000003) 22609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOPROFILE_WMA10 ((SLuint32) 0x00000004) 22619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_WMA_LEVEL1 ((SLuint32) 0x00000001) 22639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_WMA_LEVEL2 ((SLuint32) 0x00000002) 22649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_WMA_LEVEL3 ((SLuint32) 0x00000003) 22659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_WMA_LEVEL4 ((SLuint32) 0x00000004) 22669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_WMAPRO_LEVELM0 ((SLuint32) 0x00000005) 22679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_WMAPRO_LEVELM1 ((SLuint32) 0x00000006) 22689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_WMAPRO_LEVELM2 ((SLuint32) 0x00000007) 22699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_WMAPRO_LEVELM3 ((SLuint32) 0x00000008) 22709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOPROFILE_REALAUDIO ((SLuint32) 0x00000001) 22729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_REALAUDIO_G2 ((SLuint32) 0x00000001) 22749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_REALAUDIO_8 ((SLuint32) 0x00000002) 22759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_REALAUDIO_10 ((SLuint32) 0x00000003) 22769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_REALAUDIO_SURROUND ((SLuint32) 0x00000004) 22779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef struct SLAudioCodecDescriptor_ { 22799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 maxChannels; 22809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 minBitsPerSample; 22819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 maxBitsPerSample; 22829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmilliHertz minSampleRate; 22839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmilliHertz maxSampleRate; 22849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean isFreqRangeContinuous; 22859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmilliHertz *pSampleRatesSupported; 22869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 numSampleRatesSupported; 22879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 minBitRate; 22889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 maxBitRate; 22899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean isBitrateRangeContinuous; 22909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pBitratesSupported; 22919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 numBitratesSupported; 22929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 profileSetting; 22939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 modeSetting; 22949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten} SLAudioCodecDescriptor; 22959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*Structure used to retrieve the profile and level settings supported by an audio encoder */ 22979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef struct SLAudioCodecProfileMode_ { 22999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 profileSetting; 23009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 modeSetting; 23019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten} SLAudioCodecProfileMode; 23029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2303ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_AUDIODECODERCAPABILITIES; 23049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLAudioDecoderCapabilitiesItf_; 23069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLAudioDecoderCapabilitiesItf_ * const * SLAudioDecoderCapabilitiesItf; 23079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLAudioDecoderCapabilitiesItf_ { 23099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetAudioDecoders) ( 23109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioDecoderCapabilitiesItf self, 23119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 * pNumDecoders , 23129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pDecoderIds 23139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 23149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetAudioDecoderCapabilities) ( 23159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioDecoderCapabilitiesItf self, 23169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 decoderId, 23179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pIndex, 23189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioCodecDescriptor *pDescriptor 23199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 23209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 23219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 23269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Audio Encoder Capabilities Interface */ 23279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 23289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Structure used when setting audio encoding parameters */ 23309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef struct SLAudioEncoderSettings_ { 23329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 encoderId; 23339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 channelsIn; 23349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 channelsOut; 23359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmilliHertz sampleRate; 23369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 bitRate; 23379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 bitsPerSample; 23389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 rateControl; 23399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 profileSetting; 23409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 levelSetting; 23419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 channelMode; 23429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 streamFormat; 23439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 encodeOptions; 23449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 blockAlignment; 23459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten} SLAudioEncoderSettings; 23469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2347ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_AUDIOENCODERCAPABILITIES; 23489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLAudioEncoderCapabilitiesItf_; 23509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLAudioEncoderCapabilitiesItf_ * const * SLAudioEncoderCapabilitiesItf; 23519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLAudioEncoderCapabilitiesItf_ { 23539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetAudioEncoders) ( 23549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioEncoderCapabilitiesItf self, 23559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pNumEncoders , 23569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pEncoderIds 23579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 23589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetAudioEncoderCapabilities) ( 23599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioEncoderCapabilitiesItf self, 23609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 encoderId, 23619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pIndex, 23629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioCodecDescriptor * pDescriptor 23639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 23649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 23659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 23689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Audio Encoder Interface */ 23699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 23709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2372ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_AUDIOENCODER; 23739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLAudioEncoderItf_; 23759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLAudioEncoderItf_ * const * SLAudioEncoderItf; 23769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLAudioEncoderItf_ { 23789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetEncoderSettings) ( 23799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioEncoderItf self, 23809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioEncoderSettings *pSettings 23819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 23829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetEncoderSettings) ( 23839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioEncoderItf self, 23849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioEncoderSettings *pSettings 23859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 23869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 23879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 23909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Bass Boost Interface */ 23919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 23929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2394ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_BASSBOOST; 23959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLBassBoostItf_; 23979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLBassBoostItf_ * const * SLBassBoostItf; 23989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLBassBoostItf_ { 24009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetEnabled)( 24019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLBassBoostItf self, 24029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean enabled 24039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 24049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*IsEnabled)( 24059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLBassBoostItf self, 24069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pEnabled 24079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 24089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetStrength)( 24099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLBassBoostItf self, 24109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille strength 24119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 24129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetRoundedStrength)( 24139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLBassBoostItf self, 24149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pStrength 24159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 24169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*IsStrengthSupported)( 24179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLBassBoostItf self, 24189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pSupported 24199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 24209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 24219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 24229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 24239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Pitch Interface */ 24249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 24259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 24269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2427ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_PITCH; 24289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 24299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLPitchItf_; 24309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLPitchItf_ * const * SLPitchItf; 24319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 24329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLPitchItf_ { 24339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetPitch) ( 24349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPitchItf self, 24359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille pitch 24369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 24379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetPitch) ( 24389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPitchItf self, 24399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pPitch 24409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 24419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetPitchCapabilities) ( 24429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPitchItf self, 24439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pMinPitch, 24449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pMaxPitch 24459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 24469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 24479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 24489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 24499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 24509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Rate Pitch Interface */ 24519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* RatePitchItf is an interface for controlling the rate a sound is played */ 24529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* back. A change in rate will cause a change in pitch. */ 24539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 24549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 24559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2456ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_RATEPITCH; 24579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 24589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLRatePitchItf_; 24599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLRatePitchItf_ * const * SLRatePitchItf; 24609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 24619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLRatePitchItf_ { 24629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetRate) ( 24639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLRatePitchItf self, 24649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille rate 24659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 24669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetRate) ( 24679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLRatePitchItf self, 24689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pRate 24699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 24709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetRatePitchCapabilities) ( 24719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLRatePitchItf self, 24729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pMinRate, 24739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pMaxRate 24749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 24759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 24769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 24779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 24789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 24799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Virtualizer Interface */ 24809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 24819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 24829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2483ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_VIRTUALIZER; 24849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 24859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLVirtualizerItf_; 24869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLVirtualizerItf_ * const * SLVirtualizerItf; 24879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 24889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLVirtualizerItf_ { 24899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetEnabled)( 24909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVirtualizerItf self, 24919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean enabled 24929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 24939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*IsEnabled)( 24949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVirtualizerItf self, 24959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pEnabled 24969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 24979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetStrength)( 24989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVirtualizerItf self, 24999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille strength 25009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 25019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetRoundedStrength)( 25029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVirtualizerItf self, 25039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pStrength 25049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 25059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*IsStrengthSupported)( 25069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVirtualizerItf self, 25079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pSupported 25089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 25099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 25109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 25119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 25129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Visualization Interface */ 25139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 25149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 25159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2516ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_VISUALIZATION; 25179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 25189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLVisualizationItf_; 25199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLVisualizationItf_ * const * SLVisualizationItf; 25209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2521ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastentypedef void (SLAPIENTRY *slVisualizationCallback) ( 25229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pContext, 25239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLuint8 waveform[], 25249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLuint8 fft[], 25259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmilliHertz samplerate 25269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten); 25279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 25289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLVisualizationItf_{ 25299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*RegisterVisualizationCallback)( 25309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVisualizationItf self, 25319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten slVisualizationCallback callback, 25329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pContext, 25339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmilliHertz rate 25349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 25359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetMaxRate)( 25369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVisualizationItf self, 25379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmilliHertz* pRate 25389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 25399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 25409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 25419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 25429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 25439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Engine Interface */ 25449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 25459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 25469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2547ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_ENGINE; 25489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 25499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLEngineItf_; 25509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLEngineItf_ * const * SLEngineItf; 25519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 25529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 25539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLEngineItf_ { 25549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 25559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*CreateLEDDevice) ( 25569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineItf self, 25579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf * pDevice, 25589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 deviceID, 25599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 numInterfaces, 25609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLInterfaceID * pInterfaceIds, 25619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLboolean * pInterfaceRequired 25629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 25639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*CreateVibraDevice) ( 25649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineItf self, 25659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf * pDevice, 25669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 deviceID, 25679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 numInterfaces, 25689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLInterfaceID * pInterfaceIds, 25699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLboolean * pInterfaceRequired 25709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 25719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*CreateAudioPlayer) ( 25729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineItf self, 25739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf * pPlayer, 25749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDataSource *pAudioSrc, 25759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDataSink *pAudioSnk, 25769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 numInterfaces, 25779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLInterfaceID * pInterfaceIds, 25789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLboolean * pInterfaceRequired 25799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 25809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*CreateAudioRecorder) ( 25819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineItf self, 25829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf * pRecorder, 25839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDataSource *pAudioSrc, 25849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDataSink *pAudioSnk, 25859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 numInterfaces, 25869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLInterfaceID * pInterfaceIds, 25879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLboolean * pInterfaceRequired 25889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 25899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*CreateMidiPlayer) ( 25909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineItf self, 25919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf * pPlayer, 25929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDataSource *pMIDISrc, 25939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDataSource *pBankSrc, 25949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDataSink *pAudioOutput, 25959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDataSink *pVibra, 25969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDataSink *pLEDArray, 25979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 numInterfaces, 25989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLInterfaceID * pInterfaceIds, 25999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLboolean * pInterfaceRequired 26009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 26019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*CreateListener) ( 26029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineItf self, 26039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf * pListener, 26049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 numInterfaces, 26059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLInterfaceID * pInterfaceIds, 26069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLboolean * pInterfaceRequired 26079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 26089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*Create3DGroup) ( 26099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineItf self, 26109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf * pGroup, 26119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 numInterfaces, 26129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLInterfaceID * pInterfaceIds, 26139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLboolean * pInterfaceRequired 26149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 26159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*CreateOutputMix) ( 26169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineItf self, 26179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf * pMix, 26189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 numInterfaces, 26199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLInterfaceID * pInterfaceIds, 26209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLboolean * pInterfaceRequired 26219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 26229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*CreateMetadataExtractor) ( 26239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineItf self, 26249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf * pMetadataExtractor, 26259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDataSource * pDataSource, 26269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 numInterfaces, 26279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLInterfaceID * pInterfaceIds, 26289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLboolean * pInterfaceRequired 26299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 26309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*CreateExtensionObject) ( 26319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineItf self, 26329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf * pObject, 26339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void * pParameters, 26349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 objectID, 26359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 numInterfaces, 26369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLInterfaceID * pInterfaceIds, 26379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLboolean * pInterfaceRequired 26389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 26399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*QueryNumSupportedInterfaces) ( 26409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineItf self, 26419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 objectID, 26429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 * pNumSupportedInterfaces 26439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 26449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*QuerySupportedInterfaces) ( 26459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineItf self, 26469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 objectID, 26479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 index, 26489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLInterfaceID * pInterfaceId 26499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 26509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*QueryNumSupportedExtensions) ( 26519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineItf self, 26529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 * pNumExtensions 26539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 26549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*QuerySupportedExtension) ( 2655e3105d7d252fe0d1018c3578a675a8d63714d823Jean-Michel Trivi SLEngineItf self, 26569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 index, 26579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLchar * pExtensionName, 26589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint16 * pNameLength 26599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 26609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*IsExtensionSupported) ( 2661e3105d7d252fe0d1018c3578a675a8d63714d823Jean-Michel Trivi SLEngineItf self, 26629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLchar * pExtensionName, 26639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean * pSupported 26649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 26659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 26669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 26679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 26689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 26699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Engine Capabilities Interface */ 26709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 26719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 26729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2673ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_ENGINECAPABILITIES; 26749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 26759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLEngineCapabilitiesItf_; 26769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLEngineCapabilitiesItf_ * const * SLEngineCapabilitiesItf; 26779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 26789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLEngineCapabilitiesItf_ { 26799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*QuerySupportedProfiles) ( 26809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineCapabilitiesItf self, 26819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 *pProfilesSupported 26829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 26839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*QueryAvailableVoices) ( 26849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineCapabilitiesItf self, 26859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 voiceType, 26869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint16 *pNumMaxVoices, 26879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pIsAbsoluteMax, 26889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint16 *pNumFreeVoices 26899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 26909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*QueryNumberOfMIDISynthesizers) ( 26919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineCapabilitiesItf self, 26929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint16 *pNumMIDIsynthesizers 26939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 26949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*QueryAPIVersion) ( 26959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineCapabilitiesItf self, 26969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint16 *pMajor, 26979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint16 *pMinor, 26989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint16 *pStep 26999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 27009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*QueryLEDCapabilities) ( 27019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineCapabilitiesItf self, 27029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pIndex, 27039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pLEDDeviceID, 27049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLLEDDescriptor *pDescriptor 27059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 27069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*QueryVibraCapabilities) ( 27079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineCapabilitiesItf self, 27089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pIndex, 27099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pVibraDeviceID, 27109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVibraDescriptor *pDescriptor 27119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 27129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*IsThreadSafe) ( 27139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineCapabilitiesItf self, 27149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pIsThreadSafe 27159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 27169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 27179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 27189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 27199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Thread Sync Interface */ 27209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 27219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 27229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2723ebc8fd365b402e498d499fa8737a7591c290347cGlenn Kastenextern SL_API const SLInterfaceID SL_IID_THREADSYNC; 27249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 27259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLThreadSyncItf_; 27269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLThreadSyncItf_ * const * SLThreadSyncItf; 27279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 27289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 27299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLThreadSyncItf_ { 27309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*EnterCriticalSection) ( 27319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLThreadSyncItf self 27329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 27339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*ExitCriticalSection) ( 27349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLThreadSyncItf self 27359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 27369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 27379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 27389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 27399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*****************************************************************************/ 27409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* SL engine constructor */ 27419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*****************************************************************************/ 27429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 27439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_ENGINEOPTION_THREADSAFE ((SLuint32) 0x00000001) 27449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_ENGINEOPTION_LOSSOFCONTROL ((SLuint32) 0x00000002) 27459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 27469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef struct SLEngineOption_ { 27479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 feature; 27489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 data; 27499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten} SLEngineOption; 27509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 27519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2752ebc8fd365b402e498d499fa8737a7591c290347cGlenn KastenSL_API SLresult SLAPIENTRY slCreateEngine( 27539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf *pEngine, 27549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 numOptions, 27559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLEngineOption *pEngineOptions, 27569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 numInterfaces, 27579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLInterfaceID *pInterfaceIds, 27589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLboolean * pInterfaceRequired 27599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten); 27609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2761ebc8fd365b402e498d499fa8737a7591c290347cGlenn KastenSL_API SLresult SLAPIENTRY slQueryNumSupportedEngineInterfaces( 27629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 * pNumSupportedInterfaces 27639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten); 27649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 2765ebc8fd365b402e498d499fa8737a7591c290347cGlenn KastenSL_API SLresult SLAPIENTRY slQuerySupportedEngineInterfaces( 27669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 index, 27679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLInterfaceID * pInterfaceId 27689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten); 27699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 27709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#ifdef __cplusplus 27719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten} /* extern "C" */ 27729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#endif 27739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 27749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#endif /* OPENSL_ES_H_ */ 2775