CUERipper: test & copy

This commit is contained in:
chudov
2012-02-15 00:18:58 +00:00
parent dd7b130697
commit 512599be54
5 changed files with 102 additions and 20 deletions

View File

@@ -67,6 +67,7 @@ namespace CUETools.Processor
private string _archivePassword;
private CUEToolsProgressEventArgs _progress;
private AccurateRipVerify _arVerify;
private AccurateRipVerify _arTestVerify;
private CUEToolsDB _CUEToolsDB;
private CDImageLayout _toc;
private string _arLogFileName, _alArtFileName;
@@ -195,6 +196,19 @@ namespace CUETools.Processor
}
}
public AccurateRipVerify ArTestVerify
{
get
{
return _arTestVerify;
}
set
{
_arTestVerify = value;
}
}
public AccurateRipVerify ArVerify
{
get
@@ -1614,7 +1628,7 @@ namespace CUETools.Processor
_CUEToolsDB.UploadHelper.onProgress += new EventHandler<Krystalware.UploadHelper.UploadProgressEventArgs>(UploadProgress);
_CUEToolsDB.ContactDB(_config.advanced.CTDBServer, userAgent, driveName, true, fuzzy, metadataSearch);
if (!_toc[_toc.TrackCount].IsAudio && DataTrackLength == 0)
if (!_isCD && !_toc[_toc.TrackCount].IsAudio && DataTrackLength == 0)
foreach (DBEntry e in _CUEToolsDB.Entries)
if (e.toc.TrackCount == _toc.TrackCount && e.toc.AudioLength == _toc.AudioLength && !e.toc[e.toc.TrackCount].IsAudio)
{
@@ -2380,6 +2394,21 @@ namespace CUETools.Processor
outTracksMatch = bestTracksMatch;
}
public void TestBeforeCopy()
{
if (!_isCD)
throw new Exception("Not a cd");
_arTestVerify = new AccurateRipVerify(_toc, proxy);
var buff = new AudioBuffer(AudioPCMConfig.RedBook, 0x10000);
while (_ripper.Read(buff, -1) != 0)
{
_arTestVerify.Write(buff);
}
_ripper.Position = 0;
}
public string Go()
{
int[] destLengths;