diff options
Diffstat (limited to 'NET/worlds/scape/CDDBHash.java')
| -rw-r--r-- | NET/worlds/scape/CDDBHash.java | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/NET/worlds/scape/CDDBHash.java b/NET/worlds/scape/CDDBHash.java new file mode 100644 index 0000000..23e8a01 --- /dev/null +++ b/NET/worlds/scape/CDDBHash.java @@ -0,0 +1,88 @@ +/* */ 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 + */
\ No newline at end of file |