140d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten/* 240d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten * Copyright (C) 2010 The Android Open Source Project 340d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten * 440d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten * Licensed under the Apache License, Version 2.0 (the "License"); 540d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten * you may not use this file except in compliance with the License. 640d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten * You may obtain a copy of the License at 740d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten * 840d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten * http://www.apache.org/licenses/LICENSE-2.0 940d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten * 1040d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten * Unless required by applicable law or agreed to in writing, software 1140d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten * distributed under the License is distributed on an "AS IS" BASIS, 1240d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1340d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten * See the License for the specific language governing permissions and 1440d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten * limitations under the License. 1540d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten */ 16bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten 17bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#ifndef __MPH_H 18bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define __MPH_H 19bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten 20bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten// Minimal perfect hash for each interface ID 21bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten 22e5bf0d2c9531a7064eb3ddcafaf93ac1b0974037Glenn Kasten#define MPH_NONE (-1) 23e5d006b298ce7683d66f7ec86136403cf5fb20d6Glenn Kasten#define MPH_MIN 0 24e5bf0d2c9531a7064eb3ddcafaf93ac1b0974037Glenn Kasten 25b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten// OpenSL ES 1.0.1 interfaces 26bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_3DCOMMIT 0 27bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_3DDOPPLER 1 28bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_3DGROUPING 2 29bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_3DLOCATION 3 30bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_3DMACROSCOPIC 4 31bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_3DSOURCE 5 32bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_AUDIODECODERCAPABILITIES 6 33bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_AUDIOENCODER 7 34bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_AUDIOENCODERCAPABILITIES 8 35bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_AUDIOIODEVICECAPABILITIES 9 36bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_BASSBOOST 10 37bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_BUFFERQUEUE 11 38bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_DEVICEVOLUME 12 39bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_DYNAMICINTERFACEMANAGEMENT 13 40bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_DYNAMICSOURCE 14 41bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_EFFECTSEND 15 42bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_ENGINE 16 43bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_ENGINECAPABILITIES 17 44bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_ENVIRONMENTALREVERB 18 45bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_EQUALIZER 19 46bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_LED 20 47bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_METADATAEXTRACTION 21 48bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_METADATATRAVERSAL 22 49bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_MIDIMESSAGE 23 50bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_MIDIMUTESOLO 24 51bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_MIDITEMPO 25 52bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_MIDITIME 26 53bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_MUTESOLO 27 54a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_NULL 28 // shared by SL and XA 55bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_OBJECT 29 56bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_OUTPUTMIX 30 57bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_PITCH 31 58bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_PLAY 32 59bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_PLAYBACKRATE 33 60bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_PREFETCHSTATUS 34 61bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_PRESETREVERB 35 62bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_RATEPITCH 36 63bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_RECORD 37 64bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_SEEK 38 65bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_THREADSYNC 39 66bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_VIBRA 40 67bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_VIRTUALIZER 41 68bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_VISUALIZATION 42 69bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#define MPH_VOLUME 43 70bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten 71b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten// Wilhelm desktop extended interfaces 72a438eb1cf1ae602afab00336528dd230bd929206Glenn Kasten#define MPH_OUTPUTMIXEXT 44 73a438eb1cf1ae602afab00336528dd230bd929206Glenn Kasten 74b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten// Android API level 9 extended interfaces 75a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten// GUID and MPH are shared by SL and XA, but currently documented for SL only 76453dd564a81fe98b7a947ae4a9844a53fa957c2bJean-Michel Trivi#define MPH_ANDROIDEFFECT 45 77453dd564a81fe98b7a947ae4a9844a53fa957c2bJean-Michel Trivi#define MPH_ANDROIDEFFECTCAPABILITIES 46 78453dd564a81fe98b7a947ae4a9844a53fa957c2bJean-Michel Trivi#define MPH_ANDROIDEFFECTSEND 47 79453dd564a81fe98b7a947ae4a9844a53fa957c2bJean-Michel Trivi#define MPH_ANDROIDCONFIGURATION 48 8001e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten#define MPH_ANDROIDSIMPLEBUFFERQUEUE 49 81b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten 82a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten// Android API level 12 extended interfaces 83a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten// GUID and MPH are shared by SL and XA, but currently documented for XA only 8460ca9f9ef02f6e486c3338cb811f603dd7825c05Glenn Kasten#define MPH_ANDROIDBUFFERQUEUESOURCE 50 8505ccff2aaa3e1507cdc7ab3b244c973c6708e009Jean-Michel Trivi 86a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten// OpenMAX AL 1.0.1 interfaces 87a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XAAUDIODECODERCAPABILITIES 51 88a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XAAUDIOENCODER 52 89a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XAAUDIOENCODERCAPABILITIES 53 90a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XAAUDIOIODEVICECAPABILITIES 54 91a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XACAMERA 55 92a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XACAMERACAPABILITIES 56 93a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XACONFIGEXTENSION 57 94a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XADEVICEVOLUME 58 95a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XADYNAMICINTERFACEMANAGEMENT 59 96a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XADYNAMICSOURCE 60 97a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XAENGINE 61 98a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XAEQUALIZER 62 99a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XAIMAGECONTROLS 63 100a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XAIMAGEDECODERCAPABILITIES 64 101a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XAIMAGEEFFECTS 65 102a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XAIMAGEENCODER 66 103a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XAIMAGEENCODERCAPABILITIES 67 104a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XALED 68 105a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XAMETADATAEXTRACTION 69 106a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XAMETADATAINSERTION 70 107a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XAMETADATATRAVERSAL 71 108a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XANULL MPH_NULL 109a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XAOBJECT 72 110a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XAOUTPUTMIX 73 111a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XAPLAY 74 112a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XAPLAYBACKRATE 75 113a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XAPREFETCHSTATUS 76 114a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XARADIO 77 115a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XARDS 78 116a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XARECORD 79 117a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XASEEK 80 118a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XASNAPSHOT 81 119a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XASTREAMINFORMATION 82 120a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XATHREADSYNC 83 121a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XAVIBRA 84 122a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XAVIDEODECODERCAPABILITIES 85 123a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XAVIDEOENCODER 86 124a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XAVIDEOENCODERCAPABILITIES 87 125a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XAVIDEOPOSTPROCESSING 88 126a361b51914aeb5f8f65c7ecad719d1e01f90913bGlenn Kasten#define MPH_XAVOLUME 89 1278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten 128f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean// Android API level 20 extended interfaces 129f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean#define MPH_ANDROIDACOUSTICECHOCANCELLATION 90 130f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean#define MPH_ANDROIDAUTOMATICGAINCONTROL 91 131f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean#define MPH_ANDROIDNOISESUPPRESSION 92 132f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean 133b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten// total number of interface IDs 134f8b3141926967ba37d315cc8d3956d7214958e6bPaul McLean#define MPH_MAX 93 135bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten 136bd3cb772fc94c5baf0d1fe1a63693b33ca5fe9e3Glenn Kasten#endif // !defined(__MPH_H) 137