OpenSLES.h revision e3105d7d252fe0d1018c3578a675a8d63714d823
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 24000d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY 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 38600d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_OBJECT; 3879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 3889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/** Object callback */ 3899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 3909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 39100d2d554e04ac369367c903dbf53b975355d1bcdGlenn 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 51100d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_AUDIOIODEVICECAPABILITIES; 5129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 5139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLAudioIODeviceCapabilitiesItf_; 5149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLAudioIODeviceCapabilitiesItf_ * const * SLAudioIODeviceCapabilitiesItf; 5159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 5169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 51700d2d554e04ac369367c903dbf53b975355d1bcdGlenn 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 52600d2d554e04ac369367c903dbf53b975355d1bcdGlenn 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 53400d2d554e04ac369367c903dbf53b975355d1bcdGlenn 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 62900d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY 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 67300d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY 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 75900d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY 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 82200d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY 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 85900d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY 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 87500d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_OUTPUTMIX; 8769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 8779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLOutputMixItf_; 8789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLOutputMixItf_ * const * SLOutputMixItf; 8799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 88000d2d554e04ac369367c903dbf53b975355d1bcdGlenn 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 92400d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY 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 93100d2d554e04ac369367c903dbf53b975355d1bcdGlenn 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) 994e3105d7d252fe0d1018c3578a675a8d63714d823Jean-Michel Trivi#define SL_PREFETCHEVENT_ERROR ((SLuint32) 0x00000003) 995e3105d7d252fe0d1018c3578a675a8d63714d823Jean-Michel Trivi#define SL_PREFETCHEVENT_ERROR_UNRECOVERABLE ((SLuint32) 0x00000004) 9969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 9979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_PREFETCHSTATUS_UNDERFLOW ((SLuint32) 0x00000001) 9989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_PREFETCHSTATUS_SUFFICIENTDATA ((SLuint32) 0x00000002) 9999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_PREFETCHSTATUS_OVERFLOW ((SLuint32) 0x00000003) 10009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 10019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 100200d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_PREFETCHSTATUS; 10039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 10049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 10059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/** Prefetch status interface methods */ 10069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 10079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLPrefetchStatusItf_; 10089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLPrefetchStatusItf_ * const * SLPrefetchStatusItf; 10099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 101000d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastentypedef void (/*SLAPIENTRY*/ *slPrefetchCallback) ( 10119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPrefetchStatusItf caller, 10129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pContext, 10139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 event 10149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten); 10159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 10169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLPrefetchStatusItf_ { 10179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetPrefetchStatus) ( 10189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPrefetchStatusItf self, 10199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pStatus 10209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 10219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetFillLevel) ( 10229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPrefetchStatusItf self, 10239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pLevel 10249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 10259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*RegisterCallback) ( 10269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPrefetchStatusItf self, 10279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten slPrefetchCallback callback, 10289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pContext 10299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 10309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetCallbackEventsMask) ( 10319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPrefetchStatusItf self, 10329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 eventFlags 10339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 10349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetCallbackEventsMask) ( 10359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPrefetchStatusItf self, 10369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pEventFlags 10379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 10389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetFillUpdatePeriod) ( 10399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPrefetchStatusItf self, 10409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille period 10419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 10429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetFillUpdatePeriod) ( 10439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPrefetchStatusItf self, 10449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pPeriod 10459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 10469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 10479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 10489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 10499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Playback Rate interface */ 10509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 10519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 10529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RATEPROP_RESERVED1 ((SLuint32) 0x00000001) 10539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RATEPROP_RESERVED2 ((SLuint32) 0x00000002) 10549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RATEPROP_SILENTAUDIO ((SLuint32) 0x00000100) 10559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RATEPROP_STAGGEREDAUDIO ((SLuint32) 0x00000200) 10569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RATEPROP_NOPITCHCORAUDIO ((SLuint32) 0x00000400) 10579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RATEPROP_PITCHCORAUDIO ((SLuint32) 0x00000800) 10589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 10599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 106000d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_PLAYBACKRATE; 10619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 10629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLPlaybackRateItf_; 10639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLPlaybackRateItf_ * const * SLPlaybackRateItf; 10649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 10659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLPlaybackRateItf_ { 10669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetRate)( 10679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPlaybackRateItf self, 10689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille rate 10699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 10709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetRate)( 10719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPlaybackRateItf self, 10729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pRate 10739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 10749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetPropertyConstraints)( 10759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPlaybackRateItf self, 10769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 constraints 10779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 10789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetProperties)( 10799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPlaybackRateItf self, 10809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pProperties 10819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 10829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetCapabilitiesOfRate)( 10839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPlaybackRateItf self, 10849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille rate, 10859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pCapabilities 10869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 10879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetRateRange) ( 10889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPlaybackRateItf self, 10899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint8 index, 10909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pMinRate, 10919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pMaxRate, 10929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pStepSize, 10939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pCapabilities 10949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 10959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 10969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 10979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 10989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Seek Interface */ 10999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 11009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 110129ecc091f988ce8e6d95296a5f47377007ad77feGlenn Kasten#define SL_SEEKMODE_FAST ((SLuint32) 0x0001) 110229ecc091f988ce8e6d95296a5f47377007ad77feGlenn Kasten#define SL_SEEKMODE_ACCURATE ((SLuint32) 0x0002) 11039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 110400d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_SEEK; 11059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 11069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLSeekItf_; 11079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLSeekItf_ * const * SLSeekItf; 11089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 11099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLSeekItf_ { 11109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetPosition)( 11119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLSeekItf self, 11129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond pos, 11139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 seekMode 11149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 11159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetLoop)( 11169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLSeekItf self, 11179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean loopEnable, 11189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond startPos, 11199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond endPos 11209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 11219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetLoop)( 11229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLSeekItf self, 11239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pLoopEnabled, 11249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond *pStartPos, 11259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond *pEndPos 11269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 11279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 11289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 11299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 11309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Standard Recording Interface */ 11319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 11329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 11339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/** Recording states */ 11349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RECORDSTATE_STOPPED ((SLuint32) 0x00000001) 11359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RECORDSTATE_PAUSED ((SLuint32) 0x00000002) 11369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RECORDSTATE_RECORDING ((SLuint32) 0x00000003) 11379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 11389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 11399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/** Record event **/ 11409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RECORDEVENT_HEADATLIMIT ((SLuint32) 0x00000001) 11419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RECORDEVENT_HEADATMARKER ((SLuint32) 0x00000002) 11429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RECORDEVENT_HEADATNEWPOS ((SLuint32) 0x00000004) 11439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RECORDEVENT_HEADMOVING ((SLuint32) 0x00000008) 11449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RECORDEVENT_HEADSTALLED ((SLuint32) 0x00000010) 114529ecc091f988ce8e6d95296a5f47377007ad77feGlenn Kasten/* Note: SL_RECORDEVENT_BUFFER_INSUFFICIENT is deprecated, use SL_RECORDEVENT_BUFFER_FULL instead. */ 114629ecc091f988ce8e6d95296a5f47377007ad77feGlenn Kasten#define SL_RECORDEVENT_BUFFER_INSUFFICIENT ((SLuint32) 0x00000020) 114729ecc091f988ce8e6d95296a5f47377007ad77feGlenn Kasten#define SL_RECORDEVENT_BUFFER_FULL ((SLuint32) 0x00000020) 11489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 11499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 115000d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_RECORD; 11519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 11529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLRecordItf_; 11539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLRecordItf_ * const * SLRecordItf; 11549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 115500d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastentypedef void (/*SLAPIENTRY*/ *slRecordCallback) ( 11569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLRecordItf caller, 11579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pContext, 11589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 event 11599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten); 11609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 11619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/** Recording interface methods */ 11629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLRecordItf_ { 11639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetRecordState) ( 11649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLRecordItf self, 11659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 state 11669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 11679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetRecordState) ( 11689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLRecordItf self, 11699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pState 11709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 11719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetDurationLimit) ( 11729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLRecordItf self, 11739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond msec 11749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 11759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetPosition) ( 11769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLRecordItf self, 11779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond *pMsec 11789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 11799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*RegisterCallback) ( 11809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLRecordItf self, 11819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten slRecordCallback callback, 11829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pContext 11839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 11849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetCallbackEventsMask) ( 11859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLRecordItf self, 11869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 eventFlags 11879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 11889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetCallbackEventsMask) ( 11899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLRecordItf self, 11909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pEventFlags 11919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 11929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetMarkerPosition) ( 11939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLRecordItf self, 11949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond mSec 11959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 11969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*ClearMarkerPosition) ( 11979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLRecordItf self 11989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 11999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetMarkerPosition) ( 12009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLRecordItf self, 12019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond *pMsec 12029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 12039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetPositionUpdatePeriod) ( 12049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLRecordItf self, 12059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond mSec 12069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 12079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetPositionUpdatePeriod) ( 12089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLRecordItf self, 12099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond *pMsec 12109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 12119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 12129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 12139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 12149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Equalizer interface */ 12159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 12169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 12179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_EQUALIZER_UNDEFINED ((SLuint16) 0xFFFF) 12189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 121900d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_EQUALIZER; 12209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 12219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLEqualizerItf_; 12229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLEqualizerItf_ * const * SLEqualizerItf; 12239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 12249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLEqualizerItf_ { 12259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetEnabled)( 12269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEqualizerItf self, 12279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean enabled 12289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 12299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*IsEnabled)( 12309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEqualizerItf self, 12319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pEnabled 12329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 12339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetNumberOfBands)( 12349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEqualizerItf self, 12359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 *pAmount 12369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 12379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetBandLevelRange)( 12389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEqualizerItf self, 12399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel *pMin, 12409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel *pMax 12419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 12429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetBandLevel)( 12439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEqualizerItf self, 12449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 band, 12459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel level 12469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 12479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetBandLevel)( 12489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEqualizerItf self, 12499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 band, 12509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel *pLevel 12519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 12529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetCenterFreq)( 12539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEqualizerItf self, 12549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 band, 12559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmilliHertz *pCenter 12569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 12579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetBandFreqRange)( 12589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEqualizerItf self, 12599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 band, 12609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmilliHertz *pMin, 12619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmilliHertz *pMax 12629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 12639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetBand)( 12649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEqualizerItf self, 12659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmilliHertz frequency, 12669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 *pBand 12679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 12689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetCurrentPreset)( 12699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEqualizerItf self, 12709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 *pPreset 12719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 12729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*UsePreset)( 12739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEqualizerItf self, 12749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 index 12759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 12769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetNumberOfPresets)( 12779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEqualizerItf self, 12789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 *pNumPresets 12799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 12809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetPresetName)( 12819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEqualizerItf self, 12829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 index, 12839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLchar ** ppName 12849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 12859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 12869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 12879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 12889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Volume Interface */ 12899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 12909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 129100d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_VOLUME; 12929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 12939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLVolumeItf_; 12949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLVolumeItf_ * const * SLVolumeItf; 12959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 12969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLVolumeItf_ { 12979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetVolumeLevel) ( 12989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVolumeItf self, 12999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel level 13009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 13019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetVolumeLevel) ( 13029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVolumeItf self, 13039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel *pLevel 13049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 13059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetMaxVolumeLevel) ( 13069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVolumeItf self, 13079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel *pMaxLevel 13089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 13099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetMute) ( 13109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVolumeItf self, 13119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean mute 13129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 13139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetMute) ( 13149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVolumeItf self, 13159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pMute 13169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 13179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*EnableStereoPosition) ( 13189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVolumeItf self, 13199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean enable 13209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 13219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*IsEnabledStereoPosition) ( 13229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVolumeItf self, 13239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pEnable 13249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 13259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetStereoPosition) ( 13269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVolumeItf self, 13279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille stereoPosition 13289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 13299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetStereoPosition) ( 13309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVolumeItf self, 13319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pStereoPosition 13329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 13339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 13349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 13359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 13369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 13379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Device Volume Interface */ 13389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 13399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 134000d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_DEVICEVOLUME; 13419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 13429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLDeviceVolumeItf_; 13439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLDeviceVolumeItf_ * const * SLDeviceVolumeItf; 13449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 13459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLDeviceVolumeItf_ { 13469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetVolumeScale) ( 13479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDeviceVolumeItf self, 13489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 deviceID, 13499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint32 *pMinValue, 13509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint32 *pMaxValue, 13519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pIsMillibelScale 13529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 13539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetVolume) ( 13549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDeviceVolumeItf self, 13559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 deviceID, 13569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint32 volume 13579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 13589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetVolume) ( 13599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDeviceVolumeItf self, 13609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 deviceID, 13619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint32 *pVolume 13629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 13639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 13649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 13659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 13669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 13679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Buffer Queue Interface */ 13689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 13699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 137000d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_BUFFERQUEUE; 13719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 13729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLBufferQueueItf_; 13739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLBufferQueueItf_ * const * SLBufferQueueItf; 13749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 137500d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastentypedef void (/*SLAPIENTRY*/ *slBufferQueueCallback)( 13769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLBufferQueueItf caller, 13779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pContext 13789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten); 13799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 13809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/** Buffer queue state **/ 13819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 13829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef struct SLBufferQueueState_ { 13839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 count; 13849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 playIndex; 13859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten} SLBufferQueueState; 13869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 13879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 13889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLBufferQueueItf_ { 13899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*Enqueue) ( 13909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLBufferQueueItf self, 13919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const void *pBuffer, 13929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 size 13939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 13949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*Clear) ( 13959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLBufferQueueItf self 13969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 13979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetState) ( 13989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLBufferQueueItf self, 13999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLBufferQueueState *pState 14009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 14019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*RegisterCallback) ( 14029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLBufferQueueItf self, 14039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten slBufferQueueCallback callback, 14049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void* pContext 14059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 14069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 14079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 14089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 14099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 14109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* PresetReverb */ 14119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 14129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 14139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_REVERBPRESET_NONE ((SLuint16) 0x0000) 14149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_REVERBPRESET_SMALLROOM ((SLuint16) 0x0001) 14159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_REVERBPRESET_MEDIUMROOM ((SLuint16) 0x0002) 14169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_REVERBPRESET_LARGEROOM ((SLuint16) 0x0003) 14179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_REVERBPRESET_MEDIUMHALL ((SLuint16) 0x0004) 14189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_REVERBPRESET_LARGEHALL ((SLuint16) 0x0005) 14199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_REVERBPRESET_PLATE ((SLuint16) 0x0006) 14209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 14219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 142200d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_PRESETREVERB; 14239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 14249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLPresetReverbItf_; 14259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLPresetReverbItf_ * const * SLPresetReverbItf; 14269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 14279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLPresetReverbItf_ { 14289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetPreset) ( 14299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPresetReverbItf self, 14309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 preset 14319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 14329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetPreset) ( 14339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPresetReverbItf self, 14349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 *pPreset 14359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 14369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 14379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 14389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 14399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 14409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* EnvironmentalReverb */ 14419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 14429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 14439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_DEFAULT \ 14449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { SL_MILLIBEL_MIN, 0, 1000, 500, SL_MILLIBEL_MIN, 20, SL_MILLIBEL_MIN, 40, 1000,1000 } 14459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_GENERIC \ 14469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000, -100, 1490, 830, -2602, 7, 200, 11, 1000,1000 } 14479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_PADDEDCELL \ 14489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000,-6000, 170, 100, -1204, 1, 207, 2, 1000,1000 } 14499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_ROOM \ 14509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000, -454, 400, 830, -1646, 2, 53, 3, 1000,1000 } 14519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_BATHROOM \ 14529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000,-1200, 1490, 540, -370, 7, 1030, 11, 1000, 600 } 14539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_LIVINGROOM \ 14549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000,-6000, 500, 100, -1376, 3, -1104, 4, 1000,1000 } 14559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_STONEROOM \ 14569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000, -300, 2310, 640, -711, 12, 83, 17, 1000,1000 } 14579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_AUDITORIUM \ 14589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000, -476, 4320, 590, -789, 20, -289, 30, 1000,1000 } 14599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_CONCERTHALL \ 14609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000, -500, 3920, 700, -1230, 20, -2, 29, 1000,1000 } 14619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_CAVE \ 14629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000, 0, 2910, 1300, -602, 15, -302, 22, 1000,1000 } 14639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_ARENA \ 14649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000, -698, 7240, 330, -1166, 20, 16, 30, 1000,1000 } 14659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_HANGAR \ 14669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000,-1000, 10050, 230, -602, 20, 198, 30, 1000,1000 } 14679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_CARPETEDHALLWAY \ 14689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000,-4000, 300, 100, -1831, 2, -1630, 30, 1000,1000 } 14699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_HALLWAY \ 14709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000, -300, 1490, 590, -1219, 7, 441, 11, 1000,1000 } 14719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_STONECORRIDOR \ 14729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000, -237, 2700, 790, -1214, 13, 395, 20, 1000,1000 } 14739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_ALLEY \ 14749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000, -270, 1490, 860, -1204, 7, -4, 11, 1000,1000 } 14759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_FOREST \ 14769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000,-3300, 1490, 540, -2560, 162, -613, 88, 790,1000 } 14779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_CITY \ 14789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000, -800, 1490, 670, -2273, 7, -2217, 11, 500,1000 } 14799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_MOUNTAINS \ 14809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000,-2500, 1490, 210, -2780, 300, -2014, 100, 270,1000 } 14819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_QUARRY \ 14829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000,-1000, 1490, 830, SL_MILLIBEL_MIN, 61, 500, 25, 1000,1000 } 14839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_PLAIN \ 14849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000,-2000, 1490, 500, -2466, 179, -2514, 100, 210,1000 } 14859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_PARKINGLOT \ 14869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000, 0, 1650, 1500, -1363, 8, -1153, 12, 1000,1000 } 14879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_SEWERPIPE \ 14889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000,-1000, 2810, 140, 429, 14, 648, 21, 800, 600 } 14899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_UNDERWATER \ 14909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000,-4000, 1490, 100, -449, 7, 1700, 11, 1000,1000 } 14919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_SMALLROOM \ 14929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000,-600, 1100, 830, -400, 5, 500, 10, 1000, 1000 } 14939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_MEDIUMROOM \ 14949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000,-600, 1300, 830, -1000, 20, -200, 20, 1000, 1000 } 14959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_LARGEROOM \ 14969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000,-600, 1500, 830, -1600, 5, -1000, 40, 1000, 1000 } 14979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_MEDIUMHALL \ 14989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000,-600, 1800, 700, -1300, 15, -800, 30, 1000, 1000 } 14999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_LARGEHALL \ 15009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000,-600, 1800, 700, -2000, 30, -1400, 60, 1000, 1000 } 15019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_I3DL2_ENVIRONMENT_PRESET_PLATE \ 15029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten { -1000,-200, 1300, 900, 0, 2, 0, 10, 1000, 750 } 15039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 15049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 15059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef struct SLEnvironmentalReverbSettings_ { 15069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel roomLevel; 15079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel roomHFLevel; 15089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond decayTime; 15099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille decayHFRatio; 15109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel reflectionsLevel; 15119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond reflectionsDelay; 15129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel reverbLevel; 15139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond reverbDelay; 15149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille diffusion; 15159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille density; 15169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten} SLEnvironmentalReverbSettings; 15179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 15189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 15199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 15209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 152100d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_ENVIRONMENTALREVERB; 15229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 15239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 15249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLEnvironmentalReverbItf_; 15259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLEnvironmentalReverbItf_ * const * SLEnvironmentalReverbItf; 15269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 15279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLEnvironmentalReverbItf_ { 15289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetRoomLevel) ( 15299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel room 15319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 15329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetRoomLevel) ( 15339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel *pRoom 15359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 15369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetRoomHFLevel) ( 15379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel roomHF 15399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 15409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetRoomHFLevel) ( 15419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel *pRoomHF 15439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 15449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetDecayTime) ( 15459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond decayTime 15479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 15489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetDecayTime) ( 15499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond *pDecayTime 15519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 15529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetDecayHFRatio) ( 15539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille decayHFRatio 15559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 15569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetDecayHFRatio) ( 15579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pDecayHFRatio 15599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 15609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetReflectionsLevel) ( 15619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel reflectionsLevel 15639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 15649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetReflectionsLevel) ( 15659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel *pReflectionsLevel 15679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 15689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetReflectionsDelay) ( 15699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond reflectionsDelay 15719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 15729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetReflectionsDelay) ( 15739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond *pReflectionsDelay 15759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 15769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetReverbLevel) ( 15779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel reverbLevel 15799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 15809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetReverbLevel) ( 15819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel *pReverbLevel 15839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 15849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetReverbDelay) ( 15859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond reverbDelay 15879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 15889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetReverbDelay) ( 15899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillisecond *pReverbDelay 15919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 15929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetDiffusion) ( 15939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille diffusion 15959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 15969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetDiffusion) ( 15979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 15989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pDiffusion 15999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 16009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetDensity) ( 16019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 16029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille density 16039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 16049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetDensity) ( 16059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 16069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pDensity 16079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 16089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetEnvironmentalReverbProperties) ( 16099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 16109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLEnvironmentalReverbSettings *pProperties 16119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 16129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetEnvironmentalReverbProperties) ( 16139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbItf self, 16149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEnvironmentalReverbSettings *pProperties 16159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 16169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 16179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 16189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 16199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Effects Send Interface */ 16209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 16219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 16229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 162300d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_EFFECTSEND; 16249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 16259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLEffectSendItf_; 16269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLEffectSendItf_ * const * SLEffectSendItf; 16279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 16289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLEffectSendItf_ { 16299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*EnableEffectSend) ( 16309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEffectSendItf self, 16319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const void *pAuxEffect, 16329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean enable, 16339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel initialLevel 16349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 16359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*IsEnabled) ( 16369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEffectSendItf self, 16379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const void * pAuxEffect, 16389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pEnable 16399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 16409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetDirectLevel) ( 16419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEffectSendItf self, 16429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel directLevel 16439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 16449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetDirectLevel) ( 16459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEffectSendItf self, 16469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel *pDirectLevel 16479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 16489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetSendLevel) ( 16499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEffectSendItf self, 16509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const void *pAuxEffect, 16519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel sendLevel 16529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 16539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetSendLevel)( 16549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEffectSendItf self, 16559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const void *pAuxEffect, 16569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel *pSendLevel 16579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 16589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 16599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 16609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 16619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 16629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* 3D Grouping Interface */ 16639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 16649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 16659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 166600d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_3DGROUPING; 16679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 16689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 16699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SL3DGroupingItf_ ; 16709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SL3DGroupingItf_ * const * SL3DGroupingItf; 16719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 16729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SL3DGroupingItf_ { 16739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*Set3DGroup) ( 16749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DGroupingItf self, 16759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf group 16769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 16779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*Get3DGroup) ( 16789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DGroupingItf self, 16799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf *pGroup 16809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 16819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 16829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 16839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 16849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 16859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* 3D Commit Interface */ 16869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 16879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 16889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 168900d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_3DCOMMIT; 16909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 16919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SL3DCommitItf_; 16929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SL3DCommitItf_* const * SL3DCommitItf; 16939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 16949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SL3DCommitItf_ { 16959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*Commit) ( 16969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DCommitItf self 16979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 16989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetDeferred) ( 16999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DCommitItf self, 17009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean deferred 17019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 17029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 17039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 17049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 17059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 17069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* 3D Location Interface */ 17079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 17089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 17099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef struct SLVec3D_ { 17109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint32 x; 17119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint32 y; 17129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint32 z; 17139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten} SLVec3D; 17149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 171500d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_3DLOCATION; 17169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 17179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SL3DLocationItf_; 17189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SL3DLocationItf_ * const * SL3DLocationItf; 17199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 17209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SL3DLocationItf_ { 17219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetLocationCartesian) ( 17229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DLocationItf self, 17239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLVec3D *pLocation 17249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 17259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetLocationSpherical) ( 17269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DLocationItf self, 17279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillidegree azimuth, 17289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillidegree elevation, 17299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillimeter distance 17309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 17319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*Move) ( 17329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DLocationItf self, 17339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLVec3D *pMovement 17349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 17359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetLocationCartesian) ( 17369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DLocationItf self, 17379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVec3D *pLocation 17389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 17399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetOrientationVectors) ( 17409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DLocationItf self, 17419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLVec3D *pFront, 17429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLVec3D *pAbove 17439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 17449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetOrientationAngles) ( 17459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DLocationItf self, 17469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillidegree heading, 17479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillidegree pitch, 17489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillidegree roll 17499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 17509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*Rotate) ( 17519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DLocationItf self, 17529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillidegree theta, 17539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLVec3D *pAxis 17549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 17559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetOrientationVectors) ( 17569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DLocationItf self, 17579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVec3D *pFront, 17589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVec3D *pUp 17599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 17609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 17619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 17629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 17639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 17649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* 3D Doppler Interface */ 17659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 17669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 17679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 176800d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_3DDOPPLER; 17699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 17709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SL3DDopplerItf_; 17719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SL3DDopplerItf_ * const * SL3DDopplerItf; 17729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 17739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SL3DDopplerItf_ { 17749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetVelocityCartesian) ( 17759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DDopplerItf self, 17769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLVec3D *pVelocity 17779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 17789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetVelocitySpherical) ( 17799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DDopplerItf self, 17809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillidegree azimuth, 17819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillidegree elevation, 17829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillimeter speed 17839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 17849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetVelocityCartesian) ( 17859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DDopplerItf self, 17869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVec3D *pVelocity 17879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 17889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetDopplerFactor) ( 17899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DDopplerItf self, 17909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille dopplerFactor 17919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 17929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetDopplerFactor) ( 17939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DDopplerItf self, 17949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pDopplerFactor 17959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 17969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 17979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 17989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 17999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* 3D Source Interface and associated defines */ 18009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 18019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 18029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_ROLLOFFMODEL_EXPONENTIAL ((SLuint32) 0x00000000) 18039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_ROLLOFFMODEL_LINEAR ((SLuint32) 0x00000001) 18049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 18059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 180600d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_3DSOURCE; 18079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 18089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SL3DSourceItf_; 18099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SL3DSourceItf_ * const * SL3DSourceItf; 18109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 18119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SL3DSourceItf_ { 18129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetHeadRelative) ( 18139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DSourceItf self, 18149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean headRelative 18159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 18169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetHeadRelative) ( 18179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DSourceItf self, 18189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pHeadRelative 18199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 18209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetRolloffDistances) ( 18219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DSourceItf self, 18229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillimeter minDistance, 18239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillimeter maxDistance 18249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 18259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetRolloffDistances) ( 18269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DSourceItf self, 18279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillimeter *pMinDistance, 18289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillimeter *pMaxDistance 18299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 18309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetRolloffMaxDistanceMute) ( 18319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DSourceItf self, 18329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean mute 18339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 18349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetRolloffMaxDistanceMute) ( 18359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DSourceItf self, 18369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pMute 18379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 18389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetRolloffFactor) ( 18399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DSourceItf self, 18409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille rolloffFactor 18419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 18429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetRolloffFactor) ( 18439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DSourceItf self, 18449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pRolloffFactor 18459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 18469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetRoomRolloffFactor) ( 18479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DSourceItf self, 18489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille roomRolloffFactor 18499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 18509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetRoomRolloffFactor) ( 18519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DSourceItf self, 18529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pRoomRolloffFactor 18539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 18549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetRolloffModel) ( 18559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DSourceItf self, 18569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint8 model 18579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 18589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetRolloffModel) ( 18599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DSourceItf self, 18609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint8 *pModel 18619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 18629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetCone) ( 18639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DSourceItf self, 18649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillidegree innerAngle, 18659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillidegree outerAngle, 18669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel outerLevel 18679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 18689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetCone) ( 18699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DSourceItf self, 18709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillidegree *pInnerAngle, 18719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillidegree *pOuterAngle, 18729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillibel *pOuterLevel 18739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 18749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 18759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 18769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 18779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* 3D Macroscopic Interface */ 18789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 18799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 188000d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_3DMACROSCOPIC; 18819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 18829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SL3DMacroscopicItf_; 18839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SL3DMacroscopicItf_ * const * SL3DMacroscopicItf; 18849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 18859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SL3DMacroscopicItf_ { 18869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetSize) ( 18879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DMacroscopicItf self, 18889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillimeter width, 18899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillimeter height, 18909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillimeter depth 18919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 18929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetSize) ( 18939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DMacroscopicItf self, 18949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillimeter *pWidth, 18959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillimeter *pHeight, 18969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillimeter *pDepth 18979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 18989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetOrientationAngles) ( 18999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DMacroscopicItf self, 19009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillidegree heading, 19019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillidegree pitch, 19029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillidegree roll 19039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 19049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetOrientationVectors) ( 19059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DMacroscopicItf self, 19069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLVec3D *pFront, 19079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLVec3D *pAbove 19089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 19099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*Rotate) ( 19109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DMacroscopicItf self, 19119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmillidegree theta, 19129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLVec3D *pAxis 19139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 19149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetOrientationVectors) ( 19159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SL3DMacroscopicItf self, 19169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVec3D *pFront, 19179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVec3D *pUp 19189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 19199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 19209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 19219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 19229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Mute Solo Interface */ 19239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 19249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 19259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 192600d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_MUTESOLO; 19279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 19289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLMuteSoloItf_; 19299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLMuteSoloItf_ * const * SLMuteSoloItf; 19309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 19319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLMuteSoloItf_ { 19329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetChannelMute) ( 19339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMuteSoloItf self, 19349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint8 chan, 19359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean mute 19369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 19379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetChannelMute) ( 19389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMuteSoloItf self, 19399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint8 chan, 19409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pMute 19419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 19429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetChannelSolo) ( 19439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMuteSoloItf self, 19449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint8 chan, 19459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean solo 19469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 19479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetChannelSolo) ( 19489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMuteSoloItf self, 19499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint8 chan, 19509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pSolo 19519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 19529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetNumChannels) ( 19539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMuteSoloItf self, 19549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint8 *pNumChannels 19559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 19569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 19579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 19589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 19599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 19609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Dynamic Interface Management Interface and associated types and macros */ 19619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 19629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 19639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_DYNAMIC_ITF_EVENT_RUNTIME_ERROR ((SLuint32) 0x00000001) 19649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_DYNAMIC_ITF_EVENT_ASYNC_TERMINATION ((SLuint32) 0x00000002) 19659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_DYNAMIC_ITF_EVENT_RESOURCES_LOST ((SLuint32) 0x00000003) 19669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_DYNAMIC_ITF_EVENT_RESOURCES_LOST_PERMANENTLY ((SLuint32) 0x00000004) 19679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_DYNAMIC_ITF_EVENT_RESOURCES_AVAILABLE ((SLuint32) 0x00000005) 19689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 19699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 19709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 19719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 197200d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_DYNAMICINTERFACEMANAGEMENT; 19739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 19749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLDynamicInterfaceManagementItf_; 19759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLDynamicInterfaceManagementItf_ * const * SLDynamicInterfaceManagementItf; 19769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 197700d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastentypedef void (/*SLAPIENTRY*/ *slDynamicInterfaceManagementCallback) ( 19789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDynamicInterfaceManagementItf caller, 19799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void * pContext, 19809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 event, 19819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult result, 19829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLInterfaceID iid 19839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten); 19849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 19859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 19869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLDynamicInterfaceManagementItf_ { 19879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*AddInterface) ( 19889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDynamicInterfaceManagementItf self, 19899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLInterfaceID iid, 19909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean async 19919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 19929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*RemoveInterface) ( 19939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDynamicInterfaceManagementItf self, 19949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLInterfaceID iid 19959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 19969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*ResumeInterface) ( 19979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDynamicInterfaceManagementItf self, 19989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLInterfaceID iid, 19999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean async 20009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 20019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*RegisterCallback) ( 20029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDynamicInterfaceManagementItf self, 20039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten slDynamicInterfaceManagementCallback callback, 20049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void * pContext 20059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 20069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 20079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 20089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 20099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Midi Message Interface and associated types */ 20109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 20119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 20129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_MIDIMESSAGETYPE_NOTE_ON_OFF ((SLuint32) 0x00000001) 20139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_MIDIMESSAGETYPE_POLY_PRESSURE ((SLuint32) 0x00000002) 20149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_MIDIMESSAGETYPE_CONTROL_CHANGE ((SLuint32) 0x00000003) 20159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_MIDIMESSAGETYPE_PROGRAM_CHANGE ((SLuint32) 0x00000004) 20169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_MIDIMESSAGETYPE_CHANNEL_PRESSURE ((SLuint32) 0x00000005) 20179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_MIDIMESSAGETYPE_PITCH_BEND ((SLuint32) 0x00000006) 20189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_MIDIMESSAGETYPE_SYSTEM_MESSAGE ((SLuint32) 0x00000007) 20199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 20209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 202100d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_MIDIMESSAGE; 20229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 20239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLMIDIMessageItf_; 20249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLMIDIMessageItf_ * const * SLMIDIMessageItf; 20259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 202600d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastentypedef void (/*SLAPIENTRY*/ *slMetaEventCallback) ( 20279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDIMessageItf caller, 20289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pContext, 20299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint8 type, 20309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 length, 20319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLuint8 *pData, 20329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 tick, 20339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 track 20349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten); 20359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 203600d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastentypedef void (/*SLAPIENTRY*/ *slMIDIMessageCallback) ( 20379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDIMessageItf caller, 20389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pContext, 20399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint8 statusByte, 20409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 length, 20419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLuint8 *pData, 20429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 tick, 20439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 track 20449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten); 20459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 20469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLMIDIMessageItf_ { 20479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SendMessage) ( 20489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDIMessageItf self, 20499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLuint8 *data, 20509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 length 20519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 20529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*RegisterMetaEventCallback) ( 20539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDIMessageItf self, 20549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten slMetaEventCallback callback, 20559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pContext 20569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 20579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*RegisterMIDIMessageCallback) ( 20589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDIMessageItf self, 20599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten slMIDIMessageCallback callback, 20609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pContext 20619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 20629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*AddMIDIMessageCallbackFilter) ( 20639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDIMessageItf self, 20649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 messageType 20659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 20669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*ClearMIDIMessageCallbackFilter) ( 20679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDIMessageItf self 20689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 20699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 20709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 20719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 20729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 20739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Midi Mute Solo interface */ 20749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 20759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 20769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 207700d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_MIDIMUTESOLO; 20789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 20799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLMIDIMuteSoloItf_; 20809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLMIDIMuteSoloItf_ * const * SLMIDIMuteSoloItf; 20819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 20829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLMIDIMuteSoloItf_ { 20839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetChannelMute) ( 20849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDIMuteSoloItf self, 20859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint8 channel, 20869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean mute 20879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 20889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetChannelMute) ( 20899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDIMuteSoloItf self, 20909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint8 channel, 20919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pMute 20929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 20939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetChannelSolo) ( 20949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDIMuteSoloItf self, 20959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint8 channel, 20969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean solo 20979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 20989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetChannelSolo) ( 20999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDIMuteSoloItf self, 21009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint8 channel, 21019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pSolo 21029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 21039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetTrackCount) ( 21049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDIMuteSoloItf self, 21059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 *pCount 21069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 21079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetTrackMute) ( 21089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDIMuteSoloItf self, 21099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 track, 21109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean mute 21119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 21129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetTrackMute) ( 21139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDIMuteSoloItf self, 21149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 track, 21159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pMute 21169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 21179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetTrackSolo) ( 21189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDIMuteSoloItf self, 21199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 track, 21209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean solo 21219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 21229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetTrackSolo) ( 21239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDIMuteSoloItf self, 21249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 track, 21259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pSolo 21269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 21279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 21289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 21299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 21309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 21319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Midi Tempo interface */ 21329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 21339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 21349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 213500d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_MIDITEMPO; 21369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 21379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLMIDITempoItf_; 21389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLMIDITempoItf_ * const * SLMIDITempoItf; 21399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 21409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLMIDITempoItf_ { 21419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetTicksPerQuarterNote) ( 21429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDITempoItf self, 21439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 tpqn 21449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 21459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetTicksPerQuarterNote) ( 21469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDITempoItf self, 21479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pTpqn 21489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 21499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetMicrosecondsPerQuarterNote) ( 21509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDITempoItf self, 21519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmicrosecond uspqn 21529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 21539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetMicrosecondsPerQuarterNote) ( 21549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDITempoItf self, 21559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmicrosecond *uspqn 21569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 21579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 21589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 21599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 21609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 21619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Midi Time interface */ 21629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 21639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 21649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 216500d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_MIDITIME; 21669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 21679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLMIDITimeItf_; 21689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLMIDITimeItf_ * const * SLMIDITimeItf; 21699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 21709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLMIDITimeItf_ { 21719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetDuration) ( 21729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDITimeItf self, 21739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pDuration 21749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 21759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetPosition) ( 21769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDITimeItf self, 21779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 position 21789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 21799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetPosition) ( 21809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDITimeItf self, 21819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pPosition 21829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 21839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetLoopPoints) ( 21849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDITimeItf self, 21859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 startTick, 21869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 numTicks 21879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 21889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetLoopPoints) ( 21899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLMIDITimeItf self, 21909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pStartTick, 21919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pNumTicks 21929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 21939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 21949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 21959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 21969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 21979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Audio Decoder Capabilities Interface */ 21989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 21999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*Audio Codec related defines*/ 22019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RATECONTROLMODE_CONSTANTBITRATE ((SLuint32) 0x00000001) 22039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_RATECONTROLMODE_VARIABLEBITRATE ((SLuint32) 0x00000002) 22049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOCODEC_PCM ((SLuint32) 0x00000001) 22069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOCODEC_MP3 ((SLuint32) 0x00000002) 22079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOCODEC_AMR ((SLuint32) 0x00000003) 22089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOCODEC_AMRWB ((SLuint32) 0x00000004) 22099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOCODEC_AMRWBPLUS ((SLuint32) 0x00000005) 22109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOCODEC_AAC ((SLuint32) 0x00000006) 22119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOCODEC_WMA ((SLuint32) 0x00000007) 22129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOCODEC_REAL ((SLuint32) 0x00000008) 22139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOPROFILE_PCM ((SLuint32) 0x00000001) 22159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOPROFILE_MPEG1_L3 ((SLuint32) 0x00000001) 22179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOPROFILE_MPEG2_L3 ((SLuint32) 0x00000002) 22189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOPROFILE_MPEG25_L3 ((SLuint32) 0x00000003) 22199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOCHANMODE_MP3_MONO ((SLuint32) 0x00000001) 22219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOCHANMODE_MP3_STEREO ((SLuint32) 0x00000002) 22229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOCHANMODE_MP3_JOINTSTEREO ((SLuint32) 0x00000003) 22239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOCHANMODE_MP3_DUAL ((SLuint32) 0x00000004) 22249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOPROFILE_AMR ((SLuint32) 0x00000001) 22269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOSTREAMFORMAT_CONFORMANCE ((SLuint32) 0x00000001) 22289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOSTREAMFORMAT_IF1 ((SLuint32) 0x00000002) 22299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOSTREAMFORMAT_IF2 ((SLuint32) 0x00000003) 22309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOSTREAMFORMAT_FSF ((SLuint32) 0x00000004) 22319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOSTREAMFORMAT_RTPPAYLOAD ((SLuint32) 0x00000005) 22329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOSTREAMFORMAT_ITU ((SLuint32) 0x00000006) 22339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOPROFILE_AMRWB ((SLuint32) 0x00000001) 22359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOPROFILE_AMRWBPLUS ((SLuint32) 0x00000001) 22379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOPROFILE_AAC_AAC ((SLuint32) 0x00000001) 22399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_AAC_MAIN ((SLuint32) 0x00000001) 22419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_AAC_LC ((SLuint32) 0x00000002) 22429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_AAC_SSR ((SLuint32) 0x00000003) 22439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_AAC_LTP ((SLuint32) 0x00000004) 22449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_AAC_HE ((SLuint32) 0x00000005) 22459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_AAC_SCALABLE ((SLuint32) 0x00000006) 22469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_AAC_ERLC ((SLuint32) 0x00000007) 22479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_AAC_LD ((SLuint32) 0x00000008) 22489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_AAC_HE_PS ((SLuint32) 0x00000009) 22499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_AAC_HE_MPS ((SLuint32) 0x0000000A) 22509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOSTREAMFORMAT_MP2ADTS ((SLuint32) 0x00000001) 22529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOSTREAMFORMAT_MP4ADTS ((SLuint32) 0x00000002) 22539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOSTREAMFORMAT_MP4LOAS ((SLuint32) 0x00000003) 22549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOSTREAMFORMAT_MP4LATM ((SLuint32) 0x00000004) 22559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOSTREAMFORMAT_ADIF ((SLuint32) 0x00000005) 22569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOSTREAMFORMAT_MP4FF ((SLuint32) 0x00000006) 22579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOSTREAMFORMAT_RAW ((SLuint32) 0x00000007) 22589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOPROFILE_WMA7 ((SLuint32) 0x00000001) 22609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOPROFILE_WMA8 ((SLuint32) 0x00000002) 22619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOPROFILE_WMA9 ((SLuint32) 0x00000003) 22629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOPROFILE_WMA10 ((SLuint32) 0x00000004) 22639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_WMA_LEVEL1 ((SLuint32) 0x00000001) 22659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_WMA_LEVEL2 ((SLuint32) 0x00000002) 22669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_WMA_LEVEL3 ((SLuint32) 0x00000003) 22679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_WMA_LEVEL4 ((SLuint32) 0x00000004) 22689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_WMAPRO_LEVELM0 ((SLuint32) 0x00000005) 22699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_WMAPRO_LEVELM1 ((SLuint32) 0x00000006) 22709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_WMAPRO_LEVELM2 ((SLuint32) 0x00000007) 22719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_WMAPRO_LEVELM3 ((SLuint32) 0x00000008) 22729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOPROFILE_REALAUDIO ((SLuint32) 0x00000001) 22749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_REALAUDIO_G2 ((SLuint32) 0x00000001) 22769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_REALAUDIO_8 ((SLuint32) 0x00000002) 22779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_REALAUDIO_10 ((SLuint32) 0x00000003) 22789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_AUDIOMODE_REALAUDIO_SURROUND ((SLuint32) 0x00000004) 22799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef struct SLAudioCodecDescriptor_ { 22819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 maxChannels; 22829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 minBitsPerSample; 22839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 maxBitsPerSample; 22849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmilliHertz minSampleRate; 22859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmilliHertz maxSampleRate; 22869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean isFreqRangeContinuous; 22879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmilliHertz *pSampleRatesSupported; 22889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 numSampleRatesSupported; 22899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 minBitRate; 22909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 maxBitRate; 22919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean isBitrateRangeContinuous; 22929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pBitratesSupported; 22939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 numBitratesSupported; 22949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 profileSetting; 22959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 modeSetting; 22969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten} SLAudioCodecDescriptor; 22979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 22989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*Structure used to retrieve the profile and level settings supported by an audio encoder */ 22999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef struct SLAudioCodecProfileMode_ { 23019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 profileSetting; 23029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 modeSetting; 23039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten} SLAudioCodecProfileMode; 23049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 230500d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_AUDIODECODERCAPABILITIES; 23069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLAudioDecoderCapabilitiesItf_; 23089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLAudioDecoderCapabilitiesItf_ * const * SLAudioDecoderCapabilitiesItf; 23099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLAudioDecoderCapabilitiesItf_ { 23119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetAudioDecoders) ( 23129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioDecoderCapabilitiesItf self, 23139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 * pNumDecoders , 23149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pDecoderIds 23159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 23169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetAudioDecoderCapabilities) ( 23179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioDecoderCapabilitiesItf self, 23189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 decoderId, 23199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pIndex, 23209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioCodecDescriptor *pDescriptor 23219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 23229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 23239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 23289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Audio Encoder Capabilities Interface */ 23299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 23309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Structure used when setting audio encoding parameters */ 23329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef struct SLAudioEncoderSettings_ { 23349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 encoderId; 23359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 channelsIn; 23369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 channelsOut; 23379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmilliHertz sampleRate; 23389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 bitRate; 23399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 bitsPerSample; 23409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 rateControl; 23419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 profileSetting; 23429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 levelSetting; 23439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 channelMode; 23449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 streamFormat; 23459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 encodeOptions; 23469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 blockAlignment; 23479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten} SLAudioEncoderSettings; 23489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 234900d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_AUDIOENCODERCAPABILITIES; 23509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLAudioEncoderCapabilitiesItf_; 23529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLAudioEncoderCapabilitiesItf_ * const * SLAudioEncoderCapabilitiesItf; 23539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLAudioEncoderCapabilitiesItf_ { 23559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetAudioEncoders) ( 23569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioEncoderCapabilitiesItf self, 23579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pNumEncoders , 23589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pEncoderIds 23599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 23609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetAudioEncoderCapabilities) ( 23619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioEncoderCapabilitiesItf self, 23629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 encoderId, 23639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pIndex, 23649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioCodecDescriptor * pDescriptor 23659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 23669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 23679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 23709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Audio Encoder Interface */ 23719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 23729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 237400d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_AUDIOENCODER; 23759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLAudioEncoderItf_; 23779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLAudioEncoderItf_ * const * SLAudioEncoderItf; 23789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLAudioEncoderItf_ { 23809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetEncoderSettings) ( 23819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioEncoderItf self, 23829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioEncoderSettings *pSettings 23839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 23849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetEncoderSettings) ( 23859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioEncoderItf self, 23869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLAudioEncoderSettings *pSettings 23879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 23889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 23899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 23929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Bass Boost Interface */ 23939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 23949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 239600d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_BASSBOOST; 23979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 23989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLBassBoostItf_; 23999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLBassBoostItf_ * const * SLBassBoostItf; 24009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 24019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLBassBoostItf_ { 24029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetEnabled)( 24039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLBassBoostItf self, 24049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean enabled 24059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 24069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*IsEnabled)( 24079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLBassBoostItf self, 24089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pEnabled 24099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 24109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetStrength)( 24119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLBassBoostItf self, 24129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille strength 24139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 24149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetRoundedStrength)( 24159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLBassBoostItf self, 24169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pStrength 24179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 24189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*IsStrengthSupported)( 24199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLBassBoostItf self, 24209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pSupported 24219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 24229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 24239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 24249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 24259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Pitch Interface */ 24269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 24279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 24289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 242900d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_PITCH; 24309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 24319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLPitchItf_; 24329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLPitchItf_ * const * SLPitchItf; 24339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 24349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLPitchItf_ { 24359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetPitch) ( 24369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPitchItf self, 24379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille pitch 24389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 24399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetPitch) ( 24409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPitchItf self, 24419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pPitch 24429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 24439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetPitchCapabilities) ( 24449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLPitchItf self, 24459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pMinPitch, 24469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pMaxPitch 24479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 24489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 24499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 24509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 24519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 24529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Rate Pitch Interface */ 24539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* RatePitchItf is an interface for controlling the rate a sound is played */ 24549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* back. A change in rate will cause a change in pitch. */ 24559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 24569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 24579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 245800d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_RATEPITCH; 24599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 24609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLRatePitchItf_; 24619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLRatePitchItf_ * const * SLRatePitchItf; 24629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 24639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLRatePitchItf_ { 24649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetRate) ( 24659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLRatePitchItf self, 24669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille rate 24679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 24689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetRate) ( 24699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLRatePitchItf self, 24709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pRate 24719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 24729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetRatePitchCapabilities) ( 24739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLRatePitchItf self, 24749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pMinRate, 24759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pMaxRate 24769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 24779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 24789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 24799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 24809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 24819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Virtualizer Interface */ 24829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 24839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 24849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 248500d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_VIRTUALIZER; 24869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 24879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLVirtualizerItf_; 24889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLVirtualizerItf_ * const * SLVirtualizerItf; 24899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 24909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLVirtualizerItf_ { 24919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetEnabled)( 24929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVirtualizerItf self, 24939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean enabled 24949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 24959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*IsEnabled)( 24969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVirtualizerItf self, 24979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pEnabled 24989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 24999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*SetStrength)( 25009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVirtualizerItf self, 25019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille strength 25029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 25039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetRoundedStrength)( 25049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVirtualizerItf self, 25059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLpermille *pStrength 25069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 25079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*IsStrengthSupported)( 25089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVirtualizerItf self, 25099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pSupported 25109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 25119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 25129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 25139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 25149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Visualization Interface */ 25159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 25169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 25179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 251800d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_VISUALIZATION; 25199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 25209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLVisualizationItf_; 25219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLVisualizationItf_ * const * SLVisualizationItf; 25229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 252300d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastentypedef void (/*SLAPIENTRY*/ *slVisualizationCallback) ( 25249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pContext, 25259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLuint8 waveform[], 25269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLuint8 fft[], 25279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmilliHertz samplerate 25289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten); 25299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 25309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLVisualizationItf_{ 25319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*RegisterVisualizationCallback)( 25329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVisualizationItf self, 25339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten slVisualizationCallback callback, 25349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void *pContext, 25359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmilliHertz rate 25369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 25379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*GetMaxRate)( 25389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVisualizationItf self, 25399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLmilliHertz* pRate 25409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 25419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 25429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 25439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 25449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 25459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Engine Interface */ 25469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 25479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 25489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 254900d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_ENGINE; 25509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 25519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLEngineItf_; 25529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLEngineItf_ * const * SLEngineItf; 25539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 25549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 25559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLEngineItf_ { 25569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 25579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*CreateLEDDevice) ( 25589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineItf self, 25599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf * pDevice, 25609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 deviceID, 25619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 numInterfaces, 25629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLInterfaceID * pInterfaceIds, 25639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLboolean * pInterfaceRequired 25649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 25659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*CreateVibraDevice) ( 25669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineItf self, 25679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf * pDevice, 25689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 deviceID, 25699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 numInterfaces, 25709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLInterfaceID * pInterfaceIds, 25719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLboolean * pInterfaceRequired 25729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 25739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*CreateAudioPlayer) ( 25749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineItf self, 25759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf * pPlayer, 25769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDataSource *pAudioSrc, 25779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDataSink *pAudioSnk, 25789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 numInterfaces, 25799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLInterfaceID * pInterfaceIds, 25809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLboolean * pInterfaceRequired 25819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 25829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*CreateAudioRecorder) ( 25839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineItf self, 25849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf * pRecorder, 25859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDataSource *pAudioSrc, 25869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDataSink *pAudioSnk, 25879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 numInterfaces, 25889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLInterfaceID * pInterfaceIds, 25899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLboolean * pInterfaceRequired 25909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 25919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*CreateMidiPlayer) ( 25929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineItf self, 25939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf * pPlayer, 25949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDataSource *pMIDISrc, 25959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDataSource *pBankSrc, 25969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDataSink *pAudioOutput, 25979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDataSink *pVibra, 25989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDataSink *pLEDArray, 25999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 numInterfaces, 26009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLInterfaceID * pInterfaceIds, 26019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLboolean * pInterfaceRequired 26029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 26039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*CreateListener) ( 26049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineItf self, 26059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf * pListener, 26069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 numInterfaces, 26079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLInterfaceID * pInterfaceIds, 26089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLboolean * pInterfaceRequired 26099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 26109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*Create3DGroup) ( 26119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineItf self, 26129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf * pGroup, 26139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 numInterfaces, 26149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLInterfaceID * pInterfaceIds, 26159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLboolean * pInterfaceRequired 26169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 26179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*CreateOutputMix) ( 26189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineItf self, 26199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf * pMix, 26209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 numInterfaces, 26219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLInterfaceID * pInterfaceIds, 26229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLboolean * pInterfaceRequired 26239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 26249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*CreateMetadataExtractor) ( 26259c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineItf self, 26269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf * pMetadataExtractor, 26279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLDataSource * pDataSource, 26289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 numInterfaces, 26299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLInterfaceID * pInterfaceIds, 26309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLboolean * pInterfaceRequired 26319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 26329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*CreateExtensionObject) ( 26339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineItf self, 26349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf * pObject, 26359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten void * pParameters, 26369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 objectID, 26379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 numInterfaces, 26389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLInterfaceID * pInterfaceIds, 26399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLboolean * pInterfaceRequired 26409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 26419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*QueryNumSupportedInterfaces) ( 26429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineItf self, 26439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 objectID, 26449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 * pNumSupportedInterfaces 26459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 26469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*QuerySupportedInterfaces) ( 26479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineItf self, 26489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 objectID, 26499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 index, 26509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLInterfaceID * pInterfaceId 26519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 26529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*QueryNumSupportedExtensions) ( 26539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineItf self, 26549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 * pNumExtensions 26559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 26569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*QuerySupportedExtension) ( 2657e3105d7d252fe0d1018c3578a675a8d63714d823Jean-Michel Trivi SLEngineItf self, 26589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 index, 26599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLchar * pExtensionName, 26609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint16 * pNameLength 26619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 26629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*IsExtensionSupported) ( 2663e3105d7d252fe0d1018c3578a675a8d63714d823Jean-Michel Trivi SLEngineItf self, 26649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLchar * pExtensionName, 26659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean * pSupported 26669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 26679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 26689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 26699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 26709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 26719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Engine Capabilities Interface */ 26729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 26739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 26749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 267500d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_ENGINECAPABILITIES; 26769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 26779c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLEngineCapabilitiesItf_; 26789c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLEngineCapabilitiesItf_ * const * SLEngineCapabilitiesItf; 26799c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 26809c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLEngineCapabilitiesItf_ { 26819c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*QuerySupportedProfiles) ( 26829c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineCapabilitiesItf self, 26839c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 *pProfilesSupported 26849c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 26859c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*QueryAvailableVoices) ( 26869c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineCapabilitiesItf self, 26879c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint16 voiceType, 26889c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint16 *pNumMaxVoices, 26899c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pIsAbsoluteMax, 26909c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint16 *pNumFreeVoices 26919c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 26929c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*QueryNumberOfMIDISynthesizers) ( 26939c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineCapabilitiesItf self, 26949c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint16 *pNumMIDIsynthesizers 26959c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 26969c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*QueryAPIVersion) ( 26979c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineCapabilitiesItf self, 26989c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint16 *pMajor, 26999c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint16 *pMinor, 27009c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLint16 *pStep 27019c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 27029c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*QueryLEDCapabilities) ( 27039c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineCapabilitiesItf self, 27049c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pIndex, 27059c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pLEDDeviceID, 27069c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLLEDDescriptor *pDescriptor 27079c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 27089c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*QueryVibraCapabilities) ( 27099c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineCapabilitiesItf self, 27109c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pIndex, 27119c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 *pVibraDeviceID, 27129c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLVibraDescriptor *pDescriptor 27139c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 27149c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*IsThreadSafe) ( 27159c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLEngineCapabilitiesItf self, 27169c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLboolean *pIsThreadSafe 27179c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 27189c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 27199c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 27209c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*---------------------------------------------------------------------------*/ 27219c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* Thread Sync Interface */ 27229c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* --------------------------------------------------------------------------*/ 27239c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 27249c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 272500d2d554e04ac369367c903dbf53b975355d1bcdGlenn Kastenextern SLAPIENTRY const SLInterfaceID SL_IID_THREADSYNC; 27269c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 27279c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLThreadSyncItf_; 27289c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef const struct SLThreadSyncItf_ * const * SLThreadSyncItf; 27299c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 27309c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 27319c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastenstruct SLThreadSyncItf_ { 27329c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*EnterCriticalSection) ( 27339c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLThreadSyncItf self 27349c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 27359c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLresult (*ExitCriticalSection) ( 27369c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLThreadSyncItf self 27379c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten ); 27389c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten}; 27399c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 27409c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 27419c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*****************************************************************************/ 27429c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/* SL engine constructor */ 27439c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten/*****************************************************************************/ 27449c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 27459c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_ENGINEOPTION_THREADSAFE ((SLuint32) 0x00000001) 27469c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#define SL_ENGINEOPTION_LOSSOFCONTROL ((SLuint32) 0x00000002) 27479c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 27489c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kastentypedef struct SLEngineOption_ { 27499c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 feature; 27509c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 data; 27519c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten} SLEngineOption; 27529c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 27539c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 27549c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn KastenSLresult SLAPIENTRY slCreateEngine( 27559c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLObjectItf *pEngine, 27569c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 numOptions, 27579c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLEngineOption *pEngineOptions, 27589c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 numInterfaces, 27599c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLInterfaceID *pInterfaceIds, 27609c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten const SLboolean * pInterfaceRequired 27619c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten); 27629c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 27639c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn KastenSLresult SLAPIENTRY slQueryNumSupportedEngineInterfaces( 27649c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 * pNumSupportedInterfaces 27659c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten); 27669c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 27679c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn KastenSLresult SLAPIENTRY slQuerySupportedEngineInterfaces( 27689c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLuint32 index, 27699c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten SLInterfaceID * pInterfaceId 27709c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten); 27719c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 27729c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#ifdef __cplusplus 27739c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten} /* extern "C" */ 27749c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#endif 27759c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten 27769c3a1c1711ec228a236b59b461aeaa3e925ce3b8Glenn Kasten#endif /* OPENSL_ES_H_ */ 2777