package org.farng.mp3;
import java.util.HashMap;
import java.util.Iterator;
/**
* This contais all ID3 frame descriptions and Lyric3 field description. It also has bit masks for all the flags in the
* MP3 Header.
*
* @author Eric Farng
* @version $Revision: 2490 $
*/
public class TagConstant {
// Bit numbering starts with the most significat bit as 7
/**
* defined for convenience
*/
public static final int BIT7 = 0x80;
/**
* defined for convenience
*/
public static final int BIT6 = 0x40;
/**
* defined for convenience
*/
public static final int BIT5 = 0x20;
/**
* defined for convenience
*/
public static final int BIT4 = 0x10;
/**
* defined for convenience
*/
public static final int BIT3 = 0x08;
/**
* defined for convenience
*/
public static final int BIT2 = 0x04;
/**
* defined for convenience
*/
public static final int BIT1 = 0x02;
/**
* defined for convenience
*/
public static final int BIT0 = 0x01;
/**
* System seperators
*/
public static final String SEPERATOR_LINE = System.getProperty("line.separator");
public static final String SEPERATOR_FILE = System.getProperty("file.separator");
public static final String SEPERATOR_PATH = System.getProperty("path.separator");
/**
* MP3 save mode lowest numbered index
*/
public static final int MP3_FILE_SAVE_FIRST = 1;
/**
* MP3 save mode matching <code>write</code> method
*/
public static final int MP3_FILE_SAVE_WRITE = 1;
/**
* MP3 save mode matching <code>overwrite</code> method
*/
public static final int MP3_FILE_SAVE_OVERWRITE = 2;
/**
* MP3 save mode matching <code>append</code> method
*/
public static final int MP3_FILE_SAVE_APPEND = 3;
/**
* MP3 save mode highest numbered index
*/
public static final int MP3_FILE_SAVE_LAST = 3;
/**
* ID3v2.2 Header bit mask
*/
public static final int MASK_V22_UNSYNCHRONIZATION = BIT7;
/**
* ID3v2.2 Header bit mask
*/
public static final int MASK_V22_COMPRESSION = BIT7;
/**
* ID3v2.2 BUF Frame bit mask
*/
public static final int MASK_V22_EMBEDDED_INFO_FLAG = BIT1;
/**
* ID3v2.3 Header bit mask
*/
public static final int MASK_V23_UNSYNCHRONIZATION = BIT7;
/**
* ID3v2.3 Header bit mask
*/
public static final int MASK_V23_EXTENDED_HEADER = BIT6;
/**
* ID3v2.3 Header bit mask
*/
public static final int MASK_V23_EXPERIMENTAL = BIT5;
/**
* ID3v2.3 Extended Header bit mask
*/
public static final int MASK_V23_CRC_DATA_PRESENT = BIT7;
/**
* ID3v2.3 Frame bit mask
*/
public static final int MASK_V23_TAG_ALTER_PRESERVATION = BIT7;
/**
* ID3v2.3 Frame bit mask
*/
public static final int MASK_V23_FILE_ALTER_PRESERVATION = BIT6;
/**
* ID3v2.3 Frame bit mask
*/
public static final int MASK_V23_READ_ONLY = BIT5;
/**
* ID3v2.3 Frame bit mask
*/
public static final int MASK_V23_COMPRESSION = BIT7;
/**
* ID3v2.3 Frame bit mask
*/
public static final int MASK_V23_ENCRYPTION = BIT6;
/**
* ID3v2.3 Frame bit mask
*/
public static final int MASK_V23_GROUPING_IDENTITY = BIT5;
/**
* ID3v2.3 RBUF frame bit mask
*/
public static final int MASK_V23_EMBEDDED_INFO_FLAG = BIT1;
/**
* ID3v2.4 Header bit mask
*/
public static final int MASK_V24_UNSYNCHRONIZATION = BIT7;
/**
* ID3v2.4 Header bit mask
*/
public static final int MASK_V24_EXTENDED_HEADER = BIT6;
/**
* ID3v2.4 Header bit mask
*/
public static final int MASK_V24_EXPERIMENTAL = BIT5;
/**
* ID3v2.4 Header bit mask
*/
public static final int MASK_V24_FOOTER_PRESENT = BIT4;
/**
* ID3v2.4 Extended header bit mask
*/
public static final int MASK_V24_TAG_UPDATE = BIT6;
/**
* ID3v2.4 Extended header bit mask
*/
public static final int MASK_V24_CRC_DATA_PRESENT = BIT5;
/**
* ID3v2.4 Extended header bit mask
*/
public static final int MASK_V24_TAG_RESTRICTIONS = BIT4;
/**
* ID3v2.4 Extended header bit mask
*/
public static final int MASK_V24_TAG_SIZE_RESTRICTIONS = (byte) BIT7 | BIT6;
/**
* ID3v2.4 Extended header bit mask
*/
public static final int MASK_V24_TEXT_ENCODING_RESTRICTIONS = BIT5;
/**
* ID3v2.4 Extended header bit mask
*/
public static final int MASK_V24_TEXT_FIELD_SIZE_RESTRICTIONS = BIT4 | BIT3;
/**
* ID3v2.4 Extended header bit mask
*/
public static final int MASK_V24_IMAGE_ENCODING = BIT2;
/**
* ID3v2.4 Extended header bit mask
*/
public static final int MASK_V24_IMAGE_SIZE_RESTRICTIONS = BIT2 | BIT1;
/**
* ID3v2.4 Header Footer are the same as the header flags. WHY?!?! move the
* flags from thier position in 2.3??????????
*/
/**
* ID3v2.4 Header Footer bit mask
*/
public static final int MASK_V24_TAG_ALTER_PRESERVATION = BIT6;
/**
* ID3v2.4 Header Footer bit mask
*/
public static final int MASK_V24_FILE_ALTER_PRESERVATION = BIT5;
/**
* ID3v2.4 Header Footer bit mask
*/
public static final int MASK_V24_READ_ONLY = BIT4;
/**
* ID3v2.4 Header Footer bit mask
*/
public static final int MASK_V24_GROUPING_IDENTITY = BIT6;
/**
* ID3v2.4 Header Footer bit mask
*/
public static final int MASK_V24_COMPRESSION = BIT4;
/**
* ID3v2.4 Header Footer bit mask
*/
public static final int MASK_V24_ENCRYPTION = BIT3;
/**
* ID3v2.4 Header Footer bit mask
*/
public static final int MASK_V24_FRAME_UNSYNCHRONIZATION = BIT2;
/**
* ID3v2.4 Header Footer bit mask
*/
public static final int MASK_V24_DATA_LENGTH_INDICATOR = BIT1;
/**
* MP3 Frame Header bit mask
*/
public static final int MASK_MP3_ID = BIT3;
/**
* MP3 Frame Header bit mask
*/
public static final int MASK_MP3_VERSION = BIT4 | BIT3;
/**
* MP3 Frame Header bit mask
*/
public static final int MASK_MP3_LAYER = BIT2 | BIT1;
/**
* MP3 Frame Header bit mask
*/
public static final int MASK_MP3_PROTECTION = BIT0;
/**
* MP3 Frame Header bit mask
*/
public static final int MASK_MP3_BITRATE = BIT7 | BIT6 | BIT5 | BIT4;
/**
* MP3 Frame Header bit mask
*/
public static final int MASK_MP3_FREQUENCY = BIT3 + BIT2;
/**
* MP3 Frame Header bit mask
*/
public static final int MASK_MP3_PADDING = BIT1;
/**
* MP3 Frame Header bit mask
*/
public static final int MASK_MP3_PRIVACY = BIT0;
/**
* MP3 Frame Header bit mask
*/
public static final int MASK_MP3_MODE = BIT7 | BIT6;
/**
* MP3 Frame Header bit mask
*/
public static final int MASK_MP3_MODE_EXTENSION = BIT5 | BIT4;
/**
* MP3 Frame Header bit mask
*/
public static final int MASK_MP3_COPY = BIT3;
/**
* MP3 Frame Header bit mask
*/
public static final int MASK_MP3_HOME = BIT2;
/**
* MP3 Frame Header bit mask
*/
public static final int MASK_MP3_EMPHASIS = BIT1 | BIT0;
/**
* <code>HashMap</code> translating the three letter ID into a human understandable string
*/
public static final HashMap id3v2_2FrameIdToString = new HashMap();
/**
* <code>HashMap</code> translating the four letter ID into a human understandable string
*/
public static final HashMap id3v2_3FrameIdToString = new HashMap();
/**
* <code>HashMap</code> translating the four letter ID into a human understandable string
*/
public static final HashMap id3v2_4FrameIdToString = new HashMap();
/**
* <code>HashMap</code> translating the predefined string into the three letter ID
*/
public static final HashMap id3v2_2FrameStringToId = new HashMap();
/**
* <code>HashMap</code> translating the predefined string into the four letter ID
*/
public static final HashMap id3v2_3FrameStringToId = new HashMap();
/**
* <code>HashMap</code> translating the predefined string into the four letter ID
*/
public static final HashMap id3v2_4FrameStringToId = new HashMap();
/**
* <code>HashMap</code> translating the predefined string into the three letter ID
*/
public static final HashMap lyrics3v2FieldIdToString = new HashMap();
/**
* <code>HashMap</code> translating the predefined string into the three letter ID
*/
public static final HashMap lyrics3v2FieldStringToId = new HashMap();
/**
* <code>HashMap</code> translating the three letter ID3v2.2 ID to the corresponding ID3v2.4 ID
*/
public static final HashMap id3v2_3ToId3v2_4 = new HashMap();
/**
* <code>HashMap</code> translating the three letter ID3v2.2 ID to the corresponding ID3v2.3 ID
*/
public static final HashMap id3v2_2ToId3v2_3 = new HashMap();
/**
* <code>HashMap</code> translating the three letter ID3v2.2 ID to the corresponding ID3v2.4 ID
*/
public static final HashMap id3v2_4ToId3v2_3 = new HashMap();
/**
* <code>HashMap</code> translating the three letter ID3v2.2 ID to the corresponding ID3v2.3 ID
*/
public static final HashMap id3v2_3ToId3v2_2 = new HashMap();
/**
* <code>HashMap</code> translating the ID3v1 genre bit into a human readable string
*/
public static final HashMap genreIdToString = new HashMap();
/**
* <code>HashMap</code> translating the predefined genre string into the ID3v1 genre bit
*/
public static final HashMap genreStringToId = new HashMap();
/**
* <code>HashMap</code> translating the language ID to a human readable string. [ISO-639-2] ISO/FDIS 639-2
*/
public static final HashMap languageIdToString = new HashMap();
/**
* <code>HashMap</code> translating the predefined language string into the ID. [ISO-639-2] ISO/FDIS 639-2
*/
public static final HashMap languageStringToId = new HashMap();
/**
* <code>HashMap</code> translating the bitrate read in from the MP3 Header into a base-10 integer
*/
public static final HashMap bitrate = new HashMap();
/**
* <code>HashMap</code> translating table found in ID3 tags
*/
public static final HashMap textEncodingIdToString = new HashMap();
/**
* <code>HashMap</code> translating table found in ID3 tags
*/
public static final HashMap textEncodingStringToId = new HashMap();
/**
* <code>HashMap</code> translating table found in ID3 tags
*/
public static final HashMap interpolationMethodIdToString = new HashMap();
/**
* <code>HashMap</code> translating table found in ID3 tags
*/
public static final HashMap interpolationMethodStringToId = new HashMap();
/**
* <code>HashMap</code> translating table found in ID3 tags
*/
public static final HashMap pictureTypeIdToString = new HashMap();
/**
* <code>HashMap</code> translating table found in ID3 tags
*/
public static final HashMap pictureTypeStringToId = new HashMap();
/**
* <code>HashMap</code> translating table found in ID3 tags
*/
public static final HashMap timeStampFormatIdToString = new HashMap();
/**
* <code>HashMap</code> translating table found in ID3 tags
*/
public static final HashMap timeStampFormatStringToId = new HashMap();
/**
* <code>HashMap</code> translating table found in ID3 tags
*/
public static final HashMap typeOfEventIdToString = new HashMap();
/**
* <code>HashMap</code> translating table found in ID3 tags
*/
public static final HashMap typeOfEventStringToId = new HashMap();
/**
* <code>HashMap</code> translating table found in ID3 tags
*/
public static final HashMap typeOfChannelIdToString = new HashMap();
/**
* <code>HashMap</code> translating table found in ID3 tags
*/
public static final HashMap typeOfChannelStringToId = new HashMap();
/**
* <code>HashMap</code> translating table found in ID3 tags
*/
public static final HashMap recievedAsIdToString = new HashMap();
/**
* <code>HashMap</code> translating table found in ID3 tags
*/
public static final HashMap recievedAsStringToId = new HashMap();
static {
id3v2_2FrameIdToString.put("BUF", "Recommended buffer size");
id3v2_2FrameIdToString.put("CNT", "Play counter");
id3v2_2FrameIdToString.put("COM", "Comments");
id3v2_2FrameIdToString.put("CRA", "Audio encryption");
id3v2_2FrameIdToString.put("CRM", "Encrypted meta frame");
id3v2_2FrameIdToString.put("ETC", "Event timing codes");
id3v2_2FrameIdToString.put("EQU", "Equalization");
id3v2_2FrameIdToString.put("GEO", "General encapsulated object");
id3v2_2FrameIdToString.put("IPL", "Involved people list");
id3v2_2FrameIdToString.put("LNK", "Linked information");
id3v2_2FrameIdToString.put("MCI", "Music CD Identifier");
id3v2_2FrameIdToString.put("MLL", "MPEG location lookup table");
id3v2_2FrameIdToString.put("PIC", "Attached picture");
id3v2_2FrameIdToString.put("POP", "Popularimeter");
id3v2_2FrameIdToString.put("REV", "Reverb");
id3v2_2FrameIdToString.put("RVA", "Relative volume adjustment");
id3v2_2FrameIdToString.put("SLT", "Synchronized lyric/text");
id3v2_2FrameIdToString.put("STC", "Synced tempo codes");
id3v2_2FrameIdToString.put("TAL", "Text: Album/Movie/Show title");
id3v2_2FrameIdToString.put("TBP", "Text: BPM (Beats Per Minute)");
id3v2_2FrameIdToString.put("TCM", "Text: Composer");
id3v2_2FrameIdToString.put("TCO", "Text: Content type");
id3v2_2FrameIdToString.put("TCR", "Text: Copyright message");
id3v2_2FrameIdToString.put("TDA", "Text: Date");
id3v2_2FrameIdToString.put("TDY", "Text: Playlist delay");
id3v2_2FrameIdToString.put("TEN", "Text: Encoded by");
id3v2_2FrameIdToString.put("TFT", "Text: File type");
id3v2_2FrameIdToString.put("TIM", "Text: Time");
id3v2_2FrameIdToString.put("TKE", "Text: Initial key");
id3v2_2FrameIdToString.put("TLA", "Text: Language(s)");
id3v2_2FrameIdToString.put("TLE", "Text: Length");
id3v2_2FrameIdToString.put("TMT", "Text: Media type");
id3v2_2FrameIdToString.put("TOA", "Text: Original artist(s)/performer(s)");
id3v2_2FrameIdToString.put("TOF", "Text: Original filename");
id3v2_2FrameIdToString.put("TOL", "Text: Original Lyricist(s)/text writer(s)");
id3v2_2FrameIdToString.put("TOR", "Text: Original release year");
id3v2_2FrameIdToString.put("TOT", "Text: Original album/Movie/Show title");
id3v2_2FrameIdToString.put("TP1", "Text: Lead artist(s)/Lead performer(s)/Soloist(s)/Performing group");
id3v2_2FrameIdToString.put("TP2", "Text: Band/Orchestra/Accompaniment");
id3v2_2FrameIdToString.put("TP3", "Text: Conductor/Performer refinement");
id3v2_2FrameIdToString.put("TP4", "Text: Interpreted, remixed, or otherwise modified by");
id3v2_2FrameIdToString.put("TPA", "Text: Part of a set");
id3v2_2FrameIdToString.put("TPB", "Text: Publisher");
id3v2_2FrameIdToString.put("TRC", "Text: ISRC (International Standard Recording Code)");
id3v2_2FrameIdToString.put("TRD", "Text: Recording dates");
id3v2_2FrameIdToString.put("TRK", "Text: Track number/Position in set");
id3v2_2FrameIdToString.put("TSI", "Text: Size");
id3v2_2FrameIdToString.put("TSS", "Text: Software/hardware and settings used for encoding");
id3v2_2FrameIdToString.put("TT1", "Text: Content group description");
id3v2_2FrameIdToString.put("TT2", "Text: Title/Songname/Content description");
id3v2_2FrameIdToString.put("TT3", "Text: Subtitle/Description refinement");
id3v2_2FrameIdToString.put("TXT", "Text: Lyricist/text writer");
id3v2_2FrameIdToString.put("TXX", "User defined text information frame");
id3v2_2FrameIdToString.put("TYE", "Text: Year");
id3v2_2FrameIdToString.put("UFI", "Unique file identifier");
id3v2_2FrameIdToString.put("ULT", "Unsychronized lyric/text transcription");
id3v2_2FrameIdToString.put("WAF", "URL: Official audio file webpage");
id3v2_2FrameIdToString.put("WAR", "URL: Official artist/performer webpage");
id3v2_2FrameIdToString.put("WAS", "URL: Official audio source webpage");
id3v2_2FrameIdToString.put("WCM", "URL: Commercial information");
id3v2_2FrameIdToString.put("WCP", "URL: Copyright/Legal information");
id3v2_2FrameIdToString.put("WPB", "URL: Publishers official webpage");
id3v2_2FrameIdToString.put("WXX", "User defined URL link frame");
String key;
String value;
Iterator iterator = id3v2_2FrameIdToString.keySet().iterator();
while (iterator.hasNext()) {
key = (String) iterator.next();
value = (String) id3v2_2FrameIdToString.get(key);
id3v2_2FrameStringToId.put(value, key);
}
id3v2_3FrameIdToString.put("AENC", "Audio encryption");
id3v2_3FrameIdToString.put("APIC", "Attached picture");
id3v2_3FrameIdToString.put("COMM", "Comments");
id3v2_3FrameIdToString.put("COMR", "Commercial frame");
id3v2_3FrameIdToString.put("ENCR", "Encryption method registration");
id3v2_3FrameIdToString.put("EQUA", "Equalization");
id3v2_3FrameIdToString.put("ETCO", "Event timing codes");
id3v2_3FrameIdToString.put("GEOB", "General encapsulated object");
id3v2_3FrameIdToString.put("GRID", "Group identification registration");
id3v2_3FrameIdToString.put("IPLS", "Involved people list");
id3v2_3FrameIdToString.put("LINK", "Linked information");
id3v2_3FrameIdToString.put("MCDI", "Music CD identifier");
id3v2_3FrameIdToString.put("MLLT", "MPEG location lookup table");
id3v2_3FrameIdToString.put("OWNE", "Ownership frame");
id3v2_3FrameIdToString.put("PRIV", "Private frame");
id3v2_3FrameIdToString.put("PCNT", "Play counter");
id3v2_3FrameIdToString.put("POPM", "Popularimeter");
id3v2_3FrameIdToString.put("POSS", "Position synchronisation frame");
id3v2_3FrameIdToString.put("RBUF", "Recommended buffer size");
id3v2_3FrameIdToString.put("RVAD", "Relative volume adjustment");
id3v2_3FrameIdToString.put("RVRB", "Reverb");
id3v2_3FrameIdToString.put("SYLT", "Synchronized lyric/text");
id3v2_3FrameIdToString.put("SYTC", "Synchronized tempo codes");
id3v2_3FrameIdToString.put("TALB", "Text: Album/Movie/Show title");
id3v2_3FrameIdToString.put("TBPM", "Text: BPM (beats per minute)");
id3v2_3FrameIdToString.put("TCOM", "Text: Composer");
id3v2_3FrameIdToString.put("TCON", "Text: Content type");
id3v2_3FrameIdToString.put("TCOP", "Text: Copyright message");
id3v2_3FrameIdToString.put("TDAT", "Text: Date");
id3v2_3FrameIdToString.put("TDLY", "Text: Playlist delay");
id3v2_3FrameIdToString.put("TENC", "Text: Encoded by");
id3v2_3FrameIdToString.put("TEXT", "Text: Lyricist/Text writer");
id3v2_3FrameIdToString.put("TFLT", "Text: File type");
id3v2_3FrameIdToString.put("TIME", "Text: Time");
id3v2_3FrameIdToString.put("TIT1", "Text: Content group description");
id3v2_3FrameIdToString.put("TIT2", "Text: Title/songname/content description");
id3v2_3FrameIdToString.put("TIT3", "Text: Subtitle/Description refinement");
id3v2_3FrameIdToString.put("TKEY", "Text: Initial key");
id3v2_3FrameIdToString.put("TLAN", "Text: Language(s)");
id3v2_3FrameIdToString.put("TLEN", "Text: Length");
id3v2_3FrameIdToString.put("TMED", "Text: Media type");
id3v2_3FrameIdToString.put("TOAL", "Text: Original album/movie/show title");
id3v2_3FrameIdToString.put("TOFN", "Text: Original filename");
id3v2_3FrameIdToString.put("TOLY", "Text: Original lyricist(s)/text writer(s)");
id3v2_3FrameIdToString.put("TOPE", "Text: Original artist(s)/performer(s)");
id3v2_3FrameIdToString.put("TORY", "Text: Original release year");
id3v2_3FrameIdToString.put("TOWN", "Text: File owner/licensee");
id3v2_3FrameIdToString.put("TPE1", "Text: Lead performer(s)/Soloist(s)");
id3v2_3FrameIdToString.put("TPE2", "Text: Band/orchestra/accompaniment");
id3v2_3FrameIdToString.put("TPE3", "Text: Conductor/performer refinement");
id3v2_3FrameIdToString.put("TPE4", "Text: Interpreted, remixed, or otherwise modified by");
id3v2_3FrameIdToString.put("TPOS", "Text: Part of a set");
id3v2_3FrameIdToString.put("TPUB", "Text: Publisher");
id3v2_3FrameIdToString.put("TRCK", "Text: Track number/Position in set");
id3v2_3FrameIdToString.put("TRDA", "Text: Recording dates");
id3v2_3FrameIdToString.put("TRSN", "Text: Internet radio station name");
id3v2_3FrameIdToString.put("TRSO", "Text: Internet radio station owner");
id3v2_3FrameIdToString.put("TSIZ", "Text: Size");
id3v2_3FrameIdToString.put("TSRC", "Text: ISRC (international standard recording code)");
id3v2_3FrameIdToString.put("TSSE", "Text: Software/Hardware and settings used for encoding");
id3v2_3FrameIdToString.put("TYER", "Text: Year");
id3v2_3FrameIdToString.put("TXXX", "User defined text information frame");
id3v2_3FrameIdToString.put("UFID", "Unique file identifier");
id3v2_3FrameIdToString.put("USER", "Terms of use");
id3v2_3FrameIdToString.put("USLT", "Unsychronized lyric/text transcription");
id3v2_3FrameIdToString.put("WCOM", "URL: Commercial information");
id3v2_3FrameIdToString.put("WCOP", "URL: Copyright/Legal information");
id3v2_3FrameIdToString.put("WOAF", "URL: Official audio file webpage");
id3v2_3FrameIdToString.put("WOAR", "URL: Official artist/performer webpage");
id3v2_3FrameIdToString.put("WOAS", "URL: Official audio source webpage");
id3v2_3FrameIdToString.put("WORS", "URL: Official internet radio station homepage");
id3v2_3FrameIdToString.put("WPAY", "URL: Payment");
id3v2_3FrameIdToString.put("WPUB", "URL: Publishers official webpage");
id3v2_3FrameIdToString.put("WXXX", "User defined URL link frame");
iterator = id3v2_3FrameIdToString.keySet().iterator();
while (iterator.hasNext()) {
key = (String) iterator.next();
value = (String) id3v2_3FrameIdToString.get(key);
id3v2_3FrameStringToId.put(value, key);
}
id3v2_4FrameIdToString.put("AENC", "Audio encryption");
id3v2_4FrameIdToString.put("APIC", "Attached picture");
id3v2_4FrameIdToString.put("ASPI", "Audio seek point index");
id3v2_4FrameIdToString.put("COMM", "Comments");
id3v2_4FrameIdToString.put("COMR", "Commercial frame");
id3v2_4FrameIdToString.put("ENCR", "Encryption method registration");
id3v2_4FrameIdToString.put("EQU2", "Equalisation (2)");
id3v2_4FrameIdToString.put("ETCO", "Event timing codes");
id3v2_4FrameIdToString.put("GEOB", "General encapsulated object");
id3v2_4FrameIdToString.put("GRID", "Group identification registration");
id3v2_4FrameIdToString.put("LINK", "Linked information");
id3v2_4FrameIdToString.put("MCDI", "Music CD identifier");
id3v2_4FrameIdToString.put("MLLT", "MPEG location lookup table");
id3v2_4FrameIdToString.put("OWNE", "Ownership frame");
id3v2_4FrameIdToString.put("PRIV", "Private frame");
id3v2_4FrameIdToString.put("PCNT", "Play counter");
id3v2_4FrameIdToString.put("POPM", "Popularimeter");
id3v2_4FrameIdToString.put("POSS", "Position synchronisation frame");
id3v2_4FrameIdToString.put("RBUF", "Recommended buffer size");
id3v2_4FrameIdToString.put("RVA2", "Relative volume adjustment (2)");
id3v2_4FrameIdToString.put("RVRB", "Reverb");
id3v2_4FrameIdToString.put("SEEK", "Seek frame");
id3v2_4FrameIdToString.put("SIGN", "Signature frame");
id3v2_4FrameIdToString.put("SYLT", "Synchronised lyric/text");
id3v2_4FrameIdToString.put("SYTC", "Synchronised tempo codes");
id3v2_4FrameIdToString.put("TALB", "Text: Album/Movie/Show title");
id3v2_4FrameIdToString.put("TBPM", "Text: BPM (beats per minute)");
id3v2_4FrameIdToString.put("TCOM", "Text: Composer");
id3v2_4FrameIdToString.put("TCON", "Text: Content type (genre)");
id3v2_4FrameIdToString.put("TCOP", "Text: Copyright message");
id3v2_4FrameIdToString.put("TDEN", "Text: Encoding time");
id3v2_4FrameIdToString.put("TDLY", "Text: Playlist delay");
id3v2_4FrameIdToString.put("TDOR", "Text: Original release time");
id3v2_4FrameIdToString.put("TDRC", "Text: Recording time");
id3v2_4FrameIdToString.put("TDRL", "Text: Release time");
id3v2_4FrameIdToString.put("TDTG", "Text: Tagging time");
id3v2_4FrameIdToString.put("TENC", "Text: Encoded by");
id3v2_4FrameIdToString.put("TEXT", "Text: Lyricist/Text writer");
id3v2_4FrameIdToString.put("TFLT", "Text: File type");
id3v2_4FrameIdToString.put("TIPL", "Text: Involved people list");
id3v2_4FrameIdToString.put("TIT1", "Text: Content group description");
id3v2_4FrameIdToString.put("TIT2", "Text: Title/songname/content description");
id3v2_4FrameIdToString.put("TIT3", "Text: Subtitle/Description refinement");
id3v2_4FrameIdToString.put("TKEY", "Text: Initial key");
id3v2_4FrameIdToString.put("TLAN", "Text: Language(s)");
id3v2_4FrameIdToString.put("TLEN", "Text: Length");
id3v2_4FrameIdToString.put("TMCL", "Text: Musician credits list");
id3v2_4FrameIdToString.put("TMED", "Text: Media type");
id3v2_4FrameIdToString.put("TMOO", "Text: Mood");
id3v2_4FrameIdToString.put("TOAL", "Text: Original album/movie/show title");
id3v2_4FrameIdToString.put("TOFN", "Text: Original filename");
id3v2_4FrameIdToString.put("TOLY", "Text: Original lyricist(s)/text writer(s)");
id3v2_4FrameIdToString.put("TOPE", "Text: Original artist(s)/performer(s)");
id3v2_4FrameIdToString.put("TOWN", "Text: File owner/licensee");
id3v2_4FrameIdToString.put("TPE1", "Text: Lead performer(s)/Soloist(s)");
id3v2_4FrameIdToString.put("TPE2", "Text: Band/orchestra/accompaniment");
id3v2_4FrameIdToString.put("TPE3", "Text: Conductor/performer refinement");
id3v2_4FrameIdToString.put("TPE4", "Text: Interpreted, remixed, or otherwise modified by");
id3v2_4FrameIdToString.put("TPOS", "Text: Part of a set");
id3v2_4FrameIdToString.put("TPRO", "Text: Produced notice");
id3v2_4FrameIdToString.put("TPUB", "Text: Publisher");
id3v2_4FrameIdToString.put("TRCK", "Text: Track number/Position in set");
id3v2_4FrameIdToString.put("TRSN", "Text: Internet radio station name");
id3v2_4FrameIdToString.put("TRSO", "Text: Internet radio station owner");
id3v2_4FrameIdToString.put("TSOA", "Text: Album sort order");
id3v2_4FrameIdToString.put("TSOP", "Text: Performer sort order");
id3v2_4FrameIdToString.put("TSOT", "Text: Title sort order");
id3v2_4FrameIdToString.put("TSRC", "Text: ISRC (international standard recording code)");
id3v2_4FrameIdToString.put("TSSE", "Text: Software/Hardware and settings used for encoding");
id3v2_4FrameIdToString.put("TSST", "Text: Set subtitle");
id3v2_4FrameIdToString.put("TXXX", "User defined text information frame");
id3v2_4FrameIdToString.put("UFID", "Unique file identifier");
id3v2_4FrameIdToString.put("USER", "Terms of use");
id3v2_4FrameIdToString.put("USLT", "Unsynchronised lyric/text transcription");
id3v2_4FrameIdToString.put("WCOM", "URL: Commercial information");
id3v2_4FrameIdToString.put("WCOP", "URL: Copyright/Legal information");
id3v2_4FrameIdToString.put("WOAF", "URL: Official audio file webpage");
id3v2_4FrameIdToString.put("WOAR", "URL: Official artist/performer webpage");
id3v2_4FrameIdToString.put("WOAS", "URL: Official audio source webpage");
id3v2_4FrameIdToString.put("WORS", "URL: Official Internet radio station homepage");
id3v2_4FrameIdToString.put("WPAY", "URL: Payment");
id3v2_4FrameIdToString.put("WPUB", "URL: Publishers official webpage");
id3v2_4FrameIdToString.put("WXXX", "User defined URL link frame");
iterator = id3v2_4FrameIdToString.keySet().iterator();
while (iterator.hasNext()) {
key = (String) iterator.next();
value = (String) id3v2_4FrameIdToString.get(key);
id3v2_4FrameStringToId.put(value, key);
}
lyrics3v2FieldIdToString.put("IND", "Indications field");
lyrics3v2FieldIdToString.put("LYR", "Lyrics multi line text");
lyrics3v2FieldIdToString.put("INF", "Additional information multi line text");
lyrics3v2FieldIdToString.put("AUT", "Lyrics/Music Author name");
lyrics3v2FieldIdToString.put("EAL", "Extended Album name");
lyrics3v2FieldIdToString.put("EAR", "Extended Artist name");
lyrics3v2FieldIdToString.put("ETT", "Extended Track Title");
lyrics3v2FieldIdToString.put("IMG", "Link to an image files");
iterator = lyrics3v2FieldIdToString.keySet().iterator();
while (iterator.hasNext()) {
key = (String) iterator.next();
value = (String) lyrics3v2FieldIdToString.get(key);
lyrics3v2FieldStringToId.put(value, key);
}
id3v2_2ToId3v2_3.put("BUF", "RBUF");
id3v2_2ToId3v2_3.put("CNT", "PCNT");
id3v2_2ToId3v2_3.put("COM", "COMM");
id3v2_2ToId3v2_3.put("CRA", "AENC");
//id3v2_2ToId3v2_4.put("CRM", "CRM"); // removed in ID3v2.3
id3v2_2ToId3v2_3.put("ETC", "ETCO");
id3v2_2ToId3v2_3.put("EQU", "EQUA"); // changed from EQUA to EQU2 in
// ID3v2.4
id3v2_2ToId3v2_3.put("GEO", "GEOB"); // Deprecated in ID3v2.4
id3v2_2ToId3v2_3.put("IPL", "IPLS");
id3v2_2ToId3v2_3.put("LNK", "LINK");
id3v2_2ToId3v2_3.put("MCI", "MCDI");
id3v2_2ToId3v2_3.put("MLL", "MLLT");
id3v2_2ToId3v2_3.put("PIC", "APIC"); // the APIC spec is different from
// PIC
id3v2_2ToId3v2_3.put("POP", "POPM");
id3v2_2ToId3v2_3.put("REV", "RVRB");
id3v2_2ToId3v2_3.put("RVA", "RVAD"); // changed from RVAD to RVA2 in
// ID3v2.4
id3v2_2ToId3v2_3.put("SLT", "SYLT");
id3v2_2ToId3v2_3.put("STC", "SYTC");
id3v2_2ToId3v2_3.put("TAL", "TALB");
id3v2_2ToId3v2_3.put("TBP", "TBPM");
id3v2_2ToId3v2_3.put("TCM", "TCOM");
id3v2_2ToId3v2_3.put("TCO", "TCON");
id3v2_2ToId3v2_3.put("TCR", "TCOP");
id3v2_2ToId3v2_3.put("TDA", "TDAT"); // Deprecated in ID3v2.4
id3v2_2ToId3v2_3.put("TDY", "TDLY");
id3v2_2ToId3v2_3.put("TEN", "TENC");
id3v2_2ToId3v2_3.put("TFT", "TFLT");
id3v2_2ToId3v2_3.put("TIM", "TIME"); // Deprecated in ID3v2.4
id3v2_2ToId3v2_3.put("TKE", "TKEY");
id3v2_2ToId3v2_3.put("TLA", "TLAN");
id3v2_2ToId3v2_3.put("TLE", "TLEN");
id3v2_2ToId3v2_3.put("TMT", "TMED");
id3v2_2ToId3v2_3.put("TOA", "TOPE");
id3v2_2ToId3v2_3.put("TOF", "TOFN");
id3v2_2ToId3v2_3.put("TOL", "TOLY");
id3v2_2ToId3v2_3.put("TOR", "TORY"); // Deprecated in ID3v2.4
id3v2_2ToId3v2_3.put("TOT", "TOAL");
id3v2_2ToId3v2_3.put("TP1", "TPE1");
id3v2_2ToId3v2_3.put("TP2", "TPE2");
id3v2_2ToId3v2_3.put("TP3", "TPE3");
id3v2_2ToId3v2_3.put("TP4", "TPE4");
id3v2_2ToId3v2_3.put("TPA", "TPOS");
id3v2_2ToId3v2_3.put("TPB", "TPUB");
id3v2_2ToId3v2_3.put("TRC", "TSRC");
id3v2_2ToId3v2_3.put("TRD", "TRDA"); // Deprecated in ID3v2.4
id3v2_2ToId3v2_3.put("TRK", "TRCK");
id3v2_2ToId3v2_3.put("TSI", "TSIZ"); // Deprecated in ID3v2.4
id3v2_2ToId3v2_3.put("TSS", "TSSE");
id3v2_2ToId3v2_3.put("TT1", "TIT1");
id3v2_2ToId3v2_3.put("TT2", "TIT2");
id3v2_2ToId3v2_3.put("TT3", "TIT3");
id3v2_2ToId3v2_3.put("TXT", "TEXT");
id3v2_2ToId3v2_3.put("TXX", "TXXX");
id3v2_2ToId3v2_3.put("TYE", "TYER"); // Deprecated in ID3v2.4
id3v2_2ToId3v2_3.put("UFI", "UFID");
id3v2_2ToId3v2_3.put("ULT", "USLT");
id3v2_2ToId3v2_3.put("WAF", "WOAF");
id3v2_2ToId3v2_3.put("WAR", "WOAR");
id3v2_2ToId3v2_3.put("WAS", "WOAS");
id3v2_2ToId3v2_3.put("WCM", "WCOM");
id3v2_2ToId3v2_3.put("WCP", "WCOP");
id3v2_2ToId3v2_3.put("WPB", "WPUB");
id3v2_2ToId3v2_3.put("WXX", "WXXX");
iterator = id3v2_2ToId3v2_3.keySet().iterator();
while (iterator.hasNext()) {
key = (String) iterator.next();
value = (String) id3v2_2ToId3v2_3.get(key);
id3v2_3ToId3v2_2.put(value, key);
}
id3v2_3ToId3v2_4.put("EQUA", "EQU2"); // changed from EQUA to EQU2 in
// ID3v2.4
id3v2_3ToId3v2_4.put("GEOB", null); // Deprecated in ID3v2.4
id3v2_3ToId3v2_4.put("RVAD", "RVA2"); // changed from RVAD to RVA2 in
// ID3v2.4
id3v2_3ToId3v2_4.put("TDAT", null); // Deprecated in ID3v2.4
id3v2_3ToId3v2_4.put("TIME", null); // Deprecated in ID3v2.4
id3v2_3ToId3v2_4.put("TORY", null); // Deprecated in ID3v2.4
id3v2_3ToId3v2_4.put("TRDA", null); // Deprecated in ID3v2.4
id3v2_3ToId3v2_4.put("TSIZ", null); // Deprecated in ID3v2.4
id3v2_3ToId3v2_4.put("TYER", null); // Deprecated in ID3v2.4
iterator = id3v2_3ToId3v2_4.keySet().iterator();
while (iterator.hasNext()) {
key = (String) iterator.next();
if (key != null) {
value = (String) id3v2_3ToId3v2_4.get(key);
id3v2_4ToId3v2_3.put(value, key);
}
}
genreIdToString.put(new Long(0), "Blues");
genreIdToString.put(new Long(1), "Classic Rock");
genreIdToString.put(new Long(2), "Country");
genreIdToString.put(new Long(3), "Dance");
genreIdToString.put(new Long(4), "Disco");
genreIdToString.put(new Long(5), "Funk");
genreIdToString.put(new Long(6), "Grunge");
genreIdToString.put(new Long(7), "Hip-Hop");
genreIdToString.put(new Long(8), "Jazz");
genreIdToString.put(new Long(9), "Metal");
genreIdToString.put(new Long(10), "New Age");
genreIdToString.put(new Long(11), "Oldies");
genreIdToString.put(new Long(12), "Other");
genreIdToString.put(new Long(13), "Pop");
genreIdToString.put(new Long(14), "R&B");
genreIdToString.put(new Long(15), "Rap");
genreIdToString.put(new Long(16), "Reggae");
genreIdToString.put(new Long(17), "Rock");
genreIdToString.put(new Long(18), "Techno");
genreIdToString.put(new Long(19), "Industrial");
genreIdToString.put(new Long(20), "Alternative");
genreIdToString.put(new Long(21), "Ska");
genreIdToString.put(new Long(22), "Death Metal");
genreIdToString.put(new Long(23), "Pranks");
genreIdToString.put(new Long(24), "Soundtrack");
genreIdToString.put(new Long(25), "Euro-Techno");
genreIdToString.put(new Long(26), "Ambient");
genreIdToString.put(new Long(27), "Trip-Hop");
genreIdToString.put(new Long(28), "Vocal");
genreIdToString.put(new Long(29), "Jazz+Funk");
genreIdToString.put(new Long(30), "Fusion");
genreIdToString.put(new Long(31), "Trance");
genreIdToString.put(new Long(32), "Classical");
genreIdToString.put(new Long(33), "Instrumental");
genreIdToString.put(new Long(34), "Acid");
genreIdToString.put(new Long(35), "House");
genreIdToString.put(new Long(36), "Game");
genreIdToString.put(new Long(37), "Sound Clip");
genreIdToString.put(new Long(38), "Gospel");
genreIdToString.put(new Long(39), "Noise");
genreIdToString.put(new Long(40), "AlternRock");
genreIdToString.put(new Long(41), "Bass");
genreIdToString.put(new Long(42), "Soul");
genreIdToString.put(new Long(43), "Punk");
genreIdToString.put(new Long(44), "Space");
genreIdToString.put(new Long(45), "Meditative");
genreIdToString.put(new Long(46), "Instrumental Pop");
genreIdToString.put(new Long(47), "Instrumental Rock");
genreIdToString.put(new Long(48), "Ethnic");
genreIdToString.put(new Long(49), "Gothic");
genreIdToString.put(new Long(50), "Darkwave");
genreIdToString.put(new Long(51), "Techno-Industrial");
genreIdToString.put(new Long(52), "Electronic");
genreIdToString.put(new Long(53), "Pop-Folk");
genreIdToString.put(new Long(54), "Eurodance");
genreIdToString.put(new Long(55), "Dream");
genreIdToString.put(new Long(56), "Southern Rock");
genreIdToString.put(new Long(57), "Comedy");
genreIdToString.put(new Long(58), "Cult");
genreIdToString.put(new Long(59), "Gangsta");
genreIdToString.put(new Long(60), "Top 40");
genreIdToString.put(new Long(61), "Christian Rap");
genreIdToString.put(new Long(62), "Pop/Funk");
genreIdToString.put(new Long(63), "Jungle");
genreIdToString.put(new Long(64), "Native American");
genreIdToString.put(new Long(65), "Cabaret");
genreIdToString.put(new Long(66), "New Wave");
genreIdToString.put(new Long(67), "Psychadelic");
genreIdToString.put(new Long(68), "Rave");
genreIdToString.put(new Long(69), "Showtunes");
genreIdToString.put(new Long(70), "Trailer");
genreIdToString.put(new Long(71), "Lo-Fi");
genreIdToString.put(new Long(72), "Tribal");
genreIdToString.put(new Long(73), "Acid Punk");
genreIdToString.put(new Long(74), "Acid Jazz");
genreIdToString.put(new Long(75), "Polka");
genreIdToString.put(new Long(76), "Retro");
genreIdToString.put(new Long(77), "Musical");
genreIdToString.put(new Long(78), "Rock & Roll");
genreIdToString.put(new Long(79), "Hard Rock");
genreIdToString.put(new Long(80), "Folk");
genreIdToString.put(new Long(81), "Folk-Rock");
genreIdToString.put(new Long(82), "National Folk");
genreIdToString.put(new Long(83), "Swing");
genreIdToString.put(new Long(84), "Fast Fusion");
genreIdToString.put(new Long(85), "Bebob");
genreIdToString.put(new Long(86), "Latin");
genreIdToString.put(new Long(87), "Revival");
genreIdToString.put(new Long(88), "Celtic");
genreIdToString.put(new Long(89), "Bluegrass");
genreIdToString.put(new Long(90), "Avantgarde");
genreIdToString.put(new Long(91), "Gothic Rock");
genreIdToString.put(new Long(92), "Progressive Rock");
genreIdToString.put(new Long(93), "Psychedelic Rock");
genreIdToString.put(new Long(94), "Symphonic Rock");
genreIdToString.put(new Long(95), "Slow Rock");
genreIdToString.put(new Long(96), "Big Band");
genreIdToString.put(new Long(97), "Chorus");
genreIdToString.put(new Long(98), "Easy Listening");
genreIdToString.put(new Long(99), "Acoustic");
genreIdToString.put(new Long(100), "Humour");
genreIdToString.put(new Long(101), "Speech");
genreIdToString.put(new Long(102), "Chanson");
genreIdToString.put(new Long(103), "Opera");
genreIdToString.put(new Long(104), "Chamber Music");
genreIdToString.put(new Long(105), "Sonata");
genreIdToString.put(new Long(106), "Symphony");
genreIdToString.put(new Long(107), "Booty Bass");
genreIdToString.put(new Long(108), "Primus");
genreIdToString.put(new Long(109), "Porn Groove");
genreIdToString.put(new Long(110), "Satire");
genreIdToString.put(new Long(111), "Slow Jam");
genreIdToString.put(new Long(112), "Club");
genreIdToString.put(new Long(113), "Tango");
genreIdToString.put(new Long(114), "Samba");
genreIdToString.put(new Long(115), "Folklore");
genreIdToString.put(new Long(116), "Ballad");
genreIdToString.put(new Long(117), "Power Ballad");
genreIdToString.put(new Long(118), "Rhythmic Soul");
genreIdToString.put(new Long(119), "Freestyle");
genreIdToString.put(new Long(120), "Duet");
genreIdToString.put(new Long(121), "Punk Rock");
genreIdToString.put(new Long(122), "Drum Solo");
genreIdToString.put(new Long(123), "Acapella");
genreIdToString.put(new Long(124), "Euro-House");
genreIdToString.put(new Long(125), "Dance Hall");
// ID's are typed as Integer because the combo box expects it
Long lkey;
iterator = genreIdToString.keySet().iterator();
while (iterator.hasNext()) {
lkey = (Long) iterator.next();
value = (String) genreIdToString.get(lkey);
genreStringToId.put(value, lkey);
}
// MPEG-1, Layer I (E)
bitrate.put(new Long(0x1E), new Long(32));
bitrate.put(new Long(0x2E), new Long(64));
bitrate.put(new Long(0x3E), new Long(96));
bitrate.put(new Long(0x4E), new Long(128));
bitrate.put(new Long(0x5E), new Long(160));
bitrate.put(new Long(0x6E), new Long(192));
bitrate.put(new Long(0x7E), new Long(224));
bitrate.put(new Long(0x8E), new Long(256));
bitrate.put(new Long(0x9E), new Long(288));
bitrate.put(new Long(0xAE), new Long(320));
bitrate.put(new Long(0xBE), new Long(352));
bitrate.put(new Long(0xCE), new Long(384));
bitrate.put(new Long(0xDE), new Long(416));
bitrate.put(new Long(0xEE), new Long(448));
// MPEG-1, Layer II (C)
bitrate.put(new Long(0x1C), new Long(32));
bitrate.put(new Long(0x2C), new Long(48));
bitrate.put(new Long(0x3C), new Long(56));
bitrate.put(new Long(0x4C), new Long(64));
bitrate.put(new Long(0x5C), new Long(80));
bitrate.put(new Long(0x6C), new Long(96));
bitrate.put(new Long(0x7C), new Long(112));
bitrate.put(new Long(0x8C), new Long(128));
bitrate.put(new Long(0x9C), new Long(160));
bitrate.put(new Long(0xAC), new Long(192));
bitrate.put(new Long(0xBC), new Long(224));
bitrate.put(new Long(0xCC), new Long(256));
bitrate.put(new Long(0xDC), new Long(320));
bitrate.put(new Long(0xEC), new Long(384));
// MPEG-1, Layer III (A)
bitrate.put(new Long(0x1A), new Long(32));
bitrate.put(new Long(0x2A), new Long(40));
bitrate.put(new Long(0x3A), new Long(48));
bitrate.put(new Long(0x4A), new Long(56));
bitrate.put(new Long(0x5A), new Long(64));
bitrate.put(new Long(0x6A), new Long(80));
bitrate.put(new Long(0x7A), new Long(96));
bitrate.put(new Long(0x8A), new Long(112));
bitrate.put(new Long(0x9A), new Long(128));
bitrate.put(new Long(0xAA), new Long(160));
bitrate.put(new Long(0xBA), new Long(192));
bitrate.put(new Long(0xCA), new Long(224));
bitrate.put(new Long(0xDA), new Long(256));
bitrate.put(new Long(0xEA), new Long(320));
// MPEG-2, Layer I (6)
bitrate.put(new Long(0x16), new Long(32));
bitrate.put(new Long(0x26), new Long(48));
bitrate.put(new Long(0x36), new Long(56));
bitrate.put(new Long(0x46), new Long(64));
bitrate.put(new Long(0x56), new Long(80));
bitrate.put(new Long(0x66), new Long(96));
bitrate.put(new Long(0x76), new Long(112));
bitrate.put(new Long(0x86), new Long(128));
bitrate.put(new Long(0x96), new Long(144));
bitrate.put(new Long(0xA6), new Long(160));
bitrate.put(new Long(0xB6), new Long(176));
bitrate.put(new Long(0xC6), new Long(192));
bitrate.put(new Long(0xD6), new Long(224));
bitrate.put(new Long(0xE6), new Long(256));
// MPEG-2, Layer II (4)
bitrate.put(new Long(0x14), new Long(8));
bitrate.put(new Long(0x24), new Long(16));
bitrate.put(new Long(0x34), new Long(24));
bitrate.put(new Long(0x44), new Long(32));
bitrate.put(new Long(0x54), new Long(40));
bitrate.put(new Long(0x64), new Long(48));
bitrate.put(new Long(0x74), new Long(56));
bitrate.put(new Long(0x84), new Long(64));
bitrate.put(new Long(0x94), new Long(80));
bitrate.put(new Long(0xA4), new Long(96));
bitrate.put(new Long(0xB4), new Long(112));
bitrate.put(new Long(0xC4), new Long(128));
bitrate.put(new Long(0xD4), new Long(144));
bitrate.put(new Long(0xE4), new Long(160));
// MPEG-2, Layer III (2)
bitrate.put(new Long(0x12), new Long(8));
bitrate.put(new Long(0x22), new Long(16));
bitrate.put(new Long(0x32), new Long(24));
bitrate.put(new Long(0x42), new Long(32));
bitrate.put(new Long(0x52), new Long(40));
bitrate.put(new Long(0x62), new Long(48));
bitrate.put(new Long(0x72), new Long(56));
bitrate.put(new Long(0x82), new Long(64));
bitrate.put(new Long(0x92), new Long(80));
bitrate.put(new Long(0xA2), new Long(96));
bitrate.put(new Long(0xB2), new Long(112));
bitrate.put(new Long(0xC2), new Long(128));
bitrate.put(new Long(0xD2), new Long(144));
bitrate.put(new Long(0xE2), new Long(160));
languageIdToString.put("aar", "Afar");
languageIdToString.put("abk", "Abkhazian");
languageIdToString.put("ace", "Achinese");
languageIdToString.put("ach", "Acoli");
languageIdToString.put("ada", "Adangme");
languageIdToString.put("afa", "Afro-Asiatic (Other)");
languageIdToString.put("afh", "Afrihili");
languageIdToString.put("afr", "Afrikaans");
languageIdToString.put("aka", "Akan");
languageIdToString.put("akk", "Akkadian");
languageIdToString.put("alb", "Albanian");
languageIdToString.put("ale", "Aleut");
languageIdToString.put("alg", "Algonquian languages");
languageIdToString.put("amh", "Amharic");
languageIdToString.put("ang", "English, Old (ca.450-1100)");
languageIdToString.put("apa", "Apache languages");
languageIdToString.put("ara", "Arabic");
languageIdToString.put("arc", "Aramaic");
languageIdToString.put("arm", "Armenian");
languageIdToString.put("arn", "Araucanian");
languageIdToString.put("arp", "Arapaho");
languageIdToString.put("art", "Artificial (Other)");
languageIdToString.put("arw", "Arawak");
languageIdToString.put("asm", "Assamese");
languageIdToString.put("ast", "Asturian; Bable");
languageIdToString.put("ath", "Athapascan languages");
languageIdToString.put("aus", "Australian languages");
languageIdToString.put("ava", "Avaric");
languageIdToString.put("ave", "Avestan");
languageIdToString.put("awa", "Awadhi");
languageIdToString.put("aym", "Aymara");
languageIdToString.put("aze", "Azerbaijani");
languageIdToString.put("bad", "Banda");
languageIdToString.put("bai", "Bamileke languages");
languageIdToString.put("bak", "Bashkir");
languageIdToString.put("bal", "Baluchi");
languageIdToString.put("bam", "Bambara");
languageIdToString.put("ban", "Balinese");
languageIdToString.put("baq", "Basque");
languageIdToString.put("bas", "Basa");
languageIdToString.put("bat", "Baltic (Other)");
languageIdToString.put("bej", "Beja");
languageIdToString.put("bel", "Belarusian");
languageIdToString.put("bem", "Bemba");
languageIdToString.put("ben", "Bengali");
languageIdToString.put("ber", "Berber (Other)");
languageIdToString.put("bho", "Bhojpuri");
languageIdToString.put("bih", "Bihari");
languageIdToString.put("bik", "Bikol");
languageIdToString.put("bin", "Bini");
languageIdToString.put("bis", "Bislama");
languageIdToString.put("bla", "Siksika");
languageIdToString.put("bnt", "Bantu (Other)");
languageIdToString.put("bod", "Tibetan");
languageIdToString.put("bos", "Bosnian");
languageIdToString.put("bra", "Braj");
languageIdToString.put("bre", "Breton");
languageIdToString.put("btk", "Batak (Indonesia)");
languageIdToString.put("bua", "Buriat");
languageIdToString.put("bug", "Buginese");
languageIdToString.put("bul", "Bulgarian");
languageIdToString.put("bur", "Burmese");
languageIdToString.put("cad", "Caddo");
languageIdToString.put("cai", "Central American Indian (Other)");
languageIdToString.put("car", "Carib");
languageIdToString.put("cat", "Catalan");
languageIdToString.put("cau", "Caucasian (Other)");
languageIdToString.put("ceb", "Cebuano");
languageIdToString.put("cel", "Celtic (Other)");
languageIdToString.put("ces", "Czech");
languageIdToString.put("cha", "Chamorro");
languageIdToString.put("chb", "Chibcha");
languageIdToString.put("che", "Chechen");
languageIdToString.put("chg", "Chagatai");
languageIdToString.put("chi", "Chinese");
languageIdToString.put("chk", "Chuukese");
languageIdToString.put("chm", "Mari");
languageIdToString.put("chn", "Chinook jargon");
languageIdToString.put("cho", "Choctaw");
languageIdToString.put("chp", "Chipewyan");
languageIdToString.put("chr", "Cherokee");
languageIdToString.put("chu",
"Church Slavic; Old Slavonic; Old Church Slavonic; Church Slavonic; Old Bulgarian");
languageIdToString.put("chv", "Chuvash");
languageIdToString.put("chy", "Cheyenne");
languageIdToString.put("cmc", "Chamic languages");
languageIdToString.put("cop", "Coptic");
languageIdToString.put("cor", "Cornish");
languageIdToString.put("cos", "Corsican");
languageIdToString.put("cpe", "Creoles and pidgins, English based (Other)");
languageIdToString.put("cpf", "Creoles and pidgins, French-based (Other)");
languageIdToString.put("cpp", "Creoles and pidgins,");
languageIdToString.put("cre", "Cree");
languageIdToString.put("crp", "Creoles and pidgins (Other)");
languageIdToString.put("cus", "Cushitic (Other)");
languageIdToString.put("cym", "Welsh");
languageIdToString.put("cze", "Czech");
languageIdToString.put("dak", "Dakota");
languageIdToString.put("dan", "Danish");
languageIdToString.put("day", "Dayak");
languageIdToString.put("del", "Delaware");
languageIdToString.put("den", "Slave (Athapascan)");
languageIdToString.put("deu", "German");
languageIdToString.put("dgr", "Dogrib");
languageIdToString.put("din", "Dinka");
languageIdToString.put("div", "Divehi");
languageIdToString.put("doi", "Dogri");
languageIdToString.put("dra", "Dravidian (Other)");
languageIdToString.put("dua", "Duala");
languageIdToString.put("dum", "Dutch, Middle (ca.1050-1350)");
languageIdToString.put("dut", "Dutch");
languageIdToString.put("dyu", "Dyula");
languageIdToString.put("dzo", "Dzongkha");
languageIdToString.put("efi", "Efik");
languageIdToString.put("egy", "Egyptian (Ancient)");
languageIdToString.put("eka", "Ekajuk");
languageIdToString.put("ell", "Greek, Modern (1453-)");
languageIdToString.put("elx", "Elamite");
languageIdToString.put("eng", "English");
languageIdToString.put("enm", "English, Middle (1100-1500)");
languageIdToString.put("epo", "Esperanto");
languageIdToString.put("est", "Estonian");
languageIdToString.put("eus", "Basque");
languageIdToString.put("ewe", "Ewe");
languageIdToString.put("ewo", "Ewondo");
languageIdToString.put("fan", "Fang");
languageIdToString.put("fao", "Faroese");
languageIdToString.put("fas", "Persian");
languageIdToString.put("fat", "Fanti");
languageIdToString.put("fij", "Fijian");
languageIdToString.put("fin", "Finnish");
languageIdToString.put("fiu", "Finno-Ugrian (Other)");
languageIdToString.put("fon", "Fon");
languageIdToString.put("fra", "French");
languageIdToString.put("frm", "French, Middle (ca.1400-1800)");
languageIdToString.put("fro", "French, Old (842-ca.1400)");
languageIdToString.put("fry", "Frisian");
languageIdToString.put("ful", "Fulah");
languageIdToString.put("fur", "Friulian");
languageIdToString.put("gaa", "Ga");
languageIdToString.put("gay", "Gayo");
languageIdToString.put("gba", "Gbaya");
languageIdToString.put("gem", "Germanic (Other)");
languageIdToString.put("geo", "Georgian");
languageIdToString.put("ger", "German");
languageIdToString.put("gez", "Geez");
languageIdToString.put("gil", "Gilbertese");
languageIdToString.put("gla", "Gaelic; Scottish Gaelic");
languageIdToString.put("gle", "Irish");
languageIdToString.put("glg", "Gallegan");
languageIdToString.put("glv", "Manx");
languageIdToString.put("gmh", "German, Middle High (ca.1050-1500)");
languageIdToString.put("goh", "German, Old High (ca.750-1050)");
languageIdToString.put("gon", "Gondi");
languageIdToString.put("gor", "Gorontalo");
languageIdToString.put("got", "Gothic");
languageIdToString.put("grb", "Grebo");
languageIdToString.put("grc", "Greek, Ancient (to 1453)");
languageIdToString.put("gre", "Greek, Modern (1453-)");
languageIdToString.put("grn", "Guarani");
languageIdToString.put("guj", "Gujarati");
languageIdToString.put("gwi", "Gwich´in");
languageIdToString.put("hai", "Haida");
languageIdToString.put("hau", "Hausa");
languageIdToString.put("haw", "Hawaiian");
languageIdToString.put("heb", "Hebrew");
languageIdToString.put("her", "Herero");
languageIdToString.put("hil", "Hiligaynon");
languageIdToString.put("him", "Himachali");
languageIdToString.put("hin", "Hindi");
languageIdToString.put("hit", "Hittite");
languageIdToString.put("hmn", "Hmong");
languageIdToString.put("hmo", "Hiri Motu");
languageIdToString.put("hrv", "Croatian");
languageIdToString.put("hun", "Hungarian");
languageIdToString.put("hup", "Hupa");
languageIdToString.put("hye", "Armenian");
languageIdToString.put("iba", "Iban");
languageIdToString.put("ibo", "Igbo");
languageIdToString.put("ice", "Icelandic");
languageIdToString.put("ido", "Ido");
languageIdToString.put("ijo", "Ijo");
languageIdToString.put("iku", "Inuktitut");
languageIdToString.put("ile", "Interlingue");
languageIdToString.put("ilo", "Iloko");
languageIdToString.put("ina", "Interlingua (International Auxiliary)");
languageIdToString.put("inc", "Indic (Other)");
languageIdToString.put("ind", "Indonesian");
languageIdToString.put("ine", "Indo-European (Other)");
languageIdToString.put("ipk", "Inupiaq");
languageIdToString.put("ira", "Iranian (Other)");
languageIdToString.put("iro", "Iroquoian languages");
languageIdToString.put("isl", "Icelandic");
languageIdToString.put("ita", "Italian");
languageIdToString.put("jav", "Javanese");
languageIdToString.put("jpn", "Japanese");
languageIdToString.put("jpr", "Judeo-Persian");
languageIdToString.put("jrb", "Judeo-Arabic");
languageIdToString.put("kaa", "Kara-Kalpak");
languageIdToString.put("kab", "Kabyle");
languageIdToString.put("kac", "Kachin");
languageIdToString.put("kal", "Kalaallisut");
languageIdToString.put("kam", "Kamba");
languageIdToString.put("kan", "Kannada");
languageIdToString.put("kar", "Karen");
languageIdToString.put("kas", "Kashmiri");
languageIdToString.put("kat", "Georgian");
languageIdToString.put("kau", "Kanuri");
languageIdToString.put("kaw", "Kawi");
languageIdToString.put("kaz", "Kazakh");
languageIdToString.put("kha", "Khasi");
languageIdToString.put("khi", "Khoisan (Other)");
languageIdToString.put("khm", "Khmer");
languageIdToString.put("kho", "Khotanese");
languageIdToString.put("kik", "Kikuyu; Gikuyu");
languageIdToString.put("kin", "Kinyarwanda");
languageIdToString.put("kir", "Kirghiz");
languageIdToString.put("kmb", "Kimbundu");
languageIdToString.put("kok", "Konkani");
languageIdToString.put("kom", "Komi");
languageIdToString.put("kon", "Kongo");
languageIdToString.put("kor", "Korean");
languageIdToString.put("kos", "Kosraean");
languageIdToString.put("kpe", "Kpelle");
languageIdToString.put("kro", "Kru");
languageIdToString.put("kru", "Kurukh");
languageIdToString.put("kua", "Kuanyama; Kwanyama");
languageIdToString.put("kum", "Kumyk");
languageIdToString.put("kur", "Kurdish");
languageIdToString.put("kut", "Kutenai");
languageIdToString.put("lad", "Ladino");
languageIdToString.put("lah", "Lahnda");
languageIdToString.put("lam", "Lamba");
languageIdToString.put("lao", "Lao");
languageIdToString.put("lat", "Latin");
languageIdToString.put("lav", "Latvian");
languageIdToString.put("lez", "Lezghian");
languageIdToString.put("lin", "Lingala");
languageIdToString.put("lit", "Lithuanian");
languageIdToString.put("lol", "Mongo");
languageIdToString.put("loz", "Lozi");
languageIdToString.put("ltz", "Luxembourgish; Letzeburgesch");
languageIdToString.put("lua", "Luba-Lulua");
languageIdToString.put("lub", "Luba-Katanga");
languageIdToString.put("lug", "Ganda");
languageIdToString.put("lui", "Luiseno");
languageIdToString.put("lun", "Lunda");
languageIdToString.put("luo", "Luo (Kenya and Tanzania)");
languageIdToString.put("lus", "lushai");
languageIdToString.put("mac", "Macedonian");
languageIdToString.put("mad", "Madurese");
languageIdToString.put("mag", "Magahi");
languageIdToString.put("mah", "Marshallese");
languageIdToString.put("mai", "Maithili");
languageIdToString.put("mak", "Makasar");
languageIdToString.put("mal", "Malayalam");
languageIdToString.put("man", "Mandingo");
languageIdToString.put("mao", "Maori");
languageIdToString.put("map", "Austronesian (Other)");
languageIdToString.put("mar", "Marathi");
languageIdToString.put("mas", "Masai");
languageIdToString.put("may", "Malay");
languageIdToString.put("mdr", "Mandar");
languageIdToString.put("men", "Mende");
languageIdToString.put("mga", "Irish, Middle (900-1200)");
languageIdToString.put("mic", "Micmac");
languageIdToString.put("min", "Minangkabau");
languageIdToString.put("mis", "Miscellaneous languages");
languageIdToString.put("mkd", "Macedonian");
languageIdToString.put("mkh", "Mon-Khmer (Other)");
languageIdToString.put("mlg", "Malagasy");
languageIdToString.put("mlt", "Maltese");
languageIdToString.put("mnc", "Manchu");
languageIdToString.put("mni", "Manipuri");
languageIdToString.put("mno", "Manobo languages");
languageIdToString.put("moh", "Mohawk");
languageIdToString.put("mol", "Moldavian");
languageIdToString.put("mon", "Mongolian");
languageIdToString.put("mos", "Mossi");
languageIdToString.put("mri", "Maori");
languageIdToString.put("msa", "Malay");
languageIdToString.put("mul", "Multiple languages");
languageIdToString.put("mun", "Munda languages");
languageIdToString.put("mus", "Creek");
languageIdToString.put("mwr", "Marwari");
languageIdToString.put("mya", "Burmese");
languageIdToString.put("myn", "Mayan languages");
languageIdToString.put("nah", "Nahuatl");
languageIdToString.put("nai", "North American Indian");
languageIdToString.put("nau", "Nauru");
languageIdToString.put("nav", "Navajo; Navaho");
languageIdToString.put("nbl", "South Ndebele");
languageIdToString.put("nde", "North Ndebele");
languageIdToString.put("ndo", "Ndonga");
languageIdToString.put("nds", "Low German; Low Saxon; German, Low; Saxon, Low");
languageIdToString.put("nep", "Nepali");
languageIdToString.put("new", "Newari");
languageIdToString.put("nia", "Nias");
languageIdToString.put("nic", "Niger-Kordofanian (Other)");
languageIdToString.put("niu", "Niuean");
languageIdToString.put("nld", "Dutch");
languageIdToString.put("nno", "Norwegian Nynorsk");
languageIdToString.put("nob", "Norwegian Bokmål");
languageIdToString.put("non", "Norse, Old");
languageIdToString.put("nor", "Norwegian");
languageIdToString.put("nso", "Sotho, Northern");
languageIdToString.put("nub", "Nubian languages");
languageIdToString.put("nya", "Chichewa; Chewa; Nyanja");
languageIdToString.put("nym", "Nyamwezi");
languageIdToString.put("nyn", "Nyankole");
languageIdToString.put("nyo", "Nyoro");
languageIdToString.put("nzi", "Nzima");
languageIdToString.put("oci", "Occitan (post 1500); Provençal");
languageIdToString.put("oji", "Ojibwa");
languageIdToString.put("ori", "Oriya");
languageIdToString.put("orm", "Oromo");
languageIdToString.put("osa", "Osage");
languageIdToString.put("oss", "Ossetian; Ossetic");
languageIdToString.put("ota", "Turkish, Ottoman (1500-1928)");
languageIdToString.put("oto", "Otomian languages");
languageIdToString.put("paa", "Papuan (Other)");
languageIdToString.put("pag", "Pangasinan");
languageIdToString.put("pal", "Pahlavi");
languageIdToString.put("pam", "Pampanga");
languageIdToString.put("pan", "Panjabi");
languageIdToString.put("pap", "Papiamento");
languageIdToString.put("pau", "Palauan");
languageIdToString.put("peo", "Persian, Old (ca.600-400 B.C.)");
languageIdToString.put("per", "Persian");
languageIdToString.put("per", "Persian");
languageIdToString.put("phi", "Philippine (Other)");
languageIdToString.put("phn", "Phoenician");
languageIdToString.put("pli", "Pali");
languageIdToString.put("pol", "Polish");
languageIdToString.put("pon", "Pohnpeian");
languageIdToString.put("por", "Portuguese");
languageIdToString.put("pra", "Prakrit languages");
languageIdToString.put("pro", "Provençal, Old (to 1500)");
languageIdToString.put("pus", "Pushto");
languageIdToString.put("que", "Quechua");
languageIdToString.put("raj", "Rajasthani");
languageIdToString.put("rap", "Rapanui");
languageIdToString.put("rar", "Rarotongan");
languageIdToString.put("roa", "Romance (Other)");
languageIdToString.put("roh", "Raeto-Romance");
languageIdToString.put("rom", "Romany");
languageIdToString.put("ron", "Romanian");
languageIdToString.put("rum", "Romanian");
languageIdToString.put("run", "Rundi");
languageIdToString.put("rus", "Russian");
languageIdToString.put("sad", "Sandawe");
languageIdToString.put("sag", "Sango");
languageIdToString.put("sah", "Yakut");
languageIdToString.put("sai", "South American Indian (Other)");
languageIdToString.put("sal", "Salishan languages");
languageIdToString.put("sam", "Samaritan Aramaic");
languageIdToString.put("san", "Sanskrit");
languageIdToString.put("sas", "Sasak");
languageIdToString.put("sat", "Santali");
languageIdToString.put("scc", "Serbian");
languageIdToString.put("sco", "Scots");
languageIdToString.put("scr", "Croatian");
languageIdToString.put("sel", "Selkup");
languageIdToString.put("sem", "Semitic (Other)");
languageIdToString.put("sga", "Irish, Old (to 900)");
languageIdToString.put("sgn", "Sign languages");
languageIdToString.put("shn", "Shan");
languageIdToString.put("sid", "Sidamo");
languageIdToString.put("sin", "Sinhales");
languageIdToString.put("sio", "Siouan languages");
languageIdToString.put("sit", "Sino-Tibetan (Other)");
languageIdToString.put("sla", "Slavic (Other)");
languageIdToString.put("slk", "Slovak");
languageIdToString.put("slo", "Slovak");
languageIdToString.put("slv", "Slovenian");
languageIdToString.put("sma", "Southern Sami");
languageIdToString.put("sme", "Northern Sami");
languageIdToString.put("smi", "Sami languages (Other)");
languageIdToString.put("smj", "Lule Sami");
languageIdToString.put("smn", "Inari Sami");
languageIdToString.put("smo", "Samoan");
languageIdToString.put("sms", "Skolt Sami");
languageIdToString.put("sna", "Shona");
languageIdToString.put("snd", "Sindhi");
languageIdToString.put("snk", "Soninke");
languageIdToString.put("sog", "Sogdian");
languageIdToString.put("som", "Somali");
languageIdToString.put("son", "Songhai");
languageIdToString.put("sot", "Sotho, Southern");
languageIdToString.put("spa", "Spanish; Castilia");
languageIdToString.put("sqi", "Albanian");
languageIdToString.put("srd", "Sardinian");
languageIdToString.put("srp", "Serbian");
languageIdToString.put("srr", "Serer");
languageIdToString.put("ssa", "Nilo-Saharan (Other)");
languageIdToString.put("sus", "Susu");
languageIdToString.put("sux", "Sumerian");
languageIdToString.put("swa", "Swahili");
languageIdToString.put("swe", "Swedish");
languageIdToString.put("syr", "Syriac");
languageIdToString.put("tah", "Tahitian");
languageIdToString.put("tai", "Tai (Other)");
languageIdToString.put("tam", "Tamil");
languageIdToString.put("tat", "Tatar");
languageIdToString.put("tel", "Telugu");
languageIdToString.put("tem", "Timne");
languageIdToString.put("ter", "Tereno");
languageIdToString.put("tet", "Tetum");
languageIdToString.put("tgk", "Tajik");
languageIdToString.put("tgl", "Tagalog");
languageIdToString.put("tha", "Thai");
languageIdToString.put("tib", "Tibetan");
languageIdToString.put("tig", "Tigre");
languageIdToString.put("tir", "Tigrinya");
languageIdToString.put("tiv", "Tiv");
languageIdToString.put("tkl", "Tokelau");
languageIdToString.put("tli", "Tlingit");
languageIdToString.put("tmh", "Tamashek");
languageIdToString.put("tog", "Tonga (Nyasa)");
languageIdToString.put("ton", "Tonga (Tonga Islands)");
languageIdToString.put("tpi", "Tok Pisin");
languageIdToString.put("tsi", "Tsimshian");
languageIdToString.put("tsn", "Tswana");
languageIdToString.put("tso", "Tsonga");
languageIdToString.put("tuk", "Turkmen");
languageIdToString.put("tum", "Tumbuka");
languageIdToString.put("tup", "Tupi languages");
languageIdToString.put("tur", "Turkish");
languageIdToString.put("tut", "Altaic (Other)");
languageIdToString.put("tvl", "Tuvalu");
languageIdToString.put("twi", "Twi");
languageIdToString.put("tyv", "Tuvinian");
languageIdToString.put("uga", "Ugaritic");
languageIdToString.put("uig", "Uighur");
languageIdToString.put("ukr", "Ukrainian");
languageIdToString.put("umb", "Umbundu");
languageIdToString.put("und", "Undetermined");
languageIdToString.put("urd", "Urdu");
languageIdToString.put("uzb", "Uzbek");
languageIdToString.put("vai", "Vai");
languageIdToString.put("ven", "Venda");
languageIdToString.put("vie", "Vietnamese");
languageIdToString.put("vol", "Volapük");
languageIdToString.put("vot", "Votic");
languageIdToString.put("wak", "Wakashan languages");
languageIdToString.put("wal", "Walamo");
languageIdToString.put("war", "Waray");
languageIdToString.put("was", "Washo");
languageIdToString.put("wel", "Welsh");
languageIdToString.put("wen", "Sorbian languages");
languageIdToString.put("wln", "Walloon");
languageIdToString.put("wol", "Wolof");
languageIdToString.put("xho", "Xhosa");
languageIdToString.put("yao", "Yao");
languageIdToString.put("yap", "Yapese");
languageIdToString.put("yid", "Yiddish");
languageIdToString.put("yor", "Yoruba");
languageIdToString.put("ypk", "Yupik languages");
languageIdToString.put("zap", "Zapotec");
languageIdToString.put("zen", "Zenaga");
languageIdToString.put("zha", "Zhuang; Chuang");
languageIdToString.put("zho", "Chinese");
languageIdToString.put("znd", "Zande");
languageIdToString.put("zul", "Zulu");
languageIdToString.put("zun", "Zuni");
iterator = languageIdToString.keySet().iterator();
while (iterator.hasNext()) {
key = (String) iterator.next();
value = (String) languageIdToString.get(key);
languageStringToId.put(value, key);
}
textEncodingIdToString.put(new Long(0), "ISO-8859-1");
textEncodingIdToString.put(new Long(1), "UTF-16");
textEncodingIdToString.put(new Long(2), "UTF-16BE");
textEncodingIdToString.put(new Long(3), "UTF-8");
iterator = textEncodingIdToString.keySet().iterator();
while (iterator.hasNext()) {
lkey = (Long) iterator.next();
value = (String) textEncodingIdToString.get(lkey);
textEncodingStringToId.put(value, lkey);
}
interpolationMethodIdToString.put(new Long(0), "Band");
interpolationMethodIdToString.put(new Long(1), "Linear");
iterator = interpolationMethodIdToString.keySet().iterator();
while (iterator.hasNext()) {
lkey = (Long) iterator.next();
value = (String) interpolationMethodIdToString.get(lkey);
interpolationMethodStringToId.put(value, lkey);
}
pictureTypeIdToString.put(new Long(0), "Other");
pictureTypeIdToString.put(new Long(1), "32x32 pixels 'file icon' (PNG only)");
pictureTypeIdToString.put(new Long(2), "Other file icon");
pictureTypeIdToString.put(new Long(3), "Cover (front)");
pictureTypeIdToString.put(new Long(4), "Cover (back)");
pictureTypeIdToString.put(new Long(5), "Leaflet page");
pictureTypeIdToString.put(new Long(6), "Media (e.g. label side of CD)");
pictureTypeIdToString.put(new Long(7), "Lead artist/lead performer/soloist");
pictureTypeIdToString.put(new Long(8), "Artist/performer");
pictureTypeIdToString.put(new Long(9), "Conductor");
pictureTypeIdToString.put(new Long(10), "Band/Orchestra");
pictureTypeIdToString.put(new Long(11), "Composer");
pictureTypeIdToString.put(new Long(12), "Lyricist/text writer");
pictureTypeIdToString.put(new Long(13), "Recording Location");
pictureTypeIdToString.put(new Long(14), "During recording");
pictureTypeIdToString.put(new Long(15), "During performance");
pictureTypeIdToString.put(new Long(16), "Movie/video screen capture");
pictureTypeIdToString.put(new Long(17), "A bright coloured fish");
pictureTypeIdToString.put(new Long(18), "Illustration");
pictureTypeIdToString.put(new Long(19), "Band/artist logotype");
pictureTypeIdToString.put(new Long(20), "Publisher/Studio logotype");
iterator = pictureTypeIdToString.keySet().iterator();
while (iterator.hasNext()) {
lkey = (Long) iterator.next();
value = (String) pictureTypeIdToString.get(lkey);
pictureTypeStringToId.put(value, lkey);
}
timeStampFormatIdToString.put(new Long(1), "Absolute time using MPEG [MPEG] frames as unit");
timeStampFormatIdToString.put(new Long(2), "Absolute time using milliseconds as unit");
iterator = timeStampFormatIdToString.keySet().iterator();
while (iterator.hasNext()) {
lkey = (Long) iterator.next();
value = (String) timeStampFormatIdToString.get(lkey);
timeStampFormatStringToId.put(value, lkey);
}
typeOfEventIdToString.put(new Long(0x00), "Padding (has no meaning)");
typeOfEventIdToString.put(new Long(0x01), "End of initial silence");
typeOfEventIdToString.put(new Long(0x02), "Intro start");
typeOfEventIdToString.put(new Long(0x03), "Main part start");
typeOfEventIdToString.put(new Long(0x04), "Outro start");
typeOfEventIdToString.put(new Long(0x05), "Outro end");
typeOfEventIdToString.put(new Long(0x06), "Verse start");
typeOfEventIdToString.put(new Long(0x07), "Refrain start");
typeOfEventIdToString.put(new Long(0x08), "Interlude start");
typeOfEventIdToString.put(new Long(0x09), "Theme start");
typeOfEventIdToString.put(new Long(0x0A), "Variation start");
typeOfEventIdToString.put(new Long(0x0B), "Key change");
typeOfEventIdToString.put(new Long(0x0C), "Time change");
typeOfEventIdToString.put(new Long(0x0D), "Momentary unwanted noise (Snap, Crackle & Pop)");
typeOfEventIdToString.put(new Long(0x0E), "Sustained noise");
typeOfEventIdToString.put(new Long(0x0F), "Sustained noise end");
typeOfEventIdToString.put(new Long(0x10), "Intro end");
typeOfEventIdToString.put(new Long(0x11), "Main part end");
typeOfEventIdToString.put(new Long(0x12), "Verse end");
typeOfEventIdToString.put(new Long(0x13), "Refrain end");
typeOfEventIdToString.put(new Long(0x14), "Theme end");
typeOfEventIdToString.put(new Long(0x15), "Profanity");
typeOfEventIdToString.put(new Long(0x16), "Profanity end");
typeOfEventIdToString.put(new Long(0xFD), "Audio end (start of silence)");
typeOfEventIdToString.put(new Long(0xFE), "Audio file ends");
iterator = typeOfEventIdToString.keySet().iterator();
while (iterator.hasNext()) {
lkey = (Long) iterator.next();
value = (String) typeOfEventIdToString.get(lkey);
typeOfEventStringToId.put(value, lkey);
}
typeOfChannelIdToString.put(new Long(0x00), "Other");
typeOfChannelIdToString.put(new Long(0x01), "Master volume");
typeOfChannelIdToString.put(new Long(0x02), "Front right");
typeOfChannelIdToString.put(new Long(0x03), "Front left");
typeOfChannelIdToString.put(new Long(0x04), "Back right");
typeOfChannelIdToString.put(new Long(0x05), "Back left");
typeOfChannelIdToString.put(new Long(0x06), "Front centre");
typeOfChannelIdToString.put(new Long(0x07), "Back centre");
typeOfChannelIdToString.put(new Long(0x08), "Subwoofer");
iterator = typeOfChannelIdToString.keySet().iterator();
while (iterator.hasNext()) {
lkey = (Long) iterator.next();
value = (String) typeOfChannelIdToString.get(lkey);
typeOfChannelStringToId.put(value, lkey);
}
recievedAsIdToString.put(new Long(0x00), "Other");
recievedAsIdToString.put(new Long(0x01), "Standard CD album with other songs");
recievedAsIdToString.put(new Long(0x02), "Compressed audio on CD");
recievedAsIdToString.put(new Long(0x03), "File over the Internet");
recievedAsIdToString.put(new Long(0x04), "Stream over the Internet");
recievedAsIdToString.put(new Long(0x05), "As note sheets");
recievedAsIdToString.put(new Long(0x06), "As note sheets in a book with other sheets");
recievedAsIdToString.put(new Long(0x07), "Music on other media");
recievedAsIdToString.put(new Long(0x08), "Non-musical merchandise");
iterator = recievedAsIdToString.keySet().iterator();
while (iterator.hasNext()) {
lkey = (Long) iterator.next();
value = (String) recievedAsIdToString.get(lkey);
recievedAsStringToId.put(value, lkey);
}
}
/**
* Creates a new TagConstant object.
*/
private TagConstant() {
// keep people from instantiating this
}
}