1/* ANSI-C code produced by gperf version 3.0.4 */
2/* Command-line: gperf dmap_fields.gperf  */
3/* Computed positions: -k'2,8,10,14,18,23' */
4
5#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
6      && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
7      && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
8      && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
9      && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
10      && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
11      && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
12      && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
13      && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
14      && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
15      && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
16      && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
17      && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
18      && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
19      && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
20      && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
21      && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
22      && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
23      && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
24      && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
25      && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
26      && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
27      && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
28/* The character set is not based on ISO-646.  */
29#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
30#endif
31
32#line 13 "dmap_fields.gperf"
33
34/* Non-static fields are exported by dmap_common.h */
35static const struct dmap_field_map dfm_dmap_miid = { dbmfi_offsetof(id),                      dbpli_offsetof(id),            -1 };
36static const struct dmap_field_map dfm_dmap_minm = { dbmfi_offsetof(title),                   dbpli_offsetof(title),         dbgri_offsetof(itemname) };
37static const struct dmap_field_map dfm_dmap_mikd = { dbmfi_offsetof(item_kind),               -1,                            -1 };
38static const struct dmap_field_map dfm_dmap_mper = { dbmfi_offsetof(id),                      dbpli_offsetof(id),            dbgri_offsetof(persistentid) };
39static const struct dmap_field_map dfm_dmap_mcon = { -1,                                      -1,                            -1 };
40static const struct dmap_field_map dfm_dmap_mcti = { dbmfi_offsetof(id),                      -1,                            -1 };
41static const struct dmap_field_map dfm_dmap_mpco = { -1,                                      -1,                            -1 };
42static const struct dmap_field_map dfm_dmap_mstt = { -1,                                      -1,                            -1 };
43static const struct dmap_field_map dfm_dmap_msts = { -1,                                      -1,                            -1 };
44const struct dmap_field_map dfm_dmap_mimc = { dbmfi_offsetof(total_tracks),            dbpli_offsetof(items),         dbgri_offsetof(itemcount) };
45static const struct dmap_field_map dfm_dmap_mctc = { -1,                                      -1,                            -1 };
46static const struct dmap_field_map dfm_dmap_mrco = { -1,                                      -1,                            -1 };
47static const struct dmap_field_map dfm_dmap_mtco = { -1,                                      -1,                            -1 };
48static const struct dmap_field_map dfm_dmap_mlcl = { -1,                                      -1,                            -1 };
49static const struct dmap_field_map dfm_dmap_mlit = { -1,                                      -1,                            -1 };
50static const struct dmap_field_map dfm_dmap_mbcl = { -1,                                      -1,                            -1 };
51static const struct dmap_field_map dfm_dmap_mdcl = { -1,                                      -1,                            -1 };
52static const struct dmap_field_map dfm_dmap_msrv = { -1,                                      -1,                            -1 };
53static const struct dmap_field_map dfm_dmap_msau = { -1,                                      -1,                            -1 };
54static const struct dmap_field_map dfm_dmap_mslr = { -1,                                      -1,                            -1 };
55static const struct dmap_field_map dfm_dmap_mpro = { -1,                                      -1,                            -1 };
56static const struct dmap_field_map dfm_dmap_msal = { -1,                                      -1,                            -1 };
57static const struct dmap_field_map dfm_dmap_msup = { -1,                                      -1,                            -1 };
58static const struct dmap_field_map dfm_dmap_mspi = { -1,                                      -1,                            -1 };
59static const struct dmap_field_map dfm_dmap_msex = { -1,                                      -1,                            -1 };
60static const struct dmap_field_map dfm_dmap_msbr = { -1,                                      -1,                            -1 };
61static const struct dmap_field_map dfm_dmap_msqy = { -1,                                      -1,                            -1 };
62static const struct dmap_field_map dfm_dmap_msix = { -1,                                      -1,                            -1 };
63static const struct dmap_field_map dfm_dmap_msrs = { -1,                                      -1,                            -1 };
64static const struct dmap_field_map dfm_dmap_mstm = { -1,                                      -1,                            -1 };
65static const struct dmap_field_map dfm_dmap_msdc = { -1,                                      -1,                            -1 };
66static const struct dmap_field_map dfm_dmap_mlog = { -1,                                      -1,                            -1 };
67static const struct dmap_field_map dfm_dmap_mlid = { -1,                                      -1,                            -1 };
68static const struct dmap_field_map dfm_dmap_mupd = { -1,                                      -1,                            -1 };
69static const struct dmap_field_map dfm_dmap_musr = { -1,                                      -1,                            -1 };
70static const struct dmap_field_map dfm_dmap_muty = { -1,                                      -1,                            -1 };
71static const struct dmap_field_map dfm_dmap_mudl = { -1,                                      -1,                            -1 };
72static const struct dmap_field_map dfm_dmap_mccr = { -1,                                      -1,                            -1 };
73static const struct dmap_field_map dfm_dmap_mcnm = { -1,                                      -1,                            -1 };
74static const struct dmap_field_map dfm_dmap_mcna = { -1,                                      -1,                            -1 };
75static const struct dmap_field_map dfm_dmap_mcty = { -1,                                      -1,                            -1 };
76static const struct dmap_field_map dfm_dmap_apro = { -1,                                      -1,                            -1 };
77static const struct dmap_field_map dfm_dmap_avdb = { -1,                                      -1,                            -1 };
78static const struct dmap_field_map dfm_dmap_abro = { -1,                                      -1,                            -1 };
79static const struct dmap_field_map dfm_dmap_abal = { -1,                                      -1,                            -1 };
80static const struct dmap_field_map dfm_dmap_abar = { -1,                                      -1,                            -1 };
81static const struct dmap_field_map dfm_dmap_abcp = { -1,                                      -1,                            -1 };
82static const struct dmap_field_map dfm_dmap_abgn = { -1,                                      -1,                            -1 };
83static const struct dmap_field_map dfm_dmap_adbs = { -1,                                      -1,                            -1 };
84static const struct dmap_field_map dfm_dmap_asal = { dbmfi_offsetof(album),                   -1,                            -1 };
85static const struct dmap_field_map dfm_dmap_asai = { dbmfi_offsetof(songalbumid),             -1,                            -1 };
86static const struct dmap_field_map dfm_dmap_asaa = { dbmfi_offsetof(album_artist),            -1,                            dbgri_offsetof(songalbumartist) };
87static const struct dmap_field_map dfm_dmap_asar = { dbmfi_offsetof(artist),                  -1,                            -1 };
88static const struct dmap_field_map dfm_dmap_asbt = { dbmfi_offsetof(bpm),                     -1,                            -1 };
89static const struct dmap_field_map dfm_dmap_asbr = { dbmfi_offsetof(bitrate),                 -1,                            -1 };
90static const struct dmap_field_map dfm_dmap_ascm = { dbmfi_offsetof(comment),                 -1,                            -1 };
91static const struct dmap_field_map dfm_dmap_asco = { dbmfi_offsetof(compilation),             -1,                            -1 };
92static const struct dmap_field_map dfm_dmap_ascp = { dbmfi_offsetof(composer),                -1,                            -1 };
93static const struct dmap_field_map dfm_dmap_asda = { dbmfi_offsetof(time_added),              -1,                            -1 };
94static const struct dmap_field_map dfm_dmap_asdm = { dbmfi_offsetof(time_modified),           -1,                            -1 };
95static const struct dmap_field_map dfm_dmap_asdc = { dbmfi_offsetof(total_discs),             -1,                            -1 };
96static const struct dmap_field_map dfm_dmap_asdn = { dbmfi_offsetof(disc),                    -1,                            -1 };
97static const struct dmap_field_map dfm_dmap_asdb = { dbmfi_offsetof(disabled),                -1,                            -1 };
98static const struct dmap_field_map dfm_dmap_aseq = { -1,                                      -1,                            -1 };
99static const struct dmap_field_map dfm_dmap_asfm = { dbmfi_offsetof(type),                    -1,                            -1 };
100static const struct dmap_field_map dfm_dmap_asgn = { dbmfi_offsetof(genre),                   -1,                            -1 };
101static const struct dmap_field_map dfm_dmap_asdt = { dbmfi_offsetof(description),             -1,                            -1 };
102static const struct dmap_field_map dfm_dmap_asrv = { -1,                                      -1,                            -1 };
103static const struct dmap_field_map dfm_dmap_assr = { dbmfi_offsetof(samplerate),              -1,                            -1 };
104static const struct dmap_field_map dfm_dmap_assz = { dbmfi_offsetof(file_size),               -1,                            -1 };
105static const struct dmap_field_map dfm_dmap_asst = { -1,                                      -1,                            -1 };
106static const struct dmap_field_map dfm_dmap_assp = { -1,                                      -1,                            -1 };
107static const struct dmap_field_map dfm_dmap_astm = { dbmfi_offsetof(song_length),             -1,                            -1 };
108static const struct dmap_field_map dfm_dmap_astc = { dbmfi_offsetof(total_tracks),            -1,                            -1 };
109static const struct dmap_field_map dfm_dmap_astn = { dbmfi_offsetof(track),                   -1,                            -1 };
110static const struct dmap_field_map dfm_dmap_asur = { dbmfi_offsetof(rating),                  -1,                            -1 };
111static const struct dmap_field_map dfm_dmap_asyr = { dbmfi_offsetof(year),                    -1,                            -1 };
112static const struct dmap_field_map dfm_dmap_asdk = { dbmfi_offsetof(data_kind),               -1,                            -1 };
113static const struct dmap_field_map dfm_dmap_asul = { dbmfi_offsetof(url),                     -1,                            -1 };
114static const struct dmap_field_map dfm_dmap_aply = { -1,                                      -1,                            -1 };
115static const struct dmap_field_map dfm_dmap_abpl = { -1,                                      -1,                            -1 };
116static const struct dmap_field_map dfm_dmap_apso = { -1,                                      -1,                            -1 };
117static const struct dmap_field_map dfm_dmap_arsv = { -1,                                      -1,                            -1 };
118static const struct dmap_field_map dfm_dmap_arif = { -1,                                      -1,                            -1 };
119static const struct dmap_field_map dfm_dmap_aeNV = { -1,                                      -1,                            -1 };
120const struct dmap_field_map dfm_dmap_aeSP = { -1,                                      -1,                            -1 };
121static const struct dmap_field_map dfm_dmap_aePS = { -1,                                      -1,                            -1 };
122static const struct dmap_field_map dfm_dmap_ascd = { dbmfi_offsetof(codectype),               -1,                            -1 };
123static const struct dmap_field_map dfm_dmap_ascs = { -1,                                      -1,                            -1 };
124static const struct dmap_field_map dfm_dmap_agrp = { dbmfi_offsetof(grouping),                -1,                            -1 };
125static const struct dmap_field_map dfm_dmap_aeSV = { -1,                                      -1,                            -1 };
126static const struct dmap_field_map dfm_dmap_aePI = { -1,                                      -1,                            -1 };
127static const struct dmap_field_map dfm_dmap_aeCI = { -1,                                      -1,                            -1 };
128static const struct dmap_field_map dfm_dmap_aeGI = { -1,                                      -1,                            -1 };
129static const struct dmap_field_map dfm_dmap_aeAI = { -1,                                      -1,                            -1 };
130static const struct dmap_field_map dfm_dmap_aeSI = { -1,                                      -1,                            -1 };
131static const struct dmap_field_map dfm_dmap_aeSF = { -1,                                      -1,                            -1 };
132static const struct dmap_field_map dfm_dmap_ascr = { dbmfi_offsetof(contentrating),           -1,                            -1 };
133static const struct dmap_field_map dfm_dmap_aeHV = { dbmfi_offsetof(has_video),               -1,                            -1 };
134static const struct dmap_field_map dfm_dmap_msas = { -1,                                      -1,                            -1 };
135static const struct dmap_field_map dfm_dmap_asct = { -1,                                      -1,                            -1 };
136static const struct dmap_field_map dfm_dmap_ascn = { -1,                                      -1,                            -1 };
137static const struct dmap_field_map dfm_dmap_aslc = { -1,                                      -1,                            -1 };
138static const struct dmap_field_map dfm_dmap_asky = { -1,                                      -1,                            -1 };
139static const struct dmap_field_map dfm_dmap_apsm = { -1,                                      -1,                            -1 };
140static const struct dmap_field_map dfm_dmap_aprm = { -1,                                      -1,                            -1 };
141static const struct dmap_field_map dfm_dmap_aePC = { -1,                                      -1,                            -1 };
142static const struct dmap_field_map dfm_dmap_aePP = { -1,                                      -1,                            -1 };
143static const struct dmap_field_map dfm_dmap_aeMK = { dbmfi_offsetof(media_kind),              -1,                            -1 };
144static const struct dmap_field_map dfm_dmap_aeMk = { dbmfi_offsetof(media_kind),              -1,                            -1 };
145static const struct dmap_field_map dfm_dmap_aeSN = { dbmfi_offsetof(tv_series_name),          -1,                            -1 };
146static const struct dmap_field_map dfm_dmap_aeNN = { dbmfi_offsetof(tv_network_name),         -1,                            -1 };
147static const struct dmap_field_map dfm_dmap_aeEN = { dbmfi_offsetof(tv_episode_num_str),      -1,                            -1 };
148static const struct dmap_field_map dfm_dmap_aeES = { dbmfi_offsetof(tv_episode_sort),         -1,                            -1 };
149static const struct dmap_field_map dfm_dmap_aeSU = { dbmfi_offsetof(tv_season_num),           -1,                            -1 };
150static const struct dmap_field_map dfm_dmap_assn = { dbmfi_offsetof(title_sort),              -1,                            -1 };
151static const struct dmap_field_map dfm_dmap_assa = { dbmfi_offsetof(artist_sort),             -1,                            -1 };
152static const struct dmap_field_map dfm_dmap_assu = { dbmfi_offsetof(album_sort),              -1,                            -1 };
153static const struct dmap_field_map dfm_dmap_assc = { dbmfi_offsetof(composer_sort),           -1,                            -1 };
154static const struct dmap_field_map dfm_dmap_assl = { dbmfi_offsetof(album_artist_sort),       -1,                            -1 };
155enum
156  {
157    TOTAL_KEYWORDS = 120,
158    MIN_WORD_LENGTH = 8,
159    MAX_WORD_LENGTH = 38,
160    MIN_HASH_VALUE = 18,
161    MAX_HASH_VALUE = 300
162  };
163
164/* maximum key range = 283, duplicates = 0 */
165
166#ifdef __GNUC__
167__inline
168#else
169#ifdef __cplusplus
170inline
171#endif
172#endif
173static unsigned int
174dmap_hash_field (register const char *str, register unsigned int len)
175{
176  static const unsigned short asso_values[] =
177    {
178      301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
179      301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
180      301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
181      301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
182      301, 301, 301, 301, 301,  10,   0, 301, 301, 301,
183      301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
184      301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
185      301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
186      301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
187      301, 301, 301, 301, 301, 301, 301,  20,  50,  40,
188       35,   0,  25,  85,   5,  45, 301,  85,  75,   0,
189        5,  55,  60,  30,   0,   5,  10,  65, 105, 301,
190        0,  25, 301, 301, 301, 301, 301, 301, 301, 301,
191      301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
192      301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
193      301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
194      301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
195      301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
196      301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
197      301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
198      301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
199      301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
200      301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
201      301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
202      301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
203      301, 301, 301, 301, 301, 301
204    };
205  register int hval = len;
206
207  switch (hval)
208    {
209      default:
210        hval += asso_values[(unsigned char)str[22]];
211      /*FALLTHROUGH*/
212      case 22:
213      case 21:
214      case 20:
215      case 19:
216      case 18:
217        hval += asso_values[(unsigned char)str[17]];
218      /*FALLTHROUGH*/
219      case 17:
220      case 16:
221      case 15:
222      case 14:
223        hval += asso_values[(unsigned char)str[13]];
224      /*FALLTHROUGH*/
225      case 13:
226      case 12:
227      case 11:
228      case 10:
229        hval += asso_values[(unsigned char)str[9]];
230      /*FALLTHROUGH*/
231      case 9:
232      case 8:
233        hval += asso_values[(unsigned char)str[7]];
234      /*FALLTHROUGH*/
235      case 7:
236      case 6:
237      case 5:
238      case 4:
239      case 3:
240      case 2:
241        hval += asso_values[(unsigned char)str[1]];
242        break;
243    }
244  return hval;
245}
246
247static const struct dmap_field dmap_fields[] =
248  {
249#line 228 "dmap_fields.gperf"
250    {"dmap.itemname",                             "minm", &dfm_dmap_minm, DMAP_TYPE_STRING},
251#line 233 "dmap_fields.gperf"
252    {"dmap.parentcontainerid",                    "mpco", &dfm_dmap_mpco, DMAP_TYPE_UINT},
253#line 203 "dmap_fields.gperf"
254    {"daap.sortname",                             "assn", &dfm_dmap_assn, DMAP_TYPE_STRING},
255#line 220 "dmap_fields.gperf"
256    {"dmap.container",                            "mcon", &dfm_dmap_mcon, DMAP_TYPE_LIST},
257#line 194 "dmap_fields.gperf"
258    {"daap.songeqpreset",                         "aseq", &dfm_dmap_aseq, DMAP_TYPE_STRING},
259#line 208 "dmap_fields.gperf"
260    {"daap.songsize",                             "assz", &dfm_dmap_assz, DMAP_TYPE_UINT},
261#line 222 "dmap_fields.gperf"
262    {"dmap.containeritemid",                      "mcti", &dfm_dmap_mcti, DMAP_TYPE_UINT},
263#line 210 "dmap_fields.gperf"
264    {"daap.songtime",                             "astm", &dfm_dmap_astm, DMAP_TYPE_UINT},
265#line 221 "dmap_fields.gperf"
266    {"dmap.containercount",                       "mctc", &dfm_dmap_mctc, DMAP_TYPE_UINT},
267#line 248 "dmap_fields.gperf"
268    {"dmap.serverinforesponse",                   "msrv", &dfm_dmap_msrv, DMAP_TYPE_LIST},
269#line 207 "dmap_fields.gperf"
270    {"daap.sortalbum",                            "assu", &dfm_dmap_assu, DMAP_TYPE_STRING},
271#line 215 "dmap_fields.gperf"
272    {"daap.serverdatabases",                      "avdb", &dfm_dmap_avdb, DMAP_TYPE_LIST},
273#line 225 "dmap_fields.gperf"
274    {"dmap.itemid",                               "miid", &dfm_dmap_miid, DMAP_TYPE_UINT},
275#line 204 "dmap_fields.gperf"
276    {"daap.songstoptime",                         "assp", &dfm_dmap_assp, DMAP_TYPE_UINT},
277#line 206 "dmap_fields.gperf"
278    {"daap.songstarttime",                        "asst", &dfm_dmap_asst, DMAP_TYPE_UINT},
279#line 175 "dmap_fields.gperf"
280    {"daap.songalbum",                            "asal", &dfm_dmap_asal, DMAP_TYPE_STRING},
281#line 200 "dmap_fields.gperf"
282    {"daap.sortartist",                           "assa", &dfm_dmap_assa, DMAP_TYPE_STRING},
283#line 174 "dmap_fields.gperf"
284    {"daap.songalbumid",                          "asai", &dfm_dmap_asai, DMAP_TYPE_ULONG},
285#line 229 "dmap_fields.gperf"
286    {"dmap.listing",                              "mlcl", &dfm_dmap_mlcl, DMAP_TYPE_LIST},
287#line 214 "dmap_fields.gperf"
288    {"daap.songyear",                             "asyr", &dfm_dmap_asyr, DMAP_TYPE_USHORT},
289#line 227 "dmap_fields.gperf"
290    {"dmap.itemcount",                            "mimc", &dfm_dmap_mimc, DMAP_TYPE_UINT},
291#line 176 "dmap_fields.gperf"
292    {"daap.songartist",                           "asar", &dfm_dmap_asar, DMAP_TYPE_STRING},
293#line 234 "dmap_fields.gperf"
294    {"dmap.persistentid",                         "mper", &dfm_dmap_mper, DMAP_TYPE_ULONG},
295#line 255 "dmap_fields.gperf"
296    {"dmap.updateresponse",                       "mupd", &dfm_dmap_mupd, DMAP_TYPE_LIST},
297#line 231 "dmap_fields.gperf"
298    {"dmap.listingitem",                          "mlit", &dfm_dmap_mlit, DMAP_TYPE_LIST},
299#line 236 "dmap_fields.gperf"
300    {"dmap.returnedcount",                        "mrco", &dfm_dmap_mrco, DMAP_TYPE_UINT},
301#line 180 "dmap_fields.gperf"
302    {"daap.songcomment",                          "ascm", &dfm_dmap_ascm, DMAP_TYPE_STRING},
303#line 192 "dmap_fields.gperf"
304    {"daap.songdiscnumber",                       "asdn", &dfm_dmap_asdn, DMAP_TYPE_USHORT},
305#line 195 "dmap_fields.gperf"
306    {"daap.songformat",                           "asfm", &dfm_dmap_asfm, DMAP_TYPE_STRING},
307#line 218 "dmap_fields.gperf"
308    {"dmap.contentcodesname",                     "mcna", &dfm_dmap_mcna, DMAP_TYPE_STRING},
309#line 219 "dmap_fields.gperf"
310    {"dmap.contentcodesnumber",                   "mcnm", &dfm_dmap_mcnm, DMAP_TYPE_UINT},
311#line 241 "dmap_fields.gperf"
312    {"dmap.databasescount",                       "msdc", &dfm_dmap_msdc, DMAP_TYPE_UINT},
313#line 217 "dmap_fields.gperf"
314    {"dmap.contentcodesresponse",                 "mccr", &dfm_dmap_mccr, DMAP_TYPE_LIST},
315#line 223 "dmap_fields.gperf"
316    {"dmap.contentcodestype",                     "mcty", &dfm_dmap_mcty, DMAP_TYPE_USHORT},
317#line 216 "dmap_fields.gperf"
318    {"dmap.bag",                                  "mbcl", &dfm_dmap_mbcl, DMAP_TYPE_LIST},
319#line 251 "dmap_fields.gperf"
320    {"dmap.status",                               "mstt", &dfm_dmap_mstt, DMAP_TYPE_UINT},
321#line 226 "dmap_fields.gperf"
322    {"dmap.itemkind",                             "mikd", &dfm_dmap_mikd, DMAP_TYPE_UBYTE},
323#line 230 "dmap_fields.gperf"
324    {"dmap.sessionid",                            "mlid", &dfm_dmap_mlid, DMAP_TYPE_UINT},
325#line 224 "dmap_fields.gperf"
326    {"dmap.dictionary",                           "mdcl", &dfm_dmap_mdcl, DMAP_TYPE_LIST},
327#line 250 "dmap_fields.gperf"
328    {"dmap.statusstring",                         "msts", &dfm_dmap_msts, DMAP_TYPE_STRING},
329#line 178 "dmap_fields.gperf"
330    {"daap.songbeatsperminute",                   "asbt", &dfm_dmap_asbt, DMAP_TYPE_USHORT},
331#line 202 "dmap_fields.gperf"
332    {"daap.sortalbumartist",                      "assl", &dfm_dmap_assl, DMAP_TYPE_STRING},
333#line 191 "dmap_fields.gperf"
334    {"daap.songdatemodified",                     "asdm", &dfm_dmap_asdm, DMAP_TYPE_DATE},
335#line 184 "dmap_fields.gperf"
336    {"daap.songcontentrating",                    "ascr", &dfm_dmap_ascr, DMAP_TYPE_UBYTE},
337#line 144 "dmap_fields.gperf"
338    {"daap.databasesongs",                        "adbs", &dfm_dmap_adbs, DMAP_TYPE_LIST},
339#line 173 "dmap_fields.gperf"
340    {"daap.songalbumartist",                      "asaa", &dfm_dmap_asaa, DMAP_TYPE_STRING},
341#line 177 "dmap_fields.gperf"
342    {"daap.songbitrate",                          "asbr", &dfm_dmap_asbr, DMAP_TYPE_USHORT},
343#line 172 "dmap_fields.gperf"
344    {"daap.resolve",                              "arsv", &dfm_dmap_arsv, DMAP_TYPE_LIST},
345#line 213 "dmap_fields.gperf"
346    {"daap.songuserrating",                       "asur", &dfm_dmap_asur, DMAP_TYPE_UBYTE},
347#line 140 "dmap_fields.gperf"
348    {"daap.browsecomposerlisting",                "abcp", &dfm_dmap_abcp, DMAP_TYPE_LIST},
349#line 257 "dmap_fields.gperf"
350    {"dmap.updatetype",                           "muty", &dfm_dmap_muty, DMAP_TYPE_UBYTE},
351#line 171 "dmap_fields.gperf"
352    {"daap.resolveinfo",                          "arif", &dfm_dmap_arif, DMAP_TYPE_LIST},
353#line 179 "dmap_fields.gperf"
354    {"daap.songcodectype",                        "ascd", &dfm_dmap_ascd, DMAP_TYPE_UINT},
355#line 196 "dmap_fields.gperf"
356    {"daap.songgenre",                            "asgn", &dfm_dmap_asgn, DMAP_TYPE_STRING},
357#line 193 "dmap_fields.gperf"
358    {"daap.songdescription",                      "asdt", &dfm_dmap_asdt, DMAP_TYPE_STRING},
359#line 188 "dmap_fields.gperf"
360    {"daap.songdisabled",                         "asdb", &dfm_dmap_asdb, DMAP_TYPE_UBYTE},
361#line 189 "dmap_fields.gperf"
362    {"daap.songdisccount",                        "asdc", &dfm_dmap_asdc, DMAP_TYPE_USHORT},
363#line 253 "dmap_fields.gperf"
364    {"dmap.specifiedtotalcount",                  "mtco", &dfm_dmap_mtco, DMAP_TYPE_UINT},
365#line 238 "dmap_fields.gperf"
366    {"dmap.authenticationschemes",                "msas", &dfm_dmap_msas, DMAP_TYPE_UINT},
367#line 201 "dmap_fields.gperf"
368    {"daap.sortcomposer",                         "assc", &dfm_dmap_assc, DMAP_TYPE_STRING},
369#line 187 "dmap_fields.gperf"
370    {"daap.songdateadded",                        "asda", &dfm_dmap_asda, DMAP_TYPE_DATE},
371#line 205 "dmap_fields.gperf"
372    {"daap.songsamplerate",                       "assr", &dfm_dmap_assr, DMAP_TYPE_UINT},
373#line 239 "dmap_fields.gperf"
374    {"dmap.authenticationmethod",                 "msau", &dfm_dmap_msau, DMAP_TYPE_UBYTE},
375#line 185 "dmap_fields.gperf"
376    {"daap.songcodecsubtype",                     "ascs", &dfm_dmap_ascs, DMAP_TYPE_UINT},
377#line 183 "dmap_fields.gperf"
378    {"daap.songcomposer",                         "ascp", &dfm_dmap_ascp, DMAP_TYPE_STRING},
379#line 212 "dmap_fields.gperf"
380    {"daap.songdataurl",                          "asul", &dfm_dmap_asul, DMAP_TYPE_STRING},
381#line 170 "dmap_fields.gperf"
382    {"daap.playlistsongs",                        "apso", &dfm_dmap_apso, DMAP_TYPE_LIST},
383#line 209 "dmap_fields.gperf"
384    {"daap.songtrackcount",                       "astc", &dfm_dmap_astc, DMAP_TYPE_USHORT},
385#line 242 "dmap_fields.gperf"
386    {"dmap.supportsextensions",                   "msex", &dfm_dmap_msex, DMAP_TYPE_UBYTE},
387#line 254 "dmap_fields.gperf"
388    {"dmap.deletedidlisting",                     "mudl", &dfm_dmap_mudl, DMAP_TYPE_LIST},
389#line 181 "dmap_fields.gperf"
390    {"daap.songcontentdescription",               "ascn", &dfm_dmap_ascn, DMAP_TYPE_STRING},
391#line 143 "dmap_fields.gperf"
392    {"daap.databasebrowse",                       "abro", &dfm_dmap_abro, DMAP_TYPE_LIST},
393#line 167 "dmap_fields.gperf"
394    {"daap.playlistrepeatmode",                   "aprm", &dfm_dmap_aprm, DMAP_TYPE_UBYTE},
395#line 190 "dmap_fields.gperf"
396    {"daap.songdatakind",                         "asdk", &dfm_dmap_asdk, DMAP_TYPE_UBYTE},
397#line 199 "dmap_fields.gperf"
398    {"daap.songrelativevolume",                   "asrv", &dfm_dmap_asrv, DMAP_TYPE_BYTE},
399#line 186 "dmap_fields.gperf"
400    {"daap.songcategory",                         "asct", &dfm_dmap_asct, DMAP_TYPE_STRING},
401#line 232 "dmap_fields.gperf"
402    {"dmap.loginresponse",                        "mlog", &dfm_dmap_mlog, DMAP_TYPE_LIST},
403#line 153 "dmap_fields.gperf"
404    {"com.apple.itunes.network-name",             "aeNN", &dfm_dmap_aeNN, DMAP_TYPE_STRING},
405#line 163 "dmap_fields.gperf"
406    {"com.apple.itunes.season-num",               "aeSU", &dfm_dmap_aeSU, DMAP_TYPE_UINT},
407#line 161 "dmap_fields.gperf"
408    {"com.apple.itunes.series-name",              "aeSN", &dfm_dmap_aeSN, DMAP_TYPE_STRING},
409#line 182 "dmap_fields.gperf"
410    {"daap.songcompilation",                      "asco", &dfm_dmap_asco, DMAP_TYPE_UBYTE},
411#line 198 "dmap_fields.gperf"
412    {"daap.songlongcontentdescription",           "aslc", &dfm_dmap_aslc, DMAP_TYPE_STRING},
413#line 142 "dmap_fields.gperf"
414    {"daap.baseplaylist",                         "abpl", &dfm_dmap_abpl, DMAP_TYPE_UBYTE},
415#line 243 "dmap_fields.gperf"
416    {"dmap.supportsindex",                        "msix", &dfm_dmap_msix, DMAP_TYPE_UBYTE},
417#line 256 "dmap_fields.gperf"
418    {"dmap.serverrevision",                       "musr", &dfm_dmap_musr, DMAP_TYPE_UINT},
419#line 162 "dmap_fields.gperf"
420    {"com.apple.itunes.smart-playlist",           "aeSP", &dfm_dmap_aeSP, DMAP_TYPE_UBYTE},
421#line 197 "dmap_fields.gperf"
422    {"daap.songkeywords",                         "asky", &dfm_dmap_asky, DMAP_TYPE_STRING},
423#line 164 "dmap_fields.gperf"
424    {"com.apple.itunes.music-sharing-version",    "aeSV", &dfm_dmap_aeSV, DMAP_TYPE_UINT},
425#line 249 "dmap_fields.gperf"
426    {"dmap.timeoutinterval",                      "mstm", &dfm_dmap_mstm, DMAP_TYPE_UINT},
427#line 165 "dmap_fields.gperf"
428    {"daap.songgrouping",                         "agrp", &dfm_dmap_agrp, DMAP_TYPE_STRING},
429#line 246 "dmap_fields.gperf"
430    {"dmap.supportsquery",                        "msqy", &dfm_dmap_msqy, DMAP_TYPE_UBYTE},
431#line 240 "dmap_fields.gperf"
432    {"dmap.supportsbrowse",                       "msbr", &dfm_dmap_msbr, DMAP_TYPE_UBYTE},
433#line 211 "dmap_fields.gperf"
434    {"daap.songtracknumber",                      "astn", &dfm_dmap_astn, DMAP_TYPE_USHORT},
435#line 158 "dmap_fields.gperf"
436    {"com.apple.itunes.special-playlist",         "aePS", &dfm_dmap_aePS, DMAP_TYPE_UBYTE},
437#line 139 "dmap_fields.gperf"
438    {"daap.browseartistlisting",                  "abar", &dfm_dmap_abar, DMAP_TYPE_LIST},
439#line 148 "dmap_fields.gperf"
440    {"com.apple.itunes.episode-sort",             "aeES", &dfm_dmap_aeES, DMAP_TYPE_UINT},
441#line 147 "dmap_fields.gperf"
442    {"com.apple.itunes.episode-num-str",          "aeEN", &dfm_dmap_aeEN, DMAP_TYPE_STRING},
443#line 169 "dmap_fields.gperf"
444    {"daap.playlistshufflemode",                  "apsm", &dfm_dmap_apsm, DMAP_TYPE_UBYTE},
445#line 151 "dmap_fields.gperf"
446    {"com.apple.itunes.extended-media-kind",      "aeMk", &dfm_dmap_aeMk, DMAP_TYPE_UINT},
447#line 244 "dmap_fields.gperf"
448    {"dmap.loginrequired",                        "mslr", &dfm_dmap_mslr, DMAP_TYPE_UBYTE},
449#line 252 "dmap_fields.gperf"
450    {"dmap.supportsupdate",                       "msup", &dfm_dmap_msup, DMAP_TYPE_UBYTE},
451#line 247 "dmap_fields.gperf"
452    {"dmap.supportsresolve",                      "msrs", &dfm_dmap_msrs, DMAP_TYPE_UBYTE},
453#line 150 "dmap_fields.gperf"
454    {"com.apple.itunes.has-video",                "aeHV", &dfm_dmap_aeHV, DMAP_TYPE_UBYTE},
455#line 160 "dmap_fields.gperf"
456    {"com.apple.itunes.itms-songid",              "aeSI", &dfm_dmap_aeSI, DMAP_TYPE_UINT},
457#line 159 "dmap_fields.gperf"
458    {"com.apple.itunes.itms-storefrontid",        "aeSF", &dfm_dmap_aeSF, DMAP_TYPE_UINT},
459#line 145 "dmap_fields.gperf"
460    {"com.apple.itunes.itms-artistid",            "aeAI", &dfm_dmap_aeAI, DMAP_TYPE_UINT},
461#line 166 "dmap_fields.gperf"
462    {"daap.databaseplaylists",                    "aply", &dfm_dmap_aply, DMAP_TYPE_LIST},
463#line 141 "dmap_fields.gperf"
464    {"daap.browsegenrelisting",                   "abgn", &dfm_dmap_abgn, DMAP_TYPE_LIST},
465#line 155 "dmap_fields.gperf"
466    {"com.apple.itunes.is-podcast",               "aePC", &dfm_dmap_aePC, DMAP_TYPE_UBYTE},
467#line 237 "dmap_fields.gperf"
468    {"dmap.supportsautologout",                   "msal", &dfm_dmap_msal, DMAP_TYPE_UBYTE},
469#line 152 "dmap_fields.gperf"
470    {"com.apple.itunes.mediakind",                "aeMK", &dfm_dmap_aeMK, DMAP_TYPE_UBYTE},
471#line 157 "dmap_fields.gperf"
472    {"com.apple.itunes.is-podcast-playlist",      "aePP", &dfm_dmap_aePP, DMAP_TYPE_UBYTE},
473#line 146 "dmap_fields.gperf"
474    {"com.apple.itunes.itms-composerid",          "aeCI", &dfm_dmap_aeCI, DMAP_TYPE_UINT},
475#line 245 "dmap_fields.gperf"
476    {"dmap.supportspersistentids",                "mspi", &dfm_dmap_mspi, DMAP_TYPE_UBYTE},
477#line 156 "dmap_fields.gperf"
478    {"com.apple.itunes.itms-playlistid",          "aePI", &dfm_dmap_aePI, DMAP_TYPE_UINT},
479#line 154 "dmap_fields.gperf"
480    {"com.apple.itunes.norm-volume",              "aeNV", &dfm_dmap_aeNV, DMAP_TYPE_UINT},
481#line 235 "dmap_fields.gperf"
482    {"dmap.protocolversion",                      "mpro", &dfm_dmap_mpro, DMAP_TYPE_VERSION},
483#line 138 "dmap_fields.gperf"
484    {"daap.browsealbumlisting",                   "abal", &dfm_dmap_abal, DMAP_TYPE_LIST},
485#line 149 "dmap_fields.gperf"
486    {"com.apple.itunes.itms-genreid",             "aeGI", &dfm_dmap_aeGI, DMAP_TYPE_UINT},
487#line 168 "dmap_fields.gperf"
488    {"daap.protocolversion",                      "apro", &dfm_dmap_apro, DMAP_TYPE_VERSION}
489  };
490
491#ifdef __GNUC__
492__inline
493#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
494__attribute__ ((__gnu_inline__))
495#endif
496#endif
497const struct dmap_field *
498dmap_find_field (register const char *str, register unsigned int len)
499{
500  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
501    {
502      register int key = dmap_hash_field (str, len);
503
504      if (key <= MAX_HASH_VALUE && key >= MIN_HASH_VALUE)
505        {
506          register const struct dmap_field *resword;
507
508          switch (key - 18)
509            {
510              case 0:
511                if (len == 13)
512                  {
513                    resword = &dmap_fields[0];
514                    goto compare;
515                  }
516                break;
517              case 19:
518                if (len == 22)
519                  {
520                    resword = &dmap_fields[1];
521                    goto compare;
522                  }
523                break;
524              case 20:
525                if (len == 13)
526                  {
527                    resword = &dmap_fields[2];
528                    goto compare;
529                  }
530                break;
531              case 21:
532                if (len == 14)
533                  {
534                    resword = &dmap_fields[3];
535                    goto compare;
536                  }
537                break;
538              case 24:
539                if (len == 17)
540                  {
541                    resword = &dmap_fields[4];
542                    goto compare;
543                  }
544                break;
545              case 25:
546                if (len == 13)
547                  {
548                    resword = &dmap_fields[5];
549                    goto compare;
550                  }
551                break;
552              case 27:
553                if (len == 20)
554                  {
555                    resword = &dmap_fields[6];
556                    goto compare;
557                  }
558                break;
559              case 30:
560                if (len == 13)
561                  {
562                    resword = &dmap_fields[7];
563                    goto compare;
564                  }
565                break;
566              case 31:
567                if (len == 19)
568                  {
569                    resword = &dmap_fields[8];
570                    goto compare;
571                  }
572                break;
573              case 35:
574                if (len == 23)
575                  {
576                    resword = &dmap_fields[9];
577                    goto compare;
578                  }
579                break;
580              case 36:
581                if (len == 14)
582                  {
583                    resword = &dmap_fields[10];
584                    goto compare;
585                  }
586                break;
587              case 37:
588                if (len == 20)
589                  {
590                    resword = &dmap_fields[11];
591                    goto compare;
592                  }
593                break;
594              case 38:
595                if (len == 11)
596                  {
597                    resword = &dmap_fields[12];
598                    goto compare;
599                  }
600                break;
601              case 39:
602                if (len == 17)
603                  {
604                    resword = &dmap_fields[13];
605                    goto compare;
606                  }
607                break;
608              case 40:
609                if (len == 18)
610                  {
611                    resword = &dmap_fields[14];
612                    goto compare;
613                  }
614                break;
615              case 41:
616                if (len == 14)
617                  {
618                    resword = &dmap_fields[15];
619                    goto compare;
620                  }
621                break;
622              case 42:
623                if (len == 15)
624                  {
625                    resword = &dmap_fields[16];
626                    goto compare;
627                  }
628                break;
629              case 43:
630                if (len == 16)
631                  {
632                    resword = &dmap_fields[17];
633                    goto compare;
634                  }
635                break;
636              case 44:
637                if (len == 12)
638                  {
639                    resword = &dmap_fields[18];
640                    goto compare;
641                  }
642                break;
643              case 45:
644                if (len == 13)
645                  {
646                    resword = &dmap_fields[19];
647                    goto compare;
648                  }
649                break;
650              case 46:
651                if (len == 14)
652                  {
653                    resword = &dmap_fields[20];
654                    goto compare;
655                  }
656                break;
657              case 47:
658                if (len == 15)
659                  {
660                    resword = &dmap_fields[21];
661                    goto compare;
662                  }
663                break;
664              case 49:
665                if (len == 17)
666                  {
667                    resword = &dmap_fields[22];
668                    goto compare;
669                  }
670                break;
671              case 56:
672                if (len == 19)
673                  {
674                    resword = &dmap_fields[23];
675                    goto compare;
676                  }
677                break;
678              case 58:
679                if (len == 16)
680                  {
681                    resword = &dmap_fields[24];
682                    goto compare;
683                  }
684                break;
685              case 60:
686                if (len == 18)
687                  {
688                    resword = &dmap_fields[25];
689                    goto compare;
690                  }
691                break;
692              case 63:
693                if (len == 16)
694                  {
695                    resword = &dmap_fields[26];
696                    goto compare;
697                  }
698                break;
699              case 66:
700                if (len == 19)
701                  {
702                    resword = &dmap_fields[27];
703                    goto compare;
704                  }
705                break;
706              case 67:
707                if (len == 15)
708                  {
709                    resword = &dmap_fields[28];
710                    goto compare;
711                  }
712                break;
713              case 68:
714                if (len == 21)
715                  {
716                    resword = &dmap_fields[29];
717                    goto compare;
718                  }
719                break;
720              case 70:
721                if (len == 23)
722                  {
723                    resword = &dmap_fields[30];
724                    goto compare;
725                  }
726                break;
727              case 71:
728                if (len == 19)
729                  {
730                    resword = &dmap_fields[31];
731                    goto compare;
732                  }
733                break;
734              case 72:
735                if (len == 25)
736                  {
737                    resword = &dmap_fields[32];
738                    goto compare;
739                  }
740                break;
741              case 73:
742                if (len == 21)
743                  {
744                    resword = &dmap_fields[33];
745                    goto compare;
746                  }
747                break;
748              case 75:
749                if (len == 8)
750                  {
751                    resword = &dmap_fields[34];
752                    goto compare;
753                  }
754                break;
755              case 78:
756                if (len == 11)
757                  {
758                    resword = &dmap_fields[35];
759                    goto compare;
760                  }
761                break;
762              case 80:
763                if (len == 13)
764                  {
765                    resword = &dmap_fields[36];
766                    goto compare;
767                  }
768                break;
769              case 81:
770                if (len == 14)
771                  {
772                    resword = &dmap_fields[37];
773                    goto compare;
774                  }
775                break;
776              case 82:
777                if (len == 15)
778                  {
779                    resword = &dmap_fields[38];
780                    goto compare;
781                  }
782                break;
783              case 84:
784                if (len == 17)
785                  {
786                    resword = &dmap_fields[39];
787                    goto compare;
788                  }
789                break;
790              case 85:
791                if (len == 23)
792                  {
793                    resword = &dmap_fields[40];
794                    goto compare;
795                  }
796                break;
797              case 87:
798                if (len == 20)
799                  {
800                    resword = &dmap_fields[41];
801                    goto compare;
802                  }
803                break;
804              case 88:
805                if (len == 21)
806                  {
807                    resword = &dmap_fields[42];
808                    goto compare;
809                  }
810                break;
811              case 89:
812                if (len == 22)
813                  {
814                    resword = &dmap_fields[43];
815                    goto compare;
816                  }
817                break;
818              case 90:
819                if (len == 18)
820                  {
821                    resword = &dmap_fields[44];
822                    goto compare;
823                  }
824                break;
825              case 92:
826                if (len == 20)
827                  {
828                    resword = &dmap_fields[45];
829                    goto compare;
830                  }
831                break;
832              case 93:
833                if (len == 16)
834                  {
835                    resword = &dmap_fields[46];
836                    goto compare;
837                  }
838                break;
839              case 94:
840                if (len == 12)
841                  {
842                    resword = &dmap_fields[47];
843                    goto compare;
844                  }
845                break;
846              case 96:
847                if (len == 19)
848                  {
849                    resword = &dmap_fields[48];
850                    goto compare;
851                  }
852                break;
853              case 98:
854                if (len == 26)
855                  {
856                    resword = &dmap_fields[49];
857                    goto compare;
858                  }
859                break;
860              case 102:
861                if (len == 15)
862                  {
863                    resword = &dmap_fields[50];
864                    goto compare;
865                  }
866                break;
867              case 103:
868                if (len == 16)
869                  {
870                    resword = &dmap_fields[51];
871                    goto compare;
872                  }
873                break;
874              case 105:
875                if (len == 18)
876                  {
877                    resword = &dmap_fields[52];
878                    goto compare;
879                  }
880                break;
881              case 106:
882                if (len == 14)
883                  {
884                    resword = &dmap_fields[53];
885                    goto compare;
886                  }
887                break;
888              case 107:
889                if (len == 20)
890                  {
891                    resword = &dmap_fields[54];
892                    goto compare;
893                  }
894                break;
895              case 109:
896                if (len == 17)
897                  {
898                    resword = &dmap_fields[55];
899                    goto compare;
900                  }
901                break;
902              case 110:
903                if (len == 18)
904                  {
905                    resword = &dmap_fields[56];
906                    goto compare;
907                  }
908                break;
909              case 111:
910                if (len == 24)
911                  {
912                    resword = &dmap_fields[57];
913                    goto compare;
914                  }
915                break;
916              case 113:
917                if (len == 26)
918                  {
919                    resword = &dmap_fields[58];
920                    goto compare;
921                  }
922                break;
923              case 114:
924                if (len == 17)
925                  {
926                    resword = &dmap_fields[59];
927                    goto compare;
928                  }
929                break;
930              case 115:
931                if (len == 18)
932                  {
933                    resword = &dmap_fields[60];
934                    goto compare;
935                  }
936                break;
937              case 116:
938                if (len == 19)
939                  {
940                    resword = &dmap_fields[61];
941                    goto compare;
942                  }
943                break;
944              case 117:
945                if (len == 25)
946                  {
947                    resword = &dmap_fields[62];
948                    goto compare;
949                  }
950                break;
951              case 118:
952                if (len == 21)
953                  {
954                    resword = &dmap_fields[63];
955                    goto compare;
956                  }
957                break;
958              case 119:
959                if (len == 17)
960                  {
961                    resword = &dmap_fields[64];
962                    goto compare;
963                  }
964                break;
965              case 123:
966                if (len == 16)
967                  {
968                    resword = &dmap_fields[65];
969                    goto compare;
970                  }
971                break;
972              case 125:
973                if (len == 18)
974                  {
975                    resword = &dmap_fields[66];
976                    goto compare;
977                  }
978                break;
979              case 126:
980                if (len == 19)
981                  {
982                    resword = &dmap_fields[67];
983                    goto compare;
984                  }
985                break;
986              case 130:
987                if (len == 23)
988                  {
989                    resword = &dmap_fields[68];
990                    goto compare;
991                  }
992                break;
993              case 133:
994                if (len == 21)
995                  {
996                    resword = &dmap_fields[69];
997                    goto compare;
998                  }
999                break;
1000              case 134:
1001                if (len == 27)
1002                  {
1003                    resword = &dmap_fields[70];
1004                    goto compare;
1005                  }
1006                break;
1007              case 136:
1008                if (len == 19)
1009                  {
1010                    resword = &dmap_fields[71];
1011                    goto compare;
1012                  }
1013                break;
1014              case 140:
1015                if (len == 23)
1016                  {
1017                    resword = &dmap_fields[72];
1018                    goto compare;
1019                  }
1020                break;
1021              case 144:
1022                if (len == 17)
1023                  {
1024                    resword = &dmap_fields[73];
1025                    goto compare;
1026                  }
1027                break;
1028              case 145:
1029                if (len == 23)
1030                  {
1031                    resword = &dmap_fields[74];
1032                    goto compare;
1033                  }
1034                break;
1035              case 149:
1036                if (len == 17)
1037                  {
1038                    resword = &dmap_fields[75];
1039                    goto compare;
1040                  }
1041                break;
1042              case 150:
1043                if (len == 18)
1044                  {
1045                    resword = &dmap_fields[76];
1046                    goto compare;
1047                  }
1048                break;
1049              case 151:
1050                if (len == 29)
1051                  {
1052                    resword = &dmap_fields[77];
1053                    goto compare;
1054                  }
1055                break;
1056              case 154:
1057                if (len == 27)
1058                  {
1059                    resword = &dmap_fields[78];
1060                    goto compare;
1061                  }
1062                break;
1063              case 155:
1064                if (len == 28)
1065                  {
1066                    resword = &dmap_fields[79];
1067                    goto compare;
1068                  }
1069                break;
1070              case 157:
1071                if (len == 20)
1072                  {
1073                    resword = &dmap_fields[80];
1074                    goto compare;
1075                  }
1076                break;
1077              case 158:
1078                if (len == 31)
1079                  {
1080                    resword = &dmap_fields[81];
1081                    goto compare;
1082                  }
1083                break;
1084              case 159:
1085                if (len == 17)
1086                  {
1087                    resword = &dmap_fields[82];
1088                    goto compare;
1089                  }
1090                break;
1091              case 160:
1092                if (len == 18)
1093                  {
1094                    resword = &dmap_fields[83];
1095                    goto compare;
1096                  }
1097                break;
1098              case 161:
1099                if (len == 19)
1100                  {
1101                    resword = &dmap_fields[84];
1102                    goto compare;
1103                  }
1104                break;
1105              case 163:
1106                if (len == 31)
1107                  {
1108                    resword = &dmap_fields[85];
1109                    goto compare;
1110                  }
1111                break;
1112              case 164:
1113                if (len == 17)
1114                  {
1115                    resword = &dmap_fields[86];
1116                    goto compare;
1117                  }
1118                break;
1119              case 165:
1120                if (len == 38)
1121                  {
1122                    resword = &dmap_fields[87];
1123                    goto compare;
1124                  }
1125                break;
1126              case 167:
1127                if (len == 20)
1128                  {
1129                    resword = &dmap_fields[88];
1130                    goto compare;
1131                  }
1132                break;
1133              case 169:
1134                if (len == 17)
1135                  {
1136                    resword = &dmap_fields[89];
1137                    goto compare;
1138                  }
1139                break;
1140              case 170:
1141                if (len == 18)
1142                  {
1143                    resword = &dmap_fields[90];
1144                    goto compare;
1145                  }
1146                break;
1147              case 171:
1148                if (len == 19)
1149                  {
1150                    resword = &dmap_fields[91];
1151                    goto compare;
1152                  }
1153                break;
1154              case 172:
1155                if (len == 20)
1156                  {
1157                    resword = &dmap_fields[92];
1158                    goto compare;
1159                  }
1160                break;
1161              case 175:
1162                if (len == 33)
1163                  {
1164                    resword = &dmap_fields[93];
1165                    goto compare;
1166                  }
1167                break;
1168              case 176:
1169                if (len == 24)
1170                  {
1171                    resword = &dmap_fields[94];
1172                    goto compare;
1173                  }
1174                break;
1175              case 181:
1176                if (len == 29)
1177                  {
1178                    resword = &dmap_fields[95];
1179                    goto compare;
1180                  }
1181                break;
1182              case 184:
1183                if (len == 32)
1184                  {
1185                    resword = &dmap_fields[96];
1186                    goto compare;
1187                  }
1188                break;
1189              case 186:
1190                if (len == 24)
1191                  {
1192                    resword = &dmap_fields[97];
1193                    goto compare;
1194                  }
1195                break;
1196              case 188:
1197                if (len == 36)
1198                  {
1199                    resword = &dmap_fields[98];
1200                    goto compare;
1201                  }
1202                break;
1203              case 190:
1204                if (len == 18)
1205                  {
1206                    resword = &dmap_fields[99];
1207                    goto compare;
1208                  }
1209                break;
1210              case 191:
1211                if (len == 19)
1212                  {
1213                    resword = &dmap_fields[100];
1214                    goto compare;
1215                  }
1216                break;
1217              case 192:
1218                if (len == 20)
1219                  {
1220                    resword = &dmap_fields[101];
1221                    goto compare;
1222                  }
1223                break;
1224              case 193:
1225                if (len == 26)
1226                  {
1227                    resword = &dmap_fields[102];
1228                    goto compare;
1229                  }
1230                break;
1231              case 195:
1232                if (len == 28)
1233                  {
1234                    resword = &dmap_fields[103];
1235                    goto compare;
1236                  }
1237                break;
1238              case 201:
1239                if (len == 34)
1240                  {
1241                    resword = &dmap_fields[104];
1242                    goto compare;
1243                  }
1244                break;
1245              case 212:
1246                if (len == 30)
1247                  {
1248                    resword = &dmap_fields[105];
1249                    goto compare;
1250                  }
1251                break;
1252              case 219:
1253                if (len == 22)
1254                  {
1255                    resword = &dmap_fields[106];
1256                    goto compare;
1257                  }
1258                break;
1259              case 220:
1260                if (len == 23)
1261                  {
1262                    resword = &dmap_fields[107];
1263                    goto compare;
1264                  }
1265                break;
1266              case 224:
1267                if (len == 27)
1268                  {
1269                    resword = &dmap_fields[108];
1270                    goto compare;
1271                  }
1272                break;
1273              case 225:
1274                if (len == 23)
1275                  {
1276                    resword = &dmap_fields[109];
1277                    goto compare;
1278                  }
1279                break;
1280              case 228:
1281                if (len == 26)
1282                  {
1283                    resword = &dmap_fields[110];
1284                    goto compare;
1285                  }
1286                break;
1287              case 233:
1288                if (len == 36)
1289                  {
1290                    resword = &dmap_fields[111];
1291                    goto compare;
1292                  }
1293                break;
1294              case 234:
1295                if (len == 32)
1296                  {
1297                    resword = &dmap_fields[112];
1298                    goto compare;
1299                  }
1300                break;
1301              case 238:
1302                if (len == 26)
1303                  {
1304                    resword = &dmap_fields[113];
1305                    goto compare;
1306                  }
1307                break;
1308              case 254:
1309                if (len == 32)
1310                  {
1311                    resword = &dmap_fields[114];
1312                    goto compare;
1313                  }
1314                break;
1315              case 255:
1316                if (len == 28)
1317                  {
1318                    resword = &dmap_fields[115];
1319                    goto compare;
1320                  }
1321                break;
1322              case 262:
1323                if (len == 20)
1324                  {
1325                    resword = &dmap_fields[116];
1326                    goto compare;
1327                  }
1328                break;
1329              case 265:
1330                if (len == 23)
1331                  {
1332                    resword = &dmap_fields[117];
1333                    goto compare;
1334                  }
1335                break;
1336              case 276:
1337                if (len == 29)
1338                  {
1339                    resword = &dmap_fields[118];
1340                    goto compare;
1341                  }
1342                break;
1343              case 282:
1344                if (len == 20)
1345                  {
1346                    resword = &dmap_fields[119];
1347                    goto compare;
1348                  }
1349                break;
1350            }
1351          return 0;
1352        compare:
1353          {
1354            register const char *s = resword->desc;
1355
1356            if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
1357              return resword;
1358          }
1359        }
1360    }
1361  return 0;
1362}
1363#line 258 "dmap_fields.gperf"
1364
1365/* Sort fields */
1366/*
1367"dmap.sortingheaderlisting",                 "mshl", &dfm_dmap_mshl, DMAP_TYPE_UINT
1368"dmap.sortingheaderchar",                    "mshc", &dfm_dmap_mshc, DMAP_TYPE_SHORT
1369"dmap.sortingheaderindex",                   "mshi", &dfm_dmap_mshi, DMAP_TYPE_UINT
1370"dmap.sortingheadernumber",                  "mshn", &dfm_dmap_mshn, DMAP_TYPE_UINT
1371*/
1372/* Unsupported DMAP fields */
1373
1374/*
1375"com.apple.itunes.adam-ids-array",           "aeAD", &dfm_dmap_aeAD, DMAP_TYPE_LIST
1376"com.apple.itunes.content-rating",           "aeCR", &dfm_dmap_aeCR, DMAP_TYPE_STRING
1377"com.apple.itunes.drm-platform-id",          "aeDP", &dfm_dmap_aeDP, DMAP_TYPE_UINT
1378"com.apple.itunes.drm-user-id",              "aeDR", &dfm_dmap_aeDR, DMAP_TYPE_ULONG
1379"com.apple.itunes.drm-versions",             "aeDV", &dfm_dmap_aeDV, DMAP_TYPE_UINT
1380"com.apple.itunes.gapless-enc-dr",           "aeGD", &dfm_dmap_aeGD, DMAP_TYPE_UINT
1381"com.apple.itunes.gapless-enc-del",          "aeGE", &dfm_dmap_aeGE, DMAP_TYPE_UINT
1382"com.apple.itunes.gapless-heur",             "aeGH", &dfm_dmap_aeGH, DMAP_TYPE_UINT
1383"com.apple.itunes.gapless-resy",             "aeGR", &dfm_dmap_aeGR, DMAP_TYPE_ULONG
1384"com.apple.itunes.gapless-dur",              "aeGU", &dfm_dmap_aeGU, DMAP_TYPE_ULONG
1385"com.apple.itunes.is-hd-video",              "aeHD", &dfm_dmap_aeHD, DMAP_TYPE_UBYTE
1386"com.apple.itunes.drm-key1-id",              "aeK1", &dfm_dmap_aeK1, DMAP_TYPE_ULONG
1387"com.apple.itunes.drm-key2-id",              "aeK2", &dfm_dmap_aeK2, DMAP_TYPE_ULONG
1388"com.apple.itunes.non-drm-user-id",          "aeND", &dfm_dmap_aeND, DMAP_TYPE_ULONG
1389"com.apple.itunes.store-pers-id",            "aeSE", &dfm_dmap_aeSE, DMAP_TYPE_ULONG
1390"com.apple.itunes.saved-genius",             "aeSG", &dfm_dmap_aeSG, DMAP_TYPE_UBYTE
1391"com.apple.itunes.xid",                      "aeXD", &dfm_dmap_aeXD, DMAP_TYPE_STRING
1392"daap.bookmarkable",                         "asbk", &dfm_dmap_asbk, DMAP_TYPE_UBYTE
1393"daap.songbookmark",                         "asbo", &dfm_dmap_asbo, DMAP_TYPE_UINT
1394"daap.songdatepurchased",                    "asdp", &dfm_dmap_asdp, DMAP_TYPE_DATE
1395"daap.songdatereleased",                     "asdr", &dfm_dmap_asdr, DMAP_TYPE_DATE
1396"daap.songextradata",                        "ased", &dfm_dmap_ased, DMAP_TYPE_USHORT
1397"daap.songgapless",                          "asgp", &dfm_dmap_asgp, DMAP_TYPE_UBYTE
1398"daap.songhasbeenplayed",                    "ashp", &dfm_dmap_ashp, DMAP_TYPE_UBYTE
1399"daap.songlongsize",                         "asls", &dfm_dmap_asls, DMAP_TYPE_ULONG
1400"daap.songpodcasturl",                       "aspu", &dfm_dmap_aspu, DMAP_TYPE_STRING
1401"daap.sortseriesname",                       "asss", &dfm_dmap_asss, DMAP_TYPE_STRING
1402"daap.supportsextradata",                    "ated", &dfm_dmap_ated, DMAP_TYPE_USHORT
1403"com.apple.itunes.jukebox-client-vote",      "ceJC", &dfm_dmap_ceJC, DMAP_TYPE_BYTE
1404"com.apple.itunes.jukebox-current",          "ceJI", &dfm_dmap_ceJI, DMAP_TYPE_UINT
1405"com.apple.itunes.jukebox-score",            "ceJS", &dfm_dmap_ceJS, DMAP_TYPE_SHORT
1406"com.apple.itunes.jukebox-vote",             "ceJV", &dfm_dmap_ceJV, DMAP_TYPE_UINT
1407"dmap.editcommandssupported",                "meds", &dfm_dmap_meds, DMAP_TYPE_UINT
1408"dmap.utctime",                              "mstc", &dfm_dmap_mstc, DMAP_TYPE_DATE
1409"dmap.utcoffset",                            "msto", &dfm_dmap_msto, DMAP_TYPE_INT
1410*/
1411
1412/* DMAP test fields */
1413/*
1414"test.container",                            "TEST", &dfm_dmap_TEST, DMAP_TYPE_LIST
1415"test.ubyte",                                "TST1", &dfm_dmap_TST1, DMAP_TYPE_UBYTE
1416"test.byte",                                 "TST2", &dfm_dmap_TST2, DMAP_TYPE_BYTE
1417"test.ushort",                               "TST3", &dfm_dmap_TST3, DMAP_TYPE_USHORT
1418"test.short",                                "TST4", &dfm_dmap_TST4, DMAP_TYPE_SHORT
1419"test.uint",                                 "TST5", &dfm_dmap_TST5, DMAP_TYPE_UINT
1420"test.int",                                  "TST6", &dfm_dmap_TST6, DMAP_TYPE_INT
1421"test.ulong",                                "TST7", &dfm_dmap_TST7, DMAP_TYPE_ULONG
1422"test.long",                                 "TST8", &dfm_dmap_TST8, DMAP_TYPE_LONG
1423"test.string",                               "TST9", &dfm_dmap_TST9, DMAP_TYPE_STRING
1424*/
1425