3 * libid3tag - ID3 tag manipulation library
4 * Copyright (C) 2000-2004 Underbit Technologies, Inc.
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.
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.
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
20 * $Id: frametype.gperf,v 1.7 2004/01/23 09:41:32 rob Exp $
32 # include "frametype.h"
34 # define FIELDS(id) static enum id3_field_type const fields_##id[]
36 /* frame field descriptions */
39 ID3_FIELD_TYPE_LATIN1,
40 ID3_FIELD_TYPE_BINARYDATA
44 ID3_FIELD_TYPE_TEXTENCODING,
45 ID3_FIELD_TYPE_STRING,
50 ID3_FIELD_TYPE_TEXTENCODING,
51 ID3_FIELD_TYPE_STRING,
56 ID3_FIELD_TYPE_BINARYDATA
61 ID3_FIELD_TYPE_BINARYDATA
70 ID3_FIELD_TYPE_BINARYDATA
75 ID3_FIELD_TYPE_BINARYDATA
79 ID3_FIELD_TYPE_TEXTENCODING,
80 ID3_FIELD_TYPE_LANGUAGE,
81 ID3_FIELD_TYPE_STRING,
82 ID3_FIELD_TYPE_STRINGFULL
86 ID3_FIELD_TYPE_TEXTENCODING,
87 ID3_FIELD_TYPE_LANGUAGE,
90 ID3_FIELD_TYPE_STRING,
91 ID3_FIELD_TYPE_BINARYDATA
95 ID3_FIELD_TYPE_TEXTENCODING,
96 ID3_FIELD_TYPE_LANGUAGE,
97 ID3_FIELD_TYPE_STRING,
98 ID3_FIELD_TYPE_STRINGFULL
102 ID3_FIELD_TYPE_LATIN1,
103 ID3_FIELD_TYPE_BINARYDATA
108 ID3_FIELD_TYPE_LATIN1,
109 ID3_FIELD_TYPE_BINARYDATA
113 ID3_FIELD_TYPE_INT16,
114 ID3_FIELD_TYPE_INT16,
126 ID3_FIELD_TYPE_TEXTENCODING,
127 ID3_FIELD_TYPE_LATIN1,
129 ID3_FIELD_TYPE_STRING,
130 ID3_FIELD_TYPE_BINARYDATA
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
142 ID3_FIELD_TYPE_INT32PLUS
146 ID3_FIELD_TYPE_LATIN1,
148 ID3_FIELD_TYPE_INT32PLUS
152 ID3_FIELD_TYPE_INT24,
158 ID3_FIELD_TYPE_LATIN1,
159 ID3_FIELD_TYPE_INT16,
160 ID3_FIELD_TYPE_INT16,
161 ID3_FIELD_TYPE_BINARYDATA
165 ID3_FIELD_TYPE_FRAMEID,
166 ID3_FIELD_TYPE_LATIN1,
167 ID3_FIELD_TYPE_LATIN1LIST
172 ID3_FIELD_TYPE_BINARYDATA
176 ID3_FIELD_TYPE_TEXTENCODING,
177 ID3_FIELD_TYPE_LANGUAGE,
178 ID3_FIELD_TYPE_STRING
182 ID3_FIELD_TYPE_TEXTENCODING,
183 ID3_FIELD_TYPE_LATIN1,
185 ID3_FIELD_TYPE_STRING
189 ID3_FIELD_TYPE_TEXTENCODING,
190 ID3_FIELD_TYPE_LATIN1,
192 ID3_FIELD_TYPE_LATIN1,
194 ID3_FIELD_TYPE_STRING,
195 ID3_FIELD_TYPE_STRING,
196 ID3_FIELD_TYPE_LATIN1,
197 ID3_FIELD_TYPE_BINARYDATA
201 ID3_FIELD_TYPE_LATIN1,
203 ID3_FIELD_TYPE_BINARYDATA
207 ID3_FIELD_TYPE_LATIN1,
209 ID3_FIELD_TYPE_BINARYDATA
213 ID3_FIELD_TYPE_LATIN1,
214 ID3_FIELD_TYPE_BINARYDATA
219 ID3_FIELD_TYPE_BINARYDATA
227 ID3_FIELD_TYPE_INT32,
228 ID3_FIELD_TYPE_INT32,
229 ID3_FIELD_TYPE_INT16,
231 ID3_FIELD_TYPE_BINARYDATA
235 ID3_FIELD_TYPE_TEXTENCODING,
236 ID3_FIELD_TYPE_STRINGLIST
240 ID3_FIELD_TYPE_LATIN1
244 ID3_FIELD_TYPE_BINARYDATA
248 ID3_FIELD_TYPE_FRAMEID,
249 ID3_FIELD_TYPE_BINARYDATA
253 sizeof(fields_##id) / sizeof(fields_##id[0]), fields_##id
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 \
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;
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"
363 ZOBS, FRAME(ZOBS), OBSOLETE, "Obsolete frame"