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