public static CDRepairEncode VerifyNoise(CDImageLayout toc, int seed, int offset, int start, int end, int errors, bool do_verify, bool do_encode) { if (start < 0 || start > end || end > toc.AudioLength * 588) throw new ArgumentOutOfRangeException(); var src = new NoiseAndErrorsGenerator(AudioPCMConfig.RedBook, end - start, seed, offset + start, errors); var buff = new AudioBuffer(src, 588 * 100); var ar = new AccurateRipVerify(toc, null); var encode = new CDRepairEncode(ar, stride, npar, do_verify, do_encode); var rnd = new Random(seed); ar.Position = start; while (src.Remaining > 0) { src.Read(buff, rnd.Next(1, buff.Size)); ar.Write(buff); } ar.Close(); return encode; }
public static CDRepairEncode VerifyNoise(CDImageLayout toc, int seed, int offset, int start, int end, int errors, bool do_verify, bool do_encode) { if (start < 0 || start > end || end > toc.AudioLength * 588) { throw new ArgumentOutOfRangeException(); } var src = new NoiseAndErrorsGenerator(AudioPCMConfig.RedBook, end - start, seed, offset + start, errors); var buff = new AudioBuffer(src, 588 * 100); var ar = new AccurateRipVerify(toc, null); var encode = new CDRepairEncode(ar, stride, npar, do_verify, do_encode); var rnd = new Random(seed); ar.Position = start; while (src.Remaining > 0) { src.Read(buff, rnd.Next(1, buff.Size)); ar.Write(buff); } ar.Close(); return(encode); }