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