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