Home | History | Annotate | Download | only in autogen
      1 /*
      2  * Copyright (C) 2010 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 // This file is automagically generated by hashgen, do not edit
     18 
     19 /** \file IID_to_MPH.c Interface ID to MPH mapping */
     20 
     21 #include <SLES/OpenSLES.h>
     22 #include "MPH.h"
     23 #include <assert.h>
     24 #include <string.h>
     25 
     26 extern const struct SLInterfaceID_ SL_IID_array[MPH_MAX];
     27 
     28 /** \brief Map SLInterfaceID to its minimal perfect hash (MPH), or -1 if unknown */
     29 
     30 int IID_to_MPH(const SLInterfaceID iid)
     31 {
     32 #define MAX_HASH_VALUE 250
     33   static const unsigned char asso_values[] =
     34     {
     35       251,  22, 251,  87, 251, 251,   0, 251,  37,  17,
     36       251,  12,   4, 251, 251,  95, 251, 251, 251, 251,
     37       102, 251,  17, 251, 251,  85, 251, 251, 251,   7,
     38       251, 115, 251, 251, 251, 251, 251, 251,   7,   2,
     39       251, 251,  15,   2,  87, 122,  15, 251, 251, 122,
     40       251, 251, 251,  70, 251,  50, 251, 251,  32, 251,
     41       251,   7, 251,  47,   2, 251,  52,  12,  47,   2,
     42       251,  25, 251,  67, 251,  85,  32,  25, 251, 251,
     43         2, 251, 251, 251,   2, 251,   2, 251, 251, 251,
     44         2, 251, 251,   2, 251, 251, 251,  12, 105, 125,
     45       251, 125, 251, 251,   2, 251,  12, 120, 251,  10,
     46        75,   2,   2, 251, 251, 120, 115, 251, 251, 251,
     47       110, 120,  10, 110, 251, 251, 251, 105,  15, 251,
     48         5,  50, 251, 251, 251, 251, 251, 100, 251, 251,
     49       120,   2, 251,  95, 251, 251, 251, 125,   2, 251,
     50       251,  90, 251, 251,  90, 251,   0, 251,  90, 251,
     51       251, 251, 251,  75, 100,   2, 251, 100,  80, 251,
     52       110, 251, 251,  70,  80,  75, 115,  22,  50,  75,
     53        90, 251, 251, 251,  65,  65, 251,  60,  65, 251,
     54       251, 251,  60,   5,  55,  55, 105,   5,  50,  45,
     55        65, 251, 251, 251,  55,  45,  45, 251,  45,  30,
     56        40, 251,  65,  55, 251,  75, 251,  30,  75,  45,
     57       251,  80,  25, 251, 251,  20, 251,  20,   2, 251,
     58       251,  50, 251, 251, 251,  60, 110,  17,  20,  30,
     59       251,  45,   0,  85,  20, 251, 120, 251, 251, 251,
     60       251, 251, 251,  35,  40,  60
     61     };
     62     static const signed char hash_to_MPH[] = {
     63         MPH_BASSBOOST,
     64         -1,
     65         MPH_BUFFERQUEUE,
     66         -1,
     67         MPH_XAVIDEOENCODERCAPABILITIES,
     68         MPH_XAIMAGEENCODERCAPABILITIES,
     69         -1,
     70         MPH_XAOBJECT,
     71         -1,
     72         MPH_VISUALIZATION,
     73         MPH_DYNAMICSOURCE,
     74         -1,
     75         MPH_XAAUDIOIODEVICECAPABILITIES,
     76         -1,
     77         MPH_MIDITIME,
     78         MPH_RECORD,
     79         -1,
     80         MPH_3DLOCATION,
     81         -1,
     82         MPH_VIBRA,
     83         MPH_XAEQUALIZER,
     84         -1,
     85         MPH_ANDROIDEFFECTCAPABILITIES,
     86         -1,
     87         MPH_EQUALIZER,
     88         MPH_XACONFIGEXTENSION,
     89         -1,
     90         MPH_RATEPITCH,
     91         -1,
     92         MPH_XAAUDIODECODERCAPABILITIES,
     93         MPH_PLAYBACKRATE,
     94         -1,
     95         MPH_XALED,
     96         -1,
     97         MPH_VOLUME,
     98         MPH_PREFETCHSTATUS,
     99         -1,
    100         MPH_XAMETADATAEXTRACTION,
    101         -1,
    102         MPH_XAVOLUME,
    103         MPH_XAIMAGECONTROLS,
    104         -1,
    105         MPH_EFFECTSEND,
    106         -1,
    107         MPH_XACAMERACAPABILITIES,
    108         MPH_DEVICEVOLUME,
    109         -1,
    110         MPH_XAVIDEOENCODER,
    111         -1,
    112         -1,
    113         MPH_ANDROIDACOUSTICECHOCANCELLATION,
    114         -1,
    115         MPH_XAOUTPUTMIX,
    116         -1,
    117         -1,
    118         MPH_XASNAPSHOT,
    119         -1,
    120         MPH_ENGINE,
    121         -1,
    122         -1,
    123         MPH_PLAY,
    124         -1,
    125         MPH_MUTESOLO,
    126         -1,
    127         -1,
    128         MPH_PITCH,
    129         -1,
    130         MPH_XADYNAMICSOURCE,
    131         -1,
    132         -1,
    133         MPH_XACAMERA,
    134         -1,
    135         MPH_XAVIBRA,
    136         -1,
    137         -1,
    138         MPH_AUDIOIODEVICECAPABILITIES,
    139         -1,
    140         MPH_XADYNAMICINTERFACEMANAGEMENT,
    141         -1,
    142         -1,
    143         MPH_XAVIDEODECODERCAPABILITIES,
    144         -1,
    145         MPH_3DMACROSCOPIC,
    146         -1,
    147         -1,
    148         MPH_OUTPUTMIXEXT,
    149         -1,
    150         MPH_XADEVICEVOLUME,
    151         -1,
    152         -1,
    153         MPH_XAIMAGEENCODER,
    154         -1,
    155         MPH_XAMETADATAINSERTION,
    156         -1,
    157         -1,
    158         MPH_ENGINECAPABILITIES,
    159         -1,
    160         MPH_XAENGINE,
    161         -1,
    162         -1,
    163         MPH_XAAUDIOENCODERCAPABILITIES,
    164         -1,
    165         MPH_XAVIDEOPOSTPROCESSING,
    166         -1,
    167         -1,
    168         MPH_XAIMAGEDECODERCAPABILITIES,
    169         -1,
    170         MPH_3DGROUPING,
    171         -1,
    172         -1,
    173         MPH_ENVIRONMENTALREVERB,
    174         -1,
    175         MPH_3DSOURCE,
    176         -1,
    177         -1,
    178         MPH_XAPREFETCHSTATUS,
    179         -1,
    180         MPH_XARDS,
    181         -1,
    182         -1,
    183         MPH_ANDROIDNOISESUPPRESSION,
    184         -1,
    185         MPH_AUDIODECODERCAPABILITIES,
    186         -1,
    187         -1,
    188         MPH_XAAUDIOENCODER,
    189         -1,
    190         MPH_XASTREAMINFORMATION,
    191         -1,
    192         -1,
    193         MPH_XAIMAGEEFFECTS,
    194         -1,
    195         MPH_LED,
    196         -1,
    197         -1,
    198         MPH_SEEK,
    199         -1,
    200         MPH_VIRTUALIZER,
    201         -1,
    202         -1,
    203         MPH_3DCOMMIT,
    204         -1,
    205         MPH_XASEEK,
    206         -1,
    207         -1,
    208         MPH_XARADIO,
    209         -1,
    210         MPH_PRESETREVERB,
    211         -1,
    212         -1,
    213         MPH_AUDIOENCODER,
    214         -1,
    215         MPH_ANDROIDSIMPLEBUFFERQUEUE,
    216         -1,
    217         -1,
    218         MPH_ANDROIDEFFECT,
    219         -1,
    220         MPH_XAPLAYBACKRATE,
    221         -1,
    222         -1,
    223         MPH_MIDIMESSAGE,
    224         -1,
    225         MPH_MIDIMUTESOLO,
    226         -1,
    227         -1,
    228         MPH_ANDROIDAUTOMATICGAINCONTROL,
    229         -1,
    230         -1,
    231         -1,
    232         -1,
    233         MPH_AUDIOENCODERCAPABILITIES,
    234         -1,
    235         -1,
    236         -1,
    237         -1,
    238         MPH_XATHREADSYNC,
    239         -1,
    240         -1,
    241         -1,
    242         -1,
    243         MPH_3DDOPPLER,
    244         -1,
    245         -1,
    246         -1,
    247         -1,
    248         MPH_OUTPUTMIX,
    249         -1,
    250         -1,
    251         -1,
    252         -1,
    253         MPH_XAPLAY,
    254         -1,
    255         -1,
    256         -1,
    257         -1,
    258         MPH_XARECORD,
    259         -1,
    260         -1,
    261         -1,
    262         -1,
    263         MPH_ANDROIDCONFIGURATION,
    264         -1,
    265         -1,
    266         -1,
    267         -1,
    268         MPH_ANDROIDBUFFERQUEUESOURCE,
    269         -1,
    270         -1,
    271         -1,
    272         -1,
    273         MPH_METADATATRAVERSAL,
    274         -1,
    275         -1,
    276         -1,
    277         -1,
    278         MPH_ANDROIDEFFECTSEND,
    279         -1,
    280         -1,
    281         -1,
    282         -1,
    283         MPH_NULL,
    284         -1,
    285         -1,
    286         -1,
    287         -1,
    288         MPH_METADATAEXTRACTION,
    289         -1,
    290         -1,
    291         -1,
    292         -1,
    293         MPH_MIDITEMPO,
    294         -1,
    295         -1,
    296         -1,
    297         -1,
    298         MPH_XAMETADATATRAVERSAL,
    299         -1,
    300         -1,
    301         -1,
    302         -1,
    303         MPH_THREADSYNC,
    304         -1,
    305         -1,
    306         -1,
    307         -1,
    308         MPH_OBJECT,
    309         -1,
    310         -1,
    311         -1,
    312         -1,
    313         MPH_DYNAMICINTERFACEMANAGEMENT
    314     };
    315     if (&SL_IID_array[0] <= iid && &SL_IID_array[MPH_MAX] > iid)
    316         return iid - &SL_IID_array[0];
    317     if (NULL != iid) {
    318         unsigned key = asso_values[((unsigned char *)iid)[3]] +
    319             asso_values[((unsigned char *)iid)[1]];
    320         if (key <= MAX_HASH_VALUE) {
    321             int MPH = hash_to_MPH[key];
    322             if (MPH >= 0) {
    323                 assert(MPH < MPH_MAX);
    324                 SLInterfaceID trial = &SL_IID_array[MPH];
    325                 if (!memcmp(iid, trial, sizeof(struct SLInterfaceID_)))
    326                     return MPH;
    327             }
    328         }
    329     }
    330     return -1;
    331 }
    332