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