EMMA Coverage Report (generated Tue Mar 14 21:50:42 EST 2006)
[all classes][org.farng.mp3]

COVERAGE SUMMARY FOR SOURCE FILE [TagConstant.java]

nameclass, %method, %block, %line, %
TagConstant.java100% (1/1)50%  (1/2)100% (6789/6792)100% (1156/1158)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class TagConstant100% (1/1)50%  (1/2)100% (6789/6792)100% (1156/1158)
TagConstant (): void 0%   (0/1)0%   (0/3)0%   (0/2)
<static initializer> 100% (1/1)100% (6789/6789)100% (1156/1156)

1package org.farng.mp3;
2 
3import java.util.HashMap;
4import java.util.Iterator;
5 
6/**
7 * This contais all ID3 frame descriptions and Lyric3 field description. It also has bit masks for all the flags in the
8 * MP3 Header.
9 *
10 * @author Eric Farng
11 * @version $Revision: 1.3 $
12 */
13public class TagConstant {
14 
15    // Bit numbering starts with the most significat bit as 7
16    /**
17     * defined for convenience
18     */
19    public static final int BIT7 = 0x80;
20    /**
21     * defined for convenience
22     */
23    public static final int BIT6 = 0x40;
24    /**
25     * defined for convenience
26     */
27    public static final int BIT5 = 0x20;
28    /**
29     * defined for convenience
30     */
31    public static final int BIT4 = 0x10;
32    /**
33     * defined for convenience
34     */
35    public static final int BIT3 = 0x08;
36    /**
37     * defined for convenience
38     */
39    public static final int BIT2 = 0x04;
40    /**
41     * defined for convenience
42     */
43    public static final int BIT1 = 0x02;
44    /**
45     * defined for convenience
46     */
47    public static final int BIT0 = 0x01;
48    /**
49     * System seperators
50     */
51    public static final String SEPERATOR_LINE = System.getProperty("line.separator");
52    public static final String SEPERATOR_FILE = System.getProperty("file.separator");
53    public static final String SEPERATOR_PATH = System.getProperty("path.separator");
54    /**
55     * MP3 save mode lowest numbered index
56     */
57    public static final int MP3_FILE_SAVE_FIRST = 1;
58    /**
59     * MP3 save mode matching <code>write</code> method
60     */
61    public static final int MP3_FILE_SAVE_WRITE = 1;
62    /**
63     * MP3 save mode matching <code>overwrite</code> method
64     */
65    public static final int MP3_FILE_SAVE_OVERWRITE = 2;
66    /**
67     * MP3 save mode matching <code>append</code> method
68     */
69    public static final int MP3_FILE_SAVE_APPEND = 3;
70    /**
71     * MP3 save mode highest numbered index
72     */
73    public static final int MP3_FILE_SAVE_LAST = 3;
74    /**
75     * ID3v2.2 Header bit mask
76     */
77    public static final int MASK_V22_UNSYNCHRONIZATION = BIT7;
78    /**
79     * ID3v2.2 Header bit mask
80     */
81    public static final int MASK_V22_COMPRESSION = BIT7;
82    /**
83     * ID3v2.2 BUF Frame bit mask
84     */
85    public static final int MASK_V22_EMBEDDED_INFO_FLAG = BIT1;
86    /**
87     * ID3v2.3 Header bit mask
88     */
89    public static final int MASK_V23_UNSYNCHRONIZATION = BIT7;
90    /**
91     * ID3v2.3 Header bit mask
92     */
93    public static final int MASK_V23_EXTENDED_HEADER = BIT6;
94    /**
95     * ID3v2.3 Header bit mask
96     */
97    public static final int MASK_V23_EXPERIMENTAL = BIT5;
98    /**
99     * ID3v2.3 Extended Header bit mask
100     */
101    public static final int MASK_V23_CRC_DATA_PRESENT = BIT7;
102    /**
103     * ID3v2.3 Frame bit mask
104     */
105    public static final int MASK_V23_TAG_ALTER_PRESERVATION = BIT7;
106    /**
107     * ID3v2.3 Frame bit mask
108     */
109    public static final int MASK_V23_FILE_ALTER_PRESERVATION = BIT6;
110    /**
111     * ID3v2.3 Frame bit mask
112     */
113    public static final int MASK_V23_READ_ONLY = BIT5;
114    /**
115     * ID3v2.3 Frame bit mask
116     */
117    public static final int MASK_V23_COMPRESSION = BIT7;
118    /**
119     * ID3v2.3 Frame bit mask
120     */
121    public static final int MASK_V23_ENCRYPTION = BIT6;
122    /**
123     * ID3v2.3 Frame bit mask
124     */
125    public static final int MASK_V23_GROUPING_IDENTITY = BIT5;
126    /**
127     * ID3v2.3 RBUF frame bit mask
128     */
129    public static final int MASK_V23_EMBEDDED_INFO_FLAG = BIT1;
130    /**
131     * ID3v2.4 Header bit mask
132     */
133    public static final int MASK_V24_UNSYNCHRONIZATION = BIT7;
134    /**
135     * ID3v2.4 Header bit mask
136     */
137    public static final int MASK_V24_EXTENDED_HEADER = BIT6;
138    /**
139     * ID3v2.4 Header bit mask
140     */
141    public static final int MASK_V24_EXPERIMENTAL = BIT5;
142    /**
143     * ID3v2.4 Header bit mask
144     */
145    public static final int MASK_V24_FOOTER_PRESENT = BIT4;
146    /**
147     * ID3v2.4 Extended header bit mask
148     */
149    public static final int MASK_V24_TAG_UPDATE = BIT6;
150    /**
151     * ID3v2.4 Extended header bit mask
152     */
153    public static final int MASK_V24_CRC_DATA_PRESENT = BIT5;
154    /**
155     * ID3v2.4 Extended header bit mask
156     */
157    public static final int MASK_V24_TAG_RESTRICTIONS = BIT4;
158    /**
159     * ID3v2.4 Extended header bit mask
160     */
161    public static final int MASK_V24_TAG_SIZE_RESTRICTIONS = (byte) BIT7 | BIT6;
162    /**
163     * ID3v2.4 Extended header bit mask
164     */
165    public static final int MASK_V24_TEXT_ENCODING_RESTRICTIONS = BIT5;
166    /**
167     * ID3v2.4 Extended header bit mask
168     */
169    public static final int MASK_V24_TEXT_FIELD_SIZE_RESTRICTIONS = BIT4 | BIT3;
170    /**
171     * ID3v2.4 Extended header bit mask
172     */
173    public static final int MASK_V24_IMAGE_ENCODING = BIT2;
174    /**
175     * ID3v2.4 Extended header bit mask
176     */
177    public static final int MASK_V24_IMAGE_SIZE_RESTRICTIONS = BIT2 | BIT1;
178 
179    /**
180     * ID3v2.4 Header Footer are the same as the header flags. WHY?!?! move the
181     * flags from thier position in 2.3??????????
182     */
183    /**
184     * ID3v2.4 Header Footer bit mask
185     */
186    public static final int MASK_V24_TAG_ALTER_PRESERVATION = BIT6;
187    /**
188     * ID3v2.4 Header Footer bit mask
189     */
190    public static final int MASK_V24_FILE_ALTER_PRESERVATION = BIT5;
191    /**
192     * ID3v2.4 Header Footer bit mask
193     */
194    public static final int MASK_V24_READ_ONLY = BIT4;
195    /**
196     * ID3v2.4 Header Footer bit mask
197     */
198    public static final int MASK_V24_GROUPING_IDENTITY = BIT6;
199    /**
200     * ID3v2.4 Header Footer bit mask
201     */
202    public static final int MASK_V24_COMPRESSION = BIT4;
203    /**
204     * ID3v2.4 Header Footer bit mask
205     */
206    public static final int MASK_V24_ENCRYPTION = BIT3;
207    /**
208     * ID3v2.4 Header Footer bit mask
209     */
210    public static final int MASK_V24_FRAME_UNSYNCHRONIZATION = BIT2;
211    /**
212     * ID3v2.4 Header Footer bit mask
213     */
214    public static final int MASK_V24_DATA_LENGTH_INDICATOR = BIT1;
215    /**
216     * MP3 Frame Header bit mask
217     */
218    public static final int MASK_MP3_ID = BIT3;
219    /**
220     * MP3 Frame Header bit mask
221     */
222    public static final int MASK_MP3_VERSION = BIT4 | BIT3;
223    /**
224     * MP3 Frame Header bit mask
225     */
226    public static final int MASK_MP3_LAYER = BIT2 | BIT1;
227    /**
228     * MP3 Frame Header bit mask
229     */
230    public static final int MASK_MP3_PROTECTION = BIT0;
231    /**
232     * MP3 Frame Header bit mask
233     */
234    public static final int MASK_MP3_BITRATE = BIT7 | BIT6 | BIT5 | BIT4;
235    /**
236     * MP3 Frame Header bit mask
237     */
238    public static final int MASK_MP3_FREQUENCY = BIT3 + BIT2;
239    /**
240     * MP3 Frame Header bit mask
241     */
242    public static final int MASK_MP3_PADDING = BIT1;
243    /**
244     * MP3 Frame Header bit mask
245     */
246    public static final int MASK_MP3_PRIVACY = BIT0;
247    /**
248     * MP3 Frame Header bit mask
249     */
250    public static final int MASK_MP3_MODE = BIT7 | BIT6;
251    /**
252     * MP3 Frame Header bit mask
253     */
254    public static final int MASK_MP3_MODE_EXTENSION = BIT5 | BIT4;
255    /**
256     * MP3 Frame Header bit mask
257     */
258    public static final int MASK_MP3_COPY = BIT3;
259    /**
260     * MP3 Frame Header bit mask
261     */
262    public static final int MASK_MP3_HOME = BIT2;
263    /**
264     * MP3 Frame Header bit mask
265     */
266    public static final int MASK_MP3_EMPHASIS = BIT1 | BIT0;
267    /**
268     * <code>HashMap</code> translating the three letter ID into a human understandable string
269     */
270    public static final HashMap id3v2_2FrameIdToString = new HashMap();
271    /**
272     * <code>HashMap</code> translating the four letter ID into a human understandable string
273     */
274    public static final HashMap id3v2_3FrameIdToString = new HashMap();
275    /**
276     * <code>HashMap</code> translating the four letter ID into a human understandable string
277     */
278    public static final HashMap id3v2_4FrameIdToString = new HashMap();
279    /**
280     * <code>HashMap</code> translating the predefined string into the three letter ID
281     */
282    public static final HashMap id3v2_2FrameStringToId = new HashMap();
283    /**
284     * <code>HashMap</code> translating the predefined string into the four letter ID
285     */
286    public static final HashMap id3v2_3FrameStringToId = new HashMap();
287    /**
288     * <code>HashMap</code> translating the predefined string into the four letter ID
289     */
290    public static final HashMap id3v2_4FrameStringToId = new HashMap();
291    /**
292     * <code>HashMap</code> translating the predefined string into the three letter ID
293     */
294    public static final HashMap lyrics3v2FieldIdToString = new HashMap();
295    /**
296     * <code>HashMap</code> translating the predefined string into the three letter ID
297     */
298    public static final HashMap lyrics3v2FieldStringToId = new HashMap();
299    /**
300     * <code>HashMap</code> translating the three letter ID3v2.2 ID to the corresponding ID3v2.4 ID
301     */
302    public static final HashMap id3v2_3ToId3v2_4 = new HashMap();
303    /**
304     * <code>HashMap</code> translating the three letter ID3v2.2 ID to the corresponding ID3v2.3 ID
305     */
306    public static final HashMap id3v2_2ToId3v2_3 = new HashMap();
307    /**
308     * <code>HashMap</code> translating the three letter ID3v2.2 ID to the corresponding ID3v2.4 ID
309     */
310    public static final HashMap id3v2_4ToId3v2_3 = new HashMap();
311    /**
312     * <code>HashMap</code> translating the three letter ID3v2.2 ID to the corresponding ID3v2.3 ID
313     */
314    public static final HashMap id3v2_3ToId3v2_2 = new HashMap();
315    /**
316     * <code>HashMap</code> translating the ID3v1 genre bit into a human readable string
317     */
318    public static final HashMap genreIdToString = new HashMap();
319    /**
320     * <code>HashMap</code> translating the predefined genre string into the ID3v1 genre bit
321     */
322    public static final HashMap genreStringToId = new HashMap();
323    /**
324     * <code>HashMap</code> translating the language ID to a human readable string. [ISO-639-2] ISO/FDIS 639-2
325     */
326    public static final HashMap languageIdToString = new HashMap();
327    /**
328     * <code>HashMap</code> translating the predefined language string into the ID. [ISO-639-2] ISO/FDIS 639-2
329     */
330    public static final HashMap languageStringToId = new HashMap();
331    /**
332     * <code>HashMap</code> translating the bitrate read in from the MP3 Header into a base-10 integer
333     */
334    public static final HashMap bitrate = new HashMap();
335    /**
336     * <code>HashMap</code> translating table found in ID3 tags
337     */
338    public static final HashMap textEncodingIdToString = new HashMap();
339    /**
340     * <code>HashMap</code> translating table found in ID3 tags
341     */
342    public static final HashMap textEncodingStringToId = new HashMap();
343    /**
344     * <code>HashMap</code> translating table found in ID3 tags
345     */
346    public static final HashMap interpolationMethodIdToString = new HashMap();
347    /**
348     * <code>HashMap</code> translating table found in ID3 tags
349     */
350    public static final HashMap interpolationMethodStringToId = new HashMap();
351    /**
352     * <code>HashMap</code> translating table found in ID3 tags
353     */
354    public static final HashMap pictureTypeIdToString = new HashMap();
355    /**
356     * <code>HashMap</code> translating table found in ID3 tags
357     */
358    public static final HashMap pictureTypeStringToId = new HashMap();
359    /**
360     * <code>HashMap</code> translating table found in ID3 tags
361     */
362    public static final HashMap timeStampFormatIdToString = new HashMap();
363    /**
364     * <code>HashMap</code> translating table found in ID3 tags
365     */
366    public static final HashMap timeStampFormatStringToId = new HashMap();
367    /**
368     * <code>HashMap</code> translating table found in ID3 tags
369     */
370    public static final HashMap typeOfEventIdToString = new HashMap();
371    /**
372     * <code>HashMap</code> translating table found in ID3 tags
373     */
374    public static final HashMap typeOfEventStringToId = new HashMap();
375    /**
376     * <code>HashMap</code> translating table found in ID3 tags
377     */
378    public static final HashMap typeOfChannelIdToString = new HashMap();
379    /**
380     * <code>HashMap</code> translating table found in ID3 tags
381     */
382    public static final HashMap typeOfChannelStringToId = new HashMap();
383    /**
384     * <code>HashMap</code> translating table found in ID3 tags
385     */
386    public static final HashMap recievedAsIdToString = new HashMap();
387    /**
388     * <code>HashMap</code> translating table found in ID3 tags
389     */
390    public static final HashMap recievedAsStringToId = new HashMap();
391 
392    static {
393        id3v2_2FrameIdToString.put("BUF", "Recommended buffer size");
394        id3v2_2FrameIdToString.put("CNT", "Play counter");
395        id3v2_2FrameIdToString.put("COM", "Comments");
396        id3v2_2FrameIdToString.put("CRA", "Audio encryption");
397        id3v2_2FrameIdToString.put("CRM", "Encrypted meta frame");
398        id3v2_2FrameIdToString.put("ETC", "Event timing codes");
399        id3v2_2FrameIdToString.put("EQU", "Equalization");
400        id3v2_2FrameIdToString.put("GEO", "General encapsulated object");
401        id3v2_2FrameIdToString.put("IPL", "Involved people list");
402        id3v2_2FrameIdToString.put("LNK", "Linked information");
403        id3v2_2FrameIdToString.put("MCI", "Music CD Identifier");
404        id3v2_2FrameIdToString.put("MLL", "MPEG location lookup table");
405        id3v2_2FrameIdToString.put("PIC", "Attached picture");
406        id3v2_2FrameIdToString.put("POP", "Popularimeter");
407        id3v2_2FrameIdToString.put("REV", "Reverb");
408        id3v2_2FrameIdToString.put("RVA", "Relative volume adjustment");
409        id3v2_2FrameIdToString.put("SLT", "Synchronized lyric/text");
410        id3v2_2FrameIdToString.put("STC", "Synced tempo codes");
411        id3v2_2FrameIdToString.put("TAL", "Text: Album/Movie/Show title");
412        id3v2_2FrameIdToString.put("TBP", "Text: BPM (Beats Per Minute)");
413        id3v2_2FrameIdToString.put("TCM", "Text: Composer");
414        id3v2_2FrameIdToString.put("TCO", "Text: Content type");
415        id3v2_2FrameIdToString.put("TCR", "Text: Copyright message");
416        id3v2_2FrameIdToString.put("TDA", "Text: Date");
417        id3v2_2FrameIdToString.put("TDY", "Text: Playlist delay");
418        id3v2_2FrameIdToString.put("TEN", "Text: Encoded by");
419        id3v2_2FrameIdToString.put("TFT", "Text: File type");
420        id3v2_2FrameIdToString.put("TIM", "Text: Time");
421        id3v2_2FrameIdToString.put("TKE", "Text: Initial key");
422        id3v2_2FrameIdToString.put("TLA", "Text: Language(s)");
423        id3v2_2FrameIdToString.put("TLE", "Text: Length");
424        id3v2_2FrameIdToString.put("TMT", "Text: Media type");
425        id3v2_2FrameIdToString.put("TOA", "Text: Original artist(s)/performer(s)");
426        id3v2_2FrameIdToString.put("TOF", "Text: Original filename");
427        id3v2_2FrameIdToString.put("TOL", "Text: Original Lyricist(s)/text writer(s)");
428        id3v2_2FrameIdToString.put("TOR", "Text: Original release year");
429        id3v2_2FrameIdToString.put("TOT", "Text: Original album/Movie/Show title");
430        id3v2_2FrameIdToString.put("TP1", "Text: Lead artist(s)/Lead performer(s)/Soloist(s)/Performing group");
431        id3v2_2FrameIdToString.put("TP2", "Text: Band/Orchestra/Accompaniment");
432        id3v2_2FrameIdToString.put("TP3", "Text: Conductor/Performer refinement");
433        id3v2_2FrameIdToString.put("TP4", "Text: Interpreted, remixed, or otherwise modified by");
434        id3v2_2FrameIdToString.put("TPA", "Text: Part of a set");
435        id3v2_2FrameIdToString.put("TPB", "Text: Publisher");
436        id3v2_2FrameIdToString.put("TRC", "Text: ISRC (International Standard Recording Code)");
437        id3v2_2FrameIdToString.put("TRD", "Text: Recording dates");
438        id3v2_2FrameIdToString.put("TRK", "Text: Track number/Position in set");
439        id3v2_2FrameIdToString.put("TSI", "Text: Size");
440        id3v2_2FrameIdToString.put("TSS", "Text: Software/hardware and settings used for encoding");
441        id3v2_2FrameIdToString.put("TT1", "Text: Content group description");
442        id3v2_2FrameIdToString.put("TT2", "Text: Title/Songname/Content description");
443        id3v2_2FrameIdToString.put("TT3", "Text: Subtitle/Description refinement");
444        id3v2_2FrameIdToString.put("TXT", "Text: Lyricist/text writer");
445        id3v2_2FrameIdToString.put("TXX", "User defined text information frame");
446        id3v2_2FrameIdToString.put("TYE", "Text: Year");
447        id3v2_2FrameIdToString.put("UFI", "Unique file identifier");
448        id3v2_2FrameIdToString.put("ULT", "Unsychronized lyric/text transcription");
449        id3v2_2FrameIdToString.put("WAF", "URL: Official audio file webpage");
450        id3v2_2FrameIdToString.put("WAR", "URL: Official artist/performer webpage");
451        id3v2_2FrameIdToString.put("WAS", "URL: Official audio source webpage");
452        id3v2_2FrameIdToString.put("WCM", "URL: Commercial information");
453        id3v2_2FrameIdToString.put("WCP", "URL: Copyright/Legal information");
454        id3v2_2FrameIdToString.put("WPB", "URL: Publishers official webpage");
455        id3v2_2FrameIdToString.put("WXX", "User defined URL link frame");
456        String key;
457        String value;
458        Iterator iterator = id3v2_2FrameIdToString.keySet().iterator();
459        while (iterator.hasNext()) {
460            key = (String) iterator.next();
461            value = (String) id3v2_2FrameIdToString.get(key);
462            id3v2_2FrameStringToId.put(value, key);
463        }
464        id3v2_3FrameIdToString.put("AENC", "Audio encryption");
465        id3v2_3FrameIdToString.put("APIC", "Attached picture");
466        id3v2_3FrameIdToString.put("COMM", "Comments");
467        id3v2_3FrameIdToString.put("COMR", "Commercial frame");
468        id3v2_3FrameIdToString.put("ENCR", "Encryption method registration");
469        id3v2_3FrameIdToString.put("EQUA", "Equalization");
470        id3v2_3FrameIdToString.put("ETCO", "Event timing codes");
471        id3v2_3FrameIdToString.put("GEOB", "General encapsulated object");
472        id3v2_3FrameIdToString.put("GRID", "Group identification registration");
473        id3v2_3FrameIdToString.put("IPLS", "Involved people list");
474        id3v2_3FrameIdToString.put("LINK", "Linked information");
475        id3v2_3FrameIdToString.put("MCDI", "Music CD identifier");
476        id3v2_3FrameIdToString.put("MLLT", "MPEG location lookup table");
477        id3v2_3FrameIdToString.put("OWNE", "Ownership frame");
478        id3v2_3FrameIdToString.put("PRIV", "Private frame");
479        id3v2_3FrameIdToString.put("PCNT", "Play counter");
480        id3v2_3FrameIdToString.put("POPM", "Popularimeter");
481        id3v2_3FrameIdToString.put("POSS", "Position synchronisation frame");
482        id3v2_3FrameIdToString.put("RBUF", "Recommended buffer size");
483        id3v2_3FrameIdToString.put("RVAD", "Relative volume adjustment");
484        id3v2_3FrameIdToString.put("RVRB", "Reverb");
485        id3v2_3FrameIdToString.put("SYLT", "Synchronized lyric/text");
486        id3v2_3FrameIdToString.put("SYTC", "Synchronized tempo codes");
487        id3v2_3FrameIdToString.put("TALB", "Text: Album/Movie/Show title");
488        id3v2_3FrameIdToString.put("TBPM", "Text: BPM (beats per minute)");
489        id3v2_3FrameIdToString.put("TCOM", "Text: Composer");
490        id3v2_3FrameIdToString.put("TCON", "Text: Content type");
491        id3v2_3FrameIdToString.put("TCOP", "Text: Copyright message");
492        id3v2_3FrameIdToString.put("TDAT", "Text: Date");
493        id3v2_3FrameIdToString.put("TDLY", "Text: Playlist delay");
494        id3v2_3FrameIdToString.put("TENC", "Text: Encoded by");
495        id3v2_3FrameIdToString.put("TEXT", "Text: Lyricist/Text writer");
496        id3v2_3FrameIdToString.put("TFLT", "Text: File type");
497        id3v2_3FrameIdToString.put("TIME", "Text: Time");
498        id3v2_3FrameIdToString.put("TIT1", "Text: Content group description");
499        id3v2_3FrameIdToString.put("TIT2", "Text: Title/songname/content description");
500        id3v2_3FrameIdToString.put("TIT3", "Text: Subtitle/Description refinement");
501        id3v2_3FrameIdToString.put("TKEY", "Text: Initial key");
502        id3v2_3FrameIdToString.put("TLAN", "Text: Language(s)");
503        id3v2_3FrameIdToString.put("TLEN", "Text: Length");
504        id3v2_3FrameIdToString.put("TMED", "Text: Media type");
505        id3v2_3FrameIdToString.put("TOAL", "Text: Original album/movie/show title");
506        id3v2_3FrameIdToString.put("TOFN", "Text: Original filename");
507        id3v2_3FrameIdToString.put("TOLY", "Text: Original lyricist(s)/text writer(s)");
508        id3v2_3FrameIdToString.put("TOPE", "Text: Original artist(s)/performer(s)");
509        id3v2_3FrameIdToString.put("TORY", "Text: Original release year");
510        id3v2_3FrameIdToString.put("TOWN", "Text: File owner/licensee");
511        id3v2_3FrameIdToString.put("TPE1", "Text: Lead performer(s)/Soloist(s)");
512        id3v2_3FrameIdToString.put("TPE2", "Text: Band/orchestra/accompaniment");
513        id3v2_3FrameIdToString.put("TPE3", "Text: Conductor/performer refinement");
514        id3v2_3FrameIdToString.put("TPE4", "Text: Interpreted, remixed, or otherwise modified by");
515        id3v2_3FrameIdToString.put("TPOS", "Text: Part of a set");
516        id3v2_3FrameIdToString.put("TPUB", "Text: Publisher");
517        id3v2_3FrameIdToString.put("TRCK", "Text: Track number/Position in set");
518        id3v2_3FrameIdToString.put("TRDA", "Text: Recording dates");
519        id3v2_3FrameIdToString.put("TRSN", "Text: Internet radio station name");
520        id3v2_3FrameIdToString.put("TRSO", "Text: Internet radio station owner");
521        id3v2_3FrameIdToString.put("TSIZ", "Text: Size");
522        id3v2_3FrameIdToString.put("TSRC", "Text: ISRC (international standard recording code)");
523        id3v2_3FrameIdToString.put("TSSE", "Text: Software/Hardware and settings used for encoding");
524        id3v2_3FrameIdToString.put("TYER", "Text: Year");
525        id3v2_3FrameIdToString.put("TXXX", "User defined text information frame");
526        id3v2_3FrameIdToString.put("UFID", "Unique file identifier");
527        id3v2_3FrameIdToString.put("USER", "Terms of use");
528        id3v2_3FrameIdToString.put("USLT", "Unsychronized lyric/text transcription");
529        id3v2_3FrameIdToString.put("WCOM", "URL: Commercial information");
530        id3v2_3FrameIdToString.put("WCOP", "URL: Copyright/Legal information");
531        id3v2_3FrameIdToString.put("WOAF", "URL: Official audio file webpage");
532        id3v2_3FrameIdToString.put("WOAR", "URL: Official artist/performer webpage");
533        id3v2_3FrameIdToString.put("WOAS", "URL: Official audio source webpage");
534        id3v2_3FrameIdToString.put("WORS", "URL: Official internet radio station homepage");
535        id3v2_3FrameIdToString.put("WPAY", "URL: Payment");
536        id3v2_3FrameIdToString.put("WPUB", "URL: Publishers official webpage");
537        id3v2_3FrameIdToString.put("WXXX", "User defined URL link frame");
538        iterator = id3v2_3FrameIdToString.keySet().iterator();
539        while (iterator.hasNext()) {
540            key = (String) iterator.next();
541            value = (String) id3v2_3FrameIdToString.get(key);
542            id3v2_3FrameStringToId.put(value, key);
543        }
544        id3v2_4FrameIdToString.put("AENC", "Audio encryption");
545        id3v2_4FrameIdToString.put("APIC", "Attached picture");
546        id3v2_4FrameIdToString.put("ASPI", "Audio seek point index");
547        id3v2_4FrameIdToString.put("COMM", "Comments");
548        id3v2_4FrameIdToString.put("COMR", "Commercial frame");
549        id3v2_4FrameIdToString.put("ENCR", "Encryption method registration");
550        id3v2_4FrameIdToString.put("EQU2", "Equalisation (2)");
551        id3v2_4FrameIdToString.put("ETCO", "Event timing codes");
552        id3v2_4FrameIdToString.put("GEOB", "General encapsulated object");
553        id3v2_4FrameIdToString.put("GRID", "Group identification registration");
554        id3v2_4FrameIdToString.put("LINK", "Linked information");
555        id3v2_4FrameIdToString.put("MCDI", "Music CD identifier");
556        id3v2_4FrameIdToString.put("MLLT", "MPEG location lookup table");
557        id3v2_4FrameIdToString.put("OWNE", "Ownership frame");
558        id3v2_4FrameIdToString.put("PRIV", "Private frame");
559        id3v2_4FrameIdToString.put("PCNT", "Play counter");
560        id3v2_4FrameIdToString.put("POPM", "Popularimeter");
561        id3v2_4FrameIdToString.put("POSS", "Position synchronisation frame");
562        id3v2_4FrameIdToString.put("RBUF", "Recommended buffer size");
563        id3v2_4FrameIdToString.put("RVA2", "Relative volume adjustment (2)");
564        id3v2_4FrameIdToString.put("RVRB", "Reverb");
565        id3v2_4FrameIdToString.put("SEEK", "Seek frame");
566        id3v2_4FrameIdToString.put("SIGN", "Signature frame");
567        id3v2_4FrameIdToString.put("SYLT", "Synchronised lyric/text");
568        id3v2_4FrameIdToString.put("SYTC", "Synchronised tempo codes");
569        id3v2_4FrameIdToString.put("TALB", "Text: Album/Movie/Show title");
570        id3v2_4FrameIdToString.put("TBPM", "Text: BPM (beats per minute)");
571        id3v2_4FrameIdToString.put("TCOM", "Text: Composer");
572        id3v2_4FrameIdToString.put("TCON", "Text: Content type (genre)");
573        id3v2_4FrameIdToString.put("TCOP", "Text: Copyright message");
574        id3v2_4FrameIdToString.put("TDEN", "Text: Encoding time");
575        id3v2_4FrameIdToString.put("TDLY", "Text: Playlist delay");
576        id3v2_4FrameIdToString.put("TDOR", "Text: Original release time");
577        id3v2_4FrameIdToString.put("TDRC", "Text: Recording time");
578        id3v2_4FrameIdToString.put("TDRL", "Text: Release time");
579        id3v2_4FrameIdToString.put("TDTG", "Text: Tagging time");
580        id3v2_4FrameIdToString.put("TENC", "Text: Encoded by");
581        id3v2_4FrameIdToString.put("TEXT", "Text: Lyricist/Text writer");
582        id3v2_4FrameIdToString.put("TFLT", "Text: File type");
583        id3v2_4FrameIdToString.put("TIPL", "Text: Involved people list");
584        id3v2_4FrameIdToString.put("TIT1", "Text: Content group description");
585        id3v2_4FrameIdToString.put("TIT2", "Text: Title/songname/content description");
586        id3v2_4FrameIdToString.put("TIT3", "Text: Subtitle/Description refinement");
587        id3v2_4FrameIdToString.put("TKEY", "Text: Initial key");
588        id3v2_4FrameIdToString.put("TLAN", "Text: Language(s)");
589        id3v2_4FrameIdToString.put("TLEN", "Text: Length");
590        id3v2_4FrameIdToString.put("TMCL", "Text: Musician credits list");
591        id3v2_4FrameIdToString.put("TMED", "Text: Media type");
592        id3v2_4FrameIdToString.put("TMOO", "Text: Mood");
593        id3v2_4FrameIdToString.put("TOAL", "Text: Original album/movie/show title");
594        id3v2_4FrameIdToString.put("TOFN", "Text: Original filename");
595        id3v2_4FrameIdToString.put("TOLY", "Text: Original lyricist(s)/text writer(s)");
596        id3v2_4FrameIdToString.put("TOPE", "Text: Original artist(s)/performer(s)");
597        id3v2_4FrameIdToString.put("TOWN", "Text: File owner/licensee");
598        id3v2_4FrameIdToString.put("TPE1", "Text: Lead performer(s)/Soloist(s)");
599        id3v2_4FrameIdToString.put("TPE2", "Text: Band/orchestra/accompaniment");
600        id3v2_4FrameIdToString.put("TPE3", "Text: Conductor/performer refinement");
601        id3v2_4FrameIdToString.put("TPE4", "Text: Interpreted, remixed, or otherwise modified by");
602        id3v2_4FrameIdToString.put("TPOS", "Text: Part of a set");
603        id3v2_4FrameIdToString.put("TPRO", "Text: Produced notice");
604        id3v2_4FrameIdToString.put("TPUB", "Text: Publisher");
605        id3v2_4FrameIdToString.put("TRCK", "Text: Track number/Position in set");
606        id3v2_4FrameIdToString.put("TRSN", "Text: Internet radio station name");
607        id3v2_4FrameIdToString.put("TRSO", "Text: Internet radio station owner");
608        id3v2_4FrameIdToString.put("TSOA", "Text: Album sort order");
609        id3v2_4FrameIdToString.put("TSOP", "Text: Performer sort order");
610        id3v2_4FrameIdToString.put("TSOT", "Text: Title sort order");
611        id3v2_4FrameIdToString.put("TSRC", "Text: ISRC (international standard recording code)");
612        id3v2_4FrameIdToString.put("TSSE", "Text: Software/Hardware and settings used for encoding");
613        id3v2_4FrameIdToString.put("TSST", "Text: Set subtitle");
614        id3v2_4FrameIdToString.put("TXXX", "User defined text information frame");
615        id3v2_4FrameIdToString.put("UFID", "Unique file identifier");
616        id3v2_4FrameIdToString.put("USER", "Terms of use");
617        id3v2_4FrameIdToString.put("USLT", "Unsynchronised lyric/text transcription");
618        id3v2_4FrameIdToString.put("WCOM", "URL: Commercial information");
619        id3v2_4FrameIdToString.put("WCOP", "URL: Copyright/Legal information");
620        id3v2_4FrameIdToString.put("WOAF", "URL: Official audio file webpage");
621        id3v2_4FrameIdToString.put("WOAR", "URL: Official artist/performer webpage");
622        id3v2_4FrameIdToString.put("WOAS", "URL: Official audio source webpage");
623        id3v2_4FrameIdToString.put("WORS", "URL: Official Internet radio station homepage");
624        id3v2_4FrameIdToString.put("WPAY", "URL: Payment");
625        id3v2_4FrameIdToString.put("WPUB", "URL: Publishers official webpage");
626        id3v2_4FrameIdToString.put("WXXX", "User defined URL link frame");
627        iterator = id3v2_4FrameIdToString.keySet().iterator();
628        while (iterator.hasNext()) {
629            key = (String) iterator.next();
630            value = (String) id3v2_4FrameIdToString.get(key);
631            id3v2_4FrameStringToId.put(value, key);
632        }
633        lyrics3v2FieldIdToString.put("IND", "Indications field");
634        lyrics3v2FieldIdToString.put("LYR", "Lyrics multi line text");
635        lyrics3v2FieldIdToString.put("INF", "Additional information multi line text");
636        lyrics3v2FieldIdToString.put("AUT", "Lyrics/Music Author name");
637        lyrics3v2FieldIdToString.put("EAL", "Extended Album name");
638        lyrics3v2FieldIdToString.put("EAR", "Extended Artist name");
639        lyrics3v2FieldIdToString.put("ETT", "Extended Track Title");
640        lyrics3v2FieldIdToString.put("IMG", "Link to an image files");
641        iterator = lyrics3v2FieldIdToString.keySet().iterator();
642        while (iterator.hasNext()) {
643            key = (String) iterator.next();
644            value = (String) lyrics3v2FieldIdToString.get(key);
645            lyrics3v2FieldStringToId.put(value, key);
646        }
647        id3v2_2ToId3v2_3.put("BUF", "RBUF");
648        id3v2_2ToId3v2_3.put("CNT", "PCNT");
649        id3v2_2ToId3v2_3.put("COM", "COMM");
650        id3v2_2ToId3v2_3.put("CRA", "AENC");
651 
652        //id3v2_2ToId3v2_4.put("CRM", "CRM"); // removed in ID3v2.3
653        id3v2_2ToId3v2_3.put("ETC", "ETCO");
654        id3v2_2ToId3v2_3.put("EQU", "EQUA"); // changed from EQUA to EQU2 in
655 
656        // ID3v2.4
657        id3v2_2ToId3v2_3.put("GEO", "GEOB"); // Deprecated in ID3v2.4
658        id3v2_2ToId3v2_3.put("IPL", "IPLS");
659        id3v2_2ToId3v2_3.put("LNK", "LINK");
660        id3v2_2ToId3v2_3.put("MCI", "MCDI");
661        id3v2_2ToId3v2_3.put("MLL", "MLLT");
662        id3v2_2ToId3v2_3.put("PIC", "APIC"); // the APIC spec is different from
663 
664        // PIC
665        id3v2_2ToId3v2_3.put("POP", "POPM");
666        id3v2_2ToId3v2_3.put("REV", "RVRB");
667        id3v2_2ToId3v2_3.put("RVA", "RVAD"); // changed from RVAD to RVA2 in
668 
669        // ID3v2.4
670        id3v2_2ToId3v2_3.put("SLT", "SYLT");
671        id3v2_2ToId3v2_3.put("STC", "SYTC");
672        id3v2_2ToId3v2_3.put("TAL", "TALB");
673        id3v2_2ToId3v2_3.put("TBP", "TBPM");
674        id3v2_2ToId3v2_3.put("TCM", "TCOM");
675        id3v2_2ToId3v2_3.put("TCO", "TCON");
676        id3v2_2ToId3v2_3.put("TCR", "TCOP");
677        id3v2_2ToId3v2_3.put("TDA", "TDAT"); // Deprecated in ID3v2.4
678        id3v2_2ToId3v2_3.put("TDY", "TDLY");
679        id3v2_2ToId3v2_3.put("TEN", "TENC");
680        id3v2_2ToId3v2_3.put("TFT", "TFLT");
681        id3v2_2ToId3v2_3.put("TIM", "TIME"); // Deprecated in ID3v2.4
682        id3v2_2ToId3v2_3.put("TKE", "TKEY");
683        id3v2_2ToId3v2_3.put("TLA", "TLAN");
684        id3v2_2ToId3v2_3.put("TLE", "TLEN");
685        id3v2_2ToId3v2_3.put("TMT", "TMED");
686        id3v2_2ToId3v2_3.put("TOA", "TOPE");
687        id3v2_2ToId3v2_3.put("TOF", "TOFN");
688        id3v2_2ToId3v2_3.put("TOL", "TOLY");
689        id3v2_2ToId3v2_3.put("TOR", "TORY"); // Deprecated in ID3v2.4
690        id3v2_2ToId3v2_3.put("TOT", "TOAL");
691        id3v2_2ToId3v2_3.put("TP1", "TPE1");
692        id3v2_2ToId3v2_3.put("TP2", "TPE2");
693        id3v2_2ToId3v2_3.put("TP3", "TPE3");
694        id3v2_2ToId3v2_3.put("TP4", "TPE4");
695        id3v2_2ToId3v2_3.put("TPA", "TPOS");
696        id3v2_2ToId3v2_3.put("TPB", "TPUB");
697        id3v2_2ToId3v2_3.put("TRC", "TSRC");
698        id3v2_2ToId3v2_3.put("TRD", "TRDA"); // Deprecated in ID3v2.4
699        id3v2_2ToId3v2_3.put("TRK", "TRCK");
700        id3v2_2ToId3v2_3.put("TSI", "TSIZ"); // Deprecated in ID3v2.4
701        id3v2_2ToId3v2_3.put("TSS", "TSSE");
702        id3v2_2ToId3v2_3.put("TT1", "TIT1");
703        id3v2_2ToId3v2_3.put("TT2", "TIT2");
704        id3v2_2ToId3v2_3.put("TT3", "TIT3");
705        id3v2_2ToId3v2_3.put("TXT", "TEXT");
706        id3v2_2ToId3v2_3.put("TXX", "TXXX");
707        id3v2_2ToId3v2_3.put("TYE", "TYER"); // Deprecated in ID3v2.4
708        id3v2_2ToId3v2_3.put("UFI", "UFID");
709        id3v2_2ToId3v2_3.put("ULT", "USLT");
710        id3v2_2ToId3v2_3.put("WAF", "WOAF");
711        id3v2_2ToId3v2_3.put("WAR", "WOAR");
712        id3v2_2ToId3v2_3.put("WAS", "WOAS");
713        id3v2_2ToId3v2_3.put("WCM", "WCOM");
714        id3v2_2ToId3v2_3.put("WCP", "WCOP");
715        id3v2_2ToId3v2_3.put("WPB", "WPUB");
716        id3v2_2ToId3v2_3.put("WXX", "WXXX");
717        iterator = id3v2_2ToId3v2_3.keySet().iterator();
718        while (iterator.hasNext()) {
719            key = (String) iterator.next();
720            value = (String) id3v2_2ToId3v2_3.get(key);
721            id3v2_3ToId3v2_2.put(value, key);
722        }
723        id3v2_3ToId3v2_4.put("EQUA", "EQU2"); // changed from EQUA to EQU2 in
724 
725        // ID3v2.4
726        id3v2_3ToId3v2_4.put("GEOB", null); // Deprecated in ID3v2.4
727        id3v2_3ToId3v2_4.put("RVAD", "RVA2"); // changed from RVAD to RVA2 in
728 
729        // ID3v2.4
730        id3v2_3ToId3v2_4.put("TDAT", null); // Deprecated in ID3v2.4
731        id3v2_3ToId3v2_4.put("TIME", null); // Deprecated in ID3v2.4
732        id3v2_3ToId3v2_4.put("TORY", null); // Deprecated in ID3v2.4
733        id3v2_3ToId3v2_4.put("TRDA", null); // Deprecated in ID3v2.4
734        id3v2_3ToId3v2_4.put("TSIZ", null); // Deprecated in ID3v2.4
735        id3v2_3ToId3v2_4.put("TYER", null); // Deprecated in ID3v2.4
736        iterator = id3v2_3ToId3v2_4.keySet().iterator();
737        while (iterator.hasNext()) {
738            key = (String) iterator.next();
739            if (key != null) {
740                value = (String) id3v2_3ToId3v2_4.get(key);
741                id3v2_4ToId3v2_3.put(value, key);
742            }
743        }
744        genreIdToString.put(new Long(0), "Blues");
745        genreIdToString.put(new Long(1), "Classic Rock");
746        genreIdToString.put(new Long(2), "Country");
747        genreIdToString.put(new Long(3), "Dance");
748        genreIdToString.put(new Long(4), "Disco");
749        genreIdToString.put(new Long(5), "Funk");
750        genreIdToString.put(new Long(6), "Grunge");
751        genreIdToString.put(new Long(7), "Hip-Hop");
752        genreIdToString.put(new Long(8), "Jazz");
753        genreIdToString.put(new Long(9), "Metal");
754        genreIdToString.put(new Long(10), "New Age");
755        genreIdToString.put(new Long(11), "Oldies");
756        genreIdToString.put(new Long(12), "Other");
757        genreIdToString.put(new Long(13), "Pop");
758        genreIdToString.put(new Long(14), "R&B");
759        genreIdToString.put(new Long(15), "Rap");
760        genreIdToString.put(new Long(16), "Reggae");
761        genreIdToString.put(new Long(17), "Rock");
762        genreIdToString.put(new Long(18), "Techno");
763        genreIdToString.put(new Long(19), "Industrial");
764        genreIdToString.put(new Long(20), "Alternative");
765        genreIdToString.put(new Long(21), "Ska");
766        genreIdToString.put(new Long(22), "Death Metal");
767        genreIdToString.put(new Long(23), "Pranks");
768        genreIdToString.put(new Long(24), "Soundtrack");
769        genreIdToString.put(new Long(25), "Euro-Techno");
770        genreIdToString.put(new Long(26), "Ambient");
771        genreIdToString.put(new Long(27), "Trip-Hop");
772        genreIdToString.put(new Long(28), "Vocal");
773        genreIdToString.put(new Long(29), "Jazz+Funk");
774        genreIdToString.put(new Long(30), "Fusion");
775        genreIdToString.put(new Long(31), "Trance");
776        genreIdToString.put(new Long(32), "Classical");
777        genreIdToString.put(new Long(33), "Instrumental");
778        genreIdToString.put(new Long(34), "Acid");
779        genreIdToString.put(new Long(35), "House");
780        genreIdToString.put(new Long(36), "Game");
781        genreIdToString.put(new Long(37), "Sound Clip");
782        genreIdToString.put(new Long(38), "Gospel");
783        genreIdToString.put(new Long(39), "Noise");
784        genreIdToString.put(new Long(40), "AlternRock");
785        genreIdToString.put(new Long(41), "Bass");
786        genreIdToString.put(new Long(42), "Soul");
787        genreIdToString.put(new Long(43), "Punk");
788        genreIdToString.put(new Long(44), "Space");
789        genreIdToString.put(new Long(45), "Meditative");
790        genreIdToString.put(new Long(46), "Instrumental Pop");
791        genreIdToString.put(new Long(47), "Instrumental Rock");
792        genreIdToString.put(new Long(48), "Ethnic");
793        genreIdToString.put(new Long(49), "Gothic");
794        genreIdToString.put(new Long(50), "Darkwave");
795        genreIdToString.put(new Long(51), "Techno-Industrial");
796        genreIdToString.put(new Long(52), "Electronic");
797        genreIdToString.put(new Long(53), "Pop-Folk");
798        genreIdToString.put(new Long(54), "Eurodance");
799        genreIdToString.put(new Long(55), "Dream");
800        genreIdToString.put(new Long(56), "Southern Rock");
801        genreIdToString.put(new Long(57), "Comedy");
802        genreIdToString.put(new Long(58), "Cult");
803        genreIdToString.put(new Long(59), "Gangsta");
804        genreIdToString.put(new Long(60), "Top 40");
805        genreIdToString.put(new Long(61), "Christian Rap");
806        genreIdToString.put(new Long(62), "Pop/Funk");
807        genreIdToString.put(new Long(63), "Jungle");
808        genreIdToString.put(new Long(64), "Native American");
809        genreIdToString.put(new Long(65), "Cabaret");
810        genreIdToString.put(new Long(66), "New Wave");
811        genreIdToString.put(new Long(67), "Psychadelic");
812        genreIdToString.put(new Long(68), "Rave");
813        genreIdToString.put(new Long(69), "Showtunes");
814        genreIdToString.put(new Long(70), "Trailer");
815        genreIdToString.put(new Long(71), "Lo-Fi");
816        genreIdToString.put(new Long(72), "Tribal");
817        genreIdToString.put(new Long(73), "Acid Punk");
818        genreIdToString.put(new Long(74), "Acid Jazz");
819        genreIdToString.put(new Long(75), "Polka");
820        genreIdToString.put(new Long(76), "Retro");
821        genreIdToString.put(new Long(77), "Musical");
822        genreIdToString.put(new Long(78), "Rock & Roll");
823        genreIdToString.put(new Long(79), "Hard Rock");
824        genreIdToString.put(new Long(80), "Folk");
825        genreIdToString.put(new Long(81), "Folk-Rock");
826        genreIdToString.put(new Long(82), "National Folk");
827        genreIdToString.put(new Long(83), "Swing");
828        genreIdToString.put(new Long(84), "Fast Fusion");
829        genreIdToString.put(new Long(85), "Bebob");
830        genreIdToString.put(new Long(86), "Latin");
831        genreIdToString.put(new Long(87), "Revival");
832        genreIdToString.put(new Long(88), "Celtic");
833        genreIdToString.put(new Long(89), "Bluegrass");
834        genreIdToString.put(new Long(90), "Avantgarde");
835        genreIdToString.put(new Long(91), "Gothic Rock");
836        genreIdToString.put(new Long(92), "Progressive Rock");
837        genreIdToString.put(new Long(93), "Psychedelic Rock");
838        genreIdToString.put(new Long(94), "Symphonic Rock");
839        genreIdToString.put(new Long(95), "Slow Rock");
840        genreIdToString.put(new Long(96), "Big Band");
841        genreIdToString.put(new Long(97), "Chorus");
842        genreIdToString.put(new Long(98), "Easy Listening");
843        genreIdToString.put(new Long(99), "Acoustic");
844        genreIdToString.put(new Long(100), "Humour");
845        genreIdToString.put(new Long(101), "Speech");
846        genreIdToString.put(new Long(102), "Chanson");
847        genreIdToString.put(new Long(103), "Opera");
848        genreIdToString.put(new Long(104), "Chamber Music");
849        genreIdToString.put(new Long(105), "Sonata");
850        genreIdToString.put(new Long(106), "Symphony");
851        genreIdToString.put(new Long(107), "Booty Bass");
852        genreIdToString.put(new Long(108), "Primus");
853        genreIdToString.put(new Long(109), "Porn Groove");
854        genreIdToString.put(new Long(110), "Satire");
855        genreIdToString.put(new Long(111), "Slow Jam");
856        genreIdToString.put(new Long(112), "Club");
857        genreIdToString.put(new Long(113), "Tango");
858        genreIdToString.put(new Long(114), "Samba");
859        genreIdToString.put(new Long(115), "Folklore");
860        genreIdToString.put(new Long(116), "Ballad");
861        genreIdToString.put(new Long(117), "Power Ballad");
862        genreIdToString.put(new Long(118), "Rhythmic Soul");
863        genreIdToString.put(new Long(119), "Freestyle");
864        genreIdToString.put(new Long(120), "Duet");
865        genreIdToString.put(new Long(121), "Punk Rock");
866        genreIdToString.put(new Long(122), "Drum Solo");
867        genreIdToString.put(new Long(123), "Acapella");
868        genreIdToString.put(new Long(124), "Euro-House");
869        genreIdToString.put(new Long(125), "Dance Hall");
870 
871        // ID's are typed as Integer because the combo box expects it
872        Long lkey;
873        iterator = genreIdToString.keySet().iterator();
874        while (iterator.hasNext()) {
875            lkey = (Long) iterator.next();
876            value = (String) genreIdToString.get(lkey);
877            genreStringToId.put(value, lkey);
878        }
879 
880        // MPEG-1, Layer I (E)
881        bitrate.put(new Long(0x1E), new Long(32));
882        bitrate.put(new Long(0x2E), new Long(64));
883        bitrate.put(new Long(0x3E), new Long(96));
884        bitrate.put(new Long(0x4E), new Long(128));
885        bitrate.put(new Long(0x5E), new Long(160));
886        bitrate.put(new Long(0x6E), new Long(192));
887        bitrate.put(new Long(0x7E), new Long(224));
888        bitrate.put(new Long(0x8E), new Long(256));
889        bitrate.put(new Long(0x9E), new Long(288));
890        bitrate.put(new Long(0xAE), new Long(320));
891        bitrate.put(new Long(0xBE), new Long(352));
892        bitrate.put(new Long(0xCE), new Long(384));
893        bitrate.put(new Long(0xDE), new Long(416));
894        bitrate.put(new Long(0xEE), new Long(448));
895 
896        // MPEG-1, Layer II (C)
897        bitrate.put(new Long(0x1C), new Long(32));
898        bitrate.put(new Long(0x2C), new Long(48));
899        bitrate.put(new Long(0x3C), new Long(56));
900        bitrate.put(new Long(0x4C), new Long(64));
901        bitrate.put(new Long(0x5C), new Long(80));
902        bitrate.put(new Long(0x6C), new Long(96));
903        bitrate.put(new Long(0x7C), new Long(112));
904        bitrate.put(new Long(0x8C), new Long(128));
905        bitrate.put(new Long(0x9C), new Long(160));
906        bitrate.put(new Long(0xAC), new Long(192));
907        bitrate.put(new Long(0xBC), new Long(224));
908        bitrate.put(new Long(0xCC), new Long(256));
909        bitrate.put(new Long(0xDC), new Long(320));
910        bitrate.put(new Long(0xEC), new Long(384));
911 
912        // MPEG-1, Layer III (A)
913        bitrate.put(new Long(0x1A), new Long(32));
914        bitrate.put(new Long(0x2A), new Long(40));
915        bitrate.put(new Long(0x3A), new Long(48));
916        bitrate.put(new Long(0x4A), new Long(56));
917        bitrate.put(new Long(0x5A), new Long(64));
918        bitrate.put(new Long(0x6A), new Long(80));
919        bitrate.put(new Long(0x7A), new Long(96));
920        bitrate.put(new Long(0x8A), new Long(112));
921        bitrate.put(new Long(0x9A), new Long(128));
922        bitrate.put(new Long(0xAA), new Long(160));
923        bitrate.put(new Long(0xBA), new Long(192));
924        bitrate.put(new Long(0xCA), new Long(224));
925        bitrate.put(new Long(0xDA), new Long(256));
926        bitrate.put(new Long(0xEA), new Long(320));
927 
928        // MPEG-2, Layer I (6)
929        bitrate.put(new Long(0x16), new Long(32));
930        bitrate.put(new Long(0x26), new Long(48));
931        bitrate.put(new Long(0x36), new Long(56));
932        bitrate.put(new Long(0x46), new Long(64));
933        bitrate.put(new Long(0x56), new Long(80));
934        bitrate.put(new Long(0x66), new Long(96));
935        bitrate.put(new Long(0x76), new Long(112));
936        bitrate.put(new Long(0x86), new Long(128));
937        bitrate.put(new Long(0x96), new Long(144));
938        bitrate.put(new Long(0xA6), new Long(160));
939        bitrate.put(new Long(0xB6), new Long(176));
940        bitrate.put(new Long(0xC6), new Long(192));
941        bitrate.put(new Long(0xD6), new Long(224));
942        bitrate.put(new Long(0xE6), new Long(256));
943 
944        // MPEG-2, Layer II (4)
945        bitrate.put(new Long(0x14), new Long(8));
946        bitrate.put(new Long(0x24), new Long(16));
947        bitrate.put(new Long(0x34), new Long(24));
948        bitrate.put(new Long(0x44), new Long(32));
949        bitrate.put(new Long(0x54), new Long(40));
950        bitrate.put(new Long(0x64), new Long(48));
951        bitrate.put(new Long(0x74), new Long(56));
952        bitrate.put(new Long(0x84), new Long(64));
953        bitrate.put(new Long(0x94), new Long(80));
954        bitrate.put(new Long(0xA4), new Long(96));
955        bitrate.put(new Long(0xB4), new Long(112));
956        bitrate.put(new Long(0xC4), new Long(128));
957        bitrate.put(new Long(0xD4), new Long(144));
958        bitrate.put(new Long(0xE4), new Long(160));
959 
960        // MPEG-2, Layer III (2)
961        bitrate.put(new Long(0x12), new Long(8));
962        bitrate.put(new Long(0x22), new Long(16));
963        bitrate.put(new Long(0x32), new Long(24));
964        bitrate.put(new Long(0x42), new Long(32));
965        bitrate.put(new Long(0x52), new Long(40));
966        bitrate.put(new Long(0x62), new Long(48));
967        bitrate.put(new Long(0x72), new Long(56));
968        bitrate.put(new Long(0x82), new Long(64));
969        bitrate.put(new Long(0x92), new Long(80));
970        bitrate.put(new Long(0xA2), new Long(96));
971        bitrate.put(new Long(0xB2), new Long(112));
972        bitrate.put(new Long(0xC2), new Long(128));
973        bitrate.put(new Long(0xD2), new Long(144));
974        bitrate.put(new Long(0xE2), new Long(160));
975        languageIdToString.put("aar", "Afar");
976        languageIdToString.put("abk", "Abkhazian");
977        languageIdToString.put("ace", "Achinese");
978        languageIdToString.put("ach", "Acoli");
979        languageIdToString.put("ada", "Adangme");
980        languageIdToString.put("afa", "Afro-Asiatic (Other)");
981        languageIdToString.put("afh", "Afrihili");
982        languageIdToString.put("afr", "Afrikaans");
983        languageIdToString.put("aka", "Akan");
984        languageIdToString.put("akk", "Akkadian");
985        languageIdToString.put("alb", "Albanian");
986        languageIdToString.put("ale", "Aleut");
987        languageIdToString.put("alg", "Algonquian languages");
988        languageIdToString.put("amh", "Amharic");
989        languageIdToString.put("ang", "English, Old (ca.450-1100)");
990        languageIdToString.put("apa", "Apache languages");
991        languageIdToString.put("ara", "Arabic");
992        languageIdToString.put("arc", "Aramaic");
993        languageIdToString.put("arm", "Armenian");
994        languageIdToString.put("arn", "Araucanian");
995        languageIdToString.put("arp", "Arapaho");
996        languageIdToString.put("art", "Artificial (Other)");
997        languageIdToString.put("arw", "Arawak");
998        languageIdToString.put("asm", "Assamese");
999        languageIdToString.put("ast", "Asturian; Bable");
1000        languageIdToString.put("ath", "Athapascan languages");
1001        languageIdToString.put("aus", "Australian languages");
1002        languageIdToString.put("ava", "Avaric");
1003        languageIdToString.put("ave", "Avestan");
1004        languageIdToString.put("awa", "Awadhi");
1005        languageIdToString.put("aym", "Aymara");
1006        languageIdToString.put("aze", "Azerbaijani");
1007        languageIdToString.put("bad", "Banda");
1008        languageIdToString.put("bai", "Bamileke languages");
1009        languageIdToString.put("bak", "Bashkir");
1010        languageIdToString.put("bal", "Baluchi");
1011        languageIdToString.put("bam", "Bambara");
1012        languageIdToString.put("ban", "Balinese");
1013        languageIdToString.put("baq", "Basque");
1014        languageIdToString.put("bas", "Basa");
1015        languageIdToString.put("bat", "Baltic (Other)");
1016        languageIdToString.put("bej", "Beja");
1017        languageIdToString.put("bel", "Belarusian");
1018        languageIdToString.put("bem", "Bemba");
1019        languageIdToString.put("ben", "Bengali");
1020        languageIdToString.put("ber", "Berber (Other)");
1021        languageIdToString.put("bho", "Bhojpuri");
1022        languageIdToString.put("bih", "Bihari");
1023        languageIdToString.put("bik", "Bikol");
1024        languageIdToString.put("bin", "Bini");
1025        languageIdToString.put("bis", "Bislama");
1026        languageIdToString.put("bla", "Siksika");
1027        languageIdToString.put("bnt", "Bantu (Other)");
1028        languageIdToString.put("bod", "Tibetan");
1029        languageIdToString.put("bos", "Bosnian");
1030        languageIdToString.put("bra", "Braj");
1031        languageIdToString.put("bre", "Breton");
1032        languageIdToString.put("btk", "Batak (Indonesia)");
1033        languageIdToString.put("bua", "Buriat");
1034        languageIdToString.put("bug", "Buginese");
1035        languageIdToString.put("bul", "Bulgarian");
1036        languageIdToString.put("bur", "Burmese");
1037        languageIdToString.put("cad", "Caddo");
1038        languageIdToString.put("cai", "Central American Indian (Other)");
1039        languageIdToString.put("car", "Carib");
1040        languageIdToString.put("cat", "Catalan");
1041        languageIdToString.put("cau", "Caucasian (Other)");
1042        languageIdToString.put("ceb", "Cebuano");
1043        languageIdToString.put("cel", "Celtic (Other)");
1044        languageIdToString.put("ces", "Czech");
1045        languageIdToString.put("cha", "Chamorro");
1046        languageIdToString.put("chb", "Chibcha");
1047        languageIdToString.put("che", "Chechen");
1048        languageIdToString.put("chg", "Chagatai");
1049        languageIdToString.put("chi", "Chinese");
1050        languageIdToString.put("chk", "Chuukese");
1051        languageIdToString.put("chm", "Mari");
1052        languageIdToString.put("chn", "Chinook jargon");
1053        languageIdToString.put("cho", "Choctaw");
1054        languageIdToString.put("chp", "Chipewyan");
1055        languageIdToString.put("chr", "Cherokee");
1056        languageIdToString.put("chu",
1057                               "Church Slavic; Old Slavonic; Old Church Slavonic; Church Slavonic; Old Bulgarian");
1058        languageIdToString.put("chv", "Chuvash");
1059        languageIdToString.put("chy", "Cheyenne");
1060        languageIdToString.put("cmc", "Chamic languages");
1061        languageIdToString.put("cop", "Coptic");
1062        languageIdToString.put("cor", "Cornish");
1063        languageIdToString.put("cos", "Corsican");
1064        languageIdToString.put("cpe", "Creoles and pidgins, English based (Other)");
1065        languageIdToString.put("cpf", "Creoles and pidgins, French-based (Other)");
1066        languageIdToString.put("cpp", "Creoles and pidgins,");
1067        languageIdToString.put("cre", "Cree");
1068        languageIdToString.put("crp", "Creoles and pidgins (Other)");
1069        languageIdToString.put("cus", "Cushitic (Other)");
1070        languageIdToString.put("cym", "Welsh");
1071        languageIdToString.put("cze", "Czech");
1072        languageIdToString.put("dak", "Dakota");
1073        languageIdToString.put("dan", "Danish");
1074        languageIdToString.put("day", "Dayak");
1075        languageIdToString.put("del", "Delaware");
1076        languageIdToString.put("den", "Slave (Athapascan)");
1077        languageIdToString.put("deu", "German");
1078        languageIdToString.put("dgr", "Dogrib");
1079        languageIdToString.put("din", "Dinka");
1080        languageIdToString.put("div", "Divehi");
1081        languageIdToString.put("doi", "Dogri");
1082        languageIdToString.put("dra", "Dravidian (Other)");
1083        languageIdToString.put("dua", "Duala");
1084        languageIdToString.put("dum", "Dutch, Middle (ca.1050-1350)");
1085        languageIdToString.put("dut", "Dutch");
1086        languageIdToString.put("dyu", "Dyula");
1087        languageIdToString.put("dzo", "Dzongkha");
1088        languageIdToString.put("efi", "Efik");
1089        languageIdToString.put("egy", "Egyptian (Ancient)");
1090        languageIdToString.put("eka", "Ekajuk");
1091        languageIdToString.put("ell", "Greek, Modern (1453-)");
1092        languageIdToString.put("elx", "Elamite");
1093        languageIdToString.put("eng", "English");
1094        languageIdToString.put("enm", "English, Middle (1100-1500)");
1095        languageIdToString.put("epo", "Esperanto");
1096        languageIdToString.put("est", "Estonian");
1097        languageIdToString.put("eus", "Basque");
1098        languageIdToString.put("ewe", "Ewe");
1099        languageIdToString.put("ewo", "Ewondo");
1100        languageIdToString.put("fan", "Fang");
1101        languageIdToString.put("fao", "Faroese");
1102        languageIdToString.put("fas", "Persian");
1103        languageIdToString.put("fat", "Fanti");
1104        languageIdToString.put("fij", "Fijian");
1105        languageIdToString.put("fin", "Finnish");
1106        languageIdToString.put("fiu", "Finno-Ugrian (Other)");
1107        languageIdToString.put("fon", "Fon");
1108        languageIdToString.put("fra", "French");
1109        languageIdToString.put("frm", "French, Middle (ca.1400-1800)");
1110        languageIdToString.put("fro", "French, Old (842-ca.1400)");
1111        languageIdToString.put("fry", "Frisian");
1112        languageIdToString.put("ful", "Fulah");
1113        languageIdToString.put("fur", "Friulian");
1114        languageIdToString.put("gaa", "Ga");
1115        languageIdToString.put("gay", "Gayo");
1116        languageIdToString.put("gba", "Gbaya");
1117        languageIdToString.put("gem", "Germanic (Other)");
1118        languageIdToString.put("geo", "Georgian");
1119        languageIdToString.put("ger", "German");
1120        languageIdToString.put("gez", "Geez");
1121        languageIdToString.put("gil", "Gilbertese");
1122        languageIdToString.put("gla", "Gaelic; Scottish Gaelic");
1123        languageIdToString.put("gle", "Irish");
1124        languageIdToString.put("glg", "Gallegan");
1125        languageIdToString.put("glv", "Manx");
1126        languageIdToString.put("gmh", "German, Middle High (ca.1050-1500)");
1127        languageIdToString.put("goh", "German, Old High (ca.750-1050)");
1128        languageIdToString.put("gon", "Gondi");
1129        languageIdToString.put("gor", "Gorontalo");
1130        languageIdToString.put("got", "Gothic");
1131        languageIdToString.put("grb", "Grebo");
1132        languageIdToString.put("grc", "Greek, Ancient (to 1453)");
1133        languageIdToString.put("gre", "Greek, Modern (1453-)");
1134        languageIdToString.put("grn", "Guarani");
1135        languageIdToString.put("guj", "Gujarati");
1136        languageIdToString.put("gwi", "Gwich´in");
1137        languageIdToString.put("hai", "Haida");
1138        languageIdToString.put("hau", "Hausa");
1139        languageIdToString.put("haw", "Hawaiian");
1140        languageIdToString.put("heb", "Hebrew");
1141        languageIdToString.put("her", "Herero");
1142        languageIdToString.put("hil", "Hiligaynon");
1143        languageIdToString.put("him", "Himachali");
1144        languageIdToString.put("hin", "Hindi");
1145        languageIdToString.put("hit", "Hittite");
1146        languageIdToString.put("hmn", "Hmong");
1147        languageIdToString.put("hmo", "Hiri Motu");
1148        languageIdToString.put("hrv", "Croatian");
1149        languageIdToString.put("hun", "Hungarian");
1150        languageIdToString.put("hup", "Hupa");
1151        languageIdToString.put("hye", "Armenian");
1152        languageIdToString.put("iba", "Iban");
1153        languageIdToString.put("ibo", "Igbo");
1154        languageIdToString.put("ice", "Icelandic");
1155        languageIdToString.put("ido", "Ido");
1156        languageIdToString.put("ijo", "Ijo");
1157        languageIdToString.put("iku", "Inuktitut");
1158        languageIdToString.put("ile", "Interlingue");
1159        languageIdToString.put("ilo", "Iloko");
1160        languageIdToString.put("ina", "Interlingua (International Auxiliary)");
1161        languageIdToString.put("inc", "Indic (Other)");
1162        languageIdToString.put("ind", "Indonesian");
1163        languageIdToString.put("ine", "Indo-European (Other)");
1164        languageIdToString.put("ipk", "Inupiaq");
1165        languageIdToString.put("ira", "Iranian (Other)");
1166        languageIdToString.put("iro", "Iroquoian languages");
1167        languageIdToString.put("isl", "Icelandic");
1168        languageIdToString.put("ita", "Italian");
1169        languageIdToString.put("jav", "Javanese");
1170        languageIdToString.put("jpn", "Japanese");
1171        languageIdToString.put("jpr", "Judeo-Persian");
1172        languageIdToString.put("jrb", "Judeo-Arabic");
1173        languageIdToString.put("kaa", "Kara-Kalpak");
1174        languageIdToString.put("kab", "Kabyle");
1175        languageIdToString.put("kac", "Kachin");
1176        languageIdToString.put("kal", "Kalaallisut");
1177        languageIdToString.put("kam", "Kamba");
1178        languageIdToString.put("kan", "Kannada");
1179        languageIdToString.put("kar", "Karen");
1180        languageIdToString.put("kas", "Kashmiri");
1181        languageIdToString.put("kat", "Georgian");
1182        languageIdToString.put("kau", "Kanuri");
1183        languageIdToString.put("kaw", "Kawi");
1184        languageIdToString.put("kaz", "Kazakh");
1185        languageIdToString.put("kha", "Khasi");
1186        languageIdToString.put("khi", "Khoisan (Other)");
1187        languageIdToString.put("khm", "Khmer");
1188        languageIdToString.put("kho", "Khotanese");
1189        languageIdToString.put("kik", "Kikuyu; Gikuyu");
1190        languageIdToString.put("kin", "Kinyarwanda");
1191        languageIdToString.put("kir", "Kirghiz");
1192        languageIdToString.put("kmb", "Kimbundu");
1193        languageIdToString.put("kok", "Konkani");
1194        languageIdToString.put("kom", "Komi");
1195        languageIdToString.put("kon", "Kongo");
1196        languageIdToString.put("kor", "Korean");
1197        languageIdToString.put("kos", "Kosraean");
1198        languageIdToString.put("kpe", "Kpelle");
1199        languageIdToString.put("kro", "Kru");
1200        languageIdToString.put("kru", "Kurukh");
1201        languageIdToString.put("kua", "Kuanyama; Kwanyama");
1202        languageIdToString.put("kum", "Kumyk");
1203        languageIdToString.put("kur", "Kurdish");
1204        languageIdToString.put("kut", "Kutenai");
1205        languageIdToString.put("lad", "Ladino");
1206        languageIdToString.put("lah", "Lahnda");
1207        languageIdToString.put("lam", "Lamba");
1208        languageIdToString.put("lao", "Lao");
1209        languageIdToString.put("lat", "Latin");
1210        languageIdToString.put("lav", "Latvian");
1211        languageIdToString.put("lez", "Lezghian");
1212        languageIdToString.put("lin", "Lingala");
1213        languageIdToString.put("lit", "Lithuanian");
1214        languageIdToString.put("lol", "Mongo");
1215        languageIdToString.put("loz", "Lozi");
1216        languageIdToString.put("ltz", "Luxembourgish; Letzeburgesch");
1217        languageIdToString.put("lua", "Luba-Lulua");
1218        languageIdToString.put("lub", "Luba-Katanga");
1219        languageIdToString.put("lug", "Ganda");
1220        languageIdToString.put("lui", "Luiseno");
1221        languageIdToString.put("lun", "Lunda");
1222        languageIdToString.put("luo", "Luo (Kenya and Tanzania)");
1223        languageIdToString.put("lus", "lushai");
1224        languageIdToString.put("mac", "Macedonian");
1225        languageIdToString.put("mad", "Madurese");
1226        languageIdToString.put("mag", "Magahi");
1227        languageIdToString.put("mah", "Marshallese");
1228        languageIdToString.put("mai", "Maithili");
1229        languageIdToString.put("mak", "Makasar");
1230        languageIdToString.put("mal", "Malayalam");
1231        languageIdToString.put("man", "Mandingo");
1232        languageIdToString.put("mao", "Maori");
1233        languageIdToString.put("map", "Austronesian (Other)");
1234        languageIdToString.put("mar", "Marathi");
1235        languageIdToString.put("mas", "Masai");
1236        languageIdToString.put("may", "Malay");
1237        languageIdToString.put("mdr", "Mandar");
1238        languageIdToString.put("men", "Mende");
1239        languageIdToString.put("mga", "Irish, Middle (900-1200)");
1240        languageIdToString.put("mic", "Micmac");
1241        languageIdToString.put("min", "Minangkabau");
1242        languageIdToString.put("mis", "Miscellaneous languages");
1243        languageIdToString.put("mkd", "Macedonian");
1244        languageIdToString.put("mkh", "Mon-Khmer (Other)");
1245        languageIdToString.put("mlg", "Malagasy");
1246        languageIdToString.put("mlt", "Maltese");
1247        languageIdToString.put("mnc", "Manchu");
1248        languageIdToString.put("mni", "Manipuri");
1249        languageIdToString.put("mno", "Manobo languages");
1250        languageIdToString.put("moh", "Mohawk");
1251        languageIdToString.put("mol", "Moldavian");
1252        languageIdToString.put("mon", "Mongolian");
1253        languageIdToString.put("mos", "Mossi");
1254        languageIdToString.put("mri", "Maori");
1255        languageIdToString.put("msa", "Malay");
1256        languageIdToString.put("mul", "Multiple languages");
1257        languageIdToString.put("mun", "Munda languages");
1258        languageIdToString.put("mus", "Creek");
1259        languageIdToString.put("mwr", "Marwari");
1260        languageIdToString.put("mya", "Burmese");
1261        languageIdToString.put("myn", "Mayan languages");
1262        languageIdToString.put("nah", "Nahuatl");
1263        languageIdToString.put("nai", "North American Indian");
1264        languageIdToString.put("nau", "Nauru");
1265        languageIdToString.put("nav", "Navajo; Navaho");
1266        languageIdToString.put("nbl", "South Ndebele");
1267        languageIdToString.put("nde", "North Ndebele");
1268        languageIdToString.put("ndo", "Ndonga");
1269        languageIdToString.put("nds", "Low German; Low Saxon; German, Low; Saxon, Low");
1270        languageIdToString.put("nep", "Nepali");
1271        languageIdToString.put("new", "Newari");
1272        languageIdToString.put("nia", "Nias");
1273        languageIdToString.put("nic", "Niger-Kordofanian (Other)");
1274        languageIdToString.put("niu", "Niuean");
1275        languageIdToString.put("nld", "Dutch");
1276        languageIdToString.put("nno", "Norwegian Nynorsk");
1277        languageIdToString.put("nob", "Norwegian Bokmål");
1278        languageIdToString.put("non", "Norse, Old");
1279        languageIdToString.put("nor", "Norwegian");
1280        languageIdToString.put("nso", "Sotho, Northern");
1281        languageIdToString.put("nub", "Nubian languages");
1282        languageIdToString.put("nya", "Chichewa; Chewa; Nyanja");
1283        languageIdToString.put("nym", "Nyamwezi");
1284        languageIdToString.put("nyn", "Nyankole");
1285        languageIdToString.put("nyo", "Nyoro");
1286        languageIdToString.put("nzi", "Nzima");
1287        languageIdToString.put("oci", "Occitan (post 1500); Provençal");
1288        languageIdToString.put("oji", "Ojibwa");
1289        languageIdToString.put("ori", "Oriya");
1290        languageIdToString.put("orm", "Oromo");
1291        languageIdToString.put("osa", "Osage");
1292        languageIdToString.put("oss", "Ossetian; Ossetic");
1293        languageIdToString.put("ota", "Turkish, Ottoman (1500-1928)");
1294        languageIdToString.put("oto", "Otomian languages");
1295        languageIdToString.put("paa", "Papuan (Other)");
1296        languageIdToString.put("pag", "Pangasinan");
1297        languageIdToString.put("pal", "Pahlavi");
1298        languageIdToString.put("pam", "Pampanga");
1299        languageIdToString.put("pan", "Panjabi");
1300        languageIdToString.put("pap", "Papiamento");
1301        languageIdToString.put("pau", "Palauan");
1302        languageIdToString.put("peo", "Persian, Old (ca.600-400 B.C.)");
1303        languageIdToString.put("per", "Persian");
1304        languageIdToString.put("per", "Persian");
1305        languageIdToString.put("phi", "Philippine (Other)");
1306        languageIdToString.put("phn", "Phoenician");
1307        languageIdToString.put("pli", "Pali");
1308        languageIdToString.put("pol", "Polish");
1309        languageIdToString.put("pon", "Pohnpeian");
1310        languageIdToString.put("por", "Portuguese");
1311        languageIdToString.put("pra", "Prakrit languages");
1312        languageIdToString.put("pro", "Provençal, Old (to 1500)");
1313        languageIdToString.put("pus", "Pushto");
1314        languageIdToString.put("que", "Quechua");
1315        languageIdToString.put("raj", "Rajasthani");
1316        languageIdToString.put("rap", "Rapanui");
1317        languageIdToString.put("rar", "Rarotongan");
1318        languageIdToString.put("roa", "Romance (Other)");
1319        languageIdToString.put("roh", "Raeto-Romance");
1320        languageIdToString.put("rom", "Romany");
1321        languageIdToString.put("ron", "Romanian");
1322        languageIdToString.put("rum", "Romanian");
1323        languageIdToString.put("run", "Rundi");
1324        languageIdToString.put("rus", "Russian");
1325        languageIdToString.put("sad", "Sandawe");
1326        languageIdToString.put("sag", "Sango");
1327        languageIdToString.put("sah", "Yakut");
1328        languageIdToString.put("sai", "South American Indian (Other)");
1329        languageIdToString.put("sal", "Salishan languages");
1330        languageIdToString.put("sam", "Samaritan Aramaic");
1331        languageIdToString.put("san", "Sanskrit");
1332        languageIdToString.put("sas", "Sasak");
1333        languageIdToString.put("sat", "Santali");
1334        languageIdToString.put("scc", "Serbian");
1335        languageIdToString.put("sco", "Scots");
1336        languageIdToString.put("scr", "Croatian");
1337        languageIdToString.put("sel", "Selkup");
1338        languageIdToString.put("sem", "Semitic (Other)");
1339        languageIdToString.put("sga", "Irish, Old (to 900)");
1340        languageIdToString.put("sgn", "Sign languages");
1341        languageIdToString.put("shn", "Shan");
1342        languageIdToString.put("sid", "Sidamo");
1343        languageIdToString.put("sin", "Sinhales");
1344        languageIdToString.put("sio", "Siouan languages");
1345        languageIdToString.put("sit", "Sino-Tibetan (Other)");
1346        languageIdToString.put("sla", "Slavic (Other)");
1347        languageIdToString.put("slk", "Slovak");
1348        languageIdToString.put("slo", "Slovak");
1349        languageIdToString.put("slv", "Slovenian");
1350        languageIdToString.put("sma", "Southern Sami");
1351        languageIdToString.put("sme", "Northern Sami");
1352        languageIdToString.put("smi", "Sami languages (Other)");
1353        languageIdToString.put("smj", "Lule Sami");
1354        languageIdToString.put("smn", "Inari Sami");
1355        languageIdToString.put("smo", "Samoan");
1356        languageIdToString.put("sms", "Skolt Sami");
1357        languageIdToString.put("sna", "Shona");
1358        languageIdToString.put("snd", "Sindhi");
1359        languageIdToString.put("snk", "Soninke");
1360        languageIdToString.put("sog", "Sogdian");
1361        languageIdToString.put("som", "Somali");
1362        languageIdToString.put("son", "Songhai");
1363        languageIdToString.put("sot", "Sotho, Southern");
1364        languageIdToString.put("spa", "Spanish; Castilia");
1365        languageIdToString.put("sqi", "Albanian");
1366        languageIdToString.put("srd", "Sardinian");
1367        languageIdToString.put("srp", "Serbian");
1368        languageIdToString.put("srr", "Serer");
1369        languageIdToString.put("ssa", "Nilo-Saharan (Other)");
1370        languageIdToString.put("sus", "Susu");
1371        languageIdToString.put("sux", "Sumerian");
1372        languageIdToString.put("swa", "Swahili");
1373        languageIdToString.put("swe", "Swedish");
1374        languageIdToString.put("syr", "Syriac");
1375        languageIdToString.put("tah", "Tahitian");
1376        languageIdToString.put("tai", "Tai (Other)");
1377        languageIdToString.put("tam", "Tamil");
1378        languageIdToString.put("tat", "Tatar");
1379        languageIdToString.put("tel", "Telugu");
1380        languageIdToString.put("tem", "Timne");
1381        languageIdToString.put("ter", "Tereno");
1382        languageIdToString.put("tet", "Tetum");
1383        languageIdToString.put("tgk", "Tajik");
1384        languageIdToString.put("tgl", "Tagalog");
1385        languageIdToString.put("tha", "Thai");
1386        languageIdToString.put("tib", "Tibetan");
1387        languageIdToString.put("tig", "Tigre");
1388        languageIdToString.put("tir", "Tigrinya");
1389        languageIdToString.put("tiv", "Tiv");
1390        languageIdToString.put("tkl", "Tokelau");
1391        languageIdToString.put("tli", "Tlingit");
1392        languageIdToString.put("tmh", "Tamashek");
1393        languageIdToString.put("tog", "Tonga (Nyasa)");
1394        languageIdToString.put("ton", "Tonga (Tonga Islands)");
1395        languageIdToString.put("tpi", "Tok Pisin");
1396        languageIdToString.put("tsi", "Tsimshian");
1397        languageIdToString.put("tsn", "Tswana");
1398        languageIdToString.put("tso", "Tsonga");
1399        languageIdToString.put("tuk", "Turkmen");
1400        languageIdToString.put("tum", "Tumbuka");
1401        languageIdToString.put("tup", "Tupi languages");
1402        languageIdToString.put("tur", "Turkish");
1403        languageIdToString.put("tut", "Altaic (Other)");
1404        languageIdToString.put("tvl", "Tuvalu");
1405        languageIdToString.put("twi", "Twi");
1406        languageIdToString.put("tyv", "Tuvinian");
1407        languageIdToString.put("uga", "Ugaritic");
1408        languageIdToString.put("uig", "Uighur");
1409        languageIdToString.put("ukr", "Ukrainian");
1410        languageIdToString.put("umb", "Umbundu");
1411        languageIdToString.put("und", "Undetermined");
1412        languageIdToString.put("urd", "Urdu");
1413        languageIdToString.put("uzb", "Uzbek");
1414        languageIdToString.put("vai", "Vai");
1415        languageIdToString.put("ven", "Venda");
1416        languageIdToString.put("vie", "Vietnamese");
1417        languageIdToString.put("vol", "Volapük");
1418        languageIdToString.put("vot", "Votic");
1419        languageIdToString.put("wak", "Wakashan languages");
1420        languageIdToString.put("wal", "Walamo");
1421        languageIdToString.put("war", "Waray");
1422        languageIdToString.put("was", "Washo");
1423        languageIdToString.put("wel", "Welsh");
1424        languageIdToString.put("wen", "Sorbian languages");
1425        languageIdToString.put("wln", "Walloon");
1426        languageIdToString.put("wol", "Wolof");
1427        languageIdToString.put("xho", "Xhosa");
1428        languageIdToString.put("yao", "Yao");
1429        languageIdToString.put("yap", "Yapese");
1430        languageIdToString.put("yid", "Yiddish");
1431        languageIdToString.put("yor", "Yoruba");
1432        languageIdToString.put("ypk", "Yupik languages");
1433        languageIdToString.put("zap", "Zapotec");
1434        languageIdToString.put("zen", "Zenaga");
1435        languageIdToString.put("zha", "Zhuang; Chuang");
1436        languageIdToString.put("zho", "Chinese");
1437        languageIdToString.put("znd", "Zande");
1438        languageIdToString.put("zul", "Zulu");
1439        languageIdToString.put("zun", "Zuni");
1440        iterator = languageIdToString.keySet().iterator();
1441        while (iterator.hasNext()) {
1442            key = (String) iterator.next();
1443            value = (String) languageIdToString.get(key);
1444            languageStringToId.put(value, key);
1445        }
1446        textEncodingIdToString.put(new Long(0), "ISO-8859-1");
1447        textEncodingIdToString.put(new Long(1), "UTF-16");
1448        textEncodingIdToString.put(new Long(2), "UTF-16BE");
1449        textEncodingIdToString.put(new Long(3), "UTF-8");
1450        iterator = textEncodingIdToString.keySet().iterator();
1451        while (iterator.hasNext()) {
1452            lkey = (Long) iterator.next();
1453            value = (String) textEncodingIdToString.get(lkey);
1454            textEncodingStringToId.put(value, lkey);
1455        }
1456        interpolationMethodIdToString.put(new Long(0), "Band");
1457        interpolationMethodIdToString.put(new Long(1), "Linear");
1458        iterator = interpolationMethodIdToString.keySet().iterator();
1459        while (iterator.hasNext()) {
1460            lkey = (Long) iterator.next();
1461            value = (String) interpolationMethodIdToString.get(lkey);
1462            interpolationMethodStringToId.put(value, lkey);
1463        }
1464        pictureTypeIdToString.put(new Long(0), "Other");
1465        pictureTypeIdToString.put(new Long(1), "32x32 pixels 'file icon' (PNG only)");
1466        pictureTypeIdToString.put(new Long(2), "Other file icon");
1467        pictureTypeIdToString.put(new Long(3), "Cover (front)");
1468        pictureTypeIdToString.put(new Long(4), "Cover (back)");
1469        pictureTypeIdToString.put(new Long(5), "Leaflet page");
1470        pictureTypeIdToString.put(new Long(6), "Media (e.g. label side of CD)");
1471        pictureTypeIdToString.put(new Long(7), "Lead artist/lead performer/soloist");
1472        pictureTypeIdToString.put(new Long(8), "Artist/performer");
1473        pictureTypeIdToString.put(new Long(9), "Conductor");
1474        pictureTypeIdToString.put(new Long(10), "Band/Orchestra");
1475        pictureTypeIdToString.put(new Long(11), "Composer");
1476        pictureTypeIdToString.put(new Long(12), "Lyricist/text writer");
1477        pictureTypeIdToString.put(new Long(13), "Recording Location");
1478        pictureTypeIdToString.put(new Long(14), "During recording");
1479        pictureTypeIdToString.put(new Long(15), "During performance");
1480        pictureTypeIdToString.put(new Long(16), "Movie/video screen capture");
1481        pictureTypeIdToString.put(new Long(17), "A bright coloured fish");
1482        pictureTypeIdToString.put(new Long(18), "Illustration");
1483        pictureTypeIdToString.put(new Long(19), "Band/artist logotype");
1484        pictureTypeIdToString.put(new Long(20), "Publisher/Studio logotype");
1485        iterator = pictureTypeIdToString.keySet().iterator();
1486        while (iterator.hasNext()) {
1487            lkey = (Long) iterator.next();
1488            value = (String) pictureTypeIdToString.get(lkey);
1489            pictureTypeStringToId.put(value, lkey);
1490        }
1491        timeStampFormatIdToString.put(new Long(1), "Absolute time using MPEG [MPEG] frames as unit");
1492        timeStampFormatIdToString.put(new Long(2), "Absolute time using milliseconds as unit");
1493        iterator = timeStampFormatIdToString.keySet().iterator();
1494        while (iterator.hasNext()) {
1495            lkey = (Long) iterator.next();
1496            value = (String) timeStampFormatIdToString.get(lkey);
1497            timeStampFormatStringToId.put(value, lkey);
1498        }
1499        typeOfEventIdToString.put(new Long(0x00), "Padding (has no meaning)");
1500        typeOfEventIdToString.put(new Long(0x01), "End of initial silence");
1501        typeOfEventIdToString.put(new Long(0x02), "Intro start");
1502        typeOfEventIdToString.put(new Long(0x03), "Main part start");
1503        typeOfEventIdToString.put(new Long(0x04), "Outro start");
1504        typeOfEventIdToString.put(new Long(0x05), "Outro end");
1505        typeOfEventIdToString.put(new Long(0x06), "Verse start");
1506        typeOfEventIdToString.put(new Long(0x07), "Refrain start");
1507        typeOfEventIdToString.put(new Long(0x08), "Interlude start");
1508        typeOfEventIdToString.put(new Long(0x09), "Theme start");
1509        typeOfEventIdToString.put(new Long(0x0A), "Variation start");
1510        typeOfEventIdToString.put(new Long(0x0B), "Key change");
1511        typeOfEventIdToString.put(new Long(0x0C), "Time change");
1512        typeOfEventIdToString.put(new Long(0x0D), "Momentary unwanted noise (Snap, Crackle & Pop)");
1513        typeOfEventIdToString.put(new Long(0x0E), "Sustained noise");
1514        typeOfEventIdToString.put(new Long(0x0F), "Sustained noise end");
1515        typeOfEventIdToString.put(new Long(0x10), "Intro end");
1516        typeOfEventIdToString.put(new Long(0x11), "Main part end");
1517        typeOfEventIdToString.put(new Long(0x12), "Verse end");
1518        typeOfEventIdToString.put(new Long(0x13), "Refrain end");
1519        typeOfEventIdToString.put(new Long(0x14), "Theme end");
1520        typeOfEventIdToString.put(new Long(0x15), "Profanity");
1521        typeOfEventIdToString.put(new Long(0x16), "Profanity end");
1522        typeOfEventIdToString.put(new Long(0xFD), "Audio end (start of silence)");
1523        typeOfEventIdToString.put(new Long(0xFE), "Audio file ends");
1524        iterator = typeOfEventIdToString.keySet().iterator();
1525        while (iterator.hasNext()) {
1526            lkey = (Long) iterator.next();
1527            value = (String) typeOfEventIdToString.get(lkey);
1528            typeOfEventStringToId.put(value, lkey);
1529        }
1530        typeOfChannelIdToString.put(new Long(0x00), "Other");
1531        typeOfChannelIdToString.put(new Long(0x01), "Master volume");
1532        typeOfChannelIdToString.put(new Long(0x02), "Front right");
1533        typeOfChannelIdToString.put(new Long(0x03), "Front left");
1534        typeOfChannelIdToString.put(new Long(0x04), "Back right");
1535        typeOfChannelIdToString.put(new Long(0x05), "Back left");
1536        typeOfChannelIdToString.put(new Long(0x06), "Front centre");
1537        typeOfChannelIdToString.put(new Long(0x07), "Back centre");
1538        typeOfChannelIdToString.put(new Long(0x08), "Subwoofer");
1539        iterator = typeOfChannelIdToString.keySet().iterator();
1540        while (iterator.hasNext()) {
1541            lkey = (Long) iterator.next();
1542            value = (String) typeOfChannelIdToString.get(lkey);
1543            typeOfChannelStringToId.put(value, lkey);
1544        }
1545        recievedAsIdToString.put(new Long(0x00), "Other");
1546        recievedAsIdToString.put(new Long(0x01), "Standard CD album with other songs");
1547        recievedAsIdToString.put(new Long(0x02), "Compressed audio on CD");
1548        recievedAsIdToString.put(new Long(0x03), "File over the Internet");
1549        recievedAsIdToString.put(new Long(0x04), "Stream over the Internet");
1550        recievedAsIdToString.put(new Long(0x05), "As note sheets");
1551        recievedAsIdToString.put(new Long(0x06), "As note sheets in a book with other sheets");
1552        recievedAsIdToString.put(new Long(0x07), "Music on other media");
1553        recievedAsIdToString.put(new Long(0x08), "Non-musical merchandise");
1554        iterator = recievedAsIdToString.keySet().iterator();
1555        while (iterator.hasNext()) {
1556            lkey = (Long) iterator.next();
1557            value = (String) recievedAsIdToString.get(lkey);
1558            recievedAsStringToId.put(value, lkey);
1559        }
1560    }
1561 
1562    /**
1563     * Creates a new TagConstant object.
1564     */
1565    private TagConstant() {
1566        // keep people from instantiating this
1567    }
1568}

[all classes][org.farng.mp3]
EMMA 2.0.5312 (C) Vladimir Roubtsov