~ubuntu-branches/ubuntu/utopic/libjaudiotagger-java/utopic

« back to all changes in this revision

Viewing changes to src/org/jaudiotagger/tag/id3/ID3v22PreferredFrameOrderComparator.java

  • Committer: Bazaar Package Importer
  • Author(s): Varun Hiremath, Damien Raude-Morvan, Varun Hiremath
  • Date: 2009-04-01 19:17:56 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20090401191756-bygniim270guy7o1
Tags: 1.0.9-1
[ Damien Raude-Morvan ]
* New upstream release
* debian/watch: Use java.net repository (which contains new releases!)
* debian/control:
  - Build-Depends on default-jdk-builddep
  - Bump Standards-Version to 3.8.1 (no changes needed)
  - Change section to "java"
* debian/rules: use default-java as JAVA_HOME
* debina/orig-tar.{sh|excludes}: strip audio and others binary files from ZIP
* debian/build.xml:
  - compile with "nowarn" to keep build log readable
  - exclude LogFormatter from build (use com.sun classes)
* debian/ant.properties: new source directory is "src" in orig.tar.gz
* Add myself as Uploaders

[ Varun Hiremath ]
* Accept changes made by Damien Raude-Morvan (Closes: #522130)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
package org.jaudiotagger.tag.id3;
 
2
 
 
3
import java.util.Comparator;
 
4
import java.util.List;
 
5
import java.util.ArrayList;
 
6
 
 
7
/**
 
8
 * Orders frame Ids so that the most important frames are writtne first
 
9
 */
 
10
public class ID3v22PreferredFrameOrderComparator implements Comparator<String>
 
11
{
 
12
    private static ID3v22PreferredFrameOrderComparator comparator;
 
13
    private static List frameIdsInPreferredOrder = new ArrayList<String>();
 
14
    static
 
15
    {
 
16
        //these are the key ones we want at the top
 
17
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_UNIQUE_FILE_ID);
 
18
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_TITLE);
 
19
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_ARTIST);
 
20
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_ALBUM);
 
21
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_TORY);
 
22
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_GENRE);
 
23
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_COMPOSER);
 
24
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_CONDUCTOR);
 
25
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_CONTENT_GROUP_DESC);
 
26
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_TRACK);
 
27
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_TYER);
 
28
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_TDAT);
 
29
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_TIME);
 
30
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_BPM);
 
31
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_ISRC);
 
32
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_TORY);
 
33
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_TITLE_REFINEMENT);
 
34
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_UNSYNC_LYRICS);
 
35
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_USER_DEFINED_INFO);
 
36
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_USER_DEFINED_URL);
 
37
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_URL_ARTIST_WEB);
 
38
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_URL_COMMERCIAL);
 
39
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_URL_COPYRIGHT);
 
40
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_URL_FILE_WEB);
 
41
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_URL_OFFICIAL_RADIO);
 
42
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_URL_PAYMENT);
 
43
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_URL_PUBLISHERS);
 
44
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_URL_COMMERCIAL);
 
45
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_LYRICIST);
 
46
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_MEDIA_TYPE);
 
47
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_IPLS);
 
48
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_LANGUAGE);
 
49
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_TITLE_SORT_ORDER_ITUNES);
 
50
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_PLAYLIST_DELAY);
 
51
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_PLAY_COUNTER);
 
52
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_POPULARIMETER);
 
53
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_PUBLISHER);
 
54
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_ALBUM_ARTIST_SORT_ORDER_ITUNES);
 
55
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_COMPOSER_SORT_ORDER_ITUNES);
 
56
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_IS_COMPILATION);
 
57
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_TITLE_SORT_ORDER_ITUNES);
 
58
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_ARTIST_SORT_ORDER_ITUNES);
 
59
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_ALBUM_SORT_ORDER_ITUNES);
 
60
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_ALBUM_ARTIST_SORT_ORDER_ITUNES);
 
61
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_COMPOSER_SORT_ORDER_ITUNES);
 
62
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_COMMENT);
 
63
 
 
64
        //Not so bothered about these
 
65
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_ACCOMPANIMENT);
 
66
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_TRDA);
 
67
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_COPYRIGHTINFO);
 
68
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_ENCODEDBY);
 
69
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_EQUALISATION);
 
70
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_EVENT_TIMING_CODES);
 
71
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_FILE_TYPE);
 
72
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_HW_SW_SETTINGS);
 
73
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_INITIAL_KEY);
 
74
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_LENGTH);
 
75
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_LINKED_INFO);
 
76
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_TSIZ);
 
77
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_MPEG_LOCATION_LOOKUP_TABLE);
 
78
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_ORIGARTIST);
 
79
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_ORIG_FILENAME);
 
80
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_ORIG_LYRICIST);
 
81
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_ORIG_TITLE);
 
82
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_RECOMMENDED_BUFFER_SIZE);
 
83
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_REMIXED);
 
84
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_REVERB);
 
85
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_SET);
 
86
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_SYNC_LYRIC);
 
87
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_SYNC_TEMPO);
 
88
 
 
89
        //Want this near the end because can cause problems with unsyncing
 
90
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_ATTACHED_PICTURE);
 
91
 
 
92
        //Itunes doesnt seem to like these, and of little use so put right at end
 
93
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_MUSIC_CD_ID);
 
94
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_AUDIO_ENCRYPTION);
 
95
        frameIdsInPreferredOrder.add(ID3v22Frames.FRAME_ID_V2_GENERAL_ENCAPS_OBJECT);
 
96
    }
 
97
 
 
98
 
 
99
    private ID3v22PreferredFrameOrderComparator()
 
100
    {
 
101
 
 
102
    }
 
103
 
 
104
    public static ID3v22PreferredFrameOrderComparator getInstanceof()
 
105
    {
 
106
        if(comparator ==null)
 
107
        {
 
108
            comparator =new ID3v22PreferredFrameOrderComparator();
 
109
        }
 
110
        return comparator;
 
111
    }
 
112
 
 
113
    /**
 
114
     *
 
115
     * @param frameId1
 
116
     * @param frameId2
 
117
     * @return
 
118
     */
 
119
    public int compare(String frameId1,String frameId2)
 
120
    {
 
121
        int frameId1Index= frameIdsInPreferredOrder.indexOf(frameId1);
 
122
        int frameId2Index= frameIdsInPreferredOrder.indexOf(frameId2);
 
123
        return frameId1Index - frameId2Index;
 
124
    }
 
125
 
 
126
    public boolean equals(Object obj)
 
127
    {
 
128
        if(obj instanceof ID3v22PreferredFrameOrderComparator)
 
129
        {
 
130
            return true;
 
131
        }
 
132
        return false;
 
133
    }
 
134
 
 
135
}