public string GetCDDBQuerySegment() { int numTracks = this.GetNumTracks(); if (numTracks == -1) { throw new Exception("Unable to retrieve the number of tracks"); } string str = numTracks.ToString(); int num3 = 0; int num4 = 0; double num5 = 0.0; int num6 = 0; int track = 0; while (track < numTracks) { num5 = (((this.Toc.TrackData[track].Address_1 * 60) + this.Toc.TrackData[track].Address_2) * 0x4b) + this.Toc.TrackData[track].Address_3; num4 += this.cddb_sum((this.Toc.TrackData[track].Address_1 * 60) + this.Toc.TrackData[track].Address_2); num6 += this.GetSeconds(track); str = str + " " + string.Format("{0}", num5); track++; } int num7 = (this.Toc.TrackData[track].Address_1 * 60) + this.Toc.TrackData[track].Address_2; str = str + " " + num7; Kernel32.TRACK_DATA track_data = this.Toc.TrackData[numTracks]; Kernel32.TRACK_DATA track_data2 = this.Toc.TrackData[0]; num3 = ((track_data.Address_1 * 60) + track_data.Address_2) - ((track_data2.Address_1 * 60) + track_data2.Address_2); ulong num8 = (ulong)((((num4 % 0xff) << 0x18) | (num3 << 8)) | numTracks); return(str); }
public bool IsAudioTrack(int track) { if ((this.TocValid && (track >= this.Toc.FirstTrack)) && (track <= this.Toc.LastTrack)) { Kernel32.TRACK_DATA track_data = this.Toc.TrackData[track - 1]; return((track_data.Control & 4) == 0); } return(false); }
protected int GetStartSector(int track) { if ((this.TocValid && (track >= this.Toc.FirstTrack)) && (track <= this.Toc.LastTrack)) { Kernel32.TRACK_DATA track_data = this.Toc.TrackData[track - 1]; return(((((track_data.Address_1 * 60) * 0x4b) + (track_data.Address_2 * 0x4b)) + track_data.Address_3) - 150); } return(-1); }
protected int GetEndSector2(int track) { if ((this.TocValid && (track >= this.Toc.FirstTrack)) && (track <= this.Toc.LastTrack)) { Kernel32.TRACK_DATA track_data = this.Toc.TrackData[track]; return((((track_data.Address_1 * 60) * 0x4b) + (track_data.Address_2 * 0x4b)) - 0x97); } return(-1); }
public string GetCDDBDiskID() { int numTracks = GetNumTracks(); if (numTracks == -1) { throw new Exception("Unable to retrieve the number of tracks, Cannot calculate DiskID."); } string postfix = numTracks.ToString(); int i, t = 0, n = 0; double ofs = 0; int secs = 0; /* For backward compatibility this algorithm must not change */ i = 0; while (i < numTracks) { Console.WriteLine("Track {0}: {1}:{2}", i, GetSeconds(i) / 60, GetSeconds(i) % 60); ofs = (((Toc.TrackData[i].Address_1 * 60) + Toc.TrackData[i].Address_2) * 75) + Toc.TrackData[i].Address_3; n = n + cddb_sum((Toc.TrackData[i].Address_1 * 60) + Toc.TrackData[i].Address_2); secs += GetSeconds(i); postfix += " " + string.Format("{0}", ofs); i++; } int numSecs = Toc.TrackData[i].Address_1 * 60 + Toc.TrackData[i].Address_2; Console.WriteLine("n = {0}, numSecs = {1}, secs = {2}", n, numSecs, secs); postfix += " " + numSecs; Kernel32.TRACK_DATA last = Toc.TrackData[numTracks]; Kernel32.TRACK_DATA first = Toc.TrackData[0]; t = ((last.Address_1 * 60) + last.Address_2) - ((first.Address_1 * 60) + first.Address_2); ulong lDiscId = (((uint)n % 0xff) << 24 | (uint)t << 8 | (uint)numTracks); string sDiscId = String.Format("{0:x8}", lDiscId); return(sDiscId); }
public int GetNumAudioTracks() { if (this.TocValid) { int num = 0; for (int i = this.Toc.FirstTrack - 1; i < this.Toc.LastTrack; i++) { Kernel32.TRACK_DATA track_data = this.Toc.TrackData[i]; if (track_data.Control == 0) { num++; } } return(num); } return(-1); }