| /* |
| * 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 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; |
| } |