17e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten/* 27e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten * Copyright (C) 2010 The Android Open Source Project 37e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten * 47e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten * Licensed under the Apache License, Version 2.0 (the "License"); 57e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten * you may not use this file except in compliance with the License. 67e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten * You may obtain a copy of the License at 77e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten * 87e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten * http://www.apache.org/licenses/LICENSE-2.0 97e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten * 107e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten * Unless required by applicable law or agreed to in writing, software 117e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten * distributed under the License is distributed on an "AS IS" BASIS, 127e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten * See the License for the specific language governing permissions and 147e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten * limitations under the License. 157e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten */ 167e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten 173be625f40588941aa23e35fed5cb693ddc9718daGlenn Kasten// This file is automagically generated by hashgen, do not edit 183be625f40588941aa23e35fed5cb693ddc9718daGlenn Kasten 1910ee2bc6119445f4339ecef998c40c9cc95057cdGlenn Kasten/** \file IID_to_MPH.c Interface ID to MPH mapping */ 207e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten 21b2052cfccffa54e3785d289e379041ed2df328a5Glenn Kasten#include <SLES/OpenSLES.h> 227e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten#include "MPH.h" 237e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten#include <assert.h> 247e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten#include <string.h> 257e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten 267e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kastenextern const struct SLInterfaceID_ SL_IID_array[MPH_MAX]; 277e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten 2810ee2bc6119445f4339ecef998c40c9cc95057cdGlenn Kasten/** \brief Map SLInterfaceID to its minimal perfect hash (MPH), or -1 if unknown */ 2910ee2bc6119445f4339ecef998c40c9cc95057cdGlenn Kasten 307e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kastenint IID_to_MPH(const SLInterfaceID iid) 317e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten{ 32b2052cfccffa54e3785d289e379041ed2df328a5Glenn Kasten#define MAX_HASH_VALUE 180 337e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten static const unsigned char asso_values[] = 347e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten { 35b2052cfccffa54e3785d289e379041ed2df328a5Glenn Kasten 35, 20, 54, 84, 181, 181, 59, 181, 181, 181, 36b2052cfccffa54e3785d289e379041ed2df328a5Glenn Kasten 181, 181, 181, 181, 69, 181, 64, 44, 181, 181, 37b2052cfccffa54e3785d289e379041ed2df328a5Glenn Kasten 181, 181, 39, 181, 54, 14, 181, 181, 14, 181, 38b2052cfccffa54e3785d289e379041ed2df328a5Glenn Kasten 181, 125, 5, 181, 181, 181, 181, 181, 181, 181, 39b2052cfccffa54e3785d289e379041ed2df328a5Glenn Kasten 127, 181, 181, 181, 9, 181, 112, 181, 181, 181, 40b2052cfccffa54e3785d289e379041ed2df328a5Glenn Kasten 181, 181, 122, 181, 181, 181, 181, 181, 14, 100, 41b2052cfccffa54e3785d289e379041ed2df328a5Glenn Kasten 181, 9, 24, 181, 50, 181, 181, 181, 181, 117, 42b2052cfccffa54e3785d289e379041ed2df328a5Glenn Kasten 181, 181, 97, 85, 181, 181, 181, 181, 181, 181, 43b2052cfccffa54e3785d289e379041ed2df328a5Glenn Kasten 181, 181, 181, 181, 181, 181, 117, 181, 19, 181, 44b2052cfccffa54e3785d289e379041ed2df328a5Glenn Kasten 181, 181, 9, 181, 181, 181, 25, 181, 14, 102, 45b2052cfccffa54e3785d289e379041ed2df328a5Glenn Kasten 181, 181, 181, 181, 181, 181, 181, 4, 181, 97, 46b2052cfccffa54e3785d289e379041ed2df328a5Glenn Kasten 181, 181, 0, 181, 4, 92, 117, 181, 67, 45, 47b2052cfccffa54e3785d289e379041ed2df328a5Glenn Kasten 181, 181, 110, 181, 181, 181, 72, 181, 40, 181, 48b2052cfccffa54e3785d289e379041ed2df328a5Glenn Kasten 181, 181, 181, 181, 181, 102, 52, 181, 181, 181, 49b2052cfccffa54e3785d289e379041ed2df328a5Glenn Kasten 181, 181, 57, 67, 181, 62, 181, 125, 181, 181, 50b2052cfccffa54e3785d289e379041ed2df328a5Glenn Kasten 181, 181, 181, 82, 181, 181, 72, 181, 181, 65, 51b2052cfccffa54e3785d289e379041ed2df328a5Glenn Kasten 5, 181, 32, 181, 181, 67, 120, 181, 181, 37, 52b2052cfccffa54e3785d289e379041ed2df328a5Glenn Kasten 181, 57, 55, 181, 181, 47, 181, 45, 181, 181, 53b2052cfccffa54e3785d289e379041ed2df328a5Glenn Kasten 181, 181, 7, 181, 17, 30, 181, 181, 181, 181, 54b2052cfccffa54e3785d289e379041ed2df328a5Glenn Kasten 181, 181, 0, 181, 181, 181, 105, 32, 181, 181, 55b2052cfccffa54e3785d289e379041ed2df328a5Glenn Kasten 181, 181, 181, 181, 181, 181, 115, 181, 181, 181, 56b2052cfccffa54e3785d289e379041ed2df328a5Glenn Kasten 95, 32, 181, 181, 181, 22, 181, 181, 2, 181, 57b2052cfccffa54e3785d289e379041ed2df328a5Glenn Kasten 181, 181, 181, 12, 10, 181, 181, 12, 181, 181, 58b2052cfccffa54e3785d289e379041ed2df328a5Glenn Kasten 181, 181, 181, 181, 2, 181, 70, 181, 181, 181, 59b2052cfccffa54e3785d289e379041ed2df328a5Glenn Kasten 10, 2, 181, 181, 70, 181, 120, 115, 181, 181, 60b2052cfccffa54e3785d289e379041ed2df328a5Glenn Kasten 181, 80, 105, 100, 181, 181 617e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten }; 627e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten static const signed char hash_to_MPH[] = { 63e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_ANDROIDEFFECTSEND, 647e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 65e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XADYNAMICINTERFACEMANAGEMENT, 667e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 67e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XAAUDIODECODERCAPABILITIES, 68e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XALED, 697e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 70e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XATHREADSYNC, 717e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 72e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XAOUTPUTMIX, 73e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_MIDITIME, 747e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 75e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XAIMAGECONTROLS, 767e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 77e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_AUDIOIODEVICECAPABILITIES, 78e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_MUTESOLO, 79da97f083b47fa4442a40ad962ed86a922a537a64Glenn Kasten -1, 80e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XAVOLUME, 81da97f083b47fa4442a40ad962ed86a922a537a64Glenn Kasten -1, 82da97f083b47fa4442a40ad962ed86a922a537a64Glenn Kasten MPH_ANDROIDCONFIGURATION, 83e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XASNAPSHOT, 847e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 85e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XAPLAY, 867e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 87e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_SEEK, 88e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_3DLOCATION, 897e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 90e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XACONFIGEXTENSION, 917e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 92e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XAIMAGEDECODERCAPABILITIES, 93e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XACAMERACAPABILITIES, 947e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 95e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_3DMACROSCOPIC, 967e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 97e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_VIBRA, 98e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XAIMAGEEFFECTS, 997e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 100e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XAMETADATAEXTRACTION, 1017e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 102e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_PRESETREVERB, 103e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XAOBJECT, 1047e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 105e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_RATEPITCH, 1067e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 107e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_PITCH, 108e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XAVIBRA, 1097e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 110e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XARADIO, 1117e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 112e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_OUTPUTMIXEXT, 113e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_ENGINECAPABILITIES, 1147e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 115e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XAVIDEOPOSTPROCESSING, 116e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten -1, 117e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_3DCOMMIT, 118e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XAVIDEODECODERCAPABILITIES, 119e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten -1, 120e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_METADATATRAVERSAL, 121e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten -1, 122e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XASEEK, 123e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_AUDIODECODERCAPABILITIES, 124e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten -1, 125e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_DEVICEVOLUME, 1267e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 1273be625f40588941aa23e35fed5cb693ddc9718daGlenn Kasten MPH_OBJECT, 128e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_ENVIRONMENTALREVERB, 129e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten -1, 130e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XARDS, 131e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten -1, 132e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XAVIDEOENCODER, 133e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_OUTPUTMIX, 134e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten -1, 135e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XADYNAMICSOURCE, 136e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten -1, 137e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_3DGROUPING, 138e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XASTREAMINFORMATION, 139e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten -1, 140e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XAPREFETCHSTATUS, 141e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten -1, 142e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XAMETADATATRAVERSAL, 143e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_VIRTUALIZER, 144e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten -1, 145e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_BUFFERQUEUE, 146e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten -1, 147c3d6dd225415ac68b1868575e793eb352c7105e2Glenn Kasten MPH_ANDROIDBUFFERQUEUESOURCE, 148e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_PLAY, 149e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten -1, 150e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XAMETADATAINSERTION, 151e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten -1, 152e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XADEVICEVOLUME, 153e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XAVIDEOENCODERCAPABILITIES, 154e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten -1, 155e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_ENGINE, 156e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten -1, 157fcc996296bdbf6c3949ad4312991fdde4ae2e157Jean-Michel Trivi MPH_MIDIMUTESOLO, 158e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XAEQUALIZER, 1597e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 160e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_METADATAEXTRACTION, 1617e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 1627e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 163e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XARECORD, 1647e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 165e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XAIMAGEENCODER, 1667e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 1677e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 168e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_VISUALIZATION, 1697e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 170e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XACAMERA, 1717e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 1727e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 173e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_BASSBOOST, 174e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten -1, 175e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_LED, 1767e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 1777e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 178e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_EFFECTSEND, 179e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten -1, 180a930d729ff2249eaa0b45a5e61c70bebad45f698Glenn Kasten MPH_XAENGINE, 1817e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 1827e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 183e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_RECORD, 1847e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 185e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_MIDIMESSAGE, 1867e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 1877e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 188e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_ANDROIDEFFECTCAPABILITIES, 189e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten -1, 190e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_3DSOURCE, 1917e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 1927e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 193e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_VOLUME, 194e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten -1, 195e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XAAUDIOENCODERCAPABILITIES, 1967e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 1977e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 198a930d729ff2249eaa0b45a5e61c70bebad45f698Glenn Kasten MPH_PLAYBACKRATE, 1997e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 200e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XAAUDIOIODEVICECAPABILITIES, 2017e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 2027e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 203e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_NULL, 2047e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 205e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_ANDROIDEFFECT, 2067e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 2077e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 208e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XAIMAGEENCODERCAPABILITIES, 2097e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 210e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XAPLAYBACKRATE, 2117e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 2127e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 213e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_MIDITEMPO, 2147e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 215e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_DYNAMICSOURCE, 2167e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 2177e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 218e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_DYNAMICINTERFACEMANAGEMENT, 219e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten -1, 220e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_EQUALIZER, 2217e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 2227e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 223e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_XAAUDIOENCODER, 2247e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 2257e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten MPH_THREADSYNC, 2267e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 2277e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 228e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_PREFETCHSTATUS, 229e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten -1, 230e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_3DDOPPLER, 231e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten -1, 232e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten -1, 233e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_ANDROIDSIMPLEBUFFERQUEUE, 234e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten -1, 235e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten -1, 236e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten -1, 237e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten -1, 238e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_AUDIOENCODERCAPABILITIES, 239e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten -1, 240e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten -1, 2417e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 2427e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten -1, 243e155630f0eb0fc1bb6a8fbe218c517e7bf82eaebGlenn Kasten MPH_AUDIOENCODER 2447e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten }; 2457e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten if (&SL_IID_array[0] <= iid && &SL_IID_array[MPH_MAX] > iid) 2467e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten return iid - &SL_IID_array[0]; 2477e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten if (NULL != iid) { 248fcc996296bdbf6c3949ad4312991fdde4ae2e157Jean-Michel Trivi static const unsigned len = sizeof(struct SLInterfaceID_); 249b2052cfccffa54e3785d289e379041ed2df328a5Glenn Kasten unsigned key = asso_values[((unsigned char *)iid)[8]] + 250b2052cfccffa54e3785d289e379041ed2df328a5Glenn Kasten asso_values[((unsigned char *)iid)[0]]; 2517e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten if (key <= MAX_HASH_VALUE) { 2527e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten int MPH = hash_to_MPH[key]; 2537e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten if (MPH >= 0) { 2547e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten assert(MPH < MPH_MAX); 2557e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten SLInterfaceID trial = &SL_IID_array[MPH]; 2567e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten if (!memcmp(iid, trial, sizeof(struct SLInterfaceID_))) 2577e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten return MPH; 2587e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten } 2597e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten } 2607e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten } 2617e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten return -1; 2627e5dd9fa6ab032d7eeaac79bee4370a133eda8c2Glenn Kasten} 263