/* * 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. */ // This file is automagically generated by hashgen, do not edit /** \file IID_to_MPH.c Interface ID to MPH mapping */ #include #include "MPH.h" #include #include extern const struct SLInterfaceID_ SL_IID_array[MPH_MAX]; /** \brief Map SLInterfaceID to its minimal perfect hash (MPH), or -1 if unknown */ int IID_to_MPH(const SLInterfaceID iid) { #define MAX_HASH_VALUE 180 static const unsigned char asso_values[] = { 35, 20, 79, 99, 181, 181, 74, 181, 181, 181, 181, 181, 181, 181, 84, 181, 79, 59, 181, 181, 181, 181, 54, 181, 69, 39, 181, 181, 29, 181, 181, 85, 5, 181, 181, 181, 181, 181, 49, 181, 24, 181, 181, 181, 14, 181, 117, 181, 181, 181, 181, 181, 9, 181, 181, 181, 181, 181, 14, 100, 181, 9, 24, 181, 50, 181, 181, 181, 181, 127, 181, 181, 107, 85, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 127, 181, 19, 181, 181, 181, 9, 181, 181, 181, 25, 122, 14, 107, 181, 181, 181, 181, 181, 181, 181, 4, 181, 102, 181, 181, 0, 181, 4, 97, 122, 181, 72, 45, 181, 181, 105, 181, 181, 181, 87, 181, 30, 181, 181, 181, 181, 181, 181, 107, 125, 181, 181, 181, 181, 181, 80, 82, 181, 77, 181, 120, 181, 181, 181, 181, 181, 97, 181, 181, 87, 181, 181, 65, 5, 181, 57, 181, 181, 82, 115, 181, 181, 52, 181, 72, 55, 181, 181, 62, 181, 45, 181, 181, 181, 181, 32, 181, 32, 30, 181, 181, 181, 181, 181, 181, 0, 181, 181, 181, 110, 47, 181, 181, 181, 181, 181, 181, 181, 181, 120, 181, 181, 181, 100, 47, 181, 181, 181, 37, 181, 181, 2, 181, 181, 181, 181, 27, 10, 181, 181, 27, 181, 181, 181, 181, 181, 181, 22, 181, 75, 181, 181, 181, 10, 12, 181, 181, 70, 181, 7, 7, 181, 181, 181, 105, 2, 125, 181, 181 }; static const signed char hash_to_MPH[] = { MPH_ANDROIDEFFECTSEND, -1, MPH_XADYNAMICINTERFACEMANAGEMENT, -1, MPH_XAAUDIODECODERCAPABILITIES, MPH_XALED, -1, MPH_BASSBOOST, -1, MPH_XAOUTPUTMIX, MPH_MIDITIME, -1, MPH_RECORD, -1, MPH_AUDIOIODEVICECAPABILITIES, MPH_MUTESOLO, -1, MPH_VOLUME, -1, MPH_ANDROIDCONFIGURATION, MPH_XASNAPSHOT, -1, MPH_XAIMAGECONTROLS, -1, MPH_SEEK, MPH_3DLOCATION, -1, MPH_XATHREADSYNC, -1, MPH_XAIMAGEDECODERCAPABILITIES, MPH_XACAMERACAPABILITIES, -1, MPH_XAVOLUME, -1, MPH_VIBRA, MPH_XAIMAGEEFFECTS, -1, MPH_XAPLAY, -1, MPH_PRESETREVERB, MPH_XAOBJECT, -1, MPH_XACONFIGEXTENSION, -1, MPH_EQUALIZER, MPH_XAVIBRA, -1, MPH_3DMACROSCOPIC, -1, MPH_PITCH, MPH_ENGINECAPABILITIES, -1, MPH_XAMETADATAEXTRACTION, -1, MPH_3DDOPPLER, MPH_XAVIDEODECODERCAPABILITIES, -1, MPH_RATEPITCH, -1, MPH_ANDROIDAUTOMATICGAINCONTROL, MPH_AUDIODECODERCAPABILITIES, -1, MPH_XARADIO, -1, MPH_OUTPUTMIXEXT, MPH_ENVIRONMENTALREVERB, -1, MPH_XAVIDEOPOSTPROCESSING, -1, MPH_3DCOMMIT, MPH_OUTPUTMIX, -1, MPH_METADATATRAVERSAL, -1, MPH_XASEEK, MPH_XASTREAMINFORMATION, -1, MPH_DEVICEVOLUME, -1, MPH_OBJECT, MPH_VIRTUALIZER, -1, MPH_XARDS, -1, MPH_XAVIDEOENCODER, MPH_PLAY, -1, MPH_XADYNAMICSOURCE, -1, MPH_3DGROUPING, MPH_XAVIDEOENCODERCAPABILITIES, -1, MPH_XAPREFETCHSTATUS, -1, MPH_XAMETADATATRAVERSAL, MPH_XAEQUALIZER, -1, MPH_BUFFERQUEUE, -1, MPH_ANDROIDBUFFERQUEUESOURCE, MPH_XARECORD, -1, MPH_XAMETADATAINSERTION, -1, MPH_XADEVICEVOLUME, MPH_ANDROIDNOISESUPPRESSION, -1, MPH_ENGINE, -1, MPH_MIDIMUTESOLO, MPH_METADATAEXTRACTION, -1, MPH_XACAMERA, -1, -1, MPH_PREFETCHSTATUS, -1, MPH_LED, -1, -1, MPH_XAAUDIOENCODER, -1, MPH_XAENGINE, -1, -1, MPH_ANDROIDEFFECTCAPABILITIES, -1, MPH_MIDIMESSAGE, -1, -1, MPH_VISUALIZATION, -1, MPH_3DSOURCE, -1, -1, MPH_PLAYBACKRATE, -1, MPH_XAAUDIOENCODERCAPABILITIES, -1, -1, MPH_EFFECTSEND, -1, MPH_XAAUDIOIODEVICECAPABILITIES, -1, -1, MPH_NULL, -1, MPH_ANDROIDACOUSTICECHOCANCELLATION, -1, -1, MPH_XAIMAGEENCODERCAPABILITIES, -1, MPH_ANDROIDEFFECT, -1, -1, MPH_MIDITEMPO, -1, MPH_XAPLAYBACKRATE, -1, -1, MPH_DYNAMICINTERFACEMANAGEMENT, -1, MPH_DYNAMICSOURCE, -1, -1, MPH_ANDROIDSIMPLEBUFFERQUEUE, -1, MPH_THREADSYNC, -1, -1, MPH_AUDIOENCODERCAPABILITIES, -1, -1, -1, -1, MPH_XAIMAGEENCODER, -1, -1, -1, -1, MPH_AUDIOENCODER }; if (&SL_IID_array[0] <= iid && &SL_IID_array[MPH_MAX] > iid) return iid - &SL_IID_array[0]; if (NULL != iid) { unsigned key = asso_values[((unsigned char *)iid)[8]] + asso_values[((unsigned char *)iid)[0]]; if (key <= MAX_HASH_VALUE) { int MPH = hash_to_MPH[key]; if (MPH >= 0) { assert(MPH < MPH_MAX); SLInterfaceID trial = &SL_IID_array[MPH]; if (!memcmp(iid, trial, sizeof(struct SLInterfaceID_))) return MPH; } } } return -1; }