libsodium: Needed for Dnscrypto-proxy Release 1.3.0
[tomato.git] / release / src / router / libid3tag / frametype.gperf
blob1c8ff2ea39f3c753c589f2f64209d9d6e1950505
1 %{
2 /*
3  * libid3tag - ID3 tag manipulation library
4  * Copyright (C) 2000-2004 Underbit Technologies, Inc.
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  *
20  * $Id: frametype.gperf,v 1.7 2004/01/23 09:41:32 rob Exp $
21  */
23 # ifdef HAVE_CONFIG_H
24 #  include "config.h"
25 # endif
27 # include "global.h"
29 # include <string.h>
31 # include "id3tag.h"
32 # include "frametype.h"
34 # define FIELDS(id)  static enum id3_field_type const fields_##id[]
36 /* frame field descriptions */
38 FIELDS(UFID) = {
39   ID3_FIELD_TYPE_LATIN1,
40   ID3_FIELD_TYPE_BINARYDATA
43 FIELDS(TXXX) = {
44   ID3_FIELD_TYPE_TEXTENCODING,
45   ID3_FIELD_TYPE_STRING,
46   ID3_FIELD_TYPE_STRING
49 FIELDS(WXXX) = {
50   ID3_FIELD_TYPE_TEXTENCODING,
51   ID3_FIELD_TYPE_STRING,
52   ID3_FIELD_TYPE_LATIN1
55 FIELDS(MCDI) = {
56   ID3_FIELD_TYPE_BINARYDATA
59 FIELDS(ETCO) = {
60   ID3_FIELD_TYPE_INT8,
61   ID3_FIELD_TYPE_BINARYDATA
64 FIELDS(MLLT) = {
65   ID3_FIELD_TYPE_INT16,
66   ID3_FIELD_TYPE_INT24,
67   ID3_FIELD_TYPE_INT24,
68   ID3_FIELD_TYPE_INT8,
69   ID3_FIELD_TYPE_INT8,
70   ID3_FIELD_TYPE_BINARYDATA
73 FIELDS(SYTC) = {
74   ID3_FIELD_TYPE_INT8,
75   ID3_FIELD_TYPE_BINARYDATA
78 FIELDS(USLT) = {
79   ID3_FIELD_TYPE_TEXTENCODING,
80   ID3_FIELD_TYPE_LANGUAGE,
81   ID3_FIELD_TYPE_STRING,
82   ID3_FIELD_TYPE_STRINGFULL
85 FIELDS(SYLT) = {
86   ID3_FIELD_TYPE_TEXTENCODING,
87   ID3_FIELD_TYPE_LANGUAGE,
88   ID3_FIELD_TYPE_INT8,
89   ID3_FIELD_TYPE_INT8,
90   ID3_FIELD_TYPE_STRING,
91   ID3_FIELD_TYPE_BINARYDATA
94 FIELDS(COMM) = {
95   ID3_FIELD_TYPE_TEXTENCODING,
96   ID3_FIELD_TYPE_LANGUAGE,
97   ID3_FIELD_TYPE_STRING,
98   ID3_FIELD_TYPE_STRINGFULL
101 FIELDS(RVA2) = {
102   ID3_FIELD_TYPE_LATIN1,
103   ID3_FIELD_TYPE_BINARYDATA
106 FIELDS(EQU2) = {
107   ID3_FIELD_TYPE_INT8,
108   ID3_FIELD_TYPE_LATIN1,
109   ID3_FIELD_TYPE_BINARYDATA
112 FIELDS(RVRB) = {
113   ID3_FIELD_TYPE_INT16,
114   ID3_FIELD_TYPE_INT16,
115   ID3_FIELD_TYPE_INT8,
116   ID3_FIELD_TYPE_INT8,
117   ID3_FIELD_TYPE_INT8,
118   ID3_FIELD_TYPE_INT8,
119   ID3_FIELD_TYPE_INT8,
120   ID3_FIELD_TYPE_INT8,
121   ID3_FIELD_TYPE_INT8,
122   ID3_FIELD_TYPE_INT8
125 FIELDS(APIC) = {
126   ID3_FIELD_TYPE_TEXTENCODING,
127   ID3_FIELD_TYPE_LATIN1,
128   ID3_FIELD_TYPE_INT8,
129   ID3_FIELD_TYPE_STRING,
130   ID3_FIELD_TYPE_BINARYDATA
133 FIELDS(GEOB) = {
134   ID3_FIELD_TYPE_TEXTENCODING,
135   ID3_FIELD_TYPE_LATIN1,
136   ID3_FIELD_TYPE_STRING,
137   ID3_FIELD_TYPE_STRING,
138   ID3_FIELD_TYPE_BINARYDATA
141 FIELDS(PCNT) = {
142   ID3_FIELD_TYPE_INT32PLUS
145 FIELDS(POPM) = {
146   ID3_FIELD_TYPE_LATIN1,
147   ID3_FIELD_TYPE_INT8,
148   ID3_FIELD_TYPE_INT32PLUS
151 FIELDS(RBUF) = {
152   ID3_FIELD_TYPE_INT24,
153   ID3_FIELD_TYPE_INT8,
154   ID3_FIELD_TYPE_INT32
157 FIELDS(AENC) = {
158   ID3_FIELD_TYPE_LATIN1,
159   ID3_FIELD_TYPE_INT16,
160   ID3_FIELD_TYPE_INT16,
161   ID3_FIELD_TYPE_BINARYDATA
164 FIELDS(LINK) = {
165   ID3_FIELD_TYPE_FRAMEID,
166   ID3_FIELD_TYPE_LATIN1,
167   ID3_FIELD_TYPE_LATIN1LIST
170 FIELDS(POSS) = {
171   ID3_FIELD_TYPE_INT8,
172   ID3_FIELD_TYPE_BINARYDATA
175 FIELDS(USER) = {
176   ID3_FIELD_TYPE_TEXTENCODING,
177   ID3_FIELD_TYPE_LANGUAGE,
178   ID3_FIELD_TYPE_STRING
181 FIELDS(OWNE) = {
182   ID3_FIELD_TYPE_TEXTENCODING,
183   ID3_FIELD_TYPE_LATIN1,
184   ID3_FIELD_TYPE_DATE,
185   ID3_FIELD_TYPE_STRING
188 FIELDS(COMR) = {
189   ID3_FIELD_TYPE_TEXTENCODING,
190   ID3_FIELD_TYPE_LATIN1,
191   ID3_FIELD_TYPE_DATE,
192   ID3_FIELD_TYPE_LATIN1,
193   ID3_FIELD_TYPE_INT8,
194   ID3_FIELD_TYPE_STRING,
195   ID3_FIELD_TYPE_STRING,
196   ID3_FIELD_TYPE_LATIN1,
197   ID3_FIELD_TYPE_BINARYDATA
200 FIELDS(ENCR) = {
201   ID3_FIELD_TYPE_LATIN1,
202   ID3_FIELD_TYPE_INT8,
203   ID3_FIELD_TYPE_BINARYDATA
206 FIELDS(GRID) = {
207   ID3_FIELD_TYPE_LATIN1,
208   ID3_FIELD_TYPE_INT8,
209   ID3_FIELD_TYPE_BINARYDATA
212 FIELDS(PRIV) = {
213   ID3_FIELD_TYPE_LATIN1,
214   ID3_FIELD_TYPE_BINARYDATA
217 FIELDS(SIGN) = {
218   ID3_FIELD_TYPE_INT8,
219   ID3_FIELD_TYPE_BINARYDATA
222 FIELDS(SEEK) = {
223   ID3_FIELD_TYPE_INT32
226 FIELDS(ASPI) = {
227   ID3_FIELD_TYPE_INT32,
228   ID3_FIELD_TYPE_INT32,
229   ID3_FIELD_TYPE_INT16,
230   ID3_FIELD_TYPE_INT8,
231   ID3_FIELD_TYPE_BINARYDATA
234 FIELDS(text) = {
235   ID3_FIELD_TYPE_TEXTENCODING,
236   ID3_FIELD_TYPE_STRINGLIST
239 FIELDS(url) = {
240   ID3_FIELD_TYPE_LATIN1
243 FIELDS(unknown) = {
244   ID3_FIELD_TYPE_BINARYDATA
247 FIELDS(ZOBS) = {
248   ID3_FIELD_TYPE_FRAMEID,
249   ID3_FIELD_TYPE_BINARYDATA
252 # define FRAME(id)  \
253   sizeof(fields_##id) / sizeof(fields_##id[0]), fields_##id
255 # define PRESERVE  0
256 # define DISCARD   ID3_FRAME_FLAG_FILEALTERPRESERVATION
257 # define OBSOLETE  (DISCARD | ID3_FRAME_FLAG_TAGALTERPRESERVATION)
259 # define FRAMETYPE(type, id, flags, desc)  \
260   struct id3_frametype const id3_frametype_##type = {  \
261     0, FRAME(id), flags, desc  \
262   }
264 /* static frame types */
266 FRAMETYPE(text,         text,    PRESERVE, "Unknown text information frame");
267 FRAMETYPE(url,          url,     PRESERVE, "Unknown URL link frame");
268 FRAMETYPE(experimental, unknown, PRESERVE, "Experimental frame");
269 FRAMETYPE(unknown,      unknown, PRESERVE, "Unknown frame");
270 FRAMETYPE(obsolete,     unknown, OBSOLETE, "Obsolete frame");
272 struct id3_frametype;
275 # ID3v2.4 frames
277 AENC, FRAME(AENC), DISCARD,  "Audio encryption"
278 APIC, FRAME(APIC), PRESERVE, "Attached picture"
279 ASPI, FRAME(ASPI), DISCARD,  "Audio seek point index"
280 COMM, FRAME(COMM), PRESERVE, "Comments"
281 COMR, FRAME(COMR), PRESERVE, "Commercial frame"
282 ENCR, FRAME(ENCR), PRESERVE, "Encryption method registration"
283 EQU2, FRAME(EQU2), DISCARD,  "Equalisation (2)"
284 ETCO, FRAME(ETCO), DISCARD,  "Event timing codes"
285 GEOB, FRAME(GEOB), PRESERVE, "General encapsulated object"
286 GRID, FRAME(GRID), PRESERVE, "Group identification registration"
287 LINK, FRAME(LINK), PRESERVE, "Linked information"
288 MCDI, FRAME(MCDI), PRESERVE, "Music CD identifier"
289 MLLT, FRAME(MLLT), DISCARD,  "MPEG location lookup table"
290 OWNE, FRAME(OWNE), PRESERVE, "Ownership frame"
291 PCNT, FRAME(PCNT), PRESERVE, "Play counter"
292 POPM, FRAME(POPM), PRESERVE, "Popularimeter"
293 POSS, FRAME(POSS), DISCARD,  "Position synchronisation frame"
294 PRIV, FRAME(PRIV), PRESERVE, "Private frame"
295 RBUF, FRAME(RBUF), PRESERVE, "Recommended buffer size"
296 RVA2, FRAME(RVA2), DISCARD,  "Relative volume adjustment (2)"
297 RVRB, FRAME(RVRB), PRESERVE, "Reverb"
298 SEEK, FRAME(SEEK), DISCARD,  "Seek frame"
299 SIGN, FRAME(SIGN), PRESERVE, "Signature frame"
300 SYLT, FRAME(SYLT), DISCARD,  "Synchronised lyric/text"
301 SYTC, FRAME(SYTC), DISCARD,  "Synchronised tempo codes"
302 TALB, FRAME(text), PRESERVE, "Album/movie/show title"
303 TBPM, FRAME(text), PRESERVE, "BPM (beats per minute)"
304 TCOM, FRAME(text), PRESERVE, "Composer"
305 TCON, FRAME(text), PRESERVE, "Content type"
306 TCOP, FRAME(text), PRESERVE, "Copyright message"
307 TDEN, FRAME(text), PRESERVE, "Encoding time"
308 TDLY, FRAME(text), PRESERVE, "Playlist delay"
309 TDOR, FRAME(text), PRESERVE, "Original release time"
310 TDRC, FRAME(text), PRESERVE, "Recording time"
311 TDRL, FRAME(text), PRESERVE, "Release time"
312 TDTG, FRAME(text), PRESERVE, "Tagging time"
313 TENC, FRAME(text), DISCARD,  "Encoded by"
314 TEXT, FRAME(text), PRESERVE, "Lyricist/text writer"
315 TFLT, FRAME(text), PRESERVE, "File type"
316 TIPL, FRAME(text), PRESERVE, "Involved people list"
317 TIT1, FRAME(text), PRESERVE, "Content group description"
318 TIT2, FRAME(text), PRESERVE, "Title/songname/content description"
319 TIT3, FRAME(text), PRESERVE, "Subtitle/description refinement"
320 TKEY, FRAME(text), PRESERVE, "Initial key"
321 TLAN, FRAME(text), PRESERVE, "Language(s)"
322 TLEN, FRAME(text), DISCARD,  "Length"
323 TMCL, FRAME(text), PRESERVE, "Musician credits list"
324 TMED, FRAME(text), PRESERVE, "Media type"
325 TMOO, FRAME(text), PRESERVE, "Mood"
326 TOAL, FRAME(text), PRESERVE, "Original album/movie/show title"
327 TOFN, FRAME(text), PRESERVE, "Original filename"
328 TOLY, FRAME(text), PRESERVE, "Original lyricist(s)/text writer(s)"
329 TOPE, FRAME(text), PRESERVE, "Original artist(s)/performer(s)"
330 TOWN, FRAME(text), PRESERVE, "File owner/licensee"
331 TPE1, FRAME(text), PRESERVE, "Lead performer(s)/soloist(s)"
332 TPE2, FRAME(text), PRESERVE, "Band/orchestra/accompaniment"
333 TPE3, FRAME(text), PRESERVE, "Conductor/performer refinement"
334 TPE4, FRAME(text), PRESERVE, "Interpreted, remixed, or otherwise modified by"
335 TPOS, FRAME(text), PRESERVE, "Part of a set"
336 TPRO, FRAME(text), PRESERVE, "Produced notice"
337 TPUB, FRAME(text), PRESERVE, "Publisher"
338 TRCK, FRAME(text), PRESERVE, "Track number/position in set"
339 TRSN, FRAME(text), PRESERVE, "Internet radio station name"
340 TRSO, FRAME(text), PRESERVE, "Internet radio station owner"
341 TSOA, FRAME(text), PRESERVE, "Album sort order"
342 TSOP, FRAME(text), PRESERVE, "Performer sort order"
343 TSOT, FRAME(text), PRESERVE, "Title sort order"
344 TSRC, FRAME(text), PRESERVE, "ISRC (international standard recording code)"
345 TSSE, FRAME(text), PRESERVE, "Software/hardware and settings used for encoding"
346 TSST, FRAME(text), PRESERVE, "Set subtitle"
347 TXXX, FRAME(TXXX), PRESERVE, "User defined text information frame"
348 UFID, FRAME(UFID), PRESERVE, "Unique file identifier"
349 USER, FRAME(USER), PRESERVE, "Terms of use"
350 USLT, FRAME(USLT), PRESERVE, "Unsynchronised lyric/text transcription"
351 WCOM, FRAME(url),  PRESERVE, "Commercial information"
352 WCOP, FRAME(url),  PRESERVE, "Copyright/legal information"
353 WOAF, FRAME(url),  PRESERVE, "Official audio file webpage"
354 WOAR, FRAME(url),  PRESERVE, "Official artist/performer webpage"
355 WOAS, FRAME(url),  PRESERVE, "Official audio source webpage"
356 WORS, FRAME(url),  PRESERVE, "Official Internet radio station homepage"
357 WPAY, FRAME(url),  PRESERVE, "Payment"
358 WPUB, FRAME(url),  PRESERVE, "Publishers official webpage"
359 WXXX, FRAME(WXXX), PRESERVE, "User defined URL link frame"
361 # Special frames
363 ZOBS, FRAME(ZOBS), OBSOLETE, "Obsolete frame"