package com.mercandalli.android.apps.files.file.audio.metadata.read; import java.util.Hashtable; import java.util.Map; /* package */ class ID3FrameType { public final String short_id; public final String long_id; public final String description; private final Number frame_order; public static final Number DEFAULT_FRAME_ORDER = new Integer(2147483647); public static final Number TEXT_FRAME_ORDER = new Integer(1073741823); public static final ID3FrameType GENRE_ID = new ID3FrameType((String) null, (String) null, (String) null, "Genre Id"); public static final ID3FrameType CONTENT_GROUP = new ID3FrameType("TT1", "TIT1", "TIT1", "Content Group Description"); public static final ID3FrameType TITLE = new ID3FrameType("TT2", "TIT2", "TIT2", "Title/Songname/Content Description", new Integer(2)); public static final ID3FrameType SUBTITLE = new ID3FrameType("TT3", "TIT3", "TIT3", "Subtitle/Description Refinement"); public static final ID3FrameType ARTIST = new ID3FrameType("TP1", "TPE1", "TPE1", "Lead Performer(S)/Soloist(S)", new Integer(2)); public static final ID3FrameType BAND = new ID3FrameType("TP2", "TPE2", "TPE2", "Band/Orchestra/Accompaniment", new Integer(2)); public static final ID3FrameType CONDUCTOR = new ID3FrameType("TP3", "TPE3", "TPE3", "Conductor/Performer Refinement"); public static final ID3FrameType MIXARTIST = new ID3FrameType("TP4", "TPE4", "TPE4", "Interpreted, Remixed, Modified By"); public static final ID3FrameType COMPOSER = new ID3FrameType("TCM", "TCOM", "TCOM", "Composer"); public static final ID3FrameType LYRICIST = new ID3FrameType("TXT", "TEXT", "TEXT", "Lyricist/Text Writer"); public static final ID3FrameType LANGUAGE = new ID3FrameType("TLA", "TLAN", "TLAN", "Language(S)"); public static final ID3FrameType CONTENTTYPE = new ID3FrameType("TCO", "TCON", "TCON", "Content Type"); public static final ID3FrameType ALBUM = new ID3FrameType("TAL", "TALB", "TALB", "Album/Movie/Show Title"); public static final ID3FrameType TRACKNUM = new ID3FrameType("TRK", "TRCK", "TRCK", "Track Number/Position In Set", new Integer(4)); public static final ID3FrameType PARTINSET = new ID3FrameType("TPA", "TPOS", "TPOS", "Part Of Set"); public static final ID3FrameType ISRC = new ID3FrameType("TRC", "TSRC", "TSRC", "International Standard Recording Code"); public static final ID3FrameType DATE = new ID3FrameType("TDA", "TDAT", (String) null, "Date"); public static final ID3FrameType YEAR = new ID3FrameType("TYE", "TYER", (String) null, "Year"); public static final ID3FrameType TIME = new ID3FrameType("TIM", "TIME", (String) null, "Time"); public static final ID3FrameType RECORDINGDATES = new ID3FrameType("TRD", "TRDA", (String) null, "Recording Dates"); public static final ID3FrameType RECORDINGTIME = new ID3FrameType((String) null, (String) null, "TDRC", "Recording Time"); public static final ID3FrameType ORIGYEAR = new ID3FrameType("TOR", "TORY", (String) null, "Original Release Year"); public static final ID3FrameType ORIGRELEASETIME = new ID3FrameType((String) null, (String) null, "TDOR", "Original Release Time"); public static final ID3FrameType BPM = new ID3FrameType("TBP", "TBPM", "TBPM", "Beats Per Minute"); public static final ID3FrameType MEDIATYPE = new ID3FrameType("TMT", "TMED", "TMED", "Media Type"); public static final ID3FrameType FILETYPE = new ID3FrameType("TFT", "TFLT", "TFLT", "File Type"); public static final ID3FrameType COPYRIGHT = new ID3FrameType("TCR", "TCOP", "TCOP", "Copyright Message"); public static final ID3FrameType PUBLISHER = new ID3FrameType("TPB", "TPUB", "TPUB", "Publisher"); public static final ID3FrameType ENCODEDBY = new ID3FrameType("TEN", "TENC", "TENC", "Encoded By"); public static final ID3FrameType ENCODERSETTINGS = new ID3FrameType("TSS", "TSSE", "TSSE", "Software/Hardware + Settings For Encoding"); public static final ID3FrameType SONGLEN = new ID3FrameType("TLE", "TLEN", "TLEN", "Length (Ms)"); public static final ID3FrameType SIZE = new ID3FrameType("TSI", "TSIZ", (String) null, "Size (Bytes)"); public static final ID3FrameType PLAYLISTDELAY = new ID3FrameType("TDY", "TDLY", "TDLY", "Playlist Delay"); public static final ID3FrameType INITIALKEY = new ID3FrameType("TKE", "TKEY", "TKEY", "Initial Key"); public static final ID3FrameType ORIGALBUM = new ID3FrameType("TOT", "TOAL", "TOAL", "Original Album/Movie/Show Title"); public static final ID3FrameType ORIGFILENAME = new ID3FrameType("TOF", "TOFN", "TOFN", "Original Filename"); public static final ID3FrameType ORIGARTIST = new ID3FrameType("TOA", "TOPE", "TOPE", "Original Artist(S)/Performer(S)"); public static final ID3FrameType ORIGLYRICIST = new ID3FrameType("TOL", "TOLY", "TOLY", "Original Lyricist(S)/Text Writer(S)"); public static final ID3FrameType FILEOWNER = new ID3FrameType((String) null, "TOWN", "TOWN", "File Owner/Licensee"); public static final ID3FrameType NETRADIOSTATION = new ID3FrameType((String) null, "TRSN", "TRSN", "Internet Radio Station Name"); public static final ID3FrameType NETRADIOOWNER = new ID3FrameType((String) null, "TRSO", "TRSO", "Internet Radio Station Owner"); public static final ID3FrameType SETSUBTITLE = new ID3FrameType((String) null, (String) null, "TSST", "Set Subtitle"); public static final ID3FrameType MOOD = new ID3FrameType((String) null, (String) null, "TMOO", "Mood"); public static final ID3FrameType PRODUCEDNOTICE = new ID3FrameType((String) null, (String) null, "TPRO", "Produced Notice"); public static final ID3FrameType ENCODINGTIME = new ID3FrameType((String) null, (String) null, "TDEN", "Encoding Time"); public static final ID3FrameType RELEASETIME = new ID3FrameType((String) null, (String) null, "TDRL", "Release Time"); public static final ID3FrameType TAGGINGTIME = new ID3FrameType((String) null, (String) null, "TDTG", "Tagging Time"); public static final ID3FrameType ALBUMSORTORDER = new ID3FrameType((String) null, (String) null, "TSOA", "Album Sort Order"); public static final ID3FrameType PERFORMERSORTORDER = new ID3FrameType((String) null, (String) null, "TSOP", "Performer Sort Order"); public static final ID3FrameType TITLESORTORDER = new ID3FrameType((String) null, (String) null, "TSOT", "Title Sort Order"); public static final ID3FrameType USERTEXT = new ID3FrameType("TXX", "TXXX", "TXXX", "User Defined Text Information Frame"); public static final ID3FrameType WWWAUDIOFILE = new ID3FrameType("WAF", "WOAF", "WOAF", "Official Audio File Webpage"); public static final ID3FrameType WWWARTIST = new ID3FrameType("WAR", "WOAR", "WOAR", "Official Artist/Performer Webpage"); public static final ID3FrameType WWWAUDIOSOURCE = new ID3FrameType("WAS", "WOAS", "WOAS", "Official Audion Source Webpage"); public static final ID3FrameType WWWCOMMERCIALINFO = new ID3FrameType("WCM", "WCOM", "WCOM", "Commercial Information"); public static final ID3FrameType WWWCOPYRIGHT = new ID3FrameType("WCP", "WCOP", "WCOP", "Copyright/Legal Information"); public static final ID3FrameType WWWPUBLISHER = new ID3FrameType("WPB", "WPUB", "WPUB", "Publishers Official Webpage"); public static final ID3FrameType WWWRADIOPAGE = new ID3FrameType((String) null, "WORS", "WORS", "Official Internet Radio Station Homepage"); public static final ID3FrameType WWWPAYMENT = new ID3FrameType((String) null, "WPAY", "WPAY", "Payment"); public static final ID3FrameType WWWUSER = new ID3FrameType("WXX", "WXXX", "WXXX", "User Defined Url Link Frame"); public static final ID3FrameType INVOLVEDPEOPLE = new ID3FrameType("IPL", "IPLS", (String) null, "Involved People List"); public static final ID3FrameType MUSICIANCREDITLIST = new ID3FrameType((String) null, (String) null, "TMCL", "Musician Credits List"); public static final ID3FrameType kINVOLVEDPEOPLE2 = new ID3FrameType((String) null, (String) null, "TIPL", "Involved People List"); public static final ID3FrameType UNSYNCEDLYRICS = new ID3FrameType("ULT", "USLT", "USLT", "Unsynchronised Lyrics/Text Transcription"); public static final ID3FrameType COMMENT = new ID3FrameType("COM", "COMM", "COMM", "Comments"); public static final ID3FrameType TERMSOFUSE = new ID3FrameType((String) null, "USER", "USER", "Terms Of Use"); public static final ID3FrameType UNIQUEFILEID = new ID3FrameType("UFI", "UFID", "UFID", "Unique File Identifier", new Integer(1)); public static final ID3FrameType CDID = new ID3FrameType("MCI", "MCDI", "MCDI", "Music Cd Identifier", new Integer(3)); public static final ID3FrameType EVENTTIMING = new ID3FrameType("ETC", "ETCO", "ETCO", "Event Timing Codes"); public static final ID3FrameType MPEGLOOKUP = new ID3FrameType("MLL", "MLLT", "MLLT", "Mpeg Location Lookup Table"); public static final ID3FrameType SYNCEDTEMPO = new ID3FrameType("STC", "SYTC", "SYTC", "Synchronised Tempo Codes"); public static final ID3FrameType SYNCEDLYRICS = new ID3FrameType("SLT", "SYLT", "SYLT", "Synchronised Lyrics/Text"); public static final ID3FrameType VOLUMEADJ = new ID3FrameType("RVA", "RVAD", (String) null, "Relative Volume Adjustment"); public static final ID3FrameType kVOLUMEADJ2 = new ID3FrameType((String) null, (String) null, "RVA2", "Relative Volume Adjustment (2)"); public static final ID3FrameType EQUALIZATION = new ID3FrameType("EQU", "EQUA", (String) null, "Equalization"); public static final ID3FrameType kEQUALIZATION2 = new ID3FrameType((String) null, (String) null, "EQU2", "Equalization (2)"); public static final ID3FrameType REVERB = new ID3FrameType("REV", "RVRB", "RVRB", "Reverb"); public static final ID3FrameType PICTURE = new ID3FrameType("PIC", "APIC", "APIC", "Attached Picture"); public static final ID3FrameType GENERALOBJECT = new ID3FrameType("GEO", "GEOB", "GEOB", "General Encapsulated Object"); public static final ID3FrameType PLAYCOUNTER = new ID3FrameType("CNT", "PCNT", "PCNT", "Play Counter"); public static final ID3FrameType POPULARIMETER = new ID3FrameType("POP", "POPM", "POPM", "Popularimeter"); public static final ID3FrameType BUFFERSIZE = new ID3FrameType("BUF", "RBUF", "RBUF", "Recommended Buffer Size"); public static final ID3FrameType CRYPTEDMETA = new ID3FrameType("CRM", (String) null, (String) null, "Encrypted Meta Frame"); public static final ID3FrameType AUDIOCRYPTO = new ID3FrameType("CRA", "AENC", "AENC", "Audio Encryption"); public static final ID3FrameType LINKEDINFO = new ID3FrameType("LNK", "LINK", "LINK", "Linked Information"); public static final ID3FrameType POSITIONSYNC = new ID3FrameType((String) null, "POSS", "POSS", "Position Synchronisation Frame"); public static final ID3FrameType COMMERCIAL = new ID3FrameType((String) null, "COMR", "COMR", "Commercial Frame"); public static final ID3FrameType CRYPTOREG = new ID3FrameType((String) null, "ENCR", "ENCR", "Encryption Method Registration"); public static final ID3FrameType GROUPINGREG = new ID3FrameType((String) null, "GRID", "GRID", "Group Indentification Registration"); public static final ID3FrameType PRIVATE = new ID3FrameType((String) null, "PRIV", "PRIV", "Private Frame"); public static final ID3FrameType OWNERSHIP = new ID3FrameType((String) null, "OWNE", "OWNE", "Ownership Frame"); public static final ID3FrameType SIGNATURE = new ID3FrameType((String) null, (String) null, "SIGN", "Signature Frame"); public static final ID3FrameType SEEKFRAME = new ID3FrameType((String) null, (String) null, "SEEK", "Seek Frame"); public static final ID3FrameType AUDIOSEEKPOINT = new ID3FrameType((String) null, (String) null, "ASPI", "Audio Seek Point Index"); public static final ID3FrameType[] kALL; private static final Map kMap; static { kALL = new ID3FrameType[]{GENRE_ID, CONTENT_GROUP, TITLE, SUBTITLE, ARTIST, BAND, CONDUCTOR, MIXARTIST, COMPOSER, LYRICIST, LANGUAGE, CONTENTTYPE, ALBUM, TRACKNUM, PARTINSET, ISRC, DATE, YEAR, TIME, RECORDINGDATES, RECORDINGTIME, ORIGYEAR, ORIGRELEASETIME, BPM, MEDIATYPE, FILETYPE, COPYRIGHT, PUBLISHER, ENCODEDBY, ENCODERSETTINGS, SONGLEN, SIZE, PLAYLISTDELAY, INITIALKEY, ORIGALBUM, ORIGFILENAME, ORIGARTIST, ORIGLYRICIST, FILEOWNER, NETRADIOSTATION, NETRADIOOWNER, SETSUBTITLE, MOOD, PRODUCEDNOTICE, ENCODINGTIME, RELEASETIME, TAGGINGTIME, ALBUMSORTORDER, PERFORMERSORTORDER, TITLESORTORDER, USERTEXT, WWWAUDIOFILE, WWWARTIST, WWWAUDIOSOURCE, WWWCOMMERCIALINFO, WWWCOPYRIGHT, WWWPUBLISHER, WWWRADIOPAGE, WWWPAYMENT, WWWUSER, INVOLVEDPEOPLE, MUSICIANCREDITLIST, kINVOLVEDPEOPLE2, UNSYNCEDLYRICS, COMMENT, TERMSOFUSE, UNIQUEFILEID, CDID, EVENTTIMING, MPEGLOOKUP, SYNCEDTEMPO, SYNCEDLYRICS, VOLUMEADJ, kVOLUMEADJ2, EQUALIZATION, kEQUALIZATION2, REVERB, PICTURE, GENERALOBJECT, PLAYCOUNTER, POPULARIMETER, BUFFERSIZE, CRYPTEDMETA, AUDIOCRYPTO, LINKEDINFO, POSITIONSYNC, COMMERCIAL, CRYPTOREG, GROUPINGREG, PRIVATE, OWNERSHIP, SIGNATURE, SEEKFRAME, AUDIOSEEKPOINT}; kMap = new Hashtable(); try { for (final ID3FrameType aKALL : kALL) { if (aKALL.short_id != null) { kMap.put(aKALL.short_id, aKALL); } if (aKALL.long_id != null) { kMap.put(aKALL.long_id, aKALL); } } } catch (Throwable ignored) { } } private static Number getFrameOrder(String short_id, String long_id_1, String long_id_2) { try { String e = long_id_1; if (long_id_1 == null) { e = long_id_2; } if (e == null) { e = short_id; } return e == null ? DEFAULT_FRAME_ORDER : (e.charAt(0) == 84 ? TEXT_FRAME_ORDER : DEFAULT_FRAME_ORDER); } catch (Throwable var4) { return DEFAULT_FRAME_ORDER; } } public ID3FrameType(String short_id, String long_id_1, String long_id_2, String description) { this(short_id, long_id_1, long_id_2, description, getFrameOrder(short_id, long_id_1, long_id_2)); } public ID3FrameType(String short_id, String long_id_1, String long_id_2, String description, Number frame_order) { this.frame_order = frame_order; this.description = description; if (short_id == null || short_id.length() == 0) { short_id = null; } if (long_id_1 == null || long_id_1.length() == 0) { long_id_1 = null; } if (long_id_2 == null || long_id_2.length() == 0) { long_id_2 = null; } this.short_id = short_id; this.long_id = long_id_1 == null ? long_id_2 : long_id_1; if (long_id_1 != null && long_id_2 != null && long_id_1 != long_id_2) { throw new Error("long_id_1: " + long_id_1 + ", long_id_2: " + long_id_2); } } public ID3FrameType(String frame_id, String description) { this.description = description; this.long_id = frame_id; this.short_id = null; this.frame_order = DEFAULT_FRAME_ORDER; } public Number getFrameOrder() { return this.frame_order; } public String toString() { return "{ " + this.short_id + " / " + this.long_id + ": " + this.description + " }"; } public boolean matches(String s) { return this.long_id != null && this.long_id.equalsIgnoreCase(s) || this.short_id != null && this.short_id.equalsIgnoreCase(s); } public static ID3FrameType get(String id) { return (ID3FrameType) kMap.get(id); } }