Coverage Report - org.jaudiotagger.tag.id3.ID3v24Frames
 
Classes in this File Line Coverage Branch Coverage Complexity
ID3v24Frames
100%
249/249
100%
2/2
0
 
 1  
 /*
 2  
  * Jaudiotagger Copyright (C)2004,2005
 3  
  *
 4  
  * This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser
 5  
  * General Public  License as published by the Free Software Foundation; either version 2.1 of the License,
 6  
  * or (at your option) any later version.
 7  
  *
 8  
  * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
 9  
  * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 10  
  * See the GNU Lesser General Public License for more details.
 11  
  *
 12  
  * You should have received a copy of the GNU Lesser General Public License along with this library; if not,
 13  
  * you can get a copy from http://www.opensource.org/licenses/lgpl-license.php or write to the Free Software
 14  
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 15  
  */
 16  
 package org.jaudiotagger.tag.id3;
 17  
 
 18  
 import org.jaudiotagger.tag.TagFieldKey;
 19  
 
 20  
 import java.util.EnumMap;
 21  
 
 22  
 /**
 23  
  * Defines ID3v24 frames and collections that categorise frames.
 24  
  * <p/>
 25  
  * <p>You can include frames here that are not officially supported as long as they can be used within an
 26  
  * ID3v24Tag
 27  
  *
 28  
  * @author Paul Taylor
 29  
  * @version $Id: ID3v24Frames.java,v 1.16 2008/12/05 11:11:56 paultaylor Exp $
 30  
  */
 31  
 public class ID3v24Frames extends ID3Frames
 32  
 {
 33  
     /**
 34  
      * Frame IDs begining with T are text frames, & with W are url frames
 35  
      */
 36  
     public static final String FRAME_ID_ACCOMPANIMENT = "TPE2";
 37  
     public static final String FRAME_ID_ALBUM = "TALB";
 38  
     public static final String FRAME_ID_ALBUM_SORT_ORDER = "TSOA";
 39  
     public static final String FRAME_ID_ARTIST = "TPE1";
 40  
     public static final String FRAME_ID_ATTACHED_PICTURE = "APIC";
 41  
     public static final String FRAME_ID_AUDIO_ENCRYPTION = "AENC";
 42  
     public static final String FRAME_ID_AUDIO_SEEK_POINT_INDEX = "ASPI";
 43  
     public static final String FRAME_ID_BPM = "TBPM";
 44  
     public static final String FRAME_ID_COMMENT = "COMM";
 45  
     public static final String FRAME_ID_COMMERCIAL_FRAME = "COMR";
 46  
     public static final String FRAME_ID_COMPOSER = "TCOM";
 47  
     public static final String FRAME_ID_CONDUCTOR = "TPE3";
 48  
     public static final String FRAME_ID_CONTENT_GROUP_DESC = "TIT1";
 49  
     public static final String FRAME_ID_COPYRIGHTINFO = "TCOP";
 50  
     public static final String FRAME_ID_ENCODEDBY = "TENC";
 51  
     public static final String FRAME_ID_ENCODING_TIME = "TDEN";
 52  
     public static final String FRAME_ID_ENCRYPTION = "ENCR";
 53  
     public static final String FRAME_ID_EQUALISATION2 = "EQU2";
 54  
     public static final String FRAME_ID_EVENT_TIMING_CODES = "ETCO";
 55  
     public static final String FRAME_ID_FILE_OWNER = "TOWN";
 56  
     public static final String FRAME_ID_FILE_TYPE = "TFLT";
 57  
     public static final String FRAME_ID_GENERAL_ENCAPS_OBJECT = "GEOB";
 58  
     public static final String FRAME_ID_GENRE = "TCON";
 59  
     public static final String FRAME_ID_GROUP_ID_REG = "GRID";
 60  
     public static final String FRAME_ID_HW_SW_SETTINGS = "TSSE";
 61  
     public static final String FRAME_ID_INITIAL_KEY = "TKEY";
 62  
     public static final String FRAME_ID_INVOLVED_PEOPLE = "TIPL";
 63  
     public static final String FRAME_ID_ISRC = "TSRC";
 64  
     public static final String FRAME_ID_LANGUAGE = "TLAN";
 65  
     public static final String FRAME_ID_LENGTH = "TLEN";
 66  
     public static final String FRAME_ID_LINKED_INFO = "LINK";
 67  
     public static final String FRAME_ID_LYRICIST = "TEXT";
 68  
     public static final String FRAME_ID_MEDIA_TYPE = "TMED";
 69  
     public static final String FRAME_ID_MOOD = "TMOO";
 70  
     public static final String FRAME_ID_MPEG_LOCATION_LOOKUP_TABLE = "MLLT";
 71  
     public static final String FRAME_ID_MUSICIAN_CREDITS = "TMCL";
 72  
     public static final String FRAME_ID_MUSIC_CD_ID = "MCDI";
 73  
     public static final String FRAME_ID_ORIGARTIST = "TOPE";
 74  
     public static final String FRAME_ID_ORIGINAL_RELEASE_TIME = "TDOR";
 75  
     public static final String FRAME_ID_ORIG_FILENAME = "TOFN";
 76  
     public static final String FRAME_ID_ORIG_LYRICIST = "TOLY";
 77  
     public static final String FRAME_ID_ORIG_TITLE = "TOAL";
 78  
     public static final String FRAME_ID_OWNERSHIP = "OWNE";
 79  
     public static final String FRAME_ID_ARTIST_SORT_ORDER = "TSOP";
 80  
     public static final String FRAME_ID_PLAYLIST_DELAY = "TDLY";
 81  
     public static final String FRAME_ID_PLAY_COUNTER = "PCNT";
 82  
     public static final String FRAME_ID_POPULARIMETER = "POPM";
 83  
     public static final String FRAME_ID_POSITION_SYNC = "POSS";
 84  
     public static final String FRAME_ID_PRIVATE = "PRIV";
 85  
     public static final String FRAME_ID_PRODUCED_NOTICE = "TPRO";
 86  
     public static final String FRAME_ID_PUBLISHER = "TPUB";
 87  
     public static final String FRAME_ID_RADIO_NAME = "TRSN";
 88  
     public static final String FRAME_ID_RADIO_OWNER = "TRSO";
 89  
     public static final String FRAME_ID_RECOMMENDED_BUFFER_SIZE = "RBUF";
 90  
     public static final String FRAME_ID_RELATIVE_VOLUME_ADJUSTMENT2 = "RVA2";
 91  
     public static final String FRAME_ID_RELEASE_TIME = "TDRL";
 92  
     public static final String FRAME_ID_REMIXED = "TPE4";
 93  
     public static final String FRAME_ID_REVERB = "RVRB";
 94  
     public static final String FRAME_ID_SEEK = "SEEK";
 95  
     public static final String FRAME_ID_SET = "TPOS";
 96  
     public static final String FRAME_ID_SET_SUBTITLE = "TSST";
 97  
     public static final String FRAME_ID_SIGNATURE = "SIGN";
 98  
     public static final String FRAME_ID_SYNC_LYRIC = "SYLT";
 99  
     public static final String FRAME_ID_SYNC_TEMPO = "SYTC";
 100  
     public static final String FRAME_ID_TAGGING_TIME = "TDTG";
 101  
     public static final String FRAME_ID_TERMS_OF_USE = "USER";
 102  
     public static final String FRAME_ID_TITLE = "TIT2";
 103  
     public static final String FRAME_ID_TITLE_REFINEMENT = "TIT3";
 104  
     public static final String FRAME_ID_TITLE_SORT_ORDER = "TSOT";
 105  
     public static final String FRAME_ID_TRACK = "TRCK";
 106  
     public static final String FRAME_ID_UNIQUE_FILE_ID = "UFID";
 107  
     public static final String FRAME_ID_UNSYNC_LYRICS = "USLT";
 108  
     public static final String FRAME_ID_URL_ARTIST_WEB = "WOAR";
 109  
     public static final String FRAME_ID_URL_COMMERCIAL = "WCOM";
 110  
     public static final String FRAME_ID_URL_COPYRIGHT = "WCOP";
 111  
     public static final String FRAME_ID_URL_FILE_WEB = "WOAF";
 112  
     public static final String FRAME_ID_URL_OFFICIAL_RADIO = "WORS";
 113  
     public static final String FRAME_ID_URL_PAYMENT = "WPAY";
 114  
     public static final String FRAME_ID_URL_PUBLISHERS = "WPUB";
 115  
     public static final String FRAME_ID_URL_SOURCE_WEB = "WOAS";
 116  
     public static final String FRAME_ID_USER_DEFINED_INFO = "TXXX";
 117  
     public static final String FRAME_ID_USER_DEFINED_URL = "WXXX";
 118  
     public static final String FRAME_ID_YEAR = "TDRC";
 119  
 
 120  
     public static final String FRAME_ID_ALBUM_ARTIST_SORT_ORDER_ITUNES = "TSO2";
 121  
     public static final String FRAME_ID_COMPOSER_SORT_ORDER_ITUNES = "TSOC";
 122  
     public static final String FRAME_ID_IS_COMPILATION = "TCMP";
 123  
 
 124  
     //TODO this is temporary to provide backwards compatability
 125  
     public static final String FRAME_ID_PERFORMER_SORT_OWNER = FRAME_ID_ARTIST_SORT_ORDER;
 126  
     public static final String FRAME_ID_TITLE_SORT_OWNER = FRAME_ID_TITLE_SORT_ORDER;
 127  
 
 128  43
     protected EnumMap<TagFieldKey, ID3v24FieldKey> tagFieldToId3 = new EnumMap<TagFieldKey, ID3v24FieldKey>(TagFieldKey.class);
 129  
 
 130  
     private static ID3v24Frames id3v24Frames;
 131  
 
 132  
     public static ID3v24Frames getInstanceOf()
 133  
     {
 134  4895
         if (id3v24Frames == null)
 135  
         {
 136  43
             id3v24Frames = new ID3v24Frames();
 137  
         }
 138  4895
         return id3v24Frames;
 139  
     }
 140  
 
 141  
     private ID3v24Frames()
 142  43
     {
 143  43
         supportedFrames.add(FRAME_ID_ACCOMPANIMENT);
 144  43
         supportedFrames.add(FRAME_ID_ALBUM);
 145  43
         supportedFrames.add(FRAME_ID_ALBUM_SORT_ORDER);
 146  43
         supportedFrames.add(FRAME_ID_ARTIST);
 147  43
         supportedFrames.add(FRAME_ID_ATTACHED_PICTURE);
 148  43
         supportedFrames.add(FRAME_ID_AUDIO_ENCRYPTION);
 149  43
         supportedFrames.add(FRAME_ID_AUDIO_SEEK_POINT_INDEX);
 150  43
         supportedFrames.add(FRAME_ID_BPM);
 151  43
         supportedFrames.add(FRAME_ID_COMMENT);
 152  43
         supportedFrames.add(FRAME_ID_COMMERCIAL_FRAME);
 153  43
         supportedFrames.add(FRAME_ID_COMPOSER);
 154  43
         supportedFrames.add(FRAME_ID_CONDUCTOR);
 155  43
         supportedFrames.add(FRAME_ID_CONTENT_GROUP_DESC);
 156  43
         supportedFrames.add(FRAME_ID_COPYRIGHTINFO);
 157  43
         supportedFrames.add(FRAME_ID_ENCODEDBY);
 158  43
         supportedFrames.add(FRAME_ID_ENCODING_TIME);
 159  43
         supportedFrames.add(FRAME_ID_ENCRYPTION);
 160  43
         supportedFrames.add(FRAME_ID_EQUALISATION2);
 161  43
         supportedFrames.add(FRAME_ID_EVENT_TIMING_CODES);
 162  43
         supportedFrames.add(FRAME_ID_FILE_OWNER);
 163  43
         supportedFrames.add(FRAME_ID_FILE_TYPE);
 164  43
         supportedFrames.add(FRAME_ID_GENERAL_ENCAPS_OBJECT);
 165  43
         supportedFrames.add(FRAME_ID_GENRE);
 166  43
         supportedFrames.add(FRAME_ID_GROUP_ID_REG);
 167  43
         supportedFrames.add(FRAME_ID_HW_SW_SETTINGS);
 168  43
         supportedFrames.add(FRAME_ID_INITIAL_KEY);
 169  43
         supportedFrames.add(FRAME_ID_INVOLVED_PEOPLE);
 170  43
         supportedFrames.add(FRAME_ID_ISRC);
 171  43
         supportedFrames.add(FRAME_ID_LANGUAGE);
 172  43
         supportedFrames.add(FRAME_ID_LENGTH);
 173  43
         supportedFrames.add(FRAME_ID_LINKED_INFO);
 174  43
         supportedFrames.add(FRAME_ID_LYRICIST);
 175  43
         supportedFrames.add(FRAME_ID_MEDIA_TYPE);
 176  43
         supportedFrames.add(FRAME_ID_MOOD);
 177  43
         supportedFrames.add(FRAME_ID_MPEG_LOCATION_LOOKUP_TABLE);
 178  43
         supportedFrames.add(FRAME_ID_MUSIC_CD_ID);
 179  43
         supportedFrames.add(FRAME_ID_ORIGARTIST);
 180  43
         supportedFrames.add(FRAME_ID_ORIGINAL_RELEASE_TIME);
 181  43
         supportedFrames.add(FRAME_ID_ORIG_FILENAME);
 182  43
         supportedFrames.add(FRAME_ID_ORIG_LYRICIST);
 183  43
         supportedFrames.add(FRAME_ID_ORIG_TITLE);
 184  43
         supportedFrames.add(FRAME_ID_OWNERSHIP);
 185  43
         supportedFrames.add(FRAME_ID_ARTIST_SORT_ORDER);
 186  43
         supportedFrames.add(FRAME_ID_PLAYLIST_DELAY);
 187  43
         supportedFrames.add(FRAME_ID_PLAY_COUNTER);
 188  43
         supportedFrames.add(FRAME_ID_POPULARIMETER);
 189  43
         supportedFrames.add(FRAME_ID_POSITION_SYNC);
 190  43
         supportedFrames.add(FRAME_ID_PRIVATE);
 191  43
         supportedFrames.add(FRAME_ID_PRODUCED_NOTICE);
 192  43
         supportedFrames.add(FRAME_ID_PUBLISHER);
 193  43
         supportedFrames.add(FRAME_ID_RADIO_NAME);
 194  43
         supportedFrames.add(FRAME_ID_RADIO_OWNER);
 195  43
         supportedFrames.add(FRAME_ID_RECOMMENDED_BUFFER_SIZE);
 196  43
         supportedFrames.add(FRAME_ID_RELATIVE_VOLUME_ADJUSTMENT2);
 197  43
         supportedFrames.add(FRAME_ID_RELEASE_TIME);
 198  43
         supportedFrames.add(FRAME_ID_REMIXED);
 199  43
         supportedFrames.add(FRAME_ID_REVERB);
 200  43
         supportedFrames.add(FRAME_ID_SEEK);
 201  43
         supportedFrames.add(FRAME_ID_SET);
 202  43
         supportedFrames.add(FRAME_ID_SET_SUBTITLE);
 203  43
         supportedFrames.add(FRAME_ID_SIGNATURE);
 204  43
         supportedFrames.add(FRAME_ID_SYNC_LYRIC);
 205  43
         supportedFrames.add(FRAME_ID_SYNC_TEMPO);
 206  43
         supportedFrames.add(FRAME_ID_TAGGING_TIME);
 207  43
         supportedFrames.add(FRAME_ID_TERMS_OF_USE);
 208  43
         supportedFrames.add(FRAME_ID_TITLE);
 209  43
         supportedFrames.add(FRAME_ID_TITLE_REFINEMENT);
 210  43
         supportedFrames.add(FRAME_ID_TITLE_SORT_ORDER);
 211  43
         supportedFrames.add(FRAME_ID_TRACK);
 212  43
         supportedFrames.add(FRAME_ID_UNIQUE_FILE_ID);
 213  43
         supportedFrames.add(FRAME_ID_UNSYNC_LYRICS);
 214  43
         supportedFrames.add(FRAME_ID_URL_ARTIST_WEB);
 215  43
         supportedFrames.add(FRAME_ID_URL_COMMERCIAL);
 216  43
         supportedFrames.add(FRAME_ID_URL_COPYRIGHT);
 217  43
         supportedFrames.add(FRAME_ID_URL_FILE_WEB);
 218  43
         supportedFrames.add(FRAME_ID_URL_OFFICIAL_RADIO);
 219  43
         supportedFrames.add(FRAME_ID_URL_PAYMENT);
 220  43
         supportedFrames.add(FRAME_ID_URL_PUBLISHERS);
 221  43
         supportedFrames.add(FRAME_ID_URL_SOURCE_WEB);
 222  43
         supportedFrames.add(FRAME_ID_USER_DEFINED_INFO);
 223  43
         supportedFrames.add(FRAME_ID_USER_DEFINED_URL);
 224  43
         supportedFrames.add(FRAME_ID_YEAR);
 225  
 
 226  
         //Extension
 227  43
         extensionFrames.add(FRAME_ID_IS_COMPILATION);
 228  43
         extensionFrames.add(FRAME_ID_ALBUM_ARTIST_SORT_ORDER_ITUNES);
 229  43
         extensionFrames.add(FRAME_ID_COMPOSER_SORT_ORDER_ITUNES);
 230  
 
 231  
         //Common
 232  43
         commonFrames.add(FRAME_ID_ARTIST);
 233  43
         commonFrames.add(FRAME_ID_ALBUM);
 234  43
         commonFrames.add(FRAME_ID_TITLE);
 235  43
         commonFrames.add(FRAME_ID_GENRE);
 236  43
         commonFrames.add(FRAME_ID_TRACK);
 237  43
         commonFrames.add(FRAME_ID_YEAR);
 238  43
         commonFrames.add(FRAME_ID_COMMENT);
 239  
 
 240  
         //Binary
 241  43
         binaryFrames.add(FRAME_ID_ATTACHED_PICTURE);
 242  43
         binaryFrames.add(FRAME_ID_AUDIO_ENCRYPTION);
 243  43
         binaryFrames.add(FRAME_ID_ENCRYPTION);
 244  43
         binaryFrames.add(FRAME_ID_EQUALISATION2);
 245  43
         binaryFrames.add(FRAME_ID_EVENT_TIMING_CODES);
 246  43
         binaryFrames.add(FRAME_ID_GENERAL_ENCAPS_OBJECT);
 247  43
         binaryFrames.add(FRAME_ID_RELATIVE_VOLUME_ADJUSTMENT2);
 248  43
         binaryFrames.add(FRAME_ID_RECOMMENDED_BUFFER_SIZE);
 249  43
         binaryFrames.add(FRAME_ID_UNIQUE_FILE_ID);
 250  
         // Map frameid to a name
 251  43
         idToValue.put(FRAME_ID_ACCOMPANIMENT, "Text: Band/Orchestra/Accompaniment");
 252  43
         idToValue.put(FRAME_ID_ALBUM, "Text: Album/Movie/Show title");
 253  43
         idToValue.put(FRAME_ID_ALBUM_SORT_ORDER, "Album sort order");
 254  43
         idToValue.put(FRAME_ID_ARTIST, "Text: Lead artist(s)/Lead performer(s)/Soloist(s)/Performing group");
 255  43
         idToValue.put(FRAME_ID_ATTACHED_PICTURE, "Attached picture");
 256  43
         idToValue.put(FRAME_ID_AUDIO_ENCRYPTION, "Audio encryption");
 257  43
         idToValue.put(FRAME_ID_AUDIO_SEEK_POINT_INDEX, "Audio seek point index");
 258  43
         idToValue.put(FRAME_ID_BPM, "Text: BPM (Beats Per Minute)");
 259  43
         idToValue.put(FRAME_ID_COMMENT, "Comments");
 260  43
         idToValue.put(FRAME_ID_COMMERCIAL_FRAME, "Commercial Frame");
 261  43
         idToValue.put(FRAME_ID_COMPOSER, "Text: Composer");
 262  43
         idToValue.put(FRAME_ID_CONDUCTOR, "Text: Conductor/Performer refinement");
 263  43
         idToValue.put(FRAME_ID_CONTENT_GROUP_DESC, "Text: Content group description");
 264  43
         idToValue.put(FRAME_ID_COPYRIGHTINFO, "Text: Copyright message");
 265  43
         idToValue.put(FRAME_ID_ENCODEDBY, "Text: Encoded by");
 266  43
         idToValue.put(FRAME_ID_ENCODING_TIME, "Text: Encoding time");
 267  43
         idToValue.put(FRAME_ID_ENCRYPTION, "Encryption method registration");
 268  43
         idToValue.put(FRAME_ID_EQUALISATION2, "Equalization (2)");
 269  43
         idToValue.put(FRAME_ID_EVENT_TIMING_CODES, "Event timing codes");
 270  43
         idToValue.put(FRAME_ID_FILE_OWNER, "Text:File Owner");
 271  43
         idToValue.put(FRAME_ID_FILE_TYPE, "Text: File type");
 272  43
         idToValue.put(FRAME_ID_GENERAL_ENCAPS_OBJECT, "General encapsulated datatype");
 273  43
         idToValue.put(FRAME_ID_GENRE, "Text: Content type");
 274  43
         idToValue.put(FRAME_ID_GROUP_ID_REG, "Group ID Registration");
 275  43
         idToValue.put(FRAME_ID_HW_SW_SETTINGS, "Text: Software/hardware and settings used for encoding");
 276  43
         idToValue.put(FRAME_ID_INITIAL_KEY, "Text: Initial key");
 277  43
         idToValue.put(FRAME_ID_INVOLVED_PEOPLE, "Involved people list");
 278  43
         idToValue.put(FRAME_ID_ISRC, "Text: ISRC (International Standard Recording Code)");
 279  43
         idToValue.put(FRAME_ID_LANGUAGE, "Text: Language(s)");
 280  43
         idToValue.put(FRAME_ID_LENGTH, "Text: Length");
 281  43
         idToValue.put(FRAME_ID_LINKED_INFO, "Linked information");
 282  43
         idToValue.put(FRAME_ID_LYRICIST, "Text: Lyricist/text writer");
 283  43
         idToValue.put(FRAME_ID_MEDIA_TYPE, "Text: Media type");
 284  43
         idToValue.put(FRAME_ID_MOOD, "Text: Mood");
 285  43
         idToValue.put(FRAME_ID_MPEG_LOCATION_LOOKUP_TABLE, "MPEG location lookup table");
 286  43
         idToValue.put(FRAME_ID_MUSIC_CD_ID, "Music CD Identifier");
 287  43
         idToValue.put(FRAME_ID_ORIGARTIST, "Text: Original artist(s)/performer(s)");
 288  43
         idToValue.put(FRAME_ID_ORIGINAL_RELEASE_TIME, "Text: Original release time");
 289  43
         idToValue.put(FRAME_ID_ORIG_FILENAME, "Text: Original filename");
 290  43
         idToValue.put(FRAME_ID_ORIG_LYRICIST, "Text: Original Lyricist(s)/text writer(s)");
 291  43
         idToValue.put(FRAME_ID_ORIG_TITLE, "Text: Original album/Movie/Show title");
 292  43
         idToValue.put(FRAME_ID_OWNERSHIP, "Ownership");
 293  43
         idToValue.put(FRAME_ID_ARTIST_SORT_ORDER, "Performance Sort Order");
 294  43
         idToValue.put(FRAME_ID_PLAYLIST_DELAY, "Text: Playlist delay");
 295  43
         idToValue.put(FRAME_ID_PLAY_COUNTER, "Play counter");
 296  43
         idToValue.put(FRAME_ID_POPULARIMETER, "Popularimeter");
 297  43
         idToValue.put(FRAME_ID_POSITION_SYNC, "Position Sync");
 298  43
         idToValue.put(FRAME_ID_PRIVATE, "Private frame");
 299  43
         idToValue.put(FRAME_ID_PRODUCED_NOTICE, "Produced Notice");
 300  43
         idToValue.put(FRAME_ID_PUBLISHER, "Text: Publisher");
 301  43
         idToValue.put(FRAME_ID_RADIO_NAME, "Text: Radio Name");
 302  43
         idToValue.put(FRAME_ID_RADIO_OWNER, "Text: Radio Owner");
 303  43
         idToValue.put(FRAME_ID_RECOMMENDED_BUFFER_SIZE, "Recommended buffer size");
 304  43
         idToValue.put(FRAME_ID_RELATIVE_VOLUME_ADJUSTMENT2, "Relative volume adjustment(2)");
 305  43
         idToValue.put(FRAME_ID_RELEASE_TIME, "Release Time");
 306  43
         idToValue.put(FRAME_ID_REMIXED, "Text: Interpreted, remixed, or otherwise modified by");
 307  43
         idToValue.put(FRAME_ID_REVERB, "Reverb");
 308  43
         idToValue.put(FRAME_ID_SEEK, "Seek");
 309  43
         idToValue.put(FRAME_ID_SET, "Text: Part of a set");
 310  43
         idToValue.put(FRAME_ID_SET_SUBTITLE, "Text: Set subtitle");
 311  43
         idToValue.put(FRAME_ID_SIGNATURE, "Signature");
 312  43
         idToValue.put(FRAME_ID_SYNC_LYRIC, "Synchronized lyric/text");
 313  43
         idToValue.put(FRAME_ID_SYNC_TEMPO, "Synced tempo codes");
 314  43
         idToValue.put(FRAME_ID_TAGGING_TIME, "Text: Tagaging time");
 315  43
         idToValue.put(FRAME_ID_TERMS_OF_USE, "Terms of Use");
 316  43
         idToValue.put(FRAME_ID_TITLE, "Text: title");
 317  43
         idToValue.put(FRAME_ID_TITLE_REFINEMENT, "Text: Subtitle/Description refinement");
 318  43
         idToValue.put(FRAME_ID_TITLE_SORT_ORDER, "Text: title sort order");
 319  43
         idToValue.put(FRAME_ID_TRACK, "Text: Track number/Position in set");
 320  43
         idToValue.put(FRAME_ID_UNIQUE_FILE_ID, "Unique file identifier");
 321  43
         idToValue.put(FRAME_ID_UNSYNC_LYRICS, "Unsychronized lyric/text transcription");
 322  43
         idToValue.put(FRAME_ID_URL_ARTIST_WEB, "URL: Official artist/performer webpage");
 323  43
         idToValue.put(FRAME_ID_URL_COMMERCIAL, "URL: Commercial information");
 324  43
         idToValue.put(FRAME_ID_URL_COPYRIGHT, "URL: Copyright/Legal information");
 325  43
         idToValue.put(FRAME_ID_URL_FILE_WEB, "URL: Official audio file webpage");
 326  43
         idToValue.put(FRAME_ID_URL_OFFICIAL_RADIO, "URL: Official Radio website");
 327  43
         idToValue.put(FRAME_ID_URL_PAYMENT, "URL: Payment for this recording ");
 328  43
         idToValue.put(FRAME_ID_URL_PUBLISHERS, "URL: Publishers official webpage");
 329  43
         idToValue.put(FRAME_ID_URL_SOURCE_WEB, "URL: Official audio source webpage");
 330  43
         idToValue.put(FRAME_ID_USER_DEFINED_INFO, "User defined text information frame");
 331  43
         idToValue.put(FRAME_ID_USER_DEFINED_URL, "User defined URL link frame");
 332  43
         idToValue.put(FRAME_ID_YEAR, "Text:Year");
 333  43
         idToValue.put(FRAME_ID_IS_COMPILATION, "Is Compilation");
 334  43
         idToValue.put(FRAME_ID_ALBUM_ARTIST_SORT_ORDER_ITUNES, "Text:Album Artist Sort Order Frame");
 335  43
         idToValue.put(FRAME_ID_COMPOSER_SORT_ORDER_ITUNES, "Text:Composer Sort Order Frame");
 336  
 
 337  
 
 338  43
         createMaps();
 339  
 
 340  43
         multipleFrames.add(FRAME_ID_USER_DEFINED_INFO);
 341  43
         multipleFrames.add(FRAME_ID_USER_DEFINED_URL);
 342  43
         multipleFrames.add(FRAME_ID_ATTACHED_PICTURE);
 343  43
         multipleFrames.add(FRAME_ID_PRIVATE);
 344  43
         multipleFrames.add(FRAME_ID_COMMENT);
 345  43
         multipleFrames.add(FRAME_ID_UNIQUE_FILE_ID);
 346  43
         multipleFrames.add(FRAME_ID_UNSYNC_LYRICS);
 347  43
         multipleFrames.add(FRAME_ID_POPULARIMETER);
 348  
 
 349  43
         discardIfFileAlteredFrames.add(FRAME_ID_EVENT_TIMING_CODES);
 350  43
         discardIfFileAlteredFrames.add(FRAME_ID_MPEG_LOCATION_LOOKUP_TABLE);
 351  43
         discardIfFileAlteredFrames.add(FRAME_ID_POSITION_SYNC);
 352  43
         discardIfFileAlteredFrames.add(FRAME_ID_SYNC_LYRIC);
 353  43
         discardIfFileAlteredFrames.add(FRAME_ID_SYNC_TEMPO);
 354  43
         discardIfFileAlteredFrames.add(FRAME_ID_EVENT_TIMING_CODES);
 355  43
         discardIfFileAlteredFrames.add(FRAME_ID_ENCODEDBY);
 356  43
         discardIfFileAlteredFrames.add(FRAME_ID_LENGTH);
 357  
 
 358  43
         tagFieldToId3.put(TagFieldKey.ARTIST, ID3v24FieldKey.ARTIST);
 359  43
         tagFieldToId3.put(TagFieldKey.ALBUM, ID3v24FieldKey.ALBUM);
 360  43
         tagFieldToId3.put(TagFieldKey.TITLE, ID3v24FieldKey.TITLE);
 361  43
         tagFieldToId3.put(TagFieldKey.TRACK, ID3v24FieldKey.TRACK);
 362  43
         tagFieldToId3.put(TagFieldKey.YEAR, ID3v24FieldKey.YEAR);
 363  43
         tagFieldToId3.put(TagFieldKey.GENRE, ID3v24FieldKey.GENRE);
 364  43
         tagFieldToId3.put(TagFieldKey.COMMENT, ID3v24FieldKey.COMMENT);
 365  43
         tagFieldToId3.put(TagFieldKey.ALBUM_ARTIST, ID3v24FieldKey.ALBUM_ARTIST);
 366  43
         tagFieldToId3.put(TagFieldKey.COMPOSER, ID3v24FieldKey.COMPOSER);
 367  43
         tagFieldToId3.put(TagFieldKey.GROUPING, ID3v24FieldKey.GROUPING);
 368  43
         tagFieldToId3.put(TagFieldKey.DISC_NO, ID3v24FieldKey.DISC_NO);
 369  43
         tagFieldToId3.put(TagFieldKey.BPM, ID3v24FieldKey.BPM);
 370  43
         tagFieldToId3.put(TagFieldKey.ENCODER, ID3v24FieldKey.ENCODER);
 371  43
         tagFieldToId3.put(TagFieldKey.MUSICBRAINZ_ARTISTID, ID3v24FieldKey.MUSICBRAINZ_ARTISTID);
 372  43
         tagFieldToId3.put(TagFieldKey.MUSICBRAINZ_RELEASEID, ID3v24FieldKey.MUSICBRAINZ_RELEASEID);
 373  43
         tagFieldToId3.put(TagFieldKey.MUSICBRAINZ_RELEASEARTISTID, ID3v24FieldKey.MUSICBRAINZ_RELEASEARTISTID);
 374  43
         tagFieldToId3.put(TagFieldKey.MUSICBRAINZ_TRACK_ID, ID3v24FieldKey.MUSICBRAINZ_TRACK_ID);
 375  43
         tagFieldToId3.put(TagFieldKey.MUSICBRAINZ_DISC_ID, ID3v24FieldKey.MUSICBRAINZ_DISC_ID);
 376  43
         tagFieldToId3.put(TagFieldKey.MUSICIP_ID, ID3v24FieldKey.MUSICIP_ID);
 377  43
         tagFieldToId3.put(TagFieldKey.AMAZON_ID, ID3v24FieldKey.AMAZON_ID);
 378  43
         tagFieldToId3.put(TagFieldKey.MUSICBRAINZ_RELEASE_STATUS, ID3v24FieldKey.MUSICBRAINZ_RELEASE_STATUS);
 379  43
         tagFieldToId3.put(TagFieldKey.MUSICBRAINZ_RELEASE_TYPE, ID3v24FieldKey.MUSICBRAINZ_RELEASE_TYPE);
 380  43
         tagFieldToId3.put(TagFieldKey.MUSICBRAINZ_RELEASE_COUNTRY, ID3v24FieldKey.MUSICBRAINZ_RELEASE_COUNTRY);
 381  43
         tagFieldToId3.put(TagFieldKey.LYRICS, ID3v24FieldKey.LYRICS);
 382  43
         tagFieldToId3.put(TagFieldKey.IS_COMPILATION, ID3v24FieldKey.IS_COMPILATION);
 383  43
         tagFieldToId3.put(TagFieldKey.ARTIST_SORT, ID3v24FieldKey.ARTIST_SORT);
 384  43
         tagFieldToId3.put(TagFieldKey.ALBUM_ARTIST_SORT, ID3v24FieldKey.ALBUM_ARTIST_SORT);
 385  43
         tagFieldToId3.put(TagFieldKey.ALBUM_SORT, ID3v24FieldKey.ALBUM_SORT);
 386  43
         tagFieldToId3.put(TagFieldKey.TITLE_SORT, ID3v24FieldKey.TITLE_SORT);
 387  43
         tagFieldToId3.put(TagFieldKey.COMPOSER_SORT, ID3v24FieldKey.COMPOSER_SORT);
 388  43
         tagFieldToId3.put(TagFieldKey.COVER_ART, ID3v24FieldKey.COVER_ART);
 389  43
         tagFieldToId3.put(TagFieldKey.URL_DISCOGS_ARTIST_SITE, ID3v24FieldKey.URL_DISCOGS_ARTIST_SITE);
 390  43
         tagFieldToId3.put(TagFieldKey.URL_DISCOGS_RELEASE_SITE, ID3v24FieldKey.URL_DISCOGS_RELEASE_SITE);
 391  43
         tagFieldToId3.put(TagFieldKey.URL_WIKIPEDIA_ARTIST_SITE, ID3v24FieldKey.URL_WIKIPEDIA_ARTIST_SITE);
 392  43
         tagFieldToId3.put(TagFieldKey.URL_WIKIPEDIA_RELEASE_SITE, ID3v24FieldKey.URL_WIKIPEDIA_RELEASE_SITE);
 393  43
         tagFieldToId3.put(TagFieldKey.URL_OFFICIAL_ARTIST_SITE, ID3v24FieldKey.URL_OFFICIAL_ARTIST_SITE);
 394  43
         tagFieldToId3.put(TagFieldKey.URL_OFFICIAL_RELEASE_SITE, ID3v24FieldKey.URL_OFFICIAL_RELEASE_SITE);
 395  43
         tagFieldToId3.put(TagFieldKey.LANGUAGE, ID3v24FieldKey.LANGUAGE);
 396  43
         tagFieldToId3.put(TagFieldKey.KEY, ID3v24FieldKey.KEY);
 397  43
     }
 398  
 
 399  
     /**
 400  
      * @param genericKey
 401  
      * @return id3 key for generic key
 402  
      */
 403  
     public ID3v24FieldKey getId3KeyFromGenericKey(TagFieldKey genericKey)
 404  
     {
 405  123
         return tagFieldToId3.get(genericKey);
 406  
     }
 407  
 }