/* * 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 <SLES/OpenSLES.h> #include "MPH.h" #include <assert.h> #include <string.h> 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 250 static const unsigned char asso_values[] = { 251, 22, 251, 87, 251, 251, 0, 251, 37, 17, 251, 12, 4, 251, 251, 95, 251, 251, 251, 251, 102, 251, 17, 251, 251, 85, 251, 251, 251, 7, 251, 115, 251, 251, 251, 251, 251, 251, 7, 2, 251, 251, 15, 2, 87, 122, 15, 251, 251, 122, 251, 251, 251, 70, 251, 50, 251, 251, 32, 251, 251, 7, 251, 47, 2, 251, 52, 12, 47, 2, 251, 25, 251, 67, 251, 85, 32, 25, 251, 251, 2, 251, 251, 251, 2, 251, 2, 251, 251, 251, 2, 251, 251, 2, 251, 251, 251, 12, 105, 125, 251, 125, 251, 251, 2, 251, 12, 120, 251, 10, 75, 2, 2, 251, 251, 120, 115, 251, 251, 251, 110, 120, 10, 110, 251, 251, 251, 105, 15, 251, 5, 50, 251, 251, 251, 251, 251, 100, 251, 251, 120, 2, 251, 95, 251, 251, 251, 125, 2, 251, 251, 90, 251, 251, 90, 251, 0, 251, 90, 251, 251, 251, 251, 75, 100, 2, 251, 100, 80, 251, 110, 251, 251, 70, 80, 75, 115, 22, 50, 75, 90, 251, 251, 251, 65, 65, 251, 60, 65, 251, 251, 251, 60, 5, 55, 55, 105, 5, 50, 45, 65, 251, 251, 251, 55, 45, 45, 251, 45, 30, 40, 251, 65, 55, 251, 75, 251, 30, 75, 45, 251, 80, 25, 251, 251, 20, 251, 20, 2, 251, 251, 50, 251, 251, 251, 60, 110, 17, 20, 30, 251, 45, 0, 85, 20, 251, 120, 251, 251, 251, 251, 251, 251, 35, 40, 60 }; static const signed char hash_to_MPH[] = { MPH_BASSBOOST, -1, MPH_BUFFERQUEUE, -1, MPH_XAVIDEOENCODERCAPABILITIES, MPH_XAIMAGEENCODERCAPABILITIES, -1, MPH_XAOBJECT, -1, MPH_VISUALIZATION, MPH_DYNAMICSOURCE, -1, MPH_XAAUDIOIODEVICECAPABILITIES, -1, MPH_MIDITIME, MPH_RECORD, -1, MPH_3DLOCATION, -1, MPH_VIBRA, MPH_XAEQUALIZER, -1, MPH_ANDROIDEFFECTCAPABILITIES, -1, MPH_EQUALIZER, MPH_XACONFIGEXTENSION, -1, MPH_RATEPITCH, -1, MPH_XAAUDIODECODERCAPABILITIES, MPH_PLAYBACKRATE, -1, MPH_XALED, -1, MPH_VOLUME, MPH_PREFETCHSTATUS, -1, MPH_XAMETADATAEXTRACTION, -1, MPH_XAVOLUME, MPH_XAIMAGECONTROLS, -1, MPH_EFFECTSEND, -1, MPH_XACAMERACAPABILITIES, MPH_DEVICEVOLUME, -1, MPH_XAVIDEOENCODER, -1, -1, MPH_ANDROIDACOUSTICECHOCANCELLATION, -1, MPH_XAOUTPUTMIX, -1, -1, MPH_XASNAPSHOT, -1, MPH_ENGINE, -1, -1, MPH_PLAY, -1, MPH_MUTESOLO, -1, -1, MPH_PITCH, -1, MPH_XADYNAMICSOURCE, -1, -1, MPH_XACAMERA, -1, MPH_XAVIBRA, -1, -1, MPH_AUDIOIODEVICECAPABILITIES, -1, MPH_XADYNAMICINTERFACEMANAGEMENT, -1, -1, MPH_XAVIDEODECODERCAPABILITIES, -1, MPH_3DMACROSCOPIC, -1, -1, MPH_OUTPUTMIXEXT, -1, MPH_XADEVICEVOLUME, -1, -1, MPH_XAIMAGEENCODER, -1, MPH_XAMETADATAINSERTION, -1, -1, MPH_ENGINECAPABILITIES, -1, MPH_XAENGINE, -1, -1, MPH_XAAUDIOENCODERCAPABILITIES, -1, MPH_XAVIDEOPOSTPROCESSING, -1, -1, MPH_XAIMAGEDECODERCAPABILITIES, -1, MPH_3DGROUPING, -1, -1, MPH_ENVIRONMENTALREVERB, -1, MPH_3DSOURCE, -1, -1, MPH_XAPREFETCHSTATUS, -1, MPH_XARDS, -1, -1, MPH_ANDROIDNOISESUPPRESSION, -1, MPH_AUDIODECODERCAPABILITIES, -1, -1, MPH_XAAUDIOENCODER, -1, MPH_XASTREAMINFORMATION, -1, -1, MPH_XAIMAGEEFFECTS, -1, MPH_LED, -1, -1, MPH_SEEK, -1, MPH_VIRTUALIZER, -1, -1, MPH_3DCOMMIT, -1, MPH_XASEEK, -1, -1, MPH_XARADIO, -1, MPH_PRESETREVERB, -1, -1, MPH_AUDIOENCODER, -1, MPH_ANDROIDSIMPLEBUFFERQUEUE, -1, -1, MPH_ANDROIDEFFECT, -1, MPH_XAPLAYBACKRATE, -1, -1, MPH_MIDIMESSAGE, -1, MPH_MIDIMUTESOLO, -1, -1, MPH_ANDROIDAUTOMATICGAINCONTROL, -1, -1, -1, -1, MPH_AUDIOENCODERCAPABILITIES, -1, -1, -1, -1, MPH_XATHREADSYNC, -1, -1, -1, -1, MPH_3DDOPPLER, -1, -1, -1, -1, MPH_OUTPUTMIX, -1, -1, -1, -1, MPH_XAPLAY, -1, -1, -1, -1, MPH_XARECORD, -1, -1, -1, -1, MPH_ANDROIDCONFIGURATION, -1, -1, -1, -1, MPH_ANDROIDBUFFERQUEUESOURCE, -1, -1, -1, -1, MPH_METADATATRAVERSAL, -1, -1, -1, -1, MPH_ANDROIDEFFECTSEND, -1, -1, -1, -1, MPH_NULL, -1, -1, -1, -1, MPH_METADATAEXTRACTION, -1, -1, -1, -1, MPH_MIDITEMPO, -1, -1, -1, -1, MPH_XAMETADATATRAVERSAL, -1, -1, -1, -1, MPH_THREADSYNC, -1, -1, -1, -1, MPH_OBJECT, -1, -1, -1, -1, MPH_DYNAMICINTERFACEMANAGEMENT }; 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)[3]] + asso_values[((unsigned char *)iid)[1]]; 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; }