Reintroduce the cursor setting in the menus too.
[Rockbox.git] / songdbj / AlbumEntry.java
blob14c209547be1b1ee8e451abaaa61e185053e749e
1 import java.util.*;
2 import java.io.*;
4 public class AlbumEntry extends Entry implements Comparable {
5 protected String name;
6 protected ArtistEntry artist;
7 protected Vector songs;
8 protected int songcount;
10 public AlbumEntry(String n) {
11 name=n;
12 songs=new Vector();
13 artist=null;
14 songcount=0;
17 protected class SongSorter implements Comparator {
18 public int compare(Object o1, Object o2) {
19 SongEntry s1=(SongEntry)o1;
20 SongEntry s2=(SongEntry)o2;
21 int track1=s1.getTrack(),track2=s2.getTrack();
22 if(track1>track2)
23 return 1;
24 else if(track1<track2)
25 return -1;
26 return s1.getFile().getFile().getName().compareTo(s2.getFile().getFile().getName());
30 public void addSong(SongEntry e) {
31 songs.add(e);
32 e.setAlbum(this);
33 e.setArtist(artist);
34 songcount++;
35 Collections.sort(songs,new SongSorter());
38 public int size() { return songcount; }
39 public void setArtist(ArtistEntry a) {
40 a.addAlbum(this);
41 if(artist!=null&&artist!=a&&!artist.getName().equals("<various artists>")) {
42 artist.removeAlbum(this);
43 artist=TagDatabase.getInstance().getArtistEntry("<various artists>");
45 else
46 artist=a;
48 public ArtistEntry getArtist() { return artist; }
50 public int compareTo(Object o) {
51 return String.CASE_INSENSITIVE_ORDER.compare(name,((AlbumEntry)o).getName());
54 public String getName() { return name; }
55 public Collection getSongs() { return songs; }
56 public void write(DataOutputStream w) throws IOException {
57 int x;
58 w.writeBytes(name);
59 for(x=TagDatabase.getInstance().albumlen-name.length();x>0;x--)
60 w.write(0);
61 w.writeInt(artist.getOffset());
62 Iterator i2 = songs.iterator();
63 x=0;
64 while(i2.hasNext()) {
65 Entry e = (Entry) i2.next();
66 w.writeInt(e.getOffset());
67 x++;
69 for(;x<TagDatabase.getInstance().songarraylen;x++)
70 w.writeInt(0);
72 public static int entrySize() {
73 TagDatabase td=TagDatabase.getInstance();
74 return td.albumlen+4+td.songarraylen*4;