/* */ package NET.worlds.scape; /* */ /* */ /* */ /* */ /* */ /* */ /* */ public class CDDBHash /* */ { /* */ public static String hashString(CDTrackInfo tracks) /* */ { /* 12 */ String id = Integer.toHexString(hash(tracks)); /* 13 */ int len = id.length(); /* 14 */ if (len < 8) { /* 15 */ String pad = "0"; /* */ do { /* 17 */ pad = pad + "0";len++; /* 16 */ } while (len < 8); /* */ /* 18 */ return pad + id; /* */ } /* 20 */ return id; /* */ } /* */ /* */ public static String lookupString(CDTrackInfo tracks) /* */ { /* 25 */ int numTracks = tracks.getNumTracks(); /* 26 */ String ret = hashString(tracks) + " " + numTracks; /* 27 */ for (int i = 0; i < numTracks; i++) /* 28 */ ret = ret + " " + tracks.getStartFrames(i); /* 29 */ return ret + " " + leadOutSecs(tracks); /* */ } /* */ /* */ private static int addDigits(int n) /* */ { /* 34 */ String buf = n; /* 35 */ int ret = 0; /* 36 */ for (int i = 0; i < buf.length(); i++) /* 37 */ ret += buf.charAt(i) - '0'; /* 38 */ return ret; /* */ } /* */ /* */ private static int leadOutSecs(CDTrackInfo tracks) /* */ { /* 43 */ int last = tracks.getNumTracks() - 1; /* */ /* 45 */ int omin = tracks.getPosM(last); /* 46 */ int osec = tracks.getPosS(last); /* 47 */ int ofrm = tracks.getPosF(last); /* */ /* 49 */ int lmin = tracks.getLenM(last); /* 50 */ int lsec = tracks.getLenS(last); /* 51 */ int lfrm = tracks.getLenF(last); /* */ /* 53 */ lfrm++; if (lfrm == 75) { /* 54 */ lfrm = 0; /* 55 */ lsec++; if (lsec == 60) { /* 56 */ lsec = 0; /* 57 */ lmin++; /* */ } /* */ } /* */ /* 61 */ ofrm += lfrm; /* 62 */ osec += ofrm / 75 + lsec; /* 63 */ omin += osec / 60 + lmin; /* 64 */ osec %= 60; /* 65 */ return omin * 60 + osec; /* */ } /* */ /* */ private static int hash(CDTrackInfo tracks) /* */ { /* 70 */ int n = 0; /* 71 */ int numTracks = tracks.getNumTracks(); /* */ /* 73 */ for (int i = 0; i < numTracks; i++) { /* 74 */ n += addDigits(tracks.getPosM(i) * 60 + tracks.getPosS(i)); /* */ } /* 76 */ int t = leadOutSecs(tracks) - /* 77 */ tracks.getPosM(0) * 60 - tracks.getPosS(0); /* 78 */ return n % 255 << 24 | t << 8 | numTracks; /* */ } /* */ } /* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\scape\CDDBHash.class * Java compiler version: 6 (50.0) * JD-Core Version: 0.7.1 */