1%language=ANSI-C
2%readonly-tables
3%enum
4%switch=1
5%compare-lengths
6%define hash-function-name dmap_hash_field
7%define lookup-function-name dmap_find_field
8%define slot-name desc
9%global-table
10%define word-array-name dmap_fields
11%struct-type
12%omit-struct-type
13%{
14/* Non-static fields are exported by dmap_common.h */
15static const struct dmap_field_map dfm_dmap_miid = { dbmfi_offsetof(id),                      dbpli_offsetof(id),            -1 };
16static const struct dmap_field_map dfm_dmap_minm = { dbmfi_offsetof(title),                   dbpli_offsetof(title),         dbgri_offsetof(itemname) };
17static const struct dmap_field_map dfm_dmap_mikd = { dbmfi_offsetof(item_kind),               -1,                            -1 };
18static const struct dmap_field_map dfm_dmap_mper = { dbmfi_offsetof(id),                      dbpli_offsetof(id),            dbgri_offsetof(persistentid) };
19static const struct dmap_field_map dfm_dmap_mcon = { -1,                                      -1,                            -1 };
20static const struct dmap_field_map dfm_dmap_mcti = { dbmfi_offsetof(id),                      -1,                            -1 };
21static const struct dmap_field_map dfm_dmap_mpco = { -1,                                      -1,                            -1 };
22static const struct dmap_field_map dfm_dmap_mstt = { -1,                                      -1,                            -1 };
23static const struct dmap_field_map dfm_dmap_msts = { -1,                                      -1,                            -1 };
24const struct dmap_field_map dfm_dmap_mimc = { dbmfi_offsetof(total_tracks),            dbpli_offsetof(items),         dbgri_offsetof(itemcount) };
25static const struct dmap_field_map dfm_dmap_mctc = { -1,                                      -1,                            -1 };
26static const struct dmap_field_map dfm_dmap_mrco = { -1,                                      -1,                            -1 };
27static const struct dmap_field_map dfm_dmap_mtco = { -1,                                      -1,                            -1 };
28static const struct dmap_field_map dfm_dmap_mlcl = { -1,                                      -1,                            -1 };
29static const struct dmap_field_map dfm_dmap_mlit = { -1,                                      -1,                            -1 };
30static const struct dmap_field_map dfm_dmap_mbcl = { -1,                                      -1,                            -1 };
31static const struct dmap_field_map dfm_dmap_mdcl = { -1,                                      -1,                            -1 };
32static const struct dmap_field_map dfm_dmap_msrv = { -1,                                      -1,                            -1 };
33static const struct dmap_field_map dfm_dmap_msau = { -1,                                      -1,                            -1 };
34static const struct dmap_field_map dfm_dmap_mslr = { -1,                                      -1,                            -1 };
35static const struct dmap_field_map dfm_dmap_mpro = { -1,                                      -1,                            -1 };
36static const struct dmap_field_map dfm_dmap_msal = { -1,                                      -1,                            -1 };
37static const struct dmap_field_map dfm_dmap_msup = { -1,                                      -1,                            -1 };
38static const struct dmap_field_map dfm_dmap_mspi = { -1,                                      -1,                            -1 };
39static const struct dmap_field_map dfm_dmap_msex = { -1,                                      -1,                            -1 };
40static const struct dmap_field_map dfm_dmap_msbr = { -1,                                      -1,                            -1 };
41static const struct dmap_field_map dfm_dmap_msqy = { -1,                                      -1,                            -1 };
42static const struct dmap_field_map dfm_dmap_msix = { -1,                                      -1,                            -1 };
43static const struct dmap_field_map dfm_dmap_msrs = { -1,                                      -1,                            -1 };
44static const struct dmap_field_map dfm_dmap_mstm = { -1,                                      -1,                            -1 };
45static const struct dmap_field_map dfm_dmap_msdc = { -1,                                      -1,                            -1 };
46static const struct dmap_field_map dfm_dmap_mlog = { -1,                                      -1,                            -1 };
47static const struct dmap_field_map dfm_dmap_mlid = { -1,                                      -1,                            -1 };
48static const struct dmap_field_map dfm_dmap_mupd = { -1,                                      -1,                            -1 };
49static const struct dmap_field_map dfm_dmap_musr = { -1,                                      -1,                            -1 };
50static const struct dmap_field_map dfm_dmap_muty = { -1,                                      -1,                            -1 };
51static const struct dmap_field_map dfm_dmap_mudl = { -1,                                      -1,                            -1 };
52static const struct dmap_field_map dfm_dmap_mccr = { -1,                                      -1,                            -1 };
53static const struct dmap_field_map dfm_dmap_mcnm = { -1,                                      -1,                            -1 };
54static const struct dmap_field_map dfm_dmap_mcna = { -1,                                      -1,                            -1 };
55static const struct dmap_field_map dfm_dmap_mcty = { -1,                                      -1,                            -1 };
56static const struct dmap_field_map dfm_dmap_apro = { -1,                                      -1,                            -1 };
57static const struct dmap_field_map dfm_dmap_avdb = { -1,                                      -1,                            -1 };
58static const struct dmap_field_map dfm_dmap_abro = { -1,                                      -1,                            -1 };
59static const struct dmap_field_map dfm_dmap_abal = { -1,                                      -1,                            -1 };
60static const struct dmap_field_map dfm_dmap_abar = { -1,                                      -1,                            -1 };
61static const struct dmap_field_map dfm_dmap_abcp = { -1,                                      -1,                            -1 };
62static const struct dmap_field_map dfm_dmap_abgn = { -1,                                      -1,                            -1 };
63static const struct dmap_field_map dfm_dmap_adbs = { -1,                                      -1,                            -1 };
64static const struct dmap_field_map dfm_dmap_asal = { dbmfi_offsetof(album),                   -1,                            -1 };
65static const struct dmap_field_map dfm_dmap_asai = { dbmfi_offsetof(songalbumid),             -1,                            -1 };
66static const struct dmap_field_map dfm_dmap_asaa = { dbmfi_offsetof(album_artist),            -1,                            dbgri_offsetof(songalbumartist) };
67static const struct dmap_field_map dfm_dmap_asar = { dbmfi_offsetof(artist),                  -1,                            -1 };
68static const struct dmap_field_map dfm_dmap_asbt = { dbmfi_offsetof(bpm),                     -1,                            -1 };
69static const struct dmap_field_map dfm_dmap_asbr = { dbmfi_offsetof(bitrate),                 -1,                            -1 };
70static const struct dmap_field_map dfm_dmap_ascm = { dbmfi_offsetof(comment),                 -1,                            -1 };
71static const struct dmap_field_map dfm_dmap_asco = { dbmfi_offsetof(compilation),             -1,                            -1 };
72static const struct dmap_field_map dfm_dmap_ascp = { dbmfi_offsetof(composer),                -1,                            -1 };
73static const struct dmap_field_map dfm_dmap_asda = { dbmfi_offsetof(time_added),              -1,                            -1 };
74static const struct dmap_field_map dfm_dmap_asdm = { dbmfi_offsetof(time_modified),           -1,                            -1 };
75static const struct dmap_field_map dfm_dmap_asdc = { dbmfi_offsetof(total_discs),             -1,                            -1 };
76static const struct dmap_field_map dfm_dmap_asdn = { dbmfi_offsetof(disc),                    -1,                            -1 };
77static const struct dmap_field_map dfm_dmap_asdb = { dbmfi_offsetof(disabled),                -1,                            -1 };
78static const struct dmap_field_map dfm_dmap_aseq = { -1,                                      -1,                            -1 };
79static const struct dmap_field_map dfm_dmap_asfm = { dbmfi_offsetof(type),                    -1,                            -1 };
80static const struct dmap_field_map dfm_dmap_asgn = { dbmfi_offsetof(genre),                   -1,                            -1 };
81static const struct dmap_field_map dfm_dmap_asdt = { dbmfi_offsetof(description),             -1,                            -1 };
82static const struct dmap_field_map dfm_dmap_asrv = { -1,                                      -1,                            -1 };
83static const struct dmap_field_map dfm_dmap_assr = { dbmfi_offsetof(samplerate),              -1,                            -1 };
84static const struct dmap_field_map dfm_dmap_assz = { dbmfi_offsetof(file_size),               -1,                            -1 };
85static const struct dmap_field_map dfm_dmap_asst = { -1,                                      -1,                            -1 };
86static const struct dmap_field_map dfm_dmap_assp = { -1,                                      -1,                            -1 };
87static const struct dmap_field_map dfm_dmap_astm = { dbmfi_offsetof(song_length),             -1,                            -1 };
88static const struct dmap_field_map dfm_dmap_astc = { dbmfi_offsetof(total_tracks),            -1,                            -1 };
89static const struct dmap_field_map dfm_dmap_astn = { dbmfi_offsetof(track),                   -1,                            -1 };
90static const struct dmap_field_map dfm_dmap_asur = { dbmfi_offsetof(rating),                  -1,                            -1 };
91static const struct dmap_field_map dfm_dmap_asyr = { dbmfi_offsetof(year),                    -1,                            -1 };
92static const struct dmap_field_map dfm_dmap_asdk = { dbmfi_offsetof(data_kind),               -1,                            -1 };
93static const struct dmap_field_map dfm_dmap_asul = { dbmfi_offsetof(url),                     -1,                            -1 };
94static const struct dmap_field_map dfm_dmap_aply = { -1,                                      -1,                            -1 };
95static const struct dmap_field_map dfm_dmap_abpl = { -1,                                      -1,                            -1 };
96static const struct dmap_field_map dfm_dmap_apso = { -1,                                      -1,                            -1 };
97static const struct dmap_field_map dfm_dmap_arsv = { -1,                                      -1,                            -1 };
98static const struct dmap_field_map dfm_dmap_arif = { -1,                                      -1,                            -1 };
99static const struct dmap_field_map dfm_dmap_aeNV = { -1,                                      -1,                            -1 };
100const struct dmap_field_map dfm_dmap_aeSP = { -1,                                      -1,                            -1 };
101static const struct dmap_field_map dfm_dmap_aePS = { -1,                                      -1,                            -1 };
102static const struct dmap_field_map dfm_dmap_ascd = { dbmfi_offsetof(codectype),               -1,                            -1 };
103static const struct dmap_field_map dfm_dmap_ascs = { -1,                                      -1,                            -1 };
104static const struct dmap_field_map dfm_dmap_agrp = { dbmfi_offsetof(grouping),                -1,                            -1 };
105static const struct dmap_field_map dfm_dmap_aeSV = { -1,                                      -1,                            -1 };
106static const struct dmap_field_map dfm_dmap_aePI = { -1,                                      -1,                            -1 };
107static const struct dmap_field_map dfm_dmap_aeCI = { -1,                                      -1,                            -1 };
108static const struct dmap_field_map dfm_dmap_aeGI = { -1,                                      -1,                            -1 };
109static const struct dmap_field_map dfm_dmap_aeAI = { -1,                                      -1,                            -1 };
110static const struct dmap_field_map dfm_dmap_aeSI = { -1,                                      -1,                            -1 };
111static const struct dmap_field_map dfm_dmap_aeSF = { -1,                                      -1,                            -1 };
112static const struct dmap_field_map dfm_dmap_ascr = { dbmfi_offsetof(contentrating),           -1,                            -1 };
113static const struct dmap_field_map dfm_dmap_aeHV = { dbmfi_offsetof(has_video),               -1,                            -1 };
114static const struct dmap_field_map dfm_dmap_msas = { -1,                                      -1,                            -1 };
115static const struct dmap_field_map dfm_dmap_asct = { -1,                                      -1,                            -1 };
116static const struct dmap_field_map dfm_dmap_ascn = { -1,                                      -1,                            -1 };
117static const struct dmap_field_map dfm_dmap_aslc = { -1,                                      -1,                            -1 };
118static const struct dmap_field_map dfm_dmap_asky = { -1,                                      -1,                            -1 };
119static const struct dmap_field_map dfm_dmap_apsm = { -1,                                      -1,                            -1 };
120static const struct dmap_field_map dfm_dmap_aprm = { -1,                                      -1,                            -1 };
121static const struct dmap_field_map dfm_dmap_aePC = { -1,                                      -1,                            -1 };
122static const struct dmap_field_map dfm_dmap_aePP = { -1,                                      -1,                            -1 };
123static const struct dmap_field_map dfm_dmap_aeMK = { dbmfi_offsetof(media_kind),              -1,                            -1 };
124static const struct dmap_field_map dfm_dmap_aeMk = { dbmfi_offsetof(media_kind),              -1,                            -1 };
125static const struct dmap_field_map dfm_dmap_aeSN = { dbmfi_offsetof(tv_series_name),          -1,                            -1 };
126static const struct dmap_field_map dfm_dmap_aeNN = { dbmfi_offsetof(tv_network_name),         -1,                            -1 };
127static const struct dmap_field_map dfm_dmap_aeEN = { dbmfi_offsetof(tv_episode_num_str),      -1,                            -1 };
128static const struct dmap_field_map dfm_dmap_aeES = { dbmfi_offsetof(tv_episode_sort),         -1,                            -1 };
129static const struct dmap_field_map dfm_dmap_aeSU = { dbmfi_offsetof(tv_season_num),           -1,                            -1 };
130static const struct dmap_field_map dfm_dmap_assn = { dbmfi_offsetof(title_sort),              -1,                            -1 };
131static const struct dmap_field_map dfm_dmap_assa = { dbmfi_offsetof(artist_sort),             -1,                            -1 };
132static const struct dmap_field_map dfm_dmap_assu = { dbmfi_offsetof(album_sort),              -1,                            -1 };
133static const struct dmap_field_map dfm_dmap_assc = { dbmfi_offsetof(composer_sort),           -1,                            -1 };
134static const struct dmap_field_map dfm_dmap_assl = { dbmfi_offsetof(album_artist_sort),       -1,                            -1 };
135%}
136struct dmap_field;
137%%
138"daap.browsealbumlisting",                   "abal", &dfm_dmap_abal, DMAP_TYPE_LIST
139"daap.browseartistlisting",                  "abar", &dfm_dmap_abar, DMAP_TYPE_LIST
140"daap.browsecomposerlisting",                "abcp", &dfm_dmap_abcp, DMAP_TYPE_LIST
141"daap.browsegenrelisting",                   "abgn", &dfm_dmap_abgn, DMAP_TYPE_LIST
142"daap.baseplaylist",                         "abpl", &dfm_dmap_abpl, DMAP_TYPE_UBYTE
143"daap.databasebrowse",                       "abro", &dfm_dmap_abro, DMAP_TYPE_LIST
144"daap.databasesongs",                        "adbs", &dfm_dmap_adbs, DMAP_TYPE_LIST
145"com.apple.itunes.itms-artistid",            "aeAI", &dfm_dmap_aeAI, DMAP_TYPE_UINT
146"com.apple.itunes.itms-composerid",          "aeCI", &dfm_dmap_aeCI, DMAP_TYPE_UINT
147"com.apple.itunes.episode-num-str",          "aeEN", &dfm_dmap_aeEN, DMAP_TYPE_STRING
148"com.apple.itunes.episode-sort",             "aeES", &dfm_dmap_aeES, DMAP_TYPE_UINT
149"com.apple.itunes.itms-genreid",             "aeGI", &dfm_dmap_aeGI, DMAP_TYPE_UINT
150"com.apple.itunes.has-video",                "aeHV", &dfm_dmap_aeHV, DMAP_TYPE_UBYTE
151"com.apple.itunes.extended-media-kind",      "aeMk", &dfm_dmap_aeMk, DMAP_TYPE_UINT
152"com.apple.itunes.mediakind",                "aeMK", &dfm_dmap_aeMK, DMAP_TYPE_UBYTE
153"com.apple.itunes.network-name",             "aeNN", &dfm_dmap_aeNN, DMAP_TYPE_STRING
154"com.apple.itunes.norm-volume",              "aeNV", &dfm_dmap_aeNV, DMAP_TYPE_UINT
155"com.apple.itunes.is-podcast",               "aePC", &dfm_dmap_aePC, DMAP_TYPE_UBYTE
156"com.apple.itunes.itms-playlistid",          "aePI", &dfm_dmap_aePI, DMAP_TYPE_UINT
157"com.apple.itunes.is-podcast-playlist",      "aePP", &dfm_dmap_aePP, DMAP_TYPE_UBYTE
158"com.apple.itunes.special-playlist",         "aePS", &dfm_dmap_aePS, DMAP_TYPE_UBYTE
159"com.apple.itunes.itms-storefrontid",        "aeSF", &dfm_dmap_aeSF, DMAP_TYPE_UINT
160"com.apple.itunes.itms-songid",              "aeSI", &dfm_dmap_aeSI, DMAP_TYPE_UINT
161"com.apple.itunes.series-name",              "aeSN", &dfm_dmap_aeSN, DMAP_TYPE_STRING
162"com.apple.itunes.smart-playlist",           "aeSP", &dfm_dmap_aeSP, DMAP_TYPE_UBYTE
163"com.apple.itunes.season-num",               "aeSU", &dfm_dmap_aeSU, DMAP_TYPE_UINT
164"com.apple.itunes.music-sharing-version",    "aeSV", &dfm_dmap_aeSV, DMAP_TYPE_UINT
165"daap.songgrouping",                         "agrp", &dfm_dmap_agrp, DMAP_TYPE_STRING
166"daap.databaseplaylists",                    "aply", &dfm_dmap_aply, DMAP_TYPE_LIST
167"daap.playlistrepeatmode",                   "aprm", &dfm_dmap_aprm, DMAP_TYPE_UBYTE
168"daap.protocolversion",                      "apro", &dfm_dmap_apro, DMAP_TYPE_VERSION
169"daap.playlistshufflemode",                  "apsm", &dfm_dmap_apsm, DMAP_TYPE_UBYTE
170"daap.playlistsongs",                        "apso", &dfm_dmap_apso, DMAP_TYPE_LIST
171"daap.resolveinfo",                          "arif", &dfm_dmap_arif, DMAP_TYPE_LIST
172"daap.resolve",                              "arsv", &dfm_dmap_arsv, DMAP_TYPE_LIST
173"daap.songalbumartist",                      "asaa", &dfm_dmap_asaa, DMAP_TYPE_STRING
174"daap.songalbumid",                          "asai", &dfm_dmap_asai, DMAP_TYPE_ULONG
175"daap.songalbum",                            "asal", &dfm_dmap_asal, DMAP_TYPE_STRING
176"daap.songartist",                           "asar", &dfm_dmap_asar, DMAP_TYPE_STRING
177"daap.songbitrate",                          "asbr", &dfm_dmap_asbr, DMAP_TYPE_USHORT
178"daap.songbeatsperminute",                   "asbt", &dfm_dmap_asbt, DMAP_TYPE_USHORT
179"daap.songcodectype",                        "ascd", &dfm_dmap_ascd, DMAP_TYPE_UINT
180"daap.songcomment",                          "ascm", &dfm_dmap_ascm, DMAP_TYPE_STRING
181"daap.songcontentdescription",               "ascn", &dfm_dmap_ascn, DMAP_TYPE_STRING
182"daap.songcompilation",                      "asco", &dfm_dmap_asco, DMAP_TYPE_UBYTE
183"daap.songcomposer",                         "ascp", &dfm_dmap_ascp, DMAP_TYPE_STRING
184"daap.songcontentrating",                    "ascr", &dfm_dmap_ascr, DMAP_TYPE_UBYTE
185"daap.songcodecsubtype",                     "ascs", &dfm_dmap_ascs, DMAP_TYPE_UINT
186"daap.songcategory",                         "asct", &dfm_dmap_asct, DMAP_TYPE_STRING
187"daap.songdateadded",                        "asda", &dfm_dmap_asda, DMAP_TYPE_DATE
188"daap.songdisabled",                         "asdb", &dfm_dmap_asdb, DMAP_TYPE_UBYTE
189"daap.songdisccount",                        "asdc", &dfm_dmap_asdc, DMAP_TYPE_USHORT
190"daap.songdatakind",                         "asdk", &dfm_dmap_asdk, DMAP_TYPE_UBYTE
191"daap.songdatemodified",                     "asdm", &dfm_dmap_asdm, DMAP_TYPE_DATE
192"daap.songdiscnumber",                       "asdn", &dfm_dmap_asdn, DMAP_TYPE_USHORT
193"daap.songdescription",                      "asdt", &dfm_dmap_asdt, DMAP_TYPE_STRING
194"daap.songeqpreset",                         "aseq", &dfm_dmap_aseq, DMAP_TYPE_STRING
195"daap.songformat",                           "asfm", &dfm_dmap_asfm, DMAP_TYPE_STRING
196"daap.songgenre",                            "asgn", &dfm_dmap_asgn, DMAP_TYPE_STRING
197"daap.songkeywords",                         "asky", &dfm_dmap_asky, DMAP_TYPE_STRING
198"daap.songlongcontentdescription",           "aslc", &dfm_dmap_aslc, DMAP_TYPE_STRING
199"daap.songrelativevolume",                   "asrv", &dfm_dmap_asrv, DMAP_TYPE_BYTE
200"daap.sortartist",                           "assa", &dfm_dmap_assa, DMAP_TYPE_STRING
201"daap.sortcomposer",                         "assc", &dfm_dmap_assc, DMAP_TYPE_STRING
202"daap.sortalbumartist",                      "assl", &dfm_dmap_assl, DMAP_TYPE_STRING
203"daap.sortname",                             "assn", &dfm_dmap_assn, DMAP_TYPE_STRING
204"daap.songstoptime",                         "assp", &dfm_dmap_assp, DMAP_TYPE_UINT
205"daap.songsamplerate",                       "assr", &dfm_dmap_assr, DMAP_TYPE_UINT
206"daap.songstarttime",                        "asst", &dfm_dmap_asst, DMAP_TYPE_UINT
207"daap.sortalbum",                            "assu", &dfm_dmap_assu, DMAP_TYPE_STRING
208"daap.songsize",                             "assz", &dfm_dmap_assz, DMAP_TYPE_UINT
209"daap.songtrackcount",                       "astc", &dfm_dmap_astc, DMAP_TYPE_USHORT
210"daap.songtime",                             "astm", &dfm_dmap_astm, DMAP_TYPE_UINT
211"daap.songtracknumber",                      "astn", &dfm_dmap_astn, DMAP_TYPE_USHORT
212"daap.songdataurl",                          "asul", &dfm_dmap_asul, DMAP_TYPE_STRING
213"daap.songuserrating",                       "asur", &dfm_dmap_asur, DMAP_TYPE_UBYTE
214"daap.songyear",                             "asyr", &dfm_dmap_asyr, DMAP_TYPE_USHORT
215"daap.serverdatabases",                      "avdb", &dfm_dmap_avdb, DMAP_TYPE_LIST
216"dmap.bag",                                  "mbcl", &dfm_dmap_mbcl, DMAP_TYPE_LIST
217"dmap.contentcodesresponse",                 "mccr", &dfm_dmap_mccr, DMAP_TYPE_LIST
218"dmap.contentcodesname",                     "mcna", &dfm_dmap_mcna, DMAP_TYPE_STRING
219"dmap.contentcodesnumber",                   "mcnm", &dfm_dmap_mcnm, DMAP_TYPE_UINT
220"dmap.container",                            "mcon", &dfm_dmap_mcon, DMAP_TYPE_LIST
221"dmap.containercount",                       "mctc", &dfm_dmap_mctc, DMAP_TYPE_UINT
222"dmap.containeritemid",                      "mcti", &dfm_dmap_mcti, DMAP_TYPE_UINT
223"dmap.contentcodestype",                     "mcty", &dfm_dmap_mcty, DMAP_TYPE_USHORT
224"dmap.dictionary",                           "mdcl", &dfm_dmap_mdcl, DMAP_TYPE_LIST
225"dmap.itemid",                               "miid", &dfm_dmap_miid, DMAP_TYPE_UINT
226"dmap.itemkind",                             "mikd", &dfm_dmap_mikd, DMAP_TYPE_UBYTE
227"dmap.itemcount",                            "mimc", &dfm_dmap_mimc, DMAP_TYPE_UINT
228"dmap.itemname",                             "minm", &dfm_dmap_minm, DMAP_TYPE_STRING
229"dmap.listing",                              "mlcl", &dfm_dmap_mlcl, DMAP_TYPE_LIST
230"dmap.sessionid",                            "mlid", &dfm_dmap_mlid, DMAP_TYPE_UINT
231"dmap.listingitem",                          "mlit", &dfm_dmap_mlit, DMAP_TYPE_LIST
232"dmap.loginresponse",                        "mlog", &dfm_dmap_mlog, DMAP_TYPE_LIST
233"dmap.parentcontainerid",                    "mpco", &dfm_dmap_mpco, DMAP_TYPE_UINT
234"dmap.persistentid",                         "mper", &dfm_dmap_mper, DMAP_TYPE_ULONG
235"dmap.protocolversion",                      "mpro", &dfm_dmap_mpro, DMAP_TYPE_VERSION
236"dmap.returnedcount",                        "mrco", &dfm_dmap_mrco, DMAP_TYPE_UINT
237"dmap.supportsautologout",                   "msal", &dfm_dmap_msal, DMAP_TYPE_UBYTE
238"dmap.authenticationschemes",                "msas", &dfm_dmap_msas, DMAP_TYPE_UINT
239"dmap.authenticationmethod",                 "msau", &dfm_dmap_msau, DMAP_TYPE_UBYTE
240"dmap.supportsbrowse",                       "msbr", &dfm_dmap_msbr, DMAP_TYPE_UBYTE
241"dmap.databasescount",                       "msdc", &dfm_dmap_msdc, DMAP_TYPE_UINT
242"dmap.supportsextensions",                   "msex", &dfm_dmap_msex, DMAP_TYPE_UBYTE
243"dmap.supportsindex",                        "msix", &dfm_dmap_msix, DMAP_TYPE_UBYTE
244"dmap.loginrequired",                        "mslr", &dfm_dmap_mslr, DMAP_TYPE_UBYTE
245"dmap.supportspersistentids",                "mspi", &dfm_dmap_mspi, DMAP_TYPE_UBYTE
246"dmap.supportsquery",                        "msqy", &dfm_dmap_msqy, DMAP_TYPE_UBYTE
247"dmap.supportsresolve",                      "msrs", &dfm_dmap_msrs, DMAP_TYPE_UBYTE
248"dmap.serverinforesponse",                   "msrv", &dfm_dmap_msrv, DMAP_TYPE_LIST
249"dmap.timeoutinterval",                      "mstm", &dfm_dmap_mstm, DMAP_TYPE_UINT
250"dmap.statusstring",                         "msts", &dfm_dmap_msts, DMAP_TYPE_STRING
251"dmap.status",                               "mstt", &dfm_dmap_mstt, DMAP_TYPE_UINT
252"dmap.supportsupdate",                       "msup", &dfm_dmap_msup, DMAP_TYPE_UBYTE
253"dmap.specifiedtotalcount",                  "mtco", &dfm_dmap_mtco, DMAP_TYPE_UINT
254"dmap.deletedidlisting",                     "mudl", &dfm_dmap_mudl, DMAP_TYPE_LIST
255"dmap.updateresponse",                       "mupd", &dfm_dmap_mupd, DMAP_TYPE_LIST
256"dmap.serverrevision",                       "musr", &dfm_dmap_musr, DMAP_TYPE_UINT
257"dmap.updatetype",                           "muty", &dfm_dmap_muty, DMAP_TYPE_UBYTE
258%%
259/* Sort fields */
260/*
261"dmap.sortingheaderlisting",                 "mshl", &dfm_dmap_mshl, DMAP_TYPE_UINT
262"dmap.sortingheaderchar",                    "mshc", &dfm_dmap_mshc, DMAP_TYPE_SHORT
263"dmap.sortingheaderindex",                   "mshi", &dfm_dmap_mshi, DMAP_TYPE_UINT
264"dmap.sortingheadernumber",                  "mshn", &dfm_dmap_mshn, DMAP_TYPE_UINT
265*/
266/* Unsupported DMAP fields */
267
268/*
269"com.apple.itunes.adam-ids-array",           "aeAD", &dfm_dmap_aeAD, DMAP_TYPE_LIST
270"com.apple.itunes.content-rating",           "aeCR", &dfm_dmap_aeCR, DMAP_TYPE_STRING
271"com.apple.itunes.drm-platform-id",          "aeDP", &dfm_dmap_aeDP, DMAP_TYPE_UINT
272"com.apple.itunes.drm-user-id",              "aeDR", &dfm_dmap_aeDR, DMAP_TYPE_ULONG
273"com.apple.itunes.drm-versions",             "aeDV", &dfm_dmap_aeDV, DMAP_TYPE_UINT
274"com.apple.itunes.gapless-enc-dr",           "aeGD", &dfm_dmap_aeGD, DMAP_TYPE_UINT
275"com.apple.itunes.gapless-enc-del",          "aeGE", &dfm_dmap_aeGE, DMAP_TYPE_UINT
276"com.apple.itunes.gapless-heur",             "aeGH", &dfm_dmap_aeGH, DMAP_TYPE_UINT
277"com.apple.itunes.gapless-resy",             "aeGR", &dfm_dmap_aeGR, DMAP_TYPE_ULONG
278"com.apple.itunes.gapless-dur",              "aeGU", &dfm_dmap_aeGU, DMAP_TYPE_ULONG
279"com.apple.itunes.is-hd-video",              "aeHD", &dfm_dmap_aeHD, DMAP_TYPE_UBYTE
280"com.apple.itunes.drm-key1-id",              "aeK1", &dfm_dmap_aeK1, DMAP_TYPE_ULONG
281"com.apple.itunes.drm-key2-id",              "aeK2", &dfm_dmap_aeK2, DMAP_TYPE_ULONG
282"com.apple.itunes.non-drm-user-id",          "aeND", &dfm_dmap_aeND, DMAP_TYPE_ULONG
283"com.apple.itunes.store-pers-id",            "aeSE", &dfm_dmap_aeSE, DMAP_TYPE_ULONG
284"com.apple.itunes.saved-genius",             "aeSG", &dfm_dmap_aeSG, DMAP_TYPE_UBYTE
285"com.apple.itunes.xid",                      "aeXD", &dfm_dmap_aeXD, DMAP_TYPE_STRING
286"daap.bookmarkable",                         "asbk", &dfm_dmap_asbk, DMAP_TYPE_UBYTE
287"daap.songbookmark",                         "asbo", &dfm_dmap_asbo, DMAP_TYPE_UINT
288"daap.songdatepurchased",                    "asdp", &dfm_dmap_asdp, DMAP_TYPE_DATE
289"daap.songdatereleased",                     "asdr", &dfm_dmap_asdr, DMAP_TYPE_DATE
290"daap.songextradata",                        "ased", &dfm_dmap_ased, DMAP_TYPE_USHORT
291"daap.songgapless",                          "asgp", &dfm_dmap_asgp, DMAP_TYPE_UBYTE
292"daap.songhasbeenplayed",                    "ashp", &dfm_dmap_ashp, DMAP_TYPE_UBYTE
293"daap.songlongsize",                         "asls", &dfm_dmap_asls, DMAP_TYPE_ULONG
294"daap.songpodcasturl",                       "aspu", &dfm_dmap_aspu, DMAP_TYPE_STRING
295"daap.sortseriesname",                       "asss", &dfm_dmap_asss, DMAP_TYPE_STRING
296"daap.supportsextradata",                    "ated", &dfm_dmap_ated, DMAP_TYPE_USHORT
297"com.apple.itunes.jukebox-client-vote",      "ceJC", &dfm_dmap_ceJC, DMAP_TYPE_BYTE
298"com.apple.itunes.jukebox-current",          "ceJI", &dfm_dmap_ceJI, DMAP_TYPE_UINT
299"com.apple.itunes.jukebox-score",            "ceJS", &dfm_dmap_ceJS, DMAP_TYPE_SHORT
300"com.apple.itunes.jukebox-vote",             "ceJV", &dfm_dmap_ceJV, DMAP_TYPE_UINT
301"dmap.editcommandssupported",                "meds", &dfm_dmap_meds, DMAP_TYPE_UINT
302"dmap.utctime",                              "mstc", &dfm_dmap_mstc, DMAP_TYPE_DATE
303"dmap.utcoffset",                            "msto", &dfm_dmap_msto, DMAP_TYPE_INT
304*/
305
306/* DMAP test fields */
307/*
308"test.container",                            "TEST", &dfm_dmap_TEST, DMAP_TYPE_LIST
309"test.ubyte",                                "TST1", &dfm_dmap_TST1, DMAP_TYPE_UBYTE
310"test.byte",                                 "TST2", &dfm_dmap_TST2, DMAP_TYPE_BYTE
311"test.ushort",                               "TST3", &dfm_dmap_TST3, DMAP_TYPE_USHORT
312"test.short",                                "TST4", &dfm_dmap_TST4, DMAP_TYPE_SHORT
313"test.uint",                                 "TST5", &dfm_dmap_TST5, DMAP_TYPE_UINT
314"test.int",                                  "TST6", &dfm_dmap_TST6, DMAP_TYPE_INT
315"test.ulong",                                "TST7", &dfm_dmap_TST7, DMAP_TYPE_ULONG
316"test.long",                                 "TST8", &dfm_dmap_TST8, DMAP_TYPE_LONG
317"test.string",                               "TST9", &dfm_dmap_TST9, DMAP_TYPE_STRING
318*/
319