From d35747a40c7dea12de95f78a4f283a45ef687597 Mon Sep 17 00:00:00 2001 From: Warren Dukes Date: Mon, 23 Feb 2004 23:41:20 +0000 Subject: import from SF CVS git-svn-id: https://svn.musicpd.org/mpd/trunk@1 09075e82-0dd4-0310-85a5-a0d7c8717e4f --- src/libid3tag/frametype.gperf | 363 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 363 insertions(+) create mode 100644 src/libid3tag/frametype.gperf (limited to 'src/libid3tag/frametype.gperf') diff --git a/src/libid3tag/frametype.gperf b/src/libid3tag/frametype.gperf new file mode 100644 index 000000000..5158f77b9 --- /dev/null +++ b/src/libid3tag/frametype.gperf @@ -0,0 +1,363 @@ +%{ +/* + * libid3tag - ID3 tag manipulation library + * Copyright (C) 2000-2003 Underbit Technologies, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * $Id: frametype.gperf,v 1.1 2003/08/14 03:57:13 shank Exp $ + */ + +# ifdef HAVE_CONFIG_H +# include "config.h" +# endif + +# include "global.h" + +# include + +# include "id3tag.h" +# include "frametype.h" + +# define FIELDS(id) static enum id3_field_type const fields_##id[] + +/* frame field descriptions */ + +FIELDS(UFID) = { + ID3_FIELD_TYPE_LATIN1, + ID3_FIELD_TYPE_BINARYDATA +}; + +FIELDS(TXXX) = { + ID3_FIELD_TYPE_TEXTENCODING, + ID3_FIELD_TYPE_STRING, + ID3_FIELD_TYPE_STRING +}; + +FIELDS(WXXX) = { + ID3_FIELD_TYPE_TEXTENCODING, + ID3_FIELD_TYPE_STRING, + ID3_FIELD_TYPE_LATIN1 +}; + +FIELDS(MCDI) = { + ID3_FIELD_TYPE_BINARYDATA +}; + +FIELDS(ETCO) = { + ID3_FIELD_TYPE_INT8, + ID3_FIELD_TYPE_BINARYDATA +}; + +FIELDS(MLLT) = { + ID3_FIELD_TYPE_INT16, + ID3_FIELD_TYPE_INT24, + ID3_FIELD_TYPE_INT24, + ID3_FIELD_TYPE_INT8, + ID3_FIELD_TYPE_INT8, + ID3_FIELD_TYPE_BINARYDATA +}; + +FIELDS(SYTC) = { + ID3_FIELD_TYPE_INT8, + ID3_FIELD_TYPE_BINARYDATA +}; + +FIELDS(USLT) = { + ID3_FIELD_TYPE_TEXTENCODING, + ID3_FIELD_TYPE_LANGUAGE, + ID3_FIELD_TYPE_STRING, + ID3_FIELD_TYPE_STRINGFULL +}; + +FIELDS(SYLT) = { + ID3_FIELD_TYPE_TEXTENCODING, + ID3_FIELD_TYPE_LANGUAGE, + ID3_FIELD_TYPE_INT8, + ID3_FIELD_TYPE_INT8, + ID3_FIELD_TYPE_STRING, + ID3_FIELD_TYPE_BINARYDATA +}; + +FIELDS(COMM) = { + ID3_FIELD_TYPE_TEXTENCODING, + ID3_FIELD_TYPE_LANGUAGE, + ID3_FIELD_TYPE_STRING, + ID3_FIELD_TYPE_STRINGFULL +}; + +FIELDS(RVA2) = { + ID3_FIELD_TYPE_LATIN1, + ID3_FIELD_TYPE_BINARYDATA +}; + +FIELDS(EQU2) = { + ID3_FIELD_TYPE_INT8, + ID3_FIELD_TYPE_LATIN1, + ID3_FIELD_TYPE_BINARYDATA +}; + +FIELDS(RVRB) = { + ID3_FIELD_TYPE_INT16, + ID3_FIELD_TYPE_INT16, + ID3_FIELD_TYPE_INT8, + ID3_FIELD_TYPE_INT8, + ID3_FIELD_TYPE_INT8, + ID3_FIELD_TYPE_INT8, + ID3_FIELD_TYPE_INT8, + ID3_FIELD_TYPE_INT8, + ID3_FIELD_TYPE_INT8, + ID3_FIELD_TYPE_INT8 +}; + +FIELDS(APIC) = { + ID3_FIELD_TYPE_TEXTENCODING, + ID3_FIELD_TYPE_LATIN1, + ID3_FIELD_TYPE_INT8, + ID3_FIELD_TYPE_STRING, + ID3_FIELD_TYPE_BINARYDATA +}; + +FIELDS(GEOB) = { + ID3_FIELD_TYPE_TEXTENCODING, + ID3_FIELD_TYPE_LATIN1, + ID3_FIELD_TYPE_STRING, + ID3_FIELD_TYPE_STRING, + ID3_FIELD_TYPE_BINARYDATA +}; + +FIELDS(PCNT) = { + ID3_FIELD_TYPE_INT32PLUS +}; + +FIELDS(POPM) = { + ID3_FIELD_TYPE_LATIN1, + ID3_FIELD_TYPE_INT8, + ID3_FIELD_TYPE_INT32PLUS +}; + +FIELDS(RBUF) = { + ID3_FIELD_TYPE_INT24, + ID3_FIELD_TYPE_INT8, + ID3_FIELD_TYPE_INT32 +}; + +FIELDS(AENC) = { + ID3_FIELD_TYPE_LATIN1, + ID3_FIELD_TYPE_INT16, + ID3_FIELD_TYPE_INT16, + ID3_FIELD_TYPE_BINARYDATA +}; + +FIELDS(LINK) = { + ID3_FIELD_TYPE_FRAMEID, + ID3_FIELD_TYPE_LATIN1, + ID3_FIELD_TYPE_LATIN1LIST +}; + +FIELDS(POSS) = { + ID3_FIELD_TYPE_INT8, + ID3_FIELD_TYPE_BINARYDATA +}; + +FIELDS(USER) = { + ID3_FIELD_TYPE_TEXTENCODING, + ID3_FIELD_TYPE_LANGUAGE, + ID3_FIELD_TYPE_STRING +}; + +FIELDS(OWNE) = { + ID3_FIELD_TYPE_TEXTENCODING, + ID3_FIELD_TYPE_LATIN1, + ID3_FIELD_TYPE_DATE, + ID3_FIELD_TYPE_STRING +}; + +FIELDS(COMR) = { + ID3_FIELD_TYPE_TEXTENCODING, + ID3_FIELD_TYPE_LATIN1, + ID3_FIELD_TYPE_DATE, + ID3_FIELD_TYPE_LATIN1, + ID3_FIELD_TYPE_INT8, + ID3_FIELD_TYPE_STRING, + ID3_FIELD_TYPE_STRING, + ID3_FIELD_TYPE_LATIN1, + ID3_FIELD_TYPE_BINARYDATA +}; + +FIELDS(ENCR) = { + ID3_FIELD_TYPE_LATIN1, + ID3_FIELD_TYPE_INT8, + ID3_FIELD_TYPE_BINARYDATA +}; + +FIELDS(GRID) = { + ID3_FIELD_TYPE_LATIN1, + ID3_FIELD_TYPE_INT8, + ID3_FIELD_TYPE_BINARYDATA +}; + +FIELDS(PRIV) = { + ID3_FIELD_TYPE_LATIN1, + ID3_FIELD_TYPE_BINARYDATA +}; + +FIELDS(SIGN) = { + ID3_FIELD_TYPE_INT8, + ID3_FIELD_TYPE_BINARYDATA +}; + +FIELDS(SEEK) = { + ID3_FIELD_TYPE_INT32 +}; + +FIELDS(ASPI) = { + ID3_FIELD_TYPE_INT32, + ID3_FIELD_TYPE_INT32, + ID3_FIELD_TYPE_INT16, + ID3_FIELD_TYPE_INT8, + ID3_FIELD_TYPE_BINARYDATA +}; + +FIELDS(text) = { + ID3_FIELD_TYPE_TEXTENCODING, + ID3_FIELD_TYPE_STRINGLIST +}; + +FIELDS(url) = { + ID3_FIELD_TYPE_LATIN1 +}; + +FIELDS(unknown) = { + ID3_FIELD_TYPE_BINARYDATA +}; + +FIELDS(ZOBS) = { + ID3_FIELD_TYPE_FRAMEID, + ID3_FIELD_TYPE_BINARYDATA +}; + +# define FRAME(id) \ + sizeof(fields_##id) / sizeof(fields_##id[0]), fields_##id + +# define PRESERVE 0 +# define DISCARD ID3_FRAME_FLAG_FILEALTERPRESERVATION +# define OBSOLETE (DISCARD | ID3_FRAME_FLAG_TAGALTERPRESERVATION) + +# define FRAMETYPE(type, id, flags, desc) \ + struct id3_frametype const id3_frametype_##type = { \ + 0, FRAME(id), flags, desc \ + } + +/* static frame types */ + +FRAMETYPE(text, text, PRESERVE, "Unknown text information frame"); +FRAMETYPE(url, url, PRESERVE, "Unknown URL link frame"); +FRAMETYPE(experimental, unknown, PRESERVE, "Experimental frame"); +FRAMETYPE(unknown, unknown, PRESERVE, "Unknown frame"); +FRAMETYPE(obsolete, unknown, OBSOLETE, "Obsolete frame"); +%} +struct id3_frametype; +%% +# +# ID3v2.4 frames +# +AENC, FRAME(AENC), DISCARD, "Audio encryption" +APIC, FRAME(APIC), PRESERVE, "Attached picture" +ASPI, FRAME(ASPI), DISCARD, "Audio seek point index" +COMM, FRAME(COMM), PRESERVE, "Comments" +COMR, FRAME(COMR), PRESERVE, "Commercial frame" +ENCR, FRAME(ENCR), PRESERVE, "Encryption method registration" +EQU2, FRAME(EQU2), DISCARD, "Equalisation (2)" +ETCO, FRAME(ETCO), DISCARD, "Event timing codes" +GEOB, FRAME(GEOB), PRESERVE, "General encapsulated object" +GRID, FRAME(GRID), PRESERVE, "Group identification registration" +LINK, FRAME(LINK), PRESERVE, "Linked information" +MCDI, FRAME(MCDI), PRESERVE, "Music CD identifier" +MLLT, FRAME(MLLT), DISCARD, "MPEG location lookup table" +OWNE, FRAME(OWNE), PRESERVE, "Ownership frame" +PCNT, FRAME(PCNT), PRESERVE, "Play counter" +POPM, FRAME(POPM), PRESERVE, "Popularimeter" +POSS, FRAME(POSS), DISCARD, "Position synchronisation frame" +PRIV, FRAME(PRIV), PRESERVE, "Private frame" +RBUF, FRAME(RBUF), PRESERVE, "Recommended buffer size" +RVA2, FRAME(RVA2), DISCARD, "Relative volume adjustment (2)" +RVRB, FRAME(RVRB), PRESERVE, "Reverb" +SEEK, FRAME(SEEK), DISCARD, "Seek frame" +SIGN, FRAME(SIGN), PRESERVE, "Signature frame" +SYLT, FRAME(SYLT), DISCARD, "Synchronised lyric/text" +SYTC, FRAME(SYTC), DISCARD, "Synchronised tempo codes" +TALB, FRAME(text), PRESERVE, "Album/movie/show title" +TBPM, FRAME(text), PRESERVE, "BPM (beats per minute)" +TCOM, FRAME(text), PRESERVE, "Composer" +TCON, FRAME(text), PRESERVE, "Content type" +TCOP, FRAME(text), PRESERVE, "Copyright message" +TDEN, FRAME(text), PRESERVE, "Encoding time" +TDLY, FRAME(text), PRESERVE, "Playlist delay" +TDOR, FRAME(text), PRESERVE, "Original release time" +TDRC, FRAME(text), PRESERVE, "Recording time" +TDRL, FRAME(text), PRESERVE, "Release time" +TDTG, FRAME(text), PRESERVE, "Tagging time" +TENC, FRAME(text), DISCARD, "Encoded by" +TEXT, FRAME(text), PRESERVE, "Lyricist/text writer" +TFLT, FRAME(text), PRESERVE, "File type" +TIPL, FRAME(text), PRESERVE, "Involved people list" +TIT1, FRAME(text), PRESERVE, "Content group description" +TIT2, FRAME(text), PRESERVE, "Title/songname/content description" +TIT3, FRAME(text), PRESERVE, "Subtitle/description refinement" +TKEY, FRAME(text), PRESERVE, "Initial key" +TLAN, FRAME(text), PRESERVE, "Language(s)" +TLEN, FRAME(text), DISCARD, "Length" +TMCL, FRAME(text), PRESERVE, "Musician credits list" +TMED, FRAME(text), PRESERVE, "Media type" +TMOO, FRAME(text), PRESERVE, "Mood" +TOAL, FRAME(text), PRESERVE, "Original album/movie/show title" +TOFN, FRAME(text), PRESERVE, "Original filename" +TOLY, FRAME(text), PRESERVE, "Original lyricist(s)/text writer(s)" +TOPE, FRAME(text), PRESERVE, "Original artist(s)/performer(s)" +TOWN, FRAME(text), PRESERVE, "File owner/licensee" +TPE1, FRAME(text), PRESERVE, "Lead performer(s)/soloist(s)" +TPE2, FRAME(text), PRESERVE, "Band/orchestra/accompaniment" +TPE3, FRAME(text), PRESERVE, "Conductor/performer refinement" +TPE4, FRAME(text), PRESERVE, "Interpreted, remixed, or otherwise modified by" +TPOS, FRAME(text), PRESERVE, "Part of a set" +TPRO, FRAME(text), PRESERVE, "Produced notice" +TPUB, FRAME(text), PRESERVE, "Publisher" +TRCK, FRAME(text), PRESERVE, "Track number/position in set" +TRSN, FRAME(text), PRESERVE, "Internet radio station name" +TRSO, FRAME(text), PRESERVE, "Internet radio station owner" +TSOA, FRAME(text), PRESERVE, "Album sort order" +TSOP, FRAME(text), PRESERVE, "Performer sort order" +TSOT, FRAME(text), PRESERVE, "Title sort order" +TSRC, FRAME(text), PRESERVE, "ISRC (international standard recording code)" +TSSE, FRAME(text), PRESERVE, "Software/hardware and settings used for encoding" +TSST, FRAME(text), PRESERVE, "Set subtitle" +TXXX, FRAME(TXXX), PRESERVE, "User defined text information frame" +UFID, FRAME(UFID), PRESERVE, "Unique file identifier" +USER, FRAME(USER), PRESERVE, "Terms of use" +USLT, FRAME(USLT), PRESERVE, "Unsynchronised lyric/text transcription" +WCOM, FRAME(url), PRESERVE, "Commercial information" +WCOP, FRAME(url), PRESERVE, "Copyright/legal information" +WOAF, FRAME(url), PRESERVE, "Official audio file webpage" +WOAR, FRAME(url), PRESERVE, "Official artist/performer webpage" +WOAS, FRAME(url), PRESERVE, "Official audio source webpage" +WORS, FRAME(url), PRESERVE, "Official Internet radio station homepage" +WPAY, FRAME(url), PRESERVE, "Payment" +WPUB, FRAME(url), PRESERVE, "Publishers official webpage" +WXXX, FRAME(WXXX), PRESERVE, "User defined URL link frame" +# +# Special frames +# +ZOBS, FRAME(ZOBS), OBSOLETE, "Obsolete frame" -- cgit v1.2.3