aboutsummaryrefslogtreecommitdiff
path: root/src/libid3tag/frametype.gperf
diff options
context:
space:
mode:
Diffstat (limited to 'src/libid3tag/frametype.gperf')
-rw-r--r--src/libid3tag/frametype.gperf363
1 files changed, 363 insertions, 0 deletions
diff --git a/src/libid3tag/frametype.gperf b/src/libid3tag/frametype.gperf
new file mode 100644
index 00000000..5158f77b
--- /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 <string.h>
+
+# 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"