public static LibGPGX.CDData GetCDDataStruct(Disc cd) { var ret = new LibGPGX.CDData(); var ses = cd.Session1; int ntrack = ses.InformationTrackCount; // bet you a dollar this is all wrong //zero 07-jul-2015 - throws a dollar in the pile, since he probably messed it up worse for (int i = 0; i < LibGPGX.CD_MAX_TRACKS; i++) { if (i < ntrack) { ret.tracks[i].start = ses.Tracks[i + 1].LBA; ret.tracks[i].end = ses.Tracks[i + 2].LBA; if (i == ntrack - 1) { ret.end = ret.tracks[i].end; ret.last = ntrack; } } else { ret.tracks[i].start = 0; ret.tracks[i].end = 0; } } return(ret); }
unsafe byte[] GetCDData() { LibGPGX.CDData ret = new LibGPGX.CDData(); int size = Marshal.SizeOf(ret); ret.readcallback = cd_callback_handle = new LibGPGX.cd_read_cb(CDRead); var ses = CD.Session1; int ntrack = ses.InformationTrackCount; // bet you a dollar this is all wrong //zero 07-jul-2015 - throws a dollar in the pile, since he probably messed it up worse for (int i = 0; i < LibGPGX.CD_MAX_TRACKS; i++) { if (i < ntrack) { ret.tracks[i].start = ses.Tracks[i + 1].LBA; ret.tracks[i].end = ses.Tracks[i + 2].LBA; if (i == ntrack - 1) { ret.end = ret.tracks[i].end; ret.last = ntrack; } } else { ret.tracks[i].start = 0; ret.tracks[i].end = 0; } } byte[] retdata = new byte[size]; fixed(byte *p = &retdata[0]) { Marshal.StructureToPtr(ret, (IntPtr)p, false); } return(retdata); }
unsafe byte[] GetCDData() { LibGPGX.CDData ret = new LibGPGX.CDData(); int size = Marshal.SizeOf(ret); ret.readcallback = cd_callback_handle = new LibGPGX.cd_read_cb(CDRead); var ses = CD.TOC.Sessions[0]; int ntrack = ses.Tracks.Count; // bet you a dollar this is all wrong for (int i = 0; i < LibGPGX.CD_MAX_TRACKS; i++) { if (i < ntrack) { ret.tracks[i].start = ses.Tracks[i].Indexes[1].aba - 150; ret.tracks[i].end = ses.Tracks[i].length_aba + ret.tracks[i].start; if (i == ntrack - 1) { ret.end = ret.tracks[i].end; ret.last = ntrack; } } else { ret.tracks[i].start = 0; ret.tracks[i].end = 0; } } byte[] retdata = new byte[size]; fixed(byte *p = &retdata[0]) { Marshal.StructureToPtr(ret, (IntPtr)p, false); } return(retdata); }
unsafe byte[] GetCDData() { LibGPGX.CDData ret = new LibGPGX.CDData(); int size = Marshal.SizeOf(ret); ret.readcallback = cd_callback_handle = new LibGPGX.cd_read_cb(CDRead); var ses = CD.Session1; int ntrack = ses.InformationTrackCount; // bet you a dollar this is all wrong //zero 07-jul-2015 - throws a dollar in the pile, since he probably messed it up worse for (int i = 0; i < LibGPGX.CD_MAX_TRACKS; i++) { if (i < ntrack) { ret.tracks[i].start = ses.Tracks[i + 1].LBA; ret.tracks[i].end = ses.Tracks[i + 2].LBA; if (i == ntrack - 1) { ret.end = ret.tracks[i].end; ret.last = ntrack; } } else { ret.tracks[i].start = 0; ret.tracks[i].end = 0; } } byte[] retdata = new byte[size]; fixed (byte* p = &retdata[0]) { Marshal.StructureToPtr(ret, (IntPtr)p, false); } return retdata; }
unsafe byte[] GetCDData() { LibGPGX.CDData ret = new LibGPGX.CDData(); int size = Marshal.SizeOf(ret); ret.readcallback = cd_callback_handle = new LibGPGX.cd_read_cb(CDRead); var ses = CD.TOC.Sessions[0]; int ntrack = ses.Tracks.Count; // bet you a dollar this is all wrong for (int i = 0; i < LibGPGX.CD_MAX_TRACKS; i++) { if (i < ntrack) { ret.tracks[i].start = ses.Tracks[i].Indexes[1].aba - 150; ret.tracks[i].end = ses.Tracks[i].length_aba + ret.tracks[i].start; if (i == ntrack - 1) { ret.end = ret.tracks[i].end; ret.last = ntrack; } } else { ret.tracks[i].start = 0; ret.tracks[i].end = 0; } } byte[] retdata = new byte[size]; fixed (byte* p = &retdata[0]) { Marshal.StructureToPtr(ret, (IntPtr)p, false); } return retdata; }