111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* 211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Copyright (c) 2007-2009 The Khronos Group Inc. 311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Permission is hereby granted, free of charge, to any person obtaining a copy of 511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * this software and /or associated documentation files (the "Materials "), to 611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * deal in the Materials without restriction, including without limitation the 711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * sell copies of the Materials, and to permit persons to whom the Materials are 911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * furnished to do so, subject to 1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * the following conditions: 1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * The above copyright notice and this permission notice shall be included 1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * in all copies or substantial portions of the Materials. 1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS IN THE 2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * MATERIALS. 2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * OpenSLES.h - OpenSL ES version 1.0.1 2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert */ 2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/****************************************************************************/ 2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* NOTE: This file is a standard OpenSL ES header file and should not be */ 2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* modified in any way. */ 3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/****************************************************************************/ 3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef OPENSL_ES_H_ 3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define OPENSL_ES_H_ 3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __cplusplus 3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern "C" { 3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include "OpenSLES_Platform.h" 4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*****************************************************************************/ 4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Common types, structures, and defines */ 4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*****************************************************************************/ 4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _KHRONOS_KEYS_ 4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _KHRONOS_KEYS_ 4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define KHRONOS_TITLE "KhronosTitle" 5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define KHRONOS_ALBUM "KhronosAlbum" 5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define KHRONOS_TRACK_NUMBER "KhronosTrackNumber" 5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define KHRONOS_ARTIST "KhronosArtist" 5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define KHRONOS_GENRE "KhronosGenre" 5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define KHRONOS_YEAR "KhronosYear" 5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define KHRONOS_COMMENT "KhronosComment" 5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define KHRONOS_ARTIST_URL "KhronosArtistURL" 5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define KHRONOS_CONTENT_URL "KhronosContentURL" 5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define KHRONOS_RATING "KhronosRating" 5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define KHRONOS_ALBUM_ART "KhronosAlbumArt" 6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define KHRONOS_COPYRIGHT "KhronosCopyright" 6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* remap common types to SL types for clarity */ 6611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef sl_int8_t SLint8; /* 8 bit signed integer */ 6711cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef sl_uint8_t SLuint8; /* 8 bit unsigned integer */ 6811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef sl_int16_t SLint16; /* 16 bit signed integer */ 6911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef sl_uint16_t SLuint16; /* 16 bit unsigned integer */ 7011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef sl_int32_t SLint32; /* 32 bit signed integer */ 7111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef sl_uint32_t SLuint32; /* 32 bit unsigned integer */ 7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7311cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef SLuint32 SLboolean; 7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_BOOLEAN_FALSE ((SLboolean) 0x00000000) 7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_BOOLEAN_TRUE ((SLboolean) 0x00000001) 7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7711cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef SLuint8 SLchar; /* UTF-8 is to be used */ 7811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef SLint16 SLmillibel; 7911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef SLuint32 SLmillisecond; 8011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef SLuint32 SLmilliHertz; 8111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef SLint32 SLmillimeter; 8211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef SLint32 SLmillidegree; 8311cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef SLint16 SLpermille; 8411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef SLuint32 SLmicrosecond; 8511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef SLuint32 SLresult; 8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_MILLIBEL_MAX ((SLmillibel) 0x7FFF) 8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_MILLIBEL_MIN ((SLmillibel) (-SL_MILLIBEL_MAX-1)) 8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_MILLIHERTZ_MAX ((SLmilliHertz) 0xFFFFFFFF) 9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_MILLIMETER_MAX ((SLmillimeter) 0x7FFFFFFF) 9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/** Interface ID defined as a UUID */ 9411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLInterfaceID_ { 9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 time_low; 9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint16 time_mid; 9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint16 time_hi_and_version; 9811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint16 clock_seq; 9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint8 node[6]; 10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} * SLInterfaceID; 10111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Forward declaration for the object interface */ 10311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLObjectItf_; 10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLObjectItf_ * const * SLObjectItf; 10611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Objects ID's */ 10811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_OBJECTID_ENGINE ((SLuint32) 0x00001001) 11011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_OBJECTID_LEDDEVICE ((SLuint32) 0x00001002) 11111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_OBJECTID_VIBRADEVICE ((SLuint32) 0x00001003) 11211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_OBJECTID_AUDIOPLAYER ((SLuint32) 0x00001004) 11311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_OBJECTID_AUDIORECORDER ((SLuint32) 0x00001005) 11411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_OBJECTID_MIDIPLAYER ((SLuint32) 0x00001006) 11511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_OBJECTID_LISTENER ((SLuint32) 0x00001007) 11611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_OBJECTID_3DGROUP ((SLuint32) 0x00001008) 11711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_OBJECTID_OUTPUTMIX ((SLuint32) 0x00001009) 11811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_OBJECTID_METADATAEXTRACTOR ((SLuint32) 0x0000100A) 11911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 12011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 12111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* SL Profiles */ 12211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 12311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_PROFILES_PHONE ((SLuint16) 0x0001) 12411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_PROFILES_MUSIC ((SLuint16) 0x0002) 12511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_PROFILES_GAME ((SLuint16) 0x0004) 12611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 12711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Types of voices supported by the system */ 12811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 12911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_VOICETYPE_2D_AUDIO ((SLuint16) 0x0001) 13011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_VOICETYPE_MIDI ((SLuint16) 0x0002) 13111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_VOICETYPE_3D_AUDIO ((SLuint16) 0x0004) 13211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_VOICETYPE_3D_MIDIOUTPUT ((SLuint16) 0x0008) 13311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 13411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Convenient macros representing various different priority levels, for use with the SetPriority method */ 13511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 13611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_PRIORITY_LOWEST ((SLint32) (-0x7FFFFFFF-1)) 13711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_PRIORITY_VERYLOW ((SLint32) -0x60000000) 13811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_PRIORITY_LOW ((SLint32) -0x40000000) 13911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_PRIORITY_BELOWNORMAL ((SLint32) -0x20000000) 14011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_PRIORITY_NORMAL ((SLint32) 0x00000000) 14111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_PRIORITY_ABOVENORMAL ((SLint32) 0x20000000) 14211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_PRIORITY_HIGH ((SLint32) 0x40000000) 14311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_PRIORITY_VERYHIGH ((SLint32) 0x60000000) 14411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_PRIORITY_HIGHEST ((SLint32) 0x7FFFFFFF) 14511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 14611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 14711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/** These macros list the various sample formats that are possible on audio input and output devices. */ 14811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 14911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_PCMSAMPLEFORMAT_FIXED_8 ((SLuint16) 0x0008) 15011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_PCMSAMPLEFORMAT_FIXED_16 ((SLuint16) 0x0010) 15111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_PCMSAMPLEFORMAT_FIXED_20 ((SLuint16) 0x0014) 15211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_PCMSAMPLEFORMAT_FIXED_24 ((SLuint16) 0x0018) 15311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_PCMSAMPLEFORMAT_FIXED_28 ((SLuint16) 0x001C) 15411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_PCMSAMPLEFORMAT_FIXED_32 ((SLuint16) 0x0020) 15511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 15611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 15711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/** These macros specify the commonly used sampling rates (in milliHertz) supported by most audio I/O devices. */ 15811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 15911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_SAMPLINGRATE_8 ((SLuint32) 8000000) 16011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_SAMPLINGRATE_11_025 ((SLuint32) 11025000) 16111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_SAMPLINGRATE_12 ((SLuint32) 12000000) 16211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_SAMPLINGRATE_16 ((SLuint32) 16000000) 16311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_SAMPLINGRATE_22_05 ((SLuint32) 22050000) 16411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_SAMPLINGRATE_24 ((SLuint32) 24000000) 16511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_SAMPLINGRATE_32 ((SLuint32) 32000000) 16611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_SAMPLINGRATE_44_1 ((SLuint32) 44100000) 16711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_SAMPLINGRATE_48 ((SLuint32) 48000000) 16811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_SAMPLINGRATE_64 ((SLuint32) 64000000) 16911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_SAMPLINGRATE_88_2 ((SLuint32) 88200000) 17011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_SAMPLINGRATE_96 ((SLuint32) 96000000) 17111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_SAMPLINGRATE_192 ((SLuint32) 192000000) 17211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 17311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_SPEAKER_FRONT_LEFT ((SLuint32) 0x00000001) 17411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_SPEAKER_FRONT_RIGHT ((SLuint32) 0x00000002) 17511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_SPEAKER_FRONT_CENTER ((SLuint32) 0x00000004) 17611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_SPEAKER_LOW_FREQUENCY ((SLuint32) 0x00000008) 17711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_SPEAKER_BACK_LEFT ((SLuint32) 0x00000010) 17811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_SPEAKER_BACK_RIGHT ((SLuint32) 0x00000020) 17911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_SPEAKER_FRONT_LEFT_OF_CENTER ((SLuint32) 0x00000040) 18011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_SPEAKER_FRONT_RIGHT_OF_CENTER ((SLuint32) 0x00000080) 18111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_SPEAKER_BACK_CENTER ((SLuint32) 0x00000100) 18211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_SPEAKER_SIDE_LEFT ((SLuint32) 0x00000200) 18311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_SPEAKER_SIDE_RIGHT ((SLuint32) 0x00000400) 18411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_SPEAKER_TOP_CENTER ((SLuint32) 0x00000800) 18511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_SPEAKER_TOP_FRONT_LEFT ((SLuint32) 0x00001000) 18611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_SPEAKER_TOP_FRONT_CENTER ((SLuint32) 0x00002000) 18711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_SPEAKER_TOP_FRONT_RIGHT ((SLuint32) 0x00004000) 18811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_SPEAKER_TOP_BACK_LEFT ((SLuint32) 0x00008000) 18911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_SPEAKER_TOP_BACK_CENTER ((SLuint32) 0x00010000) 19011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_SPEAKER_TOP_BACK_RIGHT ((SLuint32) 0x00020000) 19111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 19211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 19311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*****************************************************************************/ 19411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Errors */ 19511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* */ 19611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*****************************************************************************/ 19711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 19811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_RESULT_SUCCESS ((SLuint32) 0x00000000) 19911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_RESULT_PRECONDITIONS_VIOLATED ((SLuint32) 0x00000001) 20011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_RESULT_PARAMETER_INVALID ((SLuint32) 0x00000002) 20111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_RESULT_MEMORY_FAILURE ((SLuint32) 0x00000003) 20211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_RESULT_RESOURCE_ERROR ((SLuint32) 0x00000004) 20311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_RESULT_RESOURCE_LOST ((SLuint32) 0x00000005) 20411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_RESULT_IO_ERROR ((SLuint32) 0x00000006) 20511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_RESULT_BUFFER_INSUFFICIENT ((SLuint32) 0x00000007) 20611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_RESULT_CONTENT_CORRUPTED ((SLuint32) 0x00000008) 20711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_RESULT_CONTENT_UNSUPPORTED ((SLuint32) 0x00000009) 20811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_RESULT_CONTENT_NOT_FOUND ((SLuint32) 0x0000000A) 20911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_RESULT_PERMISSION_DENIED ((SLuint32) 0x0000000B) 21011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_RESULT_FEATURE_UNSUPPORTED ((SLuint32) 0x0000000C) 21111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_RESULT_INTERNAL_ERROR ((SLuint32) 0x0000000D) 21211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_RESULT_UNKNOWN_ERROR ((SLuint32) 0x0000000E) 21311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_RESULT_OPERATION_ABORTED ((SLuint32) 0x0000000F) 21411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_RESULT_CONTROL_LOST ((SLuint32) 0x00000010) 21511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 21611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 21711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Object state definitions */ 21811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 21911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_OBJECT_STATE_UNREALIZED ((SLuint32) 0x00000001) 22011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_OBJECT_STATE_REALIZED ((SLuint32) 0x00000002) 22111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_OBJECT_STATE_SUSPENDED ((SLuint32) 0x00000003) 22211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 22311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Object event definitions */ 22411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 22511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_OBJECT_EVENT_RUNTIME_ERROR ((SLuint32) 0x00000001) 22611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_OBJECT_EVENT_ASYNC_TERMINATION ((SLuint32) 0x00000002) 22711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_OBJECT_EVENT_RESOURCES_LOST ((SLuint32) 0x00000003) 22811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_OBJECT_EVENT_RESOURCES_AVAILABLE ((SLuint32) 0x00000004) 22911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_OBJECT_EVENT_ITF_CONTROL_TAKEN ((SLuint32) 0x00000005) 23011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_OBJECT_EVENT_ITF_CONTROL_RETURNED ((SLuint32) 0x00000006) 23111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_OBJECT_EVENT_ITF_PARAMETERS_CHANGED ((SLuint32) 0x00000007) 23211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 23311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 23411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*****************************************************************************/ 23511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Interface definitions */ 23611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*****************************************************************************/ 23711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 23811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/** NULL Interface */ 23911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 24011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_NULL; 24111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 24211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 24311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Data Source and Data Sink Structures */ 24411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 24511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 24611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/** Data locator macros */ 24711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_DATALOCATOR_URI ((SLuint32) 0x00000001) 24811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_DATALOCATOR_ADDRESS ((SLuint32) 0x00000002) 24911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_DATALOCATOR_IODEVICE ((SLuint32) 0x00000003) 25011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_DATALOCATOR_OUTPUTMIX ((SLuint32) 0x00000004) 25111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_DATALOCATOR_RESERVED5 ((SLuint32) 0x00000005) 25211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_DATALOCATOR_BUFFERQUEUE ((SLuint32) 0x00000006) 25311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_DATALOCATOR_MIDIBUFFERQUEUE ((SLuint32) 0x00000007) 25411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_DATALOCATOR_RESERVED8 ((SLuint32) 0x00000008) 25511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 25611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 25711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 25811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/** URI-based data locator definition where locatorType must be SL_DATALOCATOR_URI*/ 25911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct SLDataLocator_URI_ { 26011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 locatorType; 26111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLchar * URI; 26211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} SLDataLocator_URI; 26311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 26411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/** Address-based data locator definition where locatorType must be SL_DATALOCATOR_ADDRESS*/ 26511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct SLDataLocator_Address_ { 26611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 locatorType; 26711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void *pAddress; 26811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 length; 26911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} SLDataLocator_Address; 27011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 27111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/** IODevice-types */ 27211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_IODEVICE_AUDIOINPUT ((SLuint32) 0x00000001) 27311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_IODEVICE_LEDARRAY ((SLuint32) 0x00000002) 27411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_IODEVICE_VIBRA ((SLuint32) 0x00000003) 27511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_IODEVICE_RESERVED4 ((SLuint32) 0x00000004) 27611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_IODEVICE_RESERVED5 ((SLuint32) 0x00000005) 27711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 27811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/** IODevice-based data locator definition where locatorType must be SL_DATALOCATOR_IODEVICE*/ 27911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct SLDataLocator_IODevice_ { 28011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 locatorType; 28111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 deviceType; 28211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 deviceID; 28311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLObjectItf device; 28411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} SLDataLocator_IODevice; 28511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 28611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/** OutputMix-based data locator definition where locatorType must be SL_DATALOCATOR_OUTPUTMIX*/ 28711cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct SLDataLocator_OutputMix { 28811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 locatorType; 28911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLObjectItf outputMix; 29011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} SLDataLocator_OutputMix; 29111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 29211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 29311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/** BufferQueue-based data locator definition where locatorType must be SL_DATALOCATOR_BUFFERQUEUE*/ 29411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct SLDataLocator_BufferQueue { 29511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 locatorType; 29611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 numBuffers; 29711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} SLDataLocator_BufferQueue; 29811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 29911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/** MidiBufferQueue-based data locator definition where locatorType must be SL_DATALOCATOR_MIDIBUFFERQUEUE*/ 30011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct SLDataLocator_MIDIBufferQueue { 30111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 locatorType; 30211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 tpqn; 30311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 numBuffers; 30411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} SLDataLocator_MIDIBufferQueue; 30511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 30611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/** Data format defines */ 30711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_DATAFORMAT_MIME ((SLuint32) 0x00000001) 30811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_DATAFORMAT_PCM ((SLuint32) 0x00000002) 30911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_DATAFORMAT_RESERVED3 ((SLuint32) 0x00000003) 31011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 31111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 31211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/** MIME-type-based data format definition where formatType must be SL_DATAFORMAT_MIME*/ 31311cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct SLDataFormat_MIME_ { 31411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 formatType; 31511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLchar * mimeType; 31611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 containerType; 31711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} SLDataFormat_MIME; 31811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 31911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Byte order of a block of 16- or 32-bit data */ 32011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_BYTEORDER_BIGENDIAN ((SLuint32) 0x00000001) 32111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_BYTEORDER_LITTLEENDIAN ((SLuint32) 0x00000002) 32211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 32311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Container type */ 32411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CONTAINERTYPE_UNSPECIFIED ((SLuint32) 0x00000001) 32511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CONTAINERTYPE_RAW ((SLuint32) 0x00000002) 32611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CONTAINERTYPE_ASF ((SLuint32) 0x00000003) 32711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CONTAINERTYPE_AVI ((SLuint32) 0x00000004) 32811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CONTAINERTYPE_BMP ((SLuint32) 0x00000005) 32911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CONTAINERTYPE_JPG ((SLuint32) 0x00000006) 33011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CONTAINERTYPE_JPG2000 ((SLuint32) 0x00000007) 33111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CONTAINERTYPE_M4A ((SLuint32) 0x00000008) 33211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CONTAINERTYPE_MP3 ((SLuint32) 0x00000009) 33311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CONTAINERTYPE_MP4 ((SLuint32) 0x0000000A) 33411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CONTAINERTYPE_MPEG_ES ((SLuint32) 0x0000000B) 33511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CONTAINERTYPE_MPEG_PS ((SLuint32) 0x0000000C) 33611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CONTAINERTYPE_MPEG_TS ((SLuint32) 0x0000000D) 33711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CONTAINERTYPE_QT ((SLuint32) 0x0000000E) 33811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CONTAINERTYPE_WAV ((SLuint32) 0x0000000F) 33911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CONTAINERTYPE_XMF_0 ((SLuint32) 0x00000010) 34011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CONTAINERTYPE_XMF_1 ((SLuint32) 0x00000011) 34111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CONTAINERTYPE_XMF_2 ((SLuint32) 0x00000012) 34211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CONTAINERTYPE_XMF_3 ((SLuint32) 0x00000013) 34311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CONTAINERTYPE_XMF_GENERIC ((SLuint32) 0x00000014) 34411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CONTAINERTYPE_AMR ((SLuint32) 0x00000015) 34511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CONTAINERTYPE_AAC ((SLuint32) 0x00000016) 34611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CONTAINERTYPE_3GPP ((SLuint32) 0x00000017) 34711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CONTAINERTYPE_3GA ((SLuint32) 0x00000018) 34811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CONTAINERTYPE_RM ((SLuint32) 0x00000019) 34911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CONTAINERTYPE_DMF ((SLuint32) 0x0000001A) 35011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CONTAINERTYPE_SMF ((SLuint32) 0x0000001B) 35111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CONTAINERTYPE_MOBILE_DLS ((SLuint32) 0x0000001C) 35211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CONTAINERTYPE_OGG ((SLuint32) 0x0000001D) 35311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 35411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 35511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/** PCM-type-based data format definition where formatType must be SL_DATAFORMAT_PCM*/ 35611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct SLDataFormat_PCM_ { 35711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 formatType; 35811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 numChannels; 35911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 samplesPerSec; 36011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 bitsPerSample; 36111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 containerSize; 36211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 channelMask; 36311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 endianness; 36411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} SLDataFormat_PCM; 36511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 36611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct SLDataSource_ { 36711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void *pLocator; 36811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void *pFormat; 36911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} SLDataSource; 37011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 37111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 37211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct SLDataSink_ { 37311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void *pLocator; 37411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void *pFormat; 37511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} SLDataSink; 37611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 37711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 37811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 37911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 38011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 38111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 38211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 38311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Standard Object Interface */ 38411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 38511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 38611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_OBJECT; 38711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 38811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/** Object callback */ 38911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 39011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 39111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void (SLAPIENTRY *slObjectCallback) ( 39211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLObjectItf caller, 39311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const void * pContext, 39411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 event, 39511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult result, 39611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 param, 39711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void *pInterface 39811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 39911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 40011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 40111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLObjectItf_ { 40211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*Realize) ( 40311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLObjectItf self, 40411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean async 40511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 40611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*Resume) ( 40711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLObjectItf self, 40811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean async 40911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 41011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetState) ( 41111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLObjectItf self, 41211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 * pState 41311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 41411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetInterface) ( 41511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLObjectItf self, 41611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLInterfaceID iid, 41711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pInterface 41811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 41911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*RegisterCallback) ( 42011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLObjectItf self, 42111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert slObjectCallback callback, 42211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pContext 42311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 42411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void (*AbortAsyncOperation) ( 42511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLObjectItf self 42611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 42711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void (*Destroy) ( 42811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLObjectItf self 42911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 43011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetPriority) ( 43111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLObjectItf self, 43211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint32 priority, 43311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean preemptable 43411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 43511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetPriority) ( 43611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLObjectItf self, 43711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint32 *pPriority, 43811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean *pPreemptable 43911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 44011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetLossOfControlInterfaces) ( 44111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLObjectItf self, 44211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint16 numInterfaces, 44311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLInterfaceID * pInterfaceIDs, 44411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean enabled 44511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 44611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 44711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 44811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 44911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 45011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Audio IO Device capabilities interface */ 45111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 45211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 45311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_DEFAULTDEVICEID_AUDIOINPUT ((SLuint32) 0xFFFFFFFF) 45411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_DEFAULTDEVICEID_AUDIOOUTPUT ((SLuint32) 0xFFFFFFFE) 45511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_DEFAULTDEVICEID_LED ((SLuint32) 0xFFFFFFFD) 45611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_DEFAULTDEVICEID_VIBRA ((SLuint32) 0xFFFFFFFC) 45711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_DEFAULTDEVICEID_RESERVED1 ((SLuint32) 0xFFFFFFFB) 45811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 45911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 46011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_DEVCONNECTION_INTEGRATED ((SLint16) 0x0001) 46111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_DEVCONNECTION_ATTACHED_WIRED ((SLint16) 0x0100) 46211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_DEVCONNECTION_ATTACHED_WIRELESS ((SLint16) 0x0200) 46311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_DEVCONNECTION_NETWORK ((SLint16) 0x0400) 46411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 46511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 46611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_DEVLOCATION_HANDSET ((SLuint16) 0x0001) 46711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_DEVLOCATION_HEADSET ((SLuint16) 0x0002) 46811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_DEVLOCATION_CARKIT ((SLuint16) 0x0003) 46911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_DEVLOCATION_DOCK ((SLuint16) 0x0004) 47011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_DEVLOCATION_REMOTE ((SLuint16) 0x0005) 47111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Note: SL_DEVLOCATION_RESLTE is deprecated, use SL_DEVLOCATION_REMOTE instead. */ 47211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_DEVLOCATION_RESLTE ((SLuint16) 0x0005) 47311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 47411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 47511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_DEVSCOPE_UNKNOWN ((SLuint16) 0x0001) 47611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_DEVSCOPE_ENVIRONMENT ((SLuint16) 0x0002) 47711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_DEVSCOPE_USER ((SLuint16) 0x0003) 47811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 47911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 48011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct SLAudioInputDescriptor_ { 48111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLchar *deviceName; 48211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint16 deviceConnection; 48311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint16 deviceScope; 48411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint16 deviceLocation; 48511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean isForTelephony; 48611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmilliHertz minSampleRate; 48711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmilliHertz maxSampleRate; 48811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean isFreqRangeContinuous; 48911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmilliHertz *samplingRatesSupported; 49011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint16 numOfSamplingRatesSupported; 49111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint16 maxChannels; 49211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} SLAudioInputDescriptor; 49311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 49411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 49511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct SLAudioOutputDescriptor_ { 49611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLchar *pDeviceName; 49711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint16 deviceConnection; 49811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint16 deviceScope; 49911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint16 deviceLocation; 50011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean isForTelephony; 50111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmilliHertz minSampleRate; 50211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmilliHertz maxSampleRate; 50311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean isFreqRangeContinuous; 50411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmilliHertz *samplingRatesSupported; 50511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint16 numOfSamplingRatesSupported; 50611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint16 maxChannels; 50711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} SLAudioOutputDescriptor; 50811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 50911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 51011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 51111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_AUDIOIODEVICECAPABILITIES; 51211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 51311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLAudioIODeviceCapabilitiesItf_; 51411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLAudioIODeviceCapabilitiesItf_ * const * SLAudioIODeviceCapabilitiesItf; 51511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 51611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 51711cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void (SLAPIENTRY *slAvailableAudioInputsChangedCallback) ( 51811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLAudioIODeviceCapabilitiesItf caller, 51911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void *pContext, 52011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 deviceID, 52111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint32 numInputs, 52211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean isNew 52311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 52411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 52511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 52611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void (SLAPIENTRY *slAvailableAudioOutputsChangedCallback) ( 52711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLAudioIODeviceCapabilitiesItf caller, 52811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void *pContext, 52911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 deviceID, 53011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint32 numOutputs, 53111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean isNew 53211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 53311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 53411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void (SLAPIENTRY *slDefaultDeviceIDMapChangedCallback) ( 53511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLAudioIODeviceCapabilitiesItf caller, 53611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void *pContext, 53711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean isOutput, 53811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint32 numDevices 53911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 54011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 54111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 54211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLAudioIODeviceCapabilitiesItf_ { 54311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetAvailableAudioInputs)( 54411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLAudioIODeviceCapabilitiesItf self, 54511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint32 *pNumInputs, 54611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pInputDeviceIDs 54711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 54811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*QueryAudioInputCapabilities)( 54911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLAudioIODeviceCapabilitiesItf self, 55011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 deviceId, 55111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLAudioInputDescriptor *pDescriptor 55211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 55311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*RegisterAvailableAudioInputsChangedCallback) ( 55411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLAudioIODeviceCapabilitiesItf self, 55511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert slAvailableAudioInputsChangedCallback callback, 55611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void *pContext 55711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 55811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetAvailableAudioOutputs)( 55911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLAudioIODeviceCapabilitiesItf self, 56011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint32 *pNumOutputs, 56111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pOutputDeviceIDs 56211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 56311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*QueryAudioOutputCapabilities)( 56411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLAudioIODeviceCapabilitiesItf self, 56511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 deviceId, 56611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLAudioOutputDescriptor *pDescriptor 56711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 56811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*RegisterAvailableAudioOutputsChangedCallback) ( 56911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLAudioIODeviceCapabilitiesItf self, 57011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert slAvailableAudioOutputsChangedCallback callback, 57111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void *pContext 57211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 57311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*RegisterDefaultDeviceIDMapChangedCallback) ( 57411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLAudioIODeviceCapabilitiesItf self, 57511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert slDefaultDeviceIDMapChangedCallback callback, 57611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void *pContext 57711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 57811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetAssociatedAudioInputs) ( 57911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLAudioIODeviceCapabilitiesItf self, 58011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 deviceId, 58111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint32 *pNumAudioInputs, 58211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pAudioInputDeviceIDs 58311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 58411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetAssociatedAudioOutputs) ( 58511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLAudioIODeviceCapabilitiesItf self, 58611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 deviceId, 58711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint32 *pNumAudioOutputs, 58811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pAudioOutputDeviceIDs 58911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 59011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetDefaultAudioDevices) ( 59111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLAudioIODeviceCapabilitiesItf self, 59211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 defaultDeviceID, 59311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint32 *pNumAudioDevices, 59411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pAudioDeviceIDs 59511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 59611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*QuerySampleFormatsSupported)( 59711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLAudioIODeviceCapabilitiesItf self, 59811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 deviceId, 59911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmilliHertz samplingRate, 60011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint32 *pSampleFormats, 60111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint32 *pNumOfSampleFormats 60211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 60311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 60411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 60511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 60611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 60711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 60811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Capabilities of the LED array IODevice */ 60911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 61011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 61111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct SLLEDDescriptor_ { 61211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint8 ledCount; 61311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint8 primaryLED; 61411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 colorMask; 61511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} SLLEDDescriptor; 61611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 61711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 61811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 61911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* LED Array interface */ 62011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 62111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 62211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct SLHSL_ { 62311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillidegree hue; 62411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille saturation; 62511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille lightness; 62611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} SLHSL; 62711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 62811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 62911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_LED; 63011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 63111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLLEDArrayItf_; 63211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLLEDArrayItf_ * const * SLLEDArrayItf; 63311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 63411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLLEDArrayItf_ { 63511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*ActivateLEDArray) ( 63611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLLEDArrayItf self, 63711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 lightMask 63811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 63911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*IsLEDArrayActivated) ( 64011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLLEDArrayItf self, 64111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *lightMask 64211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 64311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetColor) ( 64411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLLEDArrayItf self, 64511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint8 index, 64611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLHSL *color 64711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 64811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetColor) ( 64911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLLEDArrayItf self, 65011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint8 index, 65111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLHSL *color 65211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 65311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 65411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 65511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 65611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Capabilities of the Vibra IODevice */ 65711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 65811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 65911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct SLVibraDescriptor_ { 66011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean supportsFrequency; 66111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean supportsIntensity; 66211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmilliHertz minFrequency; 66311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmilliHertz maxFrequency; 66411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} SLVibraDescriptor; 66511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 66611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 66711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 66811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 66911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Vibra interface */ 67011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 67111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 67211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 67311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_VIBRA; 67411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 67511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 67611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLVibraItf_; 67711cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLVibraItf_ * const * SLVibraItf; 67811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 67911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLVibraItf_ { 68011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*Vibrate) ( 68111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLVibraItf self, 68211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean vibrate 68311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 68411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*IsVibrating) ( 68511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLVibraItf self, 68611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean *pVibrating 68711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 68811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetFrequency) ( 68911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLVibraItf self, 69011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmilliHertz frequency 69111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 69211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetFrequency) ( 69311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLVibraItf self, 69411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmilliHertz *pFrequency 69511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 69611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetIntensity) ( 69711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLVibraItf self, 69811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille intensity 69911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 70011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetIntensity) ( 70111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLVibraItf self, 70211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille *pIntensity 70311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 70411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 70511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 70611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 70711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 70811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Meta data extraction related types and interface */ 70911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 71011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 71111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CHARACTERENCODING_UNKNOWN ((SLuint32) 0x00000000) 71211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CHARACTERENCODING_BINARY ((SLuint32) 0x00000001) 71311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CHARACTERENCODING_ASCII ((SLuint32) 0x00000002) 71411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CHARACTERENCODING_BIG5 ((SLuint32) 0x00000003) 71511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CHARACTERENCODING_CODEPAGE1252 ((SLuint32) 0x00000004) 71611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CHARACTERENCODING_GB2312 ((SLuint32) 0x00000005) 71711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CHARACTERENCODING_HZGB2312 ((SLuint32) 0x00000006) 71811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CHARACTERENCODING_GB12345 ((SLuint32) 0x00000007) 71911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CHARACTERENCODING_GB18030 ((SLuint32) 0x00000008) 72011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CHARACTERENCODING_GBK ((SLuint32) 0x00000009) 72111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CHARACTERENCODING_IMAPUTF7 ((SLuint32) 0x0000000A) 72211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CHARACTERENCODING_ISO2022JP ((SLuint32) 0x0000000B) 72311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CHARACTERENCODING_ISO2022JP1 ((SLuint32) 0x0000000B) 72411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CHARACTERENCODING_ISO88591 ((SLuint32) 0x0000000C) 72511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CHARACTERENCODING_ISO885910 ((SLuint32) 0x0000000D) 72611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CHARACTERENCODING_ISO885913 ((SLuint32) 0x0000000E) 72711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CHARACTERENCODING_ISO885914 ((SLuint32) 0x0000000F) 72811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CHARACTERENCODING_ISO885915 ((SLuint32) 0x00000010) 72911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CHARACTERENCODING_ISO88592 ((SLuint32) 0x00000011) 73011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CHARACTERENCODING_ISO88593 ((SLuint32) 0x00000012) 73111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CHARACTERENCODING_ISO88594 ((SLuint32) 0x00000013) 73211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CHARACTERENCODING_ISO88595 ((SLuint32) 0x00000014) 73311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CHARACTERENCODING_ISO88596 ((SLuint32) 0x00000015) 73411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CHARACTERENCODING_ISO88597 ((SLuint32) 0x00000016) 73511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CHARACTERENCODING_ISO88598 ((SLuint32) 0x00000017) 73611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CHARACTERENCODING_ISO88599 ((SLuint32) 0x00000018) 73711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CHARACTERENCODING_ISOEUCJP ((SLuint32) 0x00000019) 73811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CHARACTERENCODING_SHIFTJIS ((SLuint32) 0x0000001A) 73911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CHARACTERENCODING_SMS7BIT ((SLuint32) 0x0000001B) 74011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CHARACTERENCODING_UTF7 ((SLuint32) 0x0000001C) 74111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CHARACTERENCODING_UTF8 ((SLuint32) 0x0000001D) 74211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CHARACTERENCODING_JAVACONFORMANTUTF8 ((SLuint32) 0x0000001E) 74311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CHARACTERENCODING_UTF16BE ((SLuint32) 0x0000001F) 74411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_CHARACTERENCODING_UTF16LE ((SLuint32) 0x00000020) 74511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 74611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 74711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_METADATA_FILTER_KEY ((SLuint8) 0x01) 74811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_METADATA_FILTER_LANG ((SLuint8) 0x02) 74911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_METADATA_FILTER_ENCODING ((SLuint8) 0x04) 75011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 75111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 75211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct SLMetadataInfo_ { 75311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 size; 75411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 encoding; 75511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLchar langCountry[16]; 75611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint8 data[1]; 75711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} SLMetadataInfo; 75811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 75911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_METADATAEXTRACTION; 76011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 76111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLMetadataExtractionItf_; 76211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLMetadataExtractionItf_ * const * SLMetadataExtractionItf; 76311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 76411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 76511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLMetadataExtractionItf_ { 76611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetItemCount) ( 76711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMetadataExtractionItf self, 76811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pItemCount 76911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 77011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetKeySize) ( 77111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMetadataExtractionItf self, 77211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 index, 77311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pKeySize 77411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 77511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetKey) ( 77611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMetadataExtractionItf self, 77711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 index, 77811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 keySize, 77911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMetadataInfo *pKey 78011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 78111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetValueSize) ( 78211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMetadataExtractionItf self, 78311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 index, 78411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pValueSize 78511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 78611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetValue) ( 78711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMetadataExtractionItf self, 78811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 index, 78911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 valueSize, 79011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMetadataInfo *pValue 79111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 79211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*AddKeyFilter) ( 79311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMetadataExtractionItf self, 79411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 keySize, 79511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const void *pKey, 79611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 keyEncoding, 79711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLchar *pValueLangCountry, 79811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 valueEncoding, 79911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint8 filterMask 80011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 80111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*ClearKeyFilter) ( 80211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMetadataExtractionItf self 80311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 80411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 80511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 80611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 80711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 80811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Meta data traversal related types and interface */ 80911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 81011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 81111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_METADATATRAVERSALMODE_ALL ((SLuint32) 0x00000001) 81211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_METADATATRAVERSALMODE_NODE ((SLuint32) 0x00000002) 81311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 81411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 81511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_NODETYPE_UNSPECIFIED ((SLuint32) 0x00000001) 81611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_NODETYPE_AUDIO ((SLuint32) 0x00000002) 81711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_NODETYPE_VIDEO ((SLuint32) 0x00000003) 81811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_NODETYPE_IMAGE ((SLuint32) 0x00000004) 81911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 82011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_NODE_PARENT 0xFFFFFFFF 82111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 82211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_METADATATRAVERSAL; 82311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 82411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLMetadataTraversalItf_; 82511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLMetadataTraversalItf_ * const * SLMetadataTraversalItf; 82611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 82711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLMetadataTraversalItf_ { 82811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetMode) ( 82911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMetadataTraversalItf self, 83011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 mode 83111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 83211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetChildCount) ( 83311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMetadataTraversalItf self, 83411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pCount 83511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 83611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetChildMIMETypeSize) ( 83711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMetadataTraversalItf self, 83811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 index, 83911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pSize 84011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 84111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetChildInfo) ( 84211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMetadataTraversalItf self, 84311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 index, 84411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint32 *pNodeID, 84511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pType, 84611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 size, 84711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLchar *pMimeType 84811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 84911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetActiveNode) ( 85011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMetadataTraversalItf self, 85111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 index 85211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 85311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 85411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 85511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 85611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Dynamic Source types and interface */ 85711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 85811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 85911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_DYNAMICSOURCE; 86011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 86111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLDynamicSourceItf_; 86211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLDynamicSourceItf_ * const * SLDynamicSourceItf; 86311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 86411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLDynamicSourceItf_ { 86511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetSource) ( 86611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLDynamicSourceItf self, 86711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLDataSource *pDataSource 86811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 86911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 87011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 87111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 87211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Output Mix interface */ 87311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 87411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 87511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_OUTPUTMIX; 87611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 87711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLOutputMixItf_; 87811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLOutputMixItf_ * const * SLOutputMixItf; 87911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 88011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void (SLAPIENTRY *slMixDeviceChangeCallback) ( 88111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLOutputMixItf caller, 88211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void *pContext 88311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 88411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 88511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 88611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLOutputMixItf_ { 88711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetDestinationOutputDeviceIDs) ( 88811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLOutputMixItf self, 88911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint32 *pNumDevices, 89011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pDeviceIDs 89111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 89211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*RegisterDeviceChangeCallback) ( 89311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLOutputMixItf self, 89411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert slMixDeviceChangeCallback callback, 89511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void *pContext 89611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 89711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*ReRoute)( 89811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLOutputMixItf self, 89911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint32 numOutputDevices, 90011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pOutputDeviceIDs 90111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 90211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 90311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 90411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 90511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 90611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Playback interface */ 90711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 90811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 90911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/** Playback states */ 91011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_PLAYSTATE_STOPPED ((SLuint32) 0x00000001) 91111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_PLAYSTATE_PAUSED ((SLuint32) 0x00000002) 91211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_PLAYSTATE_PLAYING ((SLuint32) 0x00000003) 91311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 91411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/** Play events **/ 91511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_PLAYEVENT_HEADATEND ((SLuint32) 0x00000001) 91611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_PLAYEVENT_HEADATMARKER ((SLuint32) 0x00000002) 91711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_PLAYEVENT_HEADATNEWPOS ((SLuint32) 0x00000004) 91811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_PLAYEVENT_HEADMOVING ((SLuint32) 0x00000008) 91911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_PLAYEVENT_HEADSTALLED ((SLuint32) 0x00000010) 92011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 92111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_TIME_UNKNOWN ((SLuint32) 0xFFFFFFFF) 92211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 92311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 92411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_PLAY; 92511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 92611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/** Playback interface methods */ 92711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 92811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLPlayItf_; 92911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLPlayItf_ * const * SLPlayItf; 93011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 93111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void (SLAPIENTRY *slPlayCallback) ( 93211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLPlayItf caller, 93311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void *pContext, 93411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 event 93511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 93611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 93711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLPlayItf_ { 93811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetPlayState) ( 93911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLPlayItf self, 94011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 state 94111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 94211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetPlayState) ( 94311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLPlayItf self, 94411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pState 94511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 94611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetDuration) ( 94711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLPlayItf self, 94811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillisecond *pMsec 94911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 95011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetPosition) ( 95111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLPlayItf self, 95211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillisecond *pMsec 95311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 95411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*RegisterCallback) ( 95511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLPlayItf self, 95611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert slPlayCallback callback, 95711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void *pContext 95811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 95911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetCallbackEventsMask) ( 96011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLPlayItf self, 96111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 eventFlags 96211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 96311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetCallbackEventsMask) ( 96411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLPlayItf self, 96511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pEventFlags 96611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 96711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetMarkerPosition) ( 96811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLPlayItf self, 96911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillisecond mSec 97011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 97111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*ClearMarkerPosition) ( 97211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLPlayItf self 97311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 97411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetMarkerPosition) ( 97511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLPlayItf self, 97611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillisecond *pMsec 97711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 97811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetPositionUpdatePeriod) ( 97911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLPlayItf self, 98011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillisecond mSec 98111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 98211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetPositionUpdatePeriod) ( 98311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLPlayItf self, 98411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillisecond *pMsec 98511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 98611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 98711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 98811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 98911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Prefetch status interface */ 99011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 99111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 99211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_PREFETCHEVENT_STATUSCHANGE ((SLuint32) 0x00000001) 99311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_PREFETCHEVENT_FILLLEVELCHANGE ((SLuint32) 0x00000002) 99411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 99511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_PREFETCHSTATUS_UNDERFLOW ((SLuint32) 0x00000001) 99611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_PREFETCHSTATUS_SUFFICIENTDATA ((SLuint32) 0x00000002) 99711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_PREFETCHSTATUS_OVERFLOW ((SLuint32) 0x00000003) 99811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 99911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 100011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_PREFETCHSTATUS; 100111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 100211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 100311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/** Prefetch status interface methods */ 100411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 100511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLPrefetchStatusItf_; 100611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLPrefetchStatusItf_ * const * SLPrefetchStatusItf; 100711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 100811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void (SLAPIENTRY *slPrefetchCallback) ( 100911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLPrefetchStatusItf caller, 101011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void *pContext, 101111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 event 101211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 101311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 101411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLPrefetchStatusItf_ { 101511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetPrefetchStatus) ( 101611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLPrefetchStatusItf self, 101711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pStatus 101811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 101911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetFillLevel) ( 102011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLPrefetchStatusItf self, 102111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille *pLevel 102211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 102311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*RegisterCallback) ( 102411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLPrefetchStatusItf self, 102511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert slPrefetchCallback callback, 102611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void *pContext 102711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 102811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetCallbackEventsMask) ( 102911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLPrefetchStatusItf self, 103011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 eventFlags 103111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 103211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetCallbackEventsMask) ( 103311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLPrefetchStatusItf self, 103411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pEventFlags 103511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 103611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetFillUpdatePeriod) ( 103711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLPrefetchStatusItf self, 103811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille period 103911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 104011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetFillUpdatePeriod) ( 104111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLPrefetchStatusItf self, 104211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille *pPeriod 104311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 104411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 104511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 104611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 104711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Playback Rate interface */ 104811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 104911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 105011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_RATEPROP_RESERVED1 ((SLuint32) 0x00000001) 105111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_RATEPROP_RESERVED2 ((SLuint32) 0x00000002) 105211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_RATEPROP_SILENTAUDIO ((SLuint32) 0x00000100) 105311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_RATEPROP_STAGGEREDAUDIO ((SLuint32) 0x00000200) 105411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_RATEPROP_NOPITCHCORAUDIO ((SLuint32) 0x00000400) 105511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_RATEPROP_PITCHCORAUDIO ((SLuint32) 0x00000800) 105611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 105711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 105811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_PLAYBACKRATE; 105911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 106011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLPlaybackRateItf_; 106111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLPlaybackRateItf_ * const * SLPlaybackRateItf; 106211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 106311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLPlaybackRateItf_ { 106411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetRate)( 106511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLPlaybackRateItf self, 106611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille rate 106711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 106811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetRate)( 106911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLPlaybackRateItf self, 107011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille *pRate 107111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 107211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetPropertyConstraints)( 107311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLPlaybackRateItf self, 107411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 constraints 107511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 107611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetProperties)( 107711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLPlaybackRateItf self, 107811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pProperties 107911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 108011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetCapabilitiesOfRate)( 108111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLPlaybackRateItf self, 108211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille rate, 108311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pCapabilities 108411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 108511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetRateRange) ( 108611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLPlaybackRateItf self, 108711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint8 index, 108811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille *pMinRate, 108911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille *pMaxRate, 109011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille *pStepSize, 109111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pCapabilities 109211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 109311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 109411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 109511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 109611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Seek Interface */ 109711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 109811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 109911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_SEEKMODE_FAST ((SLuint32) 0x0001) 110011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_SEEKMODE_ACCURATE ((SLuint32) 0x0002) 110111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 110211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_SEEK; 110311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 110411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLSeekItf_; 110511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLSeekItf_ * const * SLSeekItf; 110611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 110711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLSeekItf_ { 110811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetPosition)( 110911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLSeekItf self, 111011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillisecond pos, 111111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 seekMode 111211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 111311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetLoop)( 111411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLSeekItf self, 111511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean loopEnable, 111611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillisecond startPos, 111711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillisecond endPos 111811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 111911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetLoop)( 112011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLSeekItf self, 112111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean *pLoopEnabled, 112211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillisecond *pStartPos, 112311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillisecond *pEndPos 112411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 112511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 112611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 112711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 112811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Standard Recording Interface */ 112911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 113011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 113111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/** Recording states */ 113211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_RECORDSTATE_STOPPED ((SLuint32) 0x00000001) 113311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_RECORDSTATE_PAUSED ((SLuint32) 0x00000002) 113411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_RECORDSTATE_RECORDING ((SLuint32) 0x00000003) 113511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 113611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 113711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/** Record event **/ 113811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_RECORDEVENT_HEADATLIMIT ((SLuint32) 0x00000001) 113911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_RECORDEVENT_HEADATMARKER ((SLuint32) 0x00000002) 114011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_RECORDEVENT_HEADATNEWPOS ((SLuint32) 0x00000004) 114111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_RECORDEVENT_HEADMOVING ((SLuint32) 0x00000008) 114211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_RECORDEVENT_HEADSTALLED ((SLuint32) 0x00000010) 114311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Note: SL_RECORDEVENT_BUFFER_INSUFFICIENT is deprecated, use SL_RECORDEVENT_BUFFER_FULL instead. */ 114411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_RECORDEVENT_BUFFER_INSUFFICIENT ((SLuint32) 0x00000020) 114511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_RECORDEVENT_BUFFER_FULL ((SLuint32) 0x00000020) 114611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 114711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 114811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_RECORD; 114911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 115011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLRecordItf_; 115111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLRecordItf_ * const * SLRecordItf; 115211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 115311cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void (SLAPIENTRY *slRecordCallback) ( 115411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLRecordItf caller, 115511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void *pContext, 115611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 event 115711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 115811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 115911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/** Recording interface methods */ 116011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLRecordItf_ { 116111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetRecordState) ( 116211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLRecordItf self, 116311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 state 116411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 116511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetRecordState) ( 116611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLRecordItf self, 116711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pState 116811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 116911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetDurationLimit) ( 117011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLRecordItf self, 117111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillisecond msec 117211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 117311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetPosition) ( 117411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLRecordItf self, 117511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillisecond *pMsec 117611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 117711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*RegisterCallback) ( 117811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLRecordItf self, 117911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert slRecordCallback callback, 118011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void *pContext 118111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 118211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetCallbackEventsMask) ( 118311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLRecordItf self, 118411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 eventFlags 118511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 118611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetCallbackEventsMask) ( 118711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLRecordItf self, 118811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pEventFlags 118911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 119011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetMarkerPosition) ( 119111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLRecordItf self, 119211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillisecond mSec 119311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 119411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*ClearMarkerPosition) ( 119511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLRecordItf self 119611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 119711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetMarkerPosition) ( 119811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLRecordItf self, 119911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillisecond *pMsec 120011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 120111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetPositionUpdatePeriod) ( 120211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLRecordItf self, 120311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillisecond mSec 120411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 120511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetPositionUpdatePeriod) ( 120611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLRecordItf self, 120711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillisecond *pMsec 120811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 120911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 121011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 121111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 121211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Equalizer interface */ 121311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 121411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 121511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_EQUALIZER_UNDEFINED ((SLuint16) 0xFFFF) 121611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 121711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_EQUALIZER; 121811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 121911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLEqualizerItf_; 122011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLEqualizerItf_ * const * SLEqualizerItf; 122111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 122211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLEqualizerItf_ { 122311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetEnabled)( 122411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEqualizerItf self, 122511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean enabled 122611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 122711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*IsEnabled)( 122811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEqualizerItf self, 122911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean *pEnabled 123011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 123111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetNumberOfBands)( 123211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEqualizerItf self, 123311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint16 *pAmount 123411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 123511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetBandLevelRange)( 123611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEqualizerItf self, 123711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillibel *pMin, 123811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillibel *pMax 123911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 124011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetBandLevel)( 124111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEqualizerItf self, 124211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint16 band, 124311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillibel level 124411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 124511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetBandLevel)( 124611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEqualizerItf self, 124711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint16 band, 124811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillibel *pLevel 124911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 125011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetCenterFreq)( 125111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEqualizerItf self, 125211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint16 band, 125311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmilliHertz *pCenter 125411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 125511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetBandFreqRange)( 125611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEqualizerItf self, 125711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint16 band, 125811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmilliHertz *pMin, 125911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmilliHertz *pMax 126011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 126111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetBand)( 126211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEqualizerItf self, 126311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmilliHertz frequency, 126411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint16 *pBand 126511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 126611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetCurrentPreset)( 126711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEqualizerItf self, 126811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint16 *pPreset 126911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 127011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*UsePreset)( 127111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEqualizerItf self, 127211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint16 index 127311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 127411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetNumberOfPresets)( 127511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEqualizerItf self, 127611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint16 *pNumPresets 127711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 127811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetPresetName)( 127911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEqualizerItf self, 128011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint16 index, 128111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLchar ** ppName 128211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 128311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 128411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 128511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 128611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Volume Interface */ 128711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* --------------------------------------------------------------------------*/ 128811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 128911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_VOLUME; 129011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 129111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLVolumeItf_; 129211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLVolumeItf_ * const * SLVolumeItf; 129311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 129411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLVolumeItf_ { 129511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetVolumeLevel) ( 129611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLVolumeItf self, 129711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillibel level 129811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 129911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetVolumeLevel) ( 130011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLVolumeItf self, 130111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillibel *pLevel 130211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 130311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetMaxVolumeLevel) ( 130411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLVolumeItf self, 130511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillibel *pMaxLevel 130611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 130711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetMute) ( 130811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLVolumeItf self, 130911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean mute 131011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 131111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetMute) ( 131211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLVolumeItf self, 131311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean *pMute 131411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 131511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*EnableStereoPosition) ( 131611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLVolumeItf self, 131711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean enable 131811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 131911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*IsEnabledStereoPosition) ( 132011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLVolumeItf self, 132111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean *pEnable 132211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 132311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetStereoPosition) ( 132411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLVolumeItf self, 132511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille stereoPosition 132611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 132711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetStereoPosition) ( 132811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLVolumeItf self, 132911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille *pStereoPosition 133011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 133111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 133211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 133311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 133411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 133511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Device Volume Interface */ 133611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* --------------------------------------------------------------------------*/ 133711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 133811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_DEVICEVOLUME; 133911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 134011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLDeviceVolumeItf_; 134111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLDeviceVolumeItf_ * const * SLDeviceVolumeItf; 134211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 134311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLDeviceVolumeItf_ { 134411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetVolumeScale) ( 134511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLDeviceVolumeItf self, 134611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 deviceID, 134711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint32 *pMinValue, 134811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint32 *pMaxValue, 134911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean *pIsMillibelScale 135011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 135111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetVolume) ( 135211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLDeviceVolumeItf self, 135311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 deviceID, 135411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint32 volume 135511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 135611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetVolume) ( 135711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLDeviceVolumeItf self, 135811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 deviceID, 135911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint32 *pVolume 136011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 136111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 136211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 136311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 136411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 136511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Buffer Queue Interface */ 136611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 136711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 136811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_BUFFERQUEUE; 136911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 137011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLBufferQueueItf_; 137111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLBufferQueueItf_ * const * SLBufferQueueItf; 137211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 137311cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void (SLAPIENTRY *slBufferQueueCallback)( 137411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLBufferQueueItf caller, 137511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void *pContext 137611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 137711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 137811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/** Buffer queue state **/ 137911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 138011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct SLBufferQueueState_ { 138111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 count; 138211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 playIndex; 138311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} SLBufferQueueState; 138411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 138511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 138611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLBufferQueueItf_ { 138711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*Enqueue) ( 138811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLBufferQueueItf self, 138911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const void *pBuffer, 139011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 size 139111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 139211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*Clear) ( 139311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLBufferQueueItf self 139411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 139511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetState) ( 139611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLBufferQueueItf self, 139711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLBufferQueueState *pState 139811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 139911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*RegisterCallback) ( 140011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLBufferQueueItf self, 140111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert slBufferQueueCallback callback, 140211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void* pContext 140311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 140411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 140511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 140611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 140711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 140811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* PresetReverb */ 140911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 141011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 141111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_REVERBPRESET_NONE ((SLuint16) 0x0000) 141211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_REVERBPRESET_SMALLROOM ((SLuint16) 0x0001) 141311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_REVERBPRESET_MEDIUMROOM ((SLuint16) 0x0002) 141411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_REVERBPRESET_LARGEROOM ((SLuint16) 0x0003) 141511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_REVERBPRESET_MEDIUMHALL ((SLuint16) 0x0004) 141611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_REVERBPRESET_LARGEHALL ((SLuint16) 0x0005) 141711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_REVERBPRESET_PLATE ((SLuint16) 0x0006) 141811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 141911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 142011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_PRESETREVERB; 142111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 142211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLPresetReverbItf_; 142311cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLPresetReverbItf_ * const * SLPresetReverbItf; 142411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 142511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLPresetReverbItf_ { 142611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetPreset) ( 142711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLPresetReverbItf self, 142811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint16 preset 142911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 143011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetPreset) ( 143111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLPresetReverbItf self, 143211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint16 *pPreset 143311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 143411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 143511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 143611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 143711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 143811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* EnvironmentalReverb */ 143911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 144011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 144111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_I3DL2_ENVIRONMENT_PRESET_DEFAULT \ 144211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { SL_MILLIBEL_MIN, 0, 1000, 500, SL_MILLIBEL_MIN, 20, SL_MILLIBEL_MIN, 40, 1000,1000 } 144311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_I3DL2_ENVIRONMENT_PRESET_GENERIC \ 144411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { -1000, -100, 1490, 830, -2602, 7, 200, 11, 1000,1000 } 144511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_I3DL2_ENVIRONMENT_PRESET_PADDEDCELL \ 144611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { -1000,-6000, 170, 100, -1204, 1, 207, 2, 1000,1000 } 144711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_I3DL2_ENVIRONMENT_PRESET_ROOM \ 144811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { -1000, -454, 400, 830, -1646, 2, 53, 3, 1000,1000 } 144911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_I3DL2_ENVIRONMENT_PRESET_BATHROOM \ 145011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { -1000,-1200, 1490, 540, -370, 7, 1030, 11, 1000, 600 } 145111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_I3DL2_ENVIRONMENT_PRESET_LIVINGROOM \ 145211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { -1000,-6000, 500, 100, -1376, 3, -1104, 4, 1000,1000 } 145311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_I3DL2_ENVIRONMENT_PRESET_STONEROOM \ 145411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { -1000, -300, 2310, 640, -711, 12, 83, 17, 1000,1000 } 145511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_I3DL2_ENVIRONMENT_PRESET_AUDITORIUM \ 145611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { -1000, -476, 4320, 590, -789, 20, -289, 30, 1000,1000 } 145711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_I3DL2_ENVIRONMENT_PRESET_CONCERTHALL \ 145811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { -1000, -500, 3920, 700, -1230, 20, -2, 29, 1000,1000 } 145911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_I3DL2_ENVIRONMENT_PRESET_CAVE \ 146011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { -1000, 0, 2910, 1300, -602, 15, -302, 22, 1000,1000 } 146111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_I3DL2_ENVIRONMENT_PRESET_ARENA \ 146211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { -1000, -698, 7240, 330, -1166, 20, 16, 30, 1000,1000 } 146311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_I3DL2_ENVIRONMENT_PRESET_HANGAR \ 146411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { -1000,-1000, 10050, 230, -602, 20, 198, 30, 1000,1000 } 146511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_I3DL2_ENVIRONMENT_PRESET_CARPETEDHALLWAY \ 146611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { -1000,-4000, 300, 100, -1831, 2, -1630, 30, 1000,1000 } 146711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_I3DL2_ENVIRONMENT_PRESET_HALLWAY \ 146811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { -1000, -300, 1490, 590, -1219, 7, 441, 11, 1000,1000 } 146911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_I3DL2_ENVIRONMENT_PRESET_STONECORRIDOR \ 147011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { -1000, -237, 2700, 790, -1214, 13, 395, 20, 1000,1000 } 147111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_I3DL2_ENVIRONMENT_PRESET_ALLEY \ 147211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { -1000, -270, 1490, 860, -1204, 7, -4, 11, 1000,1000 } 147311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_I3DL2_ENVIRONMENT_PRESET_FOREST \ 147411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { -1000,-3300, 1490, 540, -2560, 162, -613, 88, 790,1000 } 147511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_I3DL2_ENVIRONMENT_PRESET_CITY \ 147611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { -1000, -800, 1490, 670, -2273, 7, -2217, 11, 500,1000 } 147711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_I3DL2_ENVIRONMENT_PRESET_MOUNTAINS \ 147811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { -1000,-2500, 1490, 210, -2780, 300, -2014, 100, 270,1000 } 147911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_I3DL2_ENVIRONMENT_PRESET_QUARRY \ 148011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { -1000,-1000, 1490, 830, SL_MILLIBEL_MIN, 61, 500, 25, 1000,1000 } 148111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_I3DL2_ENVIRONMENT_PRESET_PLAIN \ 148211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { -1000,-2000, 1490, 500, -2466, 179, -2514, 100, 210,1000 } 148311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_I3DL2_ENVIRONMENT_PRESET_PARKINGLOT \ 148411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { -1000, 0, 1650, 1500, -1363, 8, -1153, 12, 1000,1000 } 148511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_I3DL2_ENVIRONMENT_PRESET_SEWERPIPE \ 148611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { -1000,-1000, 2810, 140, 429, 14, 648, 21, 800, 600 } 148711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_I3DL2_ENVIRONMENT_PRESET_UNDERWATER \ 148811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { -1000,-4000, 1490, 100, -449, 7, 1700, 11, 1000,1000 } 148911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_I3DL2_ENVIRONMENT_PRESET_SMALLROOM \ 149011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { -1000,-600, 1100, 830, -400, 5, 500, 10, 1000, 1000 } 149111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_I3DL2_ENVIRONMENT_PRESET_MEDIUMROOM \ 149211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { -1000,-600, 1300, 830, -1000, 20, -200, 20, 1000, 1000 } 149311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_I3DL2_ENVIRONMENT_PRESET_LARGEROOM \ 149411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { -1000,-600, 1500, 830, -1600, 5, -1000, 40, 1000, 1000 } 149511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_I3DL2_ENVIRONMENT_PRESET_MEDIUMHALL \ 149611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { -1000,-600, 1800, 700, -1300, 15, -800, 30, 1000, 1000 } 149711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_I3DL2_ENVIRONMENT_PRESET_LARGEHALL \ 149811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { -1000,-600, 1800, 700, -2000, 30, -1400, 60, 1000, 1000 } 149911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_I3DL2_ENVIRONMENT_PRESET_PLATE \ 150011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { -1000,-200, 1300, 900, 0, 2, 0, 10, 1000, 750 } 150111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 150211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 150311cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct SLEnvironmentalReverbSettings_ { 150411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillibel roomLevel; 150511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillibel roomHFLevel; 150611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillisecond decayTime; 150711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille decayHFRatio; 150811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillibel reflectionsLevel; 150911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillisecond reflectionsDelay; 151011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillibel reverbLevel; 151111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillisecond reverbDelay; 151211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille diffusion; 151311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille density; 151411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} SLEnvironmentalReverbSettings; 151511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 151611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 151711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 151811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 151911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_ENVIRONMENTALREVERB; 152011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 152111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 152211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLEnvironmentalReverbItf_; 152311cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLEnvironmentalReverbItf_ * const * SLEnvironmentalReverbItf; 152411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 152511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLEnvironmentalReverbItf_ { 152611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetRoomLevel) ( 152711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEnvironmentalReverbItf self, 152811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillibel room 152911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 153011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetRoomLevel) ( 153111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEnvironmentalReverbItf self, 153211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillibel *pRoom 153311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 153411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetRoomHFLevel) ( 153511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEnvironmentalReverbItf self, 153611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillibel roomHF 153711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 153811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetRoomHFLevel) ( 153911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEnvironmentalReverbItf self, 154011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillibel *pRoomHF 154111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 154211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetDecayTime) ( 154311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEnvironmentalReverbItf self, 154411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillisecond decayTime 154511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 154611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetDecayTime) ( 154711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEnvironmentalReverbItf self, 154811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillisecond *pDecayTime 154911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 155011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetDecayHFRatio) ( 155111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEnvironmentalReverbItf self, 155211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille decayHFRatio 155311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 155411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetDecayHFRatio) ( 155511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEnvironmentalReverbItf self, 155611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille *pDecayHFRatio 155711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 155811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetReflectionsLevel) ( 155911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEnvironmentalReverbItf self, 156011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillibel reflectionsLevel 156111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 156211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetReflectionsLevel) ( 156311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEnvironmentalReverbItf self, 156411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillibel *pReflectionsLevel 156511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 156611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetReflectionsDelay) ( 156711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEnvironmentalReverbItf self, 156811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillisecond reflectionsDelay 156911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 157011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetReflectionsDelay) ( 157111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEnvironmentalReverbItf self, 157211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillisecond *pReflectionsDelay 157311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 157411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetReverbLevel) ( 157511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEnvironmentalReverbItf self, 157611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillibel reverbLevel 157711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 157811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetReverbLevel) ( 157911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEnvironmentalReverbItf self, 158011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillibel *pReverbLevel 158111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 158211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetReverbDelay) ( 158311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEnvironmentalReverbItf self, 158411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillisecond reverbDelay 158511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 158611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetReverbDelay) ( 158711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEnvironmentalReverbItf self, 158811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillisecond *pReverbDelay 158911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 159011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetDiffusion) ( 159111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEnvironmentalReverbItf self, 159211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille diffusion 159311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 159411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetDiffusion) ( 159511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEnvironmentalReverbItf self, 159611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille *pDiffusion 159711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 159811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetDensity) ( 159911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEnvironmentalReverbItf self, 160011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille density 160111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 160211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetDensity) ( 160311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEnvironmentalReverbItf self, 160411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille *pDensity 160511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 160611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetEnvironmentalReverbProperties) ( 160711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEnvironmentalReverbItf self, 160811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLEnvironmentalReverbSettings *pProperties 160911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 161011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetEnvironmentalReverbProperties) ( 161111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEnvironmentalReverbItf self, 161211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEnvironmentalReverbSettings *pProperties 161311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 161411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 161511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 161611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 161711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Effects Send Interface */ 161811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 161911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 162011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 162111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_EFFECTSEND; 162211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 162311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLEffectSendItf_; 162411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLEffectSendItf_ * const * SLEffectSendItf; 162511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 162611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLEffectSendItf_ { 162711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*EnableEffectSend) ( 162811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEffectSendItf self, 162911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const void *pAuxEffect, 163011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean enable, 163111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillibel initialLevel 163211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 163311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*IsEnabled) ( 163411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEffectSendItf self, 163511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const void * pAuxEffect, 163611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean *pEnable 163711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 163811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetDirectLevel) ( 163911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEffectSendItf self, 164011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillibel directLevel 164111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 164211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetDirectLevel) ( 164311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEffectSendItf self, 164411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillibel *pDirectLevel 164511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 164611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetSendLevel) ( 164711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEffectSendItf self, 164811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const void *pAuxEffect, 164911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillibel sendLevel 165011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 165111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetSendLevel)( 165211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEffectSendItf self, 165311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const void *pAuxEffect, 165411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillibel *pSendLevel 165511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 165611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 165711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 165811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 165911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 166011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* 3D Grouping Interface */ 166111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 166211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 166311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 166411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_3DGROUPING; 166511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 166611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 166711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SL3DGroupingItf_ ; 166811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SL3DGroupingItf_ * const * SL3DGroupingItf; 166911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 167011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SL3DGroupingItf_ { 167111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*Set3DGroup) ( 167211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DGroupingItf self, 167311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLObjectItf group 167411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 167511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*Get3DGroup) ( 167611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DGroupingItf self, 167711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLObjectItf *pGroup 167811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 167911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 168011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 168111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 168211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 168311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* 3D Commit Interface */ 168411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 168511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 168611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 168711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_3DCOMMIT; 168811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 168911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SL3DCommitItf_; 169011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SL3DCommitItf_* const * SL3DCommitItf; 169111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 169211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SL3DCommitItf_ { 169311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*Commit) ( 169411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DCommitItf self 169511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 169611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetDeferred) ( 169711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DCommitItf self, 169811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean deferred 169911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 170011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 170111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 170211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 170311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 170411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* 3D Location Interface */ 170511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 170611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 170711cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct SLVec3D_ { 170811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint32 x; 170911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint32 y; 171011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint32 z; 171111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} SLVec3D; 171211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 171311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_3DLOCATION; 171411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 171511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SL3DLocationItf_; 171611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SL3DLocationItf_ * const * SL3DLocationItf; 171711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 171811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SL3DLocationItf_ { 171911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetLocationCartesian) ( 172011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DLocationItf self, 172111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLVec3D *pLocation 172211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 172311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetLocationSpherical) ( 172411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DLocationItf self, 172511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillidegree azimuth, 172611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillidegree elevation, 172711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillimeter distance 172811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 172911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*Move) ( 173011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DLocationItf self, 173111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLVec3D *pMovement 173211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 173311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetLocationCartesian) ( 173411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DLocationItf self, 173511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLVec3D *pLocation 173611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 173711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetOrientationVectors) ( 173811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DLocationItf self, 173911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLVec3D *pFront, 174011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLVec3D *pAbove 174111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 174211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetOrientationAngles) ( 174311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DLocationItf self, 174411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillidegree heading, 174511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillidegree pitch, 174611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillidegree roll 174711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 174811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*Rotate) ( 174911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DLocationItf self, 175011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillidegree theta, 175111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLVec3D *pAxis 175211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 175311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetOrientationVectors) ( 175411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DLocationItf self, 175511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLVec3D *pFront, 175611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLVec3D *pUp 175711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 175811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 175911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 176011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 176111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 176211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* 3D Doppler Interface */ 176311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 176411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 176511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 176611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_3DDOPPLER; 176711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 176811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SL3DDopplerItf_; 176911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SL3DDopplerItf_ * const * SL3DDopplerItf; 177011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 177111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SL3DDopplerItf_ { 177211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetVelocityCartesian) ( 177311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DDopplerItf self, 177411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLVec3D *pVelocity 177511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 177611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetVelocitySpherical) ( 177711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DDopplerItf self, 177811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillidegree azimuth, 177911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillidegree elevation, 178011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillimeter speed 178111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 178211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetVelocityCartesian) ( 178311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DDopplerItf self, 178411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLVec3D *pVelocity 178511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 178611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetDopplerFactor) ( 178711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DDopplerItf self, 178811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille dopplerFactor 178911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 179011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetDopplerFactor) ( 179111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DDopplerItf self, 179211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille *pDopplerFactor 179311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 179411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 179511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 179611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 179711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* 3D Source Interface and associated defines */ 179811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* --------------------------------------------------------------------------*/ 179911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 180011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_ROLLOFFMODEL_EXPONENTIAL ((SLuint32) 0x00000000) 180111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_ROLLOFFMODEL_LINEAR ((SLuint32) 0x00000001) 180211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 180311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 180411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_3DSOURCE; 180511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 180611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SL3DSourceItf_; 180711cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SL3DSourceItf_ * const * SL3DSourceItf; 180811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 180911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SL3DSourceItf_ { 181011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetHeadRelative) ( 181111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DSourceItf self, 181211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean headRelative 181311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 181411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetHeadRelative) ( 181511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DSourceItf self, 181611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean *pHeadRelative 181711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 181811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetRolloffDistances) ( 181911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DSourceItf self, 182011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillimeter minDistance, 182111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillimeter maxDistance 182211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 182311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetRolloffDistances) ( 182411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DSourceItf self, 182511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillimeter *pMinDistance, 182611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillimeter *pMaxDistance 182711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 182811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetRolloffMaxDistanceMute) ( 182911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DSourceItf self, 183011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean mute 183111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 183211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetRolloffMaxDistanceMute) ( 183311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DSourceItf self, 183411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean *pMute 183511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 183611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetRolloffFactor) ( 183711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DSourceItf self, 183811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille rolloffFactor 183911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 184011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetRolloffFactor) ( 184111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DSourceItf self, 184211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille *pRolloffFactor 184311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 184411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetRoomRolloffFactor) ( 184511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DSourceItf self, 184611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille roomRolloffFactor 184711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 184811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetRoomRolloffFactor) ( 184911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DSourceItf self, 185011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille *pRoomRolloffFactor 185111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 185211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetRolloffModel) ( 185311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DSourceItf self, 185411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint8 model 185511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 185611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetRolloffModel) ( 185711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DSourceItf self, 185811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint8 *pModel 185911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 186011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetCone) ( 186111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DSourceItf self, 186211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillidegree innerAngle, 186311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillidegree outerAngle, 186411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillibel outerLevel 186511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 186611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetCone) ( 186711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DSourceItf self, 186811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillidegree *pInnerAngle, 186911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillidegree *pOuterAngle, 187011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillibel *pOuterLevel 187111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 187211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 187311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 187411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 187511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* 3D Macroscopic Interface */ 187611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* --------------------------------------------------------------------------*/ 187711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 187811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_3DMACROSCOPIC; 187911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 188011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SL3DMacroscopicItf_; 188111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SL3DMacroscopicItf_ * const * SL3DMacroscopicItf; 188211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 188311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SL3DMacroscopicItf_ { 188411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetSize) ( 188511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DMacroscopicItf self, 188611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillimeter width, 188711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillimeter height, 188811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillimeter depth 188911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 189011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetSize) ( 189111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DMacroscopicItf self, 189211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillimeter *pWidth, 189311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillimeter *pHeight, 189411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillimeter *pDepth 189511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 189611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetOrientationAngles) ( 189711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DMacroscopicItf self, 189811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillidegree heading, 189911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillidegree pitch, 190011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillidegree roll 190111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 190211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetOrientationVectors) ( 190311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DMacroscopicItf self, 190411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLVec3D *pFront, 190511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLVec3D *pAbove 190611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 190711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*Rotate) ( 190811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DMacroscopicItf self, 190911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmillidegree theta, 191011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLVec3D *pAxis 191111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 191211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetOrientationVectors) ( 191311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SL3DMacroscopicItf self, 191411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLVec3D *pFront, 191511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLVec3D *pUp 191611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 191711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 191811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 191911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 192011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Mute Solo Interface */ 192111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* --------------------------------------------------------------------------*/ 192211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 192311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 192411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_MUTESOLO; 192511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 192611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLMuteSoloItf_; 192711cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLMuteSoloItf_ * const * SLMuteSoloItf; 192811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 192911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLMuteSoloItf_ { 193011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetChannelMute) ( 193111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMuteSoloItf self, 193211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint8 chan, 193311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean mute 193411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 193511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetChannelMute) ( 193611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMuteSoloItf self, 193711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint8 chan, 193811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean *pMute 193911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 194011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetChannelSolo) ( 194111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMuteSoloItf self, 194211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint8 chan, 194311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean solo 194411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 194511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetChannelSolo) ( 194611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMuteSoloItf self, 194711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint8 chan, 194811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean *pSolo 194911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 195011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetNumChannels) ( 195111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMuteSoloItf self, 195211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint8 *pNumChannels 195311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 195411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 195511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 195611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 195711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 195811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Dynamic Interface Management Interface and associated types and macros */ 195911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* --------------------------------------------------------------------------*/ 196011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 196111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_DYNAMIC_ITF_EVENT_RUNTIME_ERROR ((SLuint32) 0x00000001) 196211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_DYNAMIC_ITF_EVENT_ASYNC_TERMINATION ((SLuint32) 0x00000002) 196311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_DYNAMIC_ITF_EVENT_RESOURCES_LOST ((SLuint32) 0x00000003) 196411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_DYNAMIC_ITF_EVENT_RESOURCES_LOST_PERMANENTLY ((SLuint32) 0x00000004) 196511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_DYNAMIC_ITF_EVENT_RESOURCES_AVAILABLE ((SLuint32) 0x00000005) 196611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 196711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 196811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 196911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 197011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_DYNAMICINTERFACEMANAGEMENT; 197111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 197211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLDynamicInterfaceManagementItf_; 197311cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLDynamicInterfaceManagementItf_ * const * SLDynamicInterfaceManagementItf; 197411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 197511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void (SLAPIENTRY *slDynamicInterfaceManagementCallback) ( 197611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLDynamicInterfaceManagementItf caller, 197711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pContext, 197811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 event, 197911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult result, 198011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLInterfaceID iid 198111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 198211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 198311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 198411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLDynamicInterfaceManagementItf_ { 198511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*AddInterface) ( 198611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLDynamicInterfaceManagementItf self, 198711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLInterfaceID iid, 198811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean async 198911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 199011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*RemoveInterface) ( 199111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLDynamicInterfaceManagementItf self, 199211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLInterfaceID iid 199311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 199411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*ResumeInterface) ( 199511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLDynamicInterfaceManagementItf self, 199611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLInterfaceID iid, 199711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean async 199811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 199911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*RegisterCallback) ( 200011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLDynamicInterfaceManagementItf self, 200111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert slDynamicInterfaceManagementCallback callback, 200211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pContext 200311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 200411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 200511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 200611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 200711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Midi Message Interface and associated types */ 200811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* --------------------------------------------------------------------------*/ 200911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 201011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_MIDIMESSAGETYPE_NOTE_ON_OFF ((SLuint32) 0x00000001) 201111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_MIDIMESSAGETYPE_POLY_PRESSURE ((SLuint32) 0x00000002) 201211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_MIDIMESSAGETYPE_CONTROL_CHANGE ((SLuint32) 0x00000003) 201311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_MIDIMESSAGETYPE_PROGRAM_CHANGE ((SLuint32) 0x00000004) 201411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_MIDIMESSAGETYPE_CHANNEL_PRESSURE ((SLuint32) 0x00000005) 201511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_MIDIMESSAGETYPE_PITCH_BEND ((SLuint32) 0x00000006) 201611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_MIDIMESSAGETYPE_SYSTEM_MESSAGE ((SLuint32) 0x00000007) 201711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 201811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 201911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_MIDIMESSAGE; 202011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 202111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLMIDIMessageItf_; 202211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLMIDIMessageItf_ * const * SLMIDIMessageItf; 202311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 202411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void (SLAPIENTRY *slMetaEventCallback) ( 202511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMIDIMessageItf caller, 202611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void *pContext, 202711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint8 type, 202811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 length, 202911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLuint8 *pData, 203011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 tick, 203111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint16 track 203211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 203311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 203411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void (SLAPIENTRY *slMIDIMessageCallback) ( 203511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMIDIMessageItf caller, 203611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void *pContext, 203711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint8 statusByte, 203811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 length, 203911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLuint8 *pData, 204011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 tick, 204111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint16 track 204211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 204311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 204411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLMIDIMessageItf_ { 204511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SendMessage) ( 204611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMIDIMessageItf self, 204711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLuint8 *data, 204811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 length 204911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 205011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*RegisterMetaEventCallback) ( 205111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMIDIMessageItf self, 205211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert slMetaEventCallback callback, 205311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void *pContext 205411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 205511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*RegisterMIDIMessageCallback) ( 205611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMIDIMessageItf self, 205711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert slMIDIMessageCallback callback, 205811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void *pContext 205911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 206011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*AddMIDIMessageCallbackFilter) ( 206111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMIDIMessageItf self, 206211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 messageType 206311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 206411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*ClearMIDIMessageCallbackFilter) ( 206511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMIDIMessageItf self 206611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 206711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 206811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 206911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 207011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 207111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Midi Mute Solo interface */ 207211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* --------------------------------------------------------------------------*/ 207311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 207411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 207511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_MIDIMUTESOLO; 207611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 207711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLMIDIMuteSoloItf_; 207811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLMIDIMuteSoloItf_ * const * SLMIDIMuteSoloItf; 207911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 208011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLMIDIMuteSoloItf_ { 208111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetChannelMute) ( 208211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMIDIMuteSoloItf self, 208311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint8 channel, 208411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean mute 208511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 208611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetChannelMute) ( 208711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMIDIMuteSoloItf self, 208811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint8 channel, 208911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean *pMute 209011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 209111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetChannelSolo) ( 209211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMIDIMuteSoloItf self, 209311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint8 channel, 209411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean solo 209511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 209611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetChannelSolo) ( 209711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMIDIMuteSoloItf self, 209811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint8 channel, 209911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean *pSolo 210011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 210111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetTrackCount) ( 210211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMIDIMuteSoloItf self, 210311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint16 *pCount 210411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 210511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetTrackMute) ( 210611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMIDIMuteSoloItf self, 210711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint16 track, 210811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean mute 210911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 211011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetTrackMute) ( 211111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMIDIMuteSoloItf self, 211211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint16 track, 211311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean *pMute 211411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 211511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetTrackSolo) ( 211611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMIDIMuteSoloItf self, 211711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint16 track, 211811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean solo 211911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 212011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetTrackSolo) ( 212111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMIDIMuteSoloItf self, 212211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint16 track, 212311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean *pSolo 212411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 212511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 212611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 212711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 212811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 212911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Midi Tempo interface */ 213011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* --------------------------------------------------------------------------*/ 213111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 213211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 213311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_MIDITEMPO; 213411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 213511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLMIDITempoItf_; 213611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLMIDITempoItf_ * const * SLMIDITempoItf; 213711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 213811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLMIDITempoItf_ { 213911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetTicksPerQuarterNote) ( 214011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMIDITempoItf self, 214111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 tpqn 214211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 214311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetTicksPerQuarterNote) ( 214411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMIDITempoItf self, 214511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pTpqn 214611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 214711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetMicrosecondsPerQuarterNote) ( 214811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMIDITempoItf self, 214911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmicrosecond uspqn 215011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 215111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetMicrosecondsPerQuarterNote) ( 215211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMIDITempoItf self, 215311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmicrosecond *uspqn 215411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 215511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 215611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 215711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 215811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 215911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Midi Time interface */ 216011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* --------------------------------------------------------------------------*/ 216111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 216211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 216311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_MIDITIME; 216411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 216511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLMIDITimeItf_; 216611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLMIDITimeItf_ * const * SLMIDITimeItf; 216711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 216811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLMIDITimeItf_ { 216911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetDuration) ( 217011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMIDITimeItf self, 217111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pDuration 217211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 217311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetPosition) ( 217411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMIDITimeItf self, 217511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 position 217611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 217711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetPosition) ( 217811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMIDITimeItf self, 217911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pPosition 218011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 218111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetLoopPoints) ( 218211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMIDITimeItf self, 218311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 startTick, 218411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 numTicks 218511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 218611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetLoopPoints) ( 218711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLMIDITimeItf self, 218811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pStartTick, 218911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pNumTicks 219011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 219111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 219211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 219311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 219411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 219511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Audio Decoder Capabilities Interface */ 219611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* --------------------------------------------------------------------------*/ 219711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 219811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*Audio Codec related defines*/ 219911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 220011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_RATECONTROLMODE_CONSTANTBITRATE ((SLuint32) 0x00000001) 220111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_RATECONTROLMODE_VARIABLEBITRATE ((SLuint32) 0x00000002) 220211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 220311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOCODEC_PCM ((SLuint32) 0x00000001) 220411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOCODEC_MP3 ((SLuint32) 0x00000002) 220511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOCODEC_AMR ((SLuint32) 0x00000003) 220611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOCODEC_AMRWB ((SLuint32) 0x00000004) 220711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOCODEC_AMRWBPLUS ((SLuint32) 0x00000005) 220811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOCODEC_AAC ((SLuint32) 0x00000006) 220911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOCODEC_WMA ((SLuint32) 0x00000007) 221011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOCODEC_REAL ((SLuint32) 0x00000008) 221111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 221211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOPROFILE_PCM ((SLuint32) 0x00000001) 221311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 221411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOPROFILE_MPEG1_L3 ((SLuint32) 0x00000001) 221511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOPROFILE_MPEG2_L3 ((SLuint32) 0x00000002) 221611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOPROFILE_MPEG25_L3 ((SLuint32) 0x00000003) 221711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 221811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOCHANMODE_MP3_MONO ((SLuint32) 0x00000001) 221911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOCHANMODE_MP3_STEREO ((SLuint32) 0x00000002) 222011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOCHANMODE_MP3_JOINTSTEREO ((SLuint32) 0x00000003) 222111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOCHANMODE_MP3_DUAL ((SLuint32) 0x00000004) 222211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 222311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOPROFILE_AMR ((SLuint32) 0x00000001) 222411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 222511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOSTREAMFORMAT_CONFORMANCE ((SLuint32) 0x00000001) 222611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOSTREAMFORMAT_IF1 ((SLuint32) 0x00000002) 222711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOSTREAMFORMAT_IF2 ((SLuint32) 0x00000003) 222811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOSTREAMFORMAT_FSF ((SLuint32) 0x00000004) 222911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOSTREAMFORMAT_RTPPAYLOAD ((SLuint32) 0x00000005) 223011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOSTREAMFORMAT_ITU ((SLuint32) 0x00000006) 223111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 223211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOPROFILE_AMRWB ((SLuint32) 0x00000001) 223311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 223411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOPROFILE_AMRWBPLUS ((SLuint32) 0x00000001) 223511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 223611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOPROFILE_AAC_AAC ((SLuint32) 0x00000001) 223711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 223811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOMODE_AAC_MAIN ((SLuint32) 0x00000001) 223911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOMODE_AAC_LC ((SLuint32) 0x00000002) 224011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOMODE_AAC_SSR ((SLuint32) 0x00000003) 224111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOMODE_AAC_LTP ((SLuint32) 0x00000004) 224211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOMODE_AAC_HE ((SLuint32) 0x00000005) 224311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOMODE_AAC_SCALABLE ((SLuint32) 0x00000006) 224411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOMODE_AAC_ERLC ((SLuint32) 0x00000007) 224511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOMODE_AAC_LD ((SLuint32) 0x00000008) 224611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOMODE_AAC_HE_PS ((SLuint32) 0x00000009) 224711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOMODE_AAC_HE_MPS ((SLuint32) 0x0000000A) 224811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 224911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOSTREAMFORMAT_MP2ADTS ((SLuint32) 0x00000001) 225011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOSTREAMFORMAT_MP4ADTS ((SLuint32) 0x00000002) 225111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOSTREAMFORMAT_MP4LOAS ((SLuint32) 0x00000003) 225211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOSTREAMFORMAT_MP4LATM ((SLuint32) 0x00000004) 225311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOSTREAMFORMAT_ADIF ((SLuint32) 0x00000005) 225411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOSTREAMFORMAT_MP4FF ((SLuint32) 0x00000006) 225511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOSTREAMFORMAT_RAW ((SLuint32) 0x00000007) 225611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 225711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOPROFILE_WMA7 ((SLuint32) 0x00000001) 225811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOPROFILE_WMA8 ((SLuint32) 0x00000002) 225911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOPROFILE_WMA9 ((SLuint32) 0x00000003) 226011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOPROFILE_WMA10 ((SLuint32) 0x00000004) 226111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 226211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOMODE_WMA_LEVEL1 ((SLuint32) 0x00000001) 226311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOMODE_WMA_LEVEL2 ((SLuint32) 0x00000002) 226411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOMODE_WMA_LEVEL3 ((SLuint32) 0x00000003) 226511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOMODE_WMA_LEVEL4 ((SLuint32) 0x00000004) 226611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOMODE_WMAPRO_LEVELM0 ((SLuint32) 0x00000005) 226711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOMODE_WMAPRO_LEVELM1 ((SLuint32) 0x00000006) 226811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOMODE_WMAPRO_LEVELM2 ((SLuint32) 0x00000007) 226911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOMODE_WMAPRO_LEVELM3 ((SLuint32) 0x00000008) 227011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 227111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOPROFILE_REALAUDIO ((SLuint32) 0x00000001) 227211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 227311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOMODE_REALAUDIO_G2 ((SLuint32) 0x00000001) 227411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOMODE_REALAUDIO_8 ((SLuint32) 0x00000002) 227511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOMODE_REALAUDIO_10 ((SLuint32) 0x00000003) 227611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_AUDIOMODE_REALAUDIO_SURROUND ((SLuint32) 0x00000004) 227711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 227811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct SLAudioCodecDescriptor_ { 227911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 maxChannels; 228011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 minBitsPerSample; 228111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 maxBitsPerSample; 228211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmilliHertz minSampleRate; 228311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmilliHertz maxSampleRate; 228411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean isFreqRangeContinuous; 228511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmilliHertz *pSampleRatesSupported; 228611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 numSampleRatesSupported; 228711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 minBitRate; 228811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 maxBitRate; 228911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean isBitrateRangeContinuous; 229011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pBitratesSupported; 229111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 numBitratesSupported; 229211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 profileSetting; 229311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 modeSetting; 229411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} SLAudioCodecDescriptor; 229511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 229611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*Structure used to retrieve the profile and level settings supported by an audio encoder */ 229711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 229811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct SLAudioCodecProfileMode_ { 229911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 profileSetting; 230011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 modeSetting; 230111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} SLAudioCodecProfileMode; 230211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 230311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_AUDIODECODERCAPABILITIES; 230411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 230511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLAudioDecoderCapabilitiesItf_; 230611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLAudioDecoderCapabilitiesItf_ * const * SLAudioDecoderCapabilitiesItf; 230711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 230811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLAudioDecoderCapabilitiesItf_ { 230911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetAudioDecoders) ( 231011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLAudioDecoderCapabilitiesItf self, 231111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 * pNumDecoders , 231211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pDecoderIds 231311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 231411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetAudioDecoderCapabilities) ( 231511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLAudioDecoderCapabilitiesItf self, 231611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 decoderId, 231711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pIndex, 231811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLAudioCodecDescriptor *pDescriptor 231911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 232011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 232111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 232211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 232311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 232411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 232511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 232611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Audio Encoder Capabilities Interface */ 232711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* --------------------------------------------------------------------------*/ 232811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 232911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Structure used when setting audio encoding parameters */ 233011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 233111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct SLAudioEncoderSettings_ { 233211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 encoderId; 233311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 channelsIn; 233411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 channelsOut; 233511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmilliHertz sampleRate; 233611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 bitRate; 233711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 bitsPerSample; 233811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 rateControl; 233911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 profileSetting; 234011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 levelSetting; 234111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 channelMode; 234211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 streamFormat; 234311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 encodeOptions; 234411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 blockAlignment; 234511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} SLAudioEncoderSettings; 234611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 234711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_AUDIOENCODERCAPABILITIES; 234811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 234911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLAudioEncoderCapabilitiesItf_; 235011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLAudioEncoderCapabilitiesItf_ * const * SLAudioEncoderCapabilitiesItf; 235111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 235211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLAudioEncoderCapabilitiesItf_ { 235311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetAudioEncoders) ( 235411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLAudioEncoderCapabilitiesItf self, 235511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pNumEncoders , 235611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pEncoderIds 235711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 235811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetAudioEncoderCapabilities) ( 235911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLAudioEncoderCapabilitiesItf self, 236011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 encoderId, 236111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pIndex, 236211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLAudioCodecDescriptor * pDescriptor 236311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 236411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 236511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 236611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 236711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 236811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Audio Encoder Interface */ 236911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* --------------------------------------------------------------------------*/ 237011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 237111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 237211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_AUDIOENCODER; 237311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 237411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLAudioEncoderItf_; 237511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLAudioEncoderItf_ * const * SLAudioEncoderItf; 237611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 237711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLAudioEncoderItf_ { 237811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetEncoderSettings) ( 237911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLAudioEncoderItf self, 238011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLAudioEncoderSettings *pSettings 238111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 238211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetEncoderSettings) ( 238311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLAudioEncoderItf self, 238411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLAudioEncoderSettings *pSettings 238511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 238611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 238711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 238811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 238911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 239011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Bass Boost Interface */ 239111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* --------------------------------------------------------------------------*/ 239211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 239311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 239411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_BASSBOOST; 239511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 239611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLBassBoostItf_; 239711cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLBassBoostItf_ * const * SLBassBoostItf; 239811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 239911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLBassBoostItf_ { 240011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetEnabled)( 240111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLBassBoostItf self, 240211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean enabled 240311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 240411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*IsEnabled)( 240511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLBassBoostItf self, 240611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean *pEnabled 240711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 240811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetStrength)( 240911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLBassBoostItf self, 241011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille strength 241111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 241211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetRoundedStrength)( 241311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLBassBoostItf self, 241411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille *pStrength 241511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 241611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*IsStrengthSupported)( 241711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLBassBoostItf self, 241811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean *pSupported 241911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 242011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 242111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 242211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 242311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Pitch Interface */ 242411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* --------------------------------------------------------------------------*/ 242511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 242611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 242711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_PITCH; 242811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 242911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLPitchItf_; 243011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLPitchItf_ * const * SLPitchItf; 243111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 243211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLPitchItf_ { 243311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetPitch) ( 243411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLPitchItf self, 243511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille pitch 243611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 243711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetPitch) ( 243811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLPitchItf self, 243911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille *pPitch 244011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 244111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetPitchCapabilities) ( 244211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLPitchItf self, 244311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille *pMinPitch, 244411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille *pMaxPitch 244511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 244611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 244711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 244811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 244911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 245011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Rate Pitch Interface */ 245111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* RatePitchItf is an interface for controlling the rate a sound is played */ 245211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* back. A change in rate will cause a change in pitch. */ 245311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* --------------------------------------------------------------------------*/ 245411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 245511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 245611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_RATEPITCH; 245711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 245811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLRatePitchItf_; 245911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLRatePitchItf_ * const * SLRatePitchItf; 246011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 246111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLRatePitchItf_ { 246211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetRate) ( 246311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLRatePitchItf self, 246411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille rate 246511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 246611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetRate) ( 246711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLRatePitchItf self, 246811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille *pRate 246911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 247011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetRatePitchCapabilities) ( 247111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLRatePitchItf self, 247211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille *pMinRate, 247311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille *pMaxRate 247411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 247511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 247611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 247711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 247811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 247911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Virtualizer Interface */ 248011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* --------------------------------------------------------------------------*/ 248111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 248211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 248311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_VIRTUALIZER; 248411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 248511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLVirtualizerItf_; 248611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLVirtualizerItf_ * const * SLVirtualizerItf; 248711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 248811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLVirtualizerItf_ { 248911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetEnabled)( 249011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLVirtualizerItf self, 249111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean enabled 249211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 249311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*IsEnabled)( 249411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLVirtualizerItf self, 249511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean *pEnabled 249611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 249711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*SetStrength)( 249811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLVirtualizerItf self, 249911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille strength 250011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 250111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetRoundedStrength)( 250211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLVirtualizerItf self, 250311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLpermille *pStrength 250411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 250511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*IsStrengthSupported)( 250611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLVirtualizerItf self, 250711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean *pSupported 250811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 250911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 251011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 251111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 251211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Visualization Interface */ 251311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* --------------------------------------------------------------------------*/ 251411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 251511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 251611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_VISUALIZATION; 251711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 251811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLVisualizationItf_; 251911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLVisualizationItf_ * const * SLVisualizationItf; 252011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 252111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void (SLAPIENTRY *slVisualizationCallback) ( 252211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void *pContext, 252311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLuint8 waveform[], 252411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLuint8 fft[], 252511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmilliHertz samplerate 252611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 252711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 252811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLVisualizationItf_{ 252911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*RegisterVisualizationCallback)( 253011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLVisualizationItf self, 253111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert slVisualizationCallback callback, 253211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void *pContext, 253311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmilliHertz rate 253411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 253511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*GetMaxRate)( 253611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLVisualizationItf self, 253711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLmilliHertz* pRate 253811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 253911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 254011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 254111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 254211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 254311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Engine Interface */ 254411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* --------------------------------------------------------------------------*/ 254511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 254611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 254711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_ENGINE; 254811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 254911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLEngineItf_; 255011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLEngineItf_ * const * SLEngineItf; 255111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 255211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 255311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLEngineItf_ { 255411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 255511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*CreateLEDDevice) ( 255611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEngineItf self, 255711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLObjectItf * pDevice, 255811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 deviceID, 255911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 numInterfaces, 256011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLInterfaceID * pInterfaceIds, 256111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLboolean * pInterfaceRequired 256211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 256311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*CreateVibraDevice) ( 256411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEngineItf self, 256511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLObjectItf * pDevice, 256611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 deviceID, 256711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 numInterfaces, 256811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLInterfaceID * pInterfaceIds, 256911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLboolean * pInterfaceRequired 257011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 257111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*CreateAudioPlayer) ( 257211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEngineItf self, 257311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLObjectItf * pPlayer, 257411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLDataSource *pAudioSrc, 257511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLDataSink *pAudioSnk, 257611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 numInterfaces, 257711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLInterfaceID * pInterfaceIds, 257811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLboolean * pInterfaceRequired 257911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 258011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*CreateAudioRecorder) ( 258111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEngineItf self, 258211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLObjectItf * pRecorder, 258311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLDataSource *pAudioSrc, 258411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLDataSink *pAudioSnk, 258511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 numInterfaces, 258611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLInterfaceID * pInterfaceIds, 258711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLboolean * pInterfaceRequired 258811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 258911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*CreateMidiPlayer) ( 259011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEngineItf self, 259111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLObjectItf * pPlayer, 259211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLDataSource *pMIDISrc, 259311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLDataSource *pBankSrc, 259411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLDataSink *pAudioOutput, 259511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLDataSink *pVibra, 259611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLDataSink *pLEDArray, 259711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 numInterfaces, 259811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLInterfaceID * pInterfaceIds, 259911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLboolean * pInterfaceRequired 260011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 260111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*CreateListener) ( 260211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEngineItf self, 260311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLObjectItf * pListener, 260411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 numInterfaces, 260511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLInterfaceID * pInterfaceIds, 260611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLboolean * pInterfaceRequired 260711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 260811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*Create3DGroup) ( 260911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEngineItf self, 261011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLObjectItf * pGroup, 261111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 numInterfaces, 261211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLInterfaceID * pInterfaceIds, 261311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLboolean * pInterfaceRequired 261411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 261511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*CreateOutputMix) ( 261611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEngineItf self, 261711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLObjectItf * pMix, 261811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 numInterfaces, 261911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLInterfaceID * pInterfaceIds, 262011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLboolean * pInterfaceRequired 262111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 262211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*CreateMetadataExtractor) ( 262311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEngineItf self, 262411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLObjectItf * pMetadataExtractor, 262511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLDataSource * pDataSource, 262611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 numInterfaces, 262711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLInterfaceID * pInterfaceIds, 262811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLboolean * pInterfaceRequired 262911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 263011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*CreateExtensionObject) ( 263111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEngineItf self, 263211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLObjectItf * pObject, 263311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void * pParameters, 263411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 objectID, 263511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 numInterfaces, 263611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLInterfaceID * pInterfaceIds, 263711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLboolean * pInterfaceRequired 263811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 263911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*QueryNumSupportedInterfaces) ( 264011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEngineItf self, 264111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 objectID, 264211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 * pNumSupportedInterfaces 264311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 264411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*QuerySupportedInterfaces) ( 264511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEngineItf self, 264611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 objectID, 264711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 index, 264811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLInterfaceID * pInterfaceId 264911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 265011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*QueryNumSupportedExtensions) ( 265111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEngineItf self, 265211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 * pNumExtensions 265311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 265411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*QuerySupportedExtension) ( 265511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEngineItf self, 265611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 index, 265711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLchar * pExtensionName, 265811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint16 * pNameLength 265911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 266011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*IsExtensionSupported) ( 266111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEngineItf self, 266211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLchar * pExtensionName, 266311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean * pSupported 266411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 266511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 266611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 266711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 266811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 266911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Engine Capabilities Interface */ 267011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* --------------------------------------------------------------------------*/ 267111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 267211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 267311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_ENGINECAPABILITIES; 267411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 267511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLEngineCapabilitiesItf_; 267611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLEngineCapabilitiesItf_ * const * SLEngineCapabilitiesItf; 267711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 267811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLEngineCapabilitiesItf_ { 267911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*QuerySupportedProfiles) ( 268011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEngineCapabilitiesItf self, 268111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint16 *pProfilesSupported 268211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 268311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*QueryAvailableVoices) ( 268411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEngineCapabilitiesItf self, 268511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint16 voiceType, 268611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint16 *pNumMaxVoices, 268711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean *pIsAbsoluteMax, 268811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint16 *pNumFreeVoices 268911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 269011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*QueryNumberOfMIDISynthesizers) ( 269111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEngineCapabilitiesItf self, 269211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint16 *pNumMIDIsynthesizers 269311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 269411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*QueryAPIVersion) ( 269511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEngineCapabilitiesItf self, 269611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint16 *pMajor, 269711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint16 *pMinor, 269811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLint16 *pStep 269911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 270011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*QueryLEDCapabilities) ( 270111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEngineCapabilitiesItf self, 270211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pIndex, 270311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pLEDDeviceID, 270411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLLEDDescriptor *pDescriptor 270511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 270611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*QueryVibraCapabilities) ( 270711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEngineCapabilitiesItf self, 270811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pIndex, 270911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 *pVibraDeviceID, 271011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLVibraDescriptor *pDescriptor 271111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 271211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*IsThreadSafe) ( 271311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLEngineCapabilitiesItf self, 271411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLboolean *pIsThreadSafe 271511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 271611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 271711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 271811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*---------------------------------------------------------------------------*/ 271911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Thread Sync Interface */ 272011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* --------------------------------------------------------------------------*/ 272111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 272211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 272311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern SL_API const SLInterfaceID SL_IID_THREADSYNC; 272411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 272511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLThreadSyncItf_; 272611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef const struct SLThreadSyncItf_ * const * SLThreadSyncItf; 272711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 272811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 272911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct SLThreadSyncItf_ { 273011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*EnterCriticalSection) ( 273111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLThreadSyncItf self 273211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 273311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLresult (*ExitCriticalSection) ( 273411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLThreadSyncItf self 273511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ); 273611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 273711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 273811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 273911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*****************************************************************************/ 274011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* SL engine constructor */ 274111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*****************************************************************************/ 274211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 274311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_ENGINEOPTION_THREADSAFE ((SLuint32) 0x00000001) 274411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SL_ENGINEOPTION_LOSSOFCONTROL ((SLuint32) 0x00000002) 274511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 274611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct SLEngineOption_ { 274711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 feature; 274811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 data; 274911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} SLEngineOption; 275011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 275111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 275211cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertSL_API SLresult SLAPIENTRY slCreateEngine( 275311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLObjectItf *pEngine, 275411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 numOptions, 275511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLEngineOption *pEngineOptions, 275611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 numInterfaces, 275711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLInterfaceID *pInterfaceIds, 275811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const SLboolean * pInterfaceRequired 275911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 276011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 276111cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertSL_API SLresult SLAPIENTRY slQueryNumSupportedEngineInterfaces( 276211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 * pNumSupportedInterfaces 276311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 276411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 276511cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertSL_API SLresult SLAPIENTRY slQuerySupportedEngineInterfaces( 276611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLuint32 index, 276711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert SLInterfaceID * pInterfaceId 276811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert); 276911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 277011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __cplusplus 277111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} /* extern "C" */ 277211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 277311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 277411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif /* OPENSL_ES_H_ */ 2775