IID_to_MPH.c revision 94a37e8117fb72790882dfb815f99e2365754c74
140d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten/* 240d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten * Copyright (C) 2010 The Android Open Source Project 340d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten * 440d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten * Licensed under the Apache License, Version 2.0 (the "License"); 540d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten * you may not use this file except in compliance with the License. 640d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten * You may obtain a copy of the License at 740d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten * 840d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten * http://www.apache.org/licenses/LICENSE-2.0 940d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten * 1040d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten * Unless required by applicable law or agreed to in writing, software 1140d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten * distributed under the License is distributed on an "AS IS" BASIS, 1240d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1340d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten * See the License for the specific language governing permissions and 1440d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten * limitations under the License. 1540d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten */ 1640d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten 17b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten// This file is automagically generated by hashgen, do not edit 18b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten 19369f3138f19f7102bf0f98b890ab84c8df633a93Glenn Kasten/** \file IID_to_MPH.c Interface ID to MPH mapping */ 2040d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten 21ee21d26b4b66d0f19b826685b3070497523994d5Glenn Kasten#include "SLES/OpenSLES.h" 2240d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten#include "MPH.h" 2340d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten#include <assert.h> 2440d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten#include <string.h> 2540d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten 2640d1c40832a448e23d0bb37512aee53222575c2eGlenn Kastenextern const struct SLInterfaceID_ SL_IID_array[MPH_MAX]; 2740d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten 28369f3138f19f7102bf0f98b890ab84c8df633a93Glenn Kasten/** \brief Map SLInterfaceID to its minimal perfect hash (MPH), or -1 if unknown */ 29369f3138f19f7102bf0f98b890ab84c8df633a93Glenn Kasten 3040d1c40832a448e23d0bb37512aee53222575c2eGlenn Kastenint IID_to_MPH(const SLInterfaceID iid) 3140d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten{ 3240d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten#define MAX_HASH_VALUE 115 3340d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten static const unsigned char asso_values[] = 3440d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten { 3594a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten 5, 116, 116, 2, 116, 116, 7, 116, 116, 12, 3694a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten 116, 17, 116, 116, 116, 51, 116, 116, 116, 116, 378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten 116, 116, 2, 116, 116, 46, 116, 116, 116, 116, 3894a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten 116, 12, 25, 116, 116, 116, 116, 116, 116, 116, 398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten 116, 116, 51, 20, 46, 116, 31, 116, 116, 116, 408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten 116, 116, 116, 36, 116, 2, 116, 116, 116, 116, 4194a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten 116, 61, 116, 2, 55, 116, 116, 116, 116, 16, 4294a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten 116, 26, 116, 116, 116, 116, 116, 116, 116, 116, 4394a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten 16, 116, 116, 116, 116, 116, 26, 116, 116, 116, 4494a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten 11, 116, 116, 116, 116, 116, 40, 21, 116, 60, 4594a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten 116, 116, 116, 116, 116, 116, 16, 116, 116, 116, 4640d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten 116, 116, 1, 116, 116, 116, 116, 116, 116, 116, 4794a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten 116, 11, 55, 1, 116, 116, 116, 6, 45, 116, 48453dd564a81fe98b7a947ae4a9844a53fa957c2bJean-Michel Trivi 116, 1, 116, 116, 116, 116, 116, 1, 116, 116, 4994a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten 116, 1, 116, 116, 116, 116, 116, 116, 116, 116, 50acc29e37cfb74983fe79bb8f968d23cb6851d33aGlenn Kasten 116, 60, 116, 116, 116, 116, 116, 116, 116, 116, 5140d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten 10, 116, 116, 116, 116, 116, 116, 116, 116, 116, 5294a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten 50, 116, 116, 116, 45, 116, 116, 116, 55, 116, 5394a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten 45, 116, 116, 116, 116, 116, 116, 116, 116, 116, 5494a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten 116, 116, 20, 116, 35, 116, 45, 10, 116, 55, 5540d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 5694a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten 116, 116, 45, 116, 116, 50, 116, 116, 116, 116, 5794a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten 116, 25, 116, 116, 15, 40, 116, 116, 15, 116, 5894a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten 116, 116, 116, 116, 116, 15, 0, 116, 116, 15, 5994a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten 35, 116, 116, 116, 116, 116, 55, 116, 116, 116, 6040d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten 116, 116, 116, 116, 0, 116 6140d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten }; 6240d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten static const signed char hash_to_MPH[] = { 6340d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten MPH_NULL, 6440d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 6540d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 6640d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 6740d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 6840d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten MPH_OUTPUTMIXEXT, 6940d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten MPH_3DSOURCE, 70acc29e37cfb74983fe79bb8f968d23cb6851d33aGlenn Kasten MPH_VIRTUALIZER, 7140d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 7240d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 7394a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten MPH_XAPLAY, 74a438eb1cf1ae602afab00336528dd230bd929206Glenn Kasten MPH_ENGINECAPABILITIES, 7594a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten MPH_AUDIODECODERCAPABILITIES, 7694a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten -1, 7794a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten -1, 7894a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten MPH_DYNAMICSOURCE, 7994a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten MPH_ANDROIDCONFIGURATION, 80acc29e37cfb74983fe79bb8f968d23cb6851d33aGlenn Kasten MPH_MIDITEMPO, 8140d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 8240d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 8340d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten MPH_RECORD, 8494a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten MPH_ANDROIDEFFECTSEND, 85acc29e37cfb74983fe79bb8f968d23cb6851d33aGlenn Kasten MPH_EQUALIZER, 8640d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 8740d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 8840d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten MPH_VISUALIZATION, 8994a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten MPH_MUTESOLO, 90acc29e37cfb74983fe79bb8f968d23cb6851d33aGlenn Kasten MPH_VOLUME, 9140d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 9240d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 9340d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten MPH_3DGROUPING, 9494a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten MPH_EFFECTSEND, 95acc29e37cfb74983fe79bb8f968d23cb6851d33aGlenn Kasten MPH_BASSBOOST, 9640d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 9740d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 98a438eb1cf1ae602afab00336528dd230bd929206Glenn Kasten MPH_PLAY, 9994a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten MPH_3DMACROSCOPIC, 10040d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 10140d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 10240d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 10340d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten MPH_BUFFERQUEUE, 10494a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten MPH_ENGINE, 10594a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten MPH_VIBRA, 10640d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 10740d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 10840d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten MPH_3DLOCATION, 109fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1Jean-Michel Trivi MPH_ANDROIDBUFFERQUEUE, 11094a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten MPH_MIDIMUTESOLO, 11140d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 11240d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 11340d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten MPH_MIDIMESSAGE, 114b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten MPH_OBJECT, 11594a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten -1, 11640d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 11740d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 11840d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten MPH_SEEK, 119b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten MPH_ANDROIDEFFECTCAPABILITIES, 12040d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 12140d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 12240d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 12340d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten MPH_PITCH, 124b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten MPH_RATEPITCH, 12540d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 12640d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 12740d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 12840d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten MPH_METADATATRAVERSAL, 129b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten MPH_PRESETREVERB, 13040d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 13140d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 13240d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 13340d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten MPH_ENVIRONMENTALREVERB, 1348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten MPH_XAENGINE, 13540d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 13640d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 13740d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 13840d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten MPH_AUDIOIODEVICECAPABILITIES, 1398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten MPH_MIDITIME, 14040d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 14140d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 14240d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 14394a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten MPH_DEVICEVOLUME, 1448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten MPH_3DCOMMIT, 14540d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 14640d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 14740d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 14894a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten MPH_ANDROIDEFFECT, 1498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten MPH_PLAYBACKRATE, 15040d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 15140d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 15240d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 15394a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten MPH_3DDOPPLER, 1548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten MPH_LED, 15540d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 15640d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 15740d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 15894a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten MPH_METADATAEXTRACTION, 1598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten MPH_PREFETCHSTATUS, 16040d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 16140d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 16240d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 16394a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten MPH_OUTPUTMIX, 1648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten MPH_ANDROIDSIMPLEBUFFERQUEUE, 16540d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 16640d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 16740d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 168a438eb1cf1ae602afab00336528dd230bd929206Glenn Kasten MPH_AUDIOENCODER, 169b0ab2dee391dd2cb257faeaba252ee6ecccc5f03Glenn Kasten MPH_AUDIOENCODERCAPABILITIES, 17040d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 17140d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 17240d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 17340d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten MPH_THREADSYNC, 17440d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 17540d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 17640d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 17740d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten -1, 17840d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten MPH_DYNAMICINTERFACEMANAGEMENT 17940d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten }; 18040d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten if (&SL_IID_array[0] <= iid && &SL_IID_array[MPH_MAX] > iid) 18140d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten return iid - &SL_IID_array[0]; 18240d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten if (NULL != iid) { 18301e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten unsigned key = asso_values[((unsigned char *)iid)[3]] + 18401e9f5fa4698856f92bcfd88188ee4c8397b22dbGlenn Kasten asso_values[((unsigned char *)iid)[0]]; 18540d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten if (key <= MAX_HASH_VALUE) { 18640d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten int MPH = hash_to_MPH[key]; 18740d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten if (MPH >= 0) { 18840d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten assert(MPH < MPH_MAX); 18940d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten SLInterfaceID trial = &SL_IID_array[MPH]; 19040d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten if (!memcmp(iid, trial, sizeof(struct SLInterfaceID_))) 19140d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten return MPH; 19240d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten } 19340d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten } 19440d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten } 19540d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten return -1; 19640d1c40832a448e23d0bb37512aee53222575c2eGlenn Kasten} 197