-
Notifications
You must be signed in to change notification settings - Fork 3
/
frame_ids.go
213 lines (207 loc) · 11.4 KB
/
frame_ids.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
// Code generated by `go run generate_ids.go`. DO NOT EDIT.
// Copyright 2017 Tom Thorogood. All rights reserved.
// Use of this source code is governed by a Modified
// BSD License that can be found in the LICENSE file.
package id3v2
// These are the standard frame ids as specified in the
// v2.4.0 and v2.3.0 specifications.
const (
FrameAENC FrameID = 'A'<<24 | 'E'<<16 | 'N'<<8 | 'C' // Audio encryption
FrameAPIC FrameID = 'A'<<24 | 'P'<<16 | 'I'<<8 | 'C' // Attached picture
FrameASPI FrameID = 'A'<<24 | 'S'<<16 | 'P'<<8 | 'I' // Audio seek point index
FrameCOMM FrameID = 'C'<<24 | 'O'<<16 | 'M'<<8 | 'M' // Comments
FrameCOMR FrameID = 'C'<<24 | 'O'<<16 | 'M'<<8 | 'R' // Commercial frame
FrameENCR FrameID = 'E'<<24 | 'N'<<16 | 'C'<<8 | 'R' // Encryption method registration
FrameEQU2 FrameID = 'E'<<24 | 'Q'<<16 | 'U'<<8 | '2' // Equalisation (2)
FrameETCO FrameID = 'E'<<24 | 'T'<<16 | 'C'<<8 | 'O' // Event timing codes
FrameGEOB FrameID = 'G'<<24 | 'E'<<16 | 'O'<<8 | 'B' // General encapsulated object
FrameGRID FrameID = 'G'<<24 | 'R'<<16 | 'I'<<8 | 'D' // Group identification registration
FrameLINK FrameID = 'L'<<24 | 'I'<<16 | 'N'<<8 | 'K' // Linked information
FrameMCDI FrameID = 'M'<<24 | 'C'<<16 | 'D'<<8 | 'I' // Music CD identifier
FrameMLLT FrameID = 'M'<<24 | 'L'<<16 | 'L'<<8 | 'T' // MPEG location lookup table
FrameOWNE FrameID = 'O'<<24 | 'W'<<16 | 'N'<<8 | 'E' // Ownership frame
FramePRIV FrameID = 'P'<<24 | 'R'<<16 | 'I'<<8 | 'V' // Private frame
FramePCNT FrameID = 'P'<<24 | 'C'<<16 | 'N'<<8 | 'T' // Play counter
FramePOPM FrameID = 'P'<<24 | 'O'<<16 | 'P'<<8 | 'M' // Popularimeter
FramePOSS FrameID = 'P'<<24 | 'O'<<16 | 'S'<<8 | 'S' // Position synchronisation frame
FrameRBUF FrameID = 'R'<<24 | 'B'<<16 | 'U'<<8 | 'F' // Recommended buffer size
FrameRVA2 FrameID = 'R'<<24 | 'V'<<16 | 'A'<<8 | '2' // Relative volume adjustment (2)
FrameRVRB FrameID = 'R'<<24 | 'V'<<16 | 'R'<<8 | 'B' // Reverb
FrameSEEK FrameID = 'S'<<24 | 'E'<<16 | 'E'<<8 | 'K' // Seek frame
FrameSIGN FrameID = 'S'<<24 | 'I'<<16 | 'G'<<8 | 'N' // Signature frame
FrameSYLT FrameID = 'S'<<24 | 'Y'<<16 | 'L'<<8 | 'T' // Synchronised lyric/text
FrameSYTC FrameID = 'S'<<24 | 'Y'<<16 | 'T'<<8 | 'C' // Synchronised tempo codes
FrameTALB FrameID = 'T'<<24 | 'A'<<16 | 'L'<<8 | 'B' // Album/Movie/Show title
FrameTBPM FrameID = 'T'<<24 | 'B'<<16 | 'P'<<8 | 'M' // BPM (beats per minute)
FrameTCOM FrameID = 'T'<<24 | 'C'<<16 | 'O'<<8 | 'M' // Composer
FrameTCON FrameID = 'T'<<24 | 'C'<<16 | 'O'<<8 | 'N' // Content type
FrameTCOP FrameID = 'T'<<24 | 'C'<<16 | 'O'<<8 | 'P' // Copyright message
FrameTDEN FrameID = 'T'<<24 | 'D'<<16 | 'E'<<8 | 'N' // Encoding time
FrameTDLY FrameID = 'T'<<24 | 'D'<<16 | 'L'<<8 | 'Y' // Playlist delay
FrameTDOR FrameID = 'T'<<24 | 'D'<<16 | 'O'<<8 | 'R' // Original release time
FrameTDRC FrameID = 'T'<<24 | 'D'<<16 | 'R'<<8 | 'C' // Recording time
FrameTDRL FrameID = 'T'<<24 | 'D'<<16 | 'R'<<8 | 'L' // Release time
FrameTDTG FrameID = 'T'<<24 | 'D'<<16 | 'T'<<8 | 'G' // Tagging time
FrameTENC FrameID = 'T'<<24 | 'E'<<16 | 'N'<<8 | 'C' // Encoded by
FrameTEXT FrameID = 'T'<<24 | 'E'<<16 | 'X'<<8 | 'T' // Lyricist/Text writer
FrameTFLT FrameID = 'T'<<24 | 'F'<<16 | 'L'<<8 | 'T' // File type
FrameTIPL FrameID = 'T'<<24 | 'I'<<16 | 'P'<<8 | 'L' // Involved people list
FrameTIT1 FrameID = 'T'<<24 | 'I'<<16 | 'T'<<8 | '1' // Content group description
FrameTIT2 FrameID = 'T'<<24 | 'I'<<16 | 'T'<<8 | '2' // Title/songname/content description
FrameTIT3 FrameID = 'T'<<24 | 'I'<<16 | 'T'<<8 | '3' // Subtitle/Description refinement
FrameTKEY FrameID = 'T'<<24 | 'K'<<16 | 'E'<<8 | 'Y' // Initial key
FrameTLAN FrameID = 'T'<<24 | 'L'<<16 | 'A'<<8 | 'N' // Language(s)
FrameTLEN FrameID = 'T'<<24 | 'L'<<16 | 'E'<<8 | 'N' // Length
FrameTMCL FrameID = 'T'<<24 | 'M'<<16 | 'C'<<8 | 'L' // Musician credits list
FrameTMED FrameID = 'T'<<24 | 'M'<<16 | 'E'<<8 | 'D' // Media type
FrameTMOO FrameID = 'T'<<24 | 'M'<<16 | 'O'<<8 | 'O' // Mood
FrameTOAL FrameID = 'T'<<24 | 'O'<<16 | 'A'<<8 | 'L' // Original album/movie/show title
FrameTOFN FrameID = 'T'<<24 | 'O'<<16 | 'F'<<8 | 'N' // Original filename
FrameTOLY FrameID = 'T'<<24 | 'O'<<16 | 'L'<<8 | 'Y' // Original lyricist(s)/text writer(s)
FrameTOPE FrameID = 'T'<<24 | 'O'<<16 | 'P'<<8 | 'E' // Original artist(s)/performer(s)
FrameTOWN FrameID = 'T'<<24 | 'O'<<16 | 'W'<<8 | 'N' // File owner/licensee
FrameTPE1 FrameID = 'T'<<24 | 'P'<<16 | 'E'<<8 | '1' // Lead performer(s)/Soloist(s)
FrameTPE2 FrameID = 'T'<<24 | 'P'<<16 | 'E'<<8 | '2' // Band/orchestra/accompaniment
FrameTPE3 FrameID = 'T'<<24 | 'P'<<16 | 'E'<<8 | '3' // Conductor/performer refinement
FrameTPE4 FrameID = 'T'<<24 | 'P'<<16 | 'E'<<8 | '4' // Interpreted, remixed, or otherwise modified by
FrameTPOS FrameID = 'T'<<24 | 'P'<<16 | 'O'<<8 | 'S' // Part of a set
FrameTPRO FrameID = 'T'<<24 | 'P'<<16 | 'R'<<8 | 'O' // Produced notice
FrameTPUB FrameID = 'T'<<24 | 'P'<<16 | 'U'<<8 | 'B' // Publisher
FrameTRCK FrameID = 'T'<<24 | 'R'<<16 | 'C'<<8 | 'K' // Track number/Position in set
FrameTRSN FrameID = 'T'<<24 | 'R'<<16 | 'S'<<8 | 'N' // Internet radio station name
FrameTRSO FrameID = 'T'<<24 | 'R'<<16 | 'S'<<8 | 'O' // Internet radio station owner
FrameTSOA FrameID = 'T'<<24 | 'S'<<16 | 'O'<<8 | 'A' // Album sort order
FrameTSOP FrameID = 'T'<<24 | 'S'<<16 | 'O'<<8 | 'P' // Performer sort order
FrameTSOT FrameID = 'T'<<24 | 'S'<<16 | 'O'<<8 | 'T' // Title sort order
FrameTSRC FrameID = 'T'<<24 | 'S'<<16 | 'R'<<8 | 'C' // ISRC (international standard recording code)
FrameTSSE FrameID = 'T'<<24 | 'S'<<16 | 'S'<<8 | 'E' // Software/Hardware and settings used for encoding
FrameTSST FrameID = 'T'<<24 | 'S'<<16 | 'S'<<8 | 'T' // Set subtitle
FrameTXXX FrameID = 'T'<<24 | 'X'<<16 | 'X'<<8 | 'X' // User defined text information frame
FrameUFID FrameID = 'U'<<24 | 'F'<<16 | 'I'<<8 | 'D' // Unique file identifier
FrameUSER FrameID = 'U'<<24 | 'S'<<16 | 'E'<<8 | 'R' // Terms of use
FrameUSLT FrameID = 'U'<<24 | 'S'<<16 | 'L'<<8 | 'T' // Unsynchronised lyric/text transcription
FrameWCOM FrameID = 'W'<<24 | 'C'<<16 | 'O'<<8 | 'M' // Commercial information
FrameWCOP FrameID = 'W'<<24 | 'C'<<16 | 'O'<<8 | 'P' // Copyright/Legal information
FrameWOAF FrameID = 'W'<<24 | 'O'<<16 | 'A'<<8 | 'F' // Official audio file webpage
FrameWOAR FrameID = 'W'<<24 | 'O'<<16 | 'A'<<8 | 'R' // Official artist/performer webpage
FrameWOAS FrameID = 'W'<<24 | 'O'<<16 | 'A'<<8 | 'S' // Official audio source webpage
FrameWORS FrameID = 'W'<<24 | 'O'<<16 | 'R'<<8 | 'S' // Official Internet radio station homepage
FrameWPAY FrameID = 'W'<<24 | 'P'<<16 | 'A'<<8 | 'Y' // Payment
FrameWPUB FrameID = 'W'<<24 | 'P'<<16 | 'U'<<8 | 'B' // Publishers official webpage
FrameWXXX FrameID = 'W'<<24 | 'X'<<16 | 'X'<<8 | 'X' // User defined URL link frame
FrameEQUA FrameID = 'E'<<24 | 'Q'<<16 | 'U'<<8 | 'A' // Equalization
FrameIPLS FrameID = 'I'<<24 | 'P'<<16 | 'L'<<8 | 'S' // Involved people list
FrameRVAD FrameID = 'R'<<24 | 'V'<<16 | 'A'<<8 | 'D' // Relative volume adjustment
FrameTDAT FrameID = 'T'<<24 | 'D'<<16 | 'A'<<8 | 'T' // Date
FrameTIME FrameID = 'T'<<24 | 'I'<<16 | 'M'<<8 | 'E' // Time
FrameTORY FrameID = 'T'<<24 | 'O'<<16 | 'R'<<8 | 'Y' // Original release year
FrameTRDA FrameID = 'T'<<24 | 'R'<<16 | 'D'<<8 | 'A' // Recording dates
FrameTSIZ FrameID = 'T'<<24 | 'S'<<16 | 'I'<<8 | 'Z' // Size
FrameTYER FrameID = 'T'<<24 | 'Y'<<16 | 'E'<<8 | 'R' // Year
)
var _FrameID_map = map[FrameID]string{
FrameAENC: "AENC: Audio encryption",
FrameAPIC: "APIC: Attached picture",
FrameASPI: "ASPI: Audio seek point index",
FrameCOMM: "COMM: Comments",
FrameCOMR: "COMR: Commercial frame",
FrameENCR: "ENCR: Encryption method registration",
FrameEQU2: "EQU2: Equalisation (2)",
FrameETCO: "ETCO: Event timing codes",
FrameGEOB: "GEOB: General encapsulated object",
FrameGRID: "GRID: Group identification registration",
FrameLINK: "LINK: Linked information",
FrameMCDI: "MCDI: Music CD identifier",
FrameMLLT: "MLLT: MPEG location lookup table",
FrameOWNE: "OWNE: Ownership frame",
FramePRIV: "PRIV: Private frame",
FramePCNT: "PCNT: Play counter",
FramePOPM: "POPM: Popularimeter",
FramePOSS: "POSS: Position synchronisation frame",
FrameRBUF: "RBUF: Recommended buffer size",
FrameRVA2: "RVA2: Relative volume adjustment (2)",
FrameRVRB: "RVRB: Reverb",
FrameSEEK: "SEEK: Seek frame",
FrameSIGN: "SIGN: Signature frame",
FrameSYLT: "SYLT: Synchronised lyric/text",
FrameSYTC: "SYTC: Synchronised tempo codes",
FrameTALB: "TALB: Album/Movie/Show title",
FrameTBPM: "TBPM: BPM (beats per minute)",
FrameTCOM: "TCOM: Composer",
FrameTCON: "TCON: Content type",
FrameTCOP: "TCOP: Copyright message",
FrameTDEN: "TDEN: Encoding time",
FrameTDLY: "TDLY: Playlist delay",
FrameTDOR: "TDOR: Original release time",
FrameTDRC: "TDRC: Recording time",
FrameTDRL: "TDRL: Release time",
FrameTDTG: "TDTG: Tagging time",
FrameTENC: "TENC: Encoded by",
FrameTEXT: "TEXT: Lyricist/Text writer",
FrameTFLT: "TFLT: File type",
FrameTIPL: "TIPL: Involved people list",
FrameTIT1: "TIT1: Content group description",
FrameTIT2: "TIT2: Title/songname/content description",
FrameTIT3: "TIT3: Subtitle/Description refinement",
FrameTKEY: "TKEY: Initial key",
FrameTLAN: "TLAN: Language(s)",
FrameTLEN: "TLEN: Length",
FrameTMCL: "TMCL: Musician credits list",
FrameTMED: "TMED: Media type",
FrameTMOO: "TMOO: Mood",
FrameTOAL: "TOAL: Original album/movie/show title",
FrameTOFN: "TOFN: Original filename",
FrameTOLY: "TOLY: Original lyricist(s)/text writer(s)",
FrameTOPE: "TOPE: Original artist(s)/performer(s)",
FrameTOWN: "TOWN: File owner/licensee",
FrameTPE1: "TPE1: Lead performer(s)/Soloist(s)",
FrameTPE2: "TPE2: Band/orchestra/accompaniment",
FrameTPE3: "TPE3: Conductor/performer refinement",
FrameTPE4: "TPE4: Interpreted, remixed, or otherwise modified by",
FrameTPOS: "TPOS: Part of a set",
FrameTPRO: "TPRO: Produced notice",
FrameTPUB: "TPUB: Publisher",
FrameTRCK: "TRCK: Track number/Position in set",
FrameTRSN: "TRSN: Internet radio station name",
FrameTRSO: "TRSO: Internet radio station owner",
FrameTSOA: "TSOA: Album sort order",
FrameTSOP: "TSOP: Performer sort order",
FrameTSOT: "TSOT: Title sort order",
FrameTSRC: "TSRC: ISRC (international standard recording code)",
FrameTSSE: "TSSE: Software/Hardware and settings used for encoding",
FrameTSST: "TSST: Set subtitle",
FrameTXXX: "TXXX: User defined text information frame",
FrameUFID: "UFID: Unique file identifier",
FrameUSER: "USER: Terms of use",
FrameUSLT: "USLT: Unsynchronised lyric/text transcription",
FrameWCOM: "WCOM: Commercial information",
FrameWCOP: "WCOP: Copyright/Legal information",
FrameWOAF: "WOAF: Official audio file webpage",
FrameWOAR: "WOAR: Official artist/performer webpage",
FrameWOAS: "WOAS: Official audio source webpage",
FrameWORS: "WORS: Official Internet radio station homepage",
FrameWPAY: "WPAY: Payment",
FrameWPUB: "WPUB: Publishers official webpage",
FrameWXXX: "WXXX: User defined URL link frame",
FrameEQUA: "EQUA: Equalization",
FrameIPLS: "IPLS: Involved people list",
FrameRVAD: "RVAD: Relative volume adjustment",
FrameTDAT: "TDAT: Date",
FrameTIME: "TIME: Time",
FrameTORY: "TORY: Original release year",
FrameTRDA: "TRDA: Recording dates",
FrameTSIZ: "TSIZ: Size",
FrameTYER: "TYER: Year",
}
func (id FrameID) String() string {
if str, ok := _FrameID_map[id]; ok {
return str
}
buf := [4]byte{
byte(id >> 24),
byte(id >> 16),
byte(id >> 8),
byte(id),
}
return "FrameID(\"" + string(buf[:]) + "\")"
}