1) Better log file/freedb entry selection dialog interface

2) 'Stop' button works when analyzing archive
3) application icon added
4) two verification modes: AR only/AR+CRCs
This commit is contained in:
chudov
2009-02-22 07:47:56 +00:00
parent c57ed75f88
commit c2fc51b6b9
16 changed files with 3292 additions and 2570 deletions

View File

@@ -98,6 +98,7 @@
</Compile> </Compile>
<Compile Include="Processor.cs" /> <Compile Include="Processor.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="SeekableZipStream.cs" />
<Compile Include="Settings.cs" /> <Compile Include="Settings.cs" />
<Compile Include="Tagging.cs" /> <Compile Include="Tagging.cs" />
<Compile Include="UserDefined.cs" /> <Compile Include="UserDefined.cs" />

View File

@@ -61,6 +61,7 @@ namespace CUETools.Processor
{ {
None, None,
Verify, Verify,
VerifyPlusCRCs,
VerifyThenConvert, VerifyThenConvert,
VerifyAndConvert VerifyAndConvert
} }
@@ -479,9 +480,23 @@ namespace CUETools.Processor
public bool ContinueOperation = true; public bool ContinueOperation = true;
} }
public class CUEToolsSourceFile
{
public string path;
public string contents;
public bool isEAC;
public CUEToolsSourceFile(string _path, StreamReader reader)
{
path = _path;
contents = reader.ReadToEnd();
reader.Close();
}
}
public class CUEToolsSelectionEventArgs public class CUEToolsSelectionEventArgs
{ {
public string[] choices; public object[] choices;
public int selection = -1; public int selection = -1;
} }
@@ -741,21 +756,12 @@ namespace CUETools.Processor
if (cueSheet == null) if (cueSheet == null)
throw new Exception("Input directory doesn't contain supported audio files."); throw new Exception("Input directory doesn't contain supported audio files.");
sr = new StringReader(cueSheet); sr = new StringReader(cueSheet);
if (CUEToolsSelection != null)
{ List<CUEToolsSourceFile> logFiles = new List<CUEToolsSourceFile>();
CUEToolsSelectionEventArgs e = new CUEToolsSelectionEventArgs(); foreach (string logPath in Directory.GetFiles(pathIn, "*.log"))
e.choices = Directory.GetFiles(pathIn, "*.log"); logFiles.Add(new CUEToolsSourceFile(logPath, new StreamReader(logPath, CUESheet.Encoding)));
if (e.choices.Length > 0) CUEToolsSourceFile selectedLogFile = ChooseFile(logFiles, null, false);
{ _eacLog = selectedLogFile != null ? selectedLogFile.contents : null;
CUEToolsSelection(this, e);
if (e.selection != -1)
{
StreamReader logReader = new StreamReader(e.choices[e.selection], CUESheet.Encoding);
_eacLog = logReader.ReadToEnd();
logReader.Close();
}
}
}
} }
else if (Path.GetExtension(pathIn).ToLower() == ".zip" || Path.GetExtension(pathIn).ToLower() == ".rar") else if (Path.GetExtension(pathIn).ToLower() == ".zip" || Path.GetExtension(pathIn).ToLower() == ".rar")
{ {
@@ -795,64 +801,28 @@ namespace CUETools.Processor
} }
} }
string cueName = null, cueText = null, logName = null; List<CUEToolsSourceFile> logFiles = new List<CUEToolsSourceFile>();
List<string> cueNames = new List<string>(); List<CUEToolsSourceFile> cueFiles = new List<CUEToolsSourceFile>();
List<string> logNames = new List<string>();
foreach (string s in _archiveContents) foreach (string s in _archiveContents)
{ {
if (Path.GetExtension(s).ToLower() == ".cue" || Path.GetExtension(s).ToLower() == ".log")
{
Stream archiveStream = OpenArchive(s, false);
CUEToolsSourceFile sourceFile = new CUEToolsSourceFile(s, new StreamReader(archiveStream, CUESheet.Encoding));
archiveStream.Close();
if (Path.GetExtension(s).ToLower() == ".cue") if (Path.GetExtension(s).ToLower() == ".cue")
cueNames.Add(s); cueFiles.Add(sourceFile);
if (Path.GetExtension(s).ToLower() == ".log") else
logNames.Add(s); logFiles.Add(sourceFile);
} }
if (cueNames.Count == 0)
throw new Exception("Input archive doesn't contain a cue sheet.");
if (cueNames.Count == 1)
cueName = cueNames[0];
if (cueName == null && CUEToolsSelection != null)
{
CUEToolsSelectionEventArgs e = new CUEToolsSelectionEventArgs();
e.choices = cueNames.ToArray();
CUEToolsSelection(this, e);
if (e.selection != -1)
cueName = e.choices[e.selection];
} }
if (cueName == null) CUEToolsSourceFile selectedCUEFile = ChooseFile(cueFiles, null, true);
throw new Exception("Input archive contains several cue sheets."); if (selectedCUEFile == null || selectedCUEFile.contents == "")
throw new Exception("Input archive doesn't contain a usable cue sheet.");
if (logNames.Contains(Path.ChangeExtension(cueName, ".log"))) CUEToolsSourceFile selectedLogFile = ChooseFile(logFiles, Path.GetFileNameWithoutExtension(selectedCUEFile.path), true);
logName = Path.ChangeExtension(cueName, ".log"); _eacLog = selectedLogFile != null ? selectedLogFile.contents : null;
if (logName == null && CUEToolsSelection != null && logNames.Count > 0) _archiveCUEpath = Path.GetDirectoryName(selectedCUEFile.path);
{ string cueText = selectedCUEFile.contents;
CUEToolsSelectionEventArgs e = new CUEToolsSelectionEventArgs();
e.choices = logNames.ToArray();
CUEToolsSelection(this, e);
if (e.selection != -1)
logName = e.choices[e.selection];
}
if (cueName != null)
{
Stream archiveStream = OpenArchive(cueName, false);
StreamReader cueReader = new StreamReader(archiveStream, CUESheet.Encoding);
cueText = cueReader.ReadToEnd();
cueReader.Close();
archiveStream.Close();
if (cueText == "")
throw new Exception("Empty cue sheet.");
}
if (cueText == null)
throw new Exception("Input archive doesn't contain a cue sheet.");
if (logName != null)
{
Stream archiveStream = OpenArchive(logName, false);
StreamReader logReader = new StreamReader(archiveStream, CUESheet.Encoding);
_eacLog = logReader.ReadToEnd();
logReader.Close();
archiveStream.Close();
}
_archiveCUEpath = Path.GetDirectoryName(cueName);
if (_config.autoCorrectFilenames) if (_config.autoCorrectFilenames)
cueText = CorrectAudioFilenames(_archiveCUEpath, cueText, false, _archiveContents); cueText = CorrectAudioFilenames(_archiveCUEpath, cueText, false, _archiveContents);
sr = new StringReader(cueText); sr = new StringReader(cueText);
@@ -864,29 +834,13 @@ namespace CUETools.Processor
else else
sr = new StreamReader (pathIn, CUESheet.Encoding); sr = new StreamReader (pathIn, CUESheet.Encoding);
string logPath = Path.ChangeExtension(pathIn, ".log"); List<CUEToolsSourceFile> logFiles = new List<CUEToolsSourceFile>();
if (System.IO.File.Exists(logPath)) foreach (string logPath in Directory.GetFiles(cueDir == "" ? "." : cueDir, "*.log"))
{ logFiles.Add(new CUEToolsSourceFile(logPath, new StreamReader(logPath, CUESheet.Encoding)));
StreamReader logReader = new StreamReader(logPath, CUESheet.Encoding); CUEToolsSourceFile selectedLogFile = ChooseFile(logFiles, Path.GetFileNameWithoutExtension(pathIn), false);
_eacLog = logReader.ReadToEnd(); _eacLog = selectedLogFile != null ? selectedLogFile.contents : null;
logReader.Close();
} }
else if (CUEToolsSelection != null) else
{
CUEToolsSelectionEventArgs e = new CUEToolsSelectionEventArgs();
e.choices = Directory.GetFiles(cueDir == "" ? "." : cueDir, "*.log");
if (e.choices.Length > 0)
{
CUEToolsSelection(this, e);
if (e.selection != -1)
{
StreamReader logReader = new StreamReader(e.choices[e.selection], CUESheet.Encoding);
_eacLog = logReader.ReadToEnd();
logReader.Close();
}
}
}
} else
{ {
string cuesheetTag = null; string cuesheetTag = null;
TagLib.File fileInfo; TagLib.File fileInfo;
@@ -1332,6 +1286,43 @@ namespace CUETools.Processor
} }
} }
internal CUEToolsSourceFile ChooseFile(List<CUEToolsSourceFile> sourceFiles, string defaultFileName, bool quietIfSingle)
{
if (sourceFiles.Count <= 0)
return null;
if (defaultFileName != null)
{
CUEToolsSourceFile defaultFile = null;
foreach (CUEToolsSourceFile file in sourceFiles)
if (Path.GetFileNameWithoutExtension(file.path).ToLower() == defaultFileName.ToLower())
{
if (defaultFile != null)
{
defaultFile = null;
break;
}
defaultFile = file;
}
if (defaultFile != null)
return defaultFile;
}
if (quietIfSingle && sourceFiles.Count == 1)
return sourceFiles[0];
if (CUEToolsSelection == null)
return null;
CUEToolsSelectionEventArgs e = new CUEToolsSelectionEventArgs();
e.choices = sourceFiles.ToArray();
CUEToolsSelection(this, e);
if (e.selection == -1)
return null;
return sourceFiles[e.selection];
}
internal Stream OpenArchive(string fileName, bool showProgress) internal Stream OpenArchive(string fileName, bool showProgress)
{ {
#if !MONO #if !MONO
@@ -1347,9 +1338,9 @@ namespace CUETools.Processor
if (Path.GetExtension(_archivePath).ToLower() == ".zip") if (Path.GetExtension(_archivePath).ToLower() == ".zip")
{ {
SeekableZipStream zipStream = new SeekableZipStream(_archivePath, fileName); SeekableZipStream zipStream = new SeekableZipStream(_archivePath, fileName);
zipStream.PasswordRequired += new PasswordRequiredHandler(unrar_PasswordRequired); zipStream.PasswordRequired += new ZipPasswordRequiredHandler(unzip_PasswordRequired);
if (showProgress) if (showProgress)
zipStream.ExtractionProgress += new ExtractionProgressHandler(unrar_ExtractionProgress); zipStream.ExtractionProgress += new ZipExtractionProgressHandler(unzip_ExtractionProgress);
return zipStream; return zipStream;
} }
throw new Exception("Unknown archive type."); throw new Exception("Unknown archive type.");
@@ -1370,16 +1361,7 @@ namespace CUETools.Processor
#if !MONO #if !MONO
private void CDReadProgress(object sender, ReadProgressArgs e) private void CDReadProgress(object sender, ReadProgressArgs e)
{ {
lock (this) CheckStop();
{
if (_stop)
throw new StopException();
if (_pause)
{
ShowProgress("Paused...", 0, 0, null, null);
Monitor.Wait(this);
}
}
if (this.CUEToolsProgress == null) if (this.CUEToolsProgress == null)
return; return;
CDDriveReader audioSource = (CDDriveReader)sender; CDDriveReader audioSource = (CDDriveReader)sender;
@@ -1406,6 +1388,7 @@ namespace CUETools.Processor
private void unrar_ExtractionProgress(object sender, ExtractionProgressEventArgs e) private void unrar_ExtractionProgress(object sender, ExtractionProgressEventArgs e)
{ {
CheckStop();
if (this.CUEToolsProgress == null) if (this.CUEToolsProgress == null)
return; return;
_progress.percentTrck = e.PercentComplete/100; _progress.percentTrck = e.PercentComplete/100;
@@ -1436,6 +1419,38 @@ namespace CUETools.Processor
} }
#endif #endif
private void unzip_ExtractionProgress(object sender, ZipExtractionProgressEventArgs e)
{
CheckStop();
if (this.CUEToolsProgress == null)
return;
_progress.percentTrck = e.PercentComplete / 100;
this.CUEToolsProgress(this, _progress);
}
private void unzip_PasswordRequired(object sender, ZipPasswordRequiredEventArgs e)
{
if (_archivePassword != null)
{
e.ContinueOperation = true;
e.Password = _archivePassword;
return;
}
if (this.PasswordRequired != null)
{
ArchivePasswordRequiredEventArgs e1 = new ArchivePasswordRequiredEventArgs();
this.PasswordRequired(this, e1);
if (e1.ContinueOperation && e1.Password != "")
{
_archivePassword = e1.Password;
e.ContinueOperation = true;
e.Password = e1.Password;
return;
}
}
throw new IOException("Password is required for extraction.");
}
public delegate string GetStringTagProvider(TagLib.File file); public delegate string GetStringTagProvider(TagLib.File file);
public string GetCommonTag(GetStringTagProvider provider) public string GetCommonTag(GetStringTagProvider provider)
@@ -1943,7 +1958,7 @@ namespace CUETools.Processor
} }
} }
if (_accurateRipMode != AccurateRipMode.Verify) if (_accurateRipMode != AccurateRipMode.Verify && _accurateRipMode != AccurateRipMode.VerifyPlusCRCs)
for (int i = 0; i < destPaths.Length; i++) for (int i = 0; i < destPaths.Length; i++)
for (int j = 0; j < _sourcePaths.Count; j++) for (int j = 0; j < _sourcePaths.Count; j++)
if (destPaths[i].ToLower() == _sourcePaths[j].ToLower()) if (destPaths[i].ToLower() == _sourcePaths[j].ToLower())
@@ -1972,16 +1987,9 @@ namespace CUETools.Processor
break; break;
} }
ShowProgress((string)"Contacting AccurateRip database...", 0, (dtl - minDTL) / 75.0, null, null); ShowProgress((string)"Contacting AccurateRip database...", 0, (dtl - minDTL) / 75.0, null, null);
CheckStop();
lock (this) lock (this)
{ {
if (_stop)
throw new StopException();
if (_pause)
{
ShowProgress("Paused...", 0, 0, null, null);
Monitor.Wait(this);
}
else
Monitor.Wait(this, 1000); Monitor.Wait(this, 1000);
} }
} }
@@ -1993,6 +2001,23 @@ namespace CUETools.Processor
else else
_arVerify.ContactAccurateRip(_accurateRipId); _arVerify.ContactAccurateRip(_accurateRipId);
if (_accurateRipMode == AccurateRipMode.Verify)
{
if (_arVerify.AccResult != HttpStatusCode.OK)
{
if (_config.writeArLogOnVerify)
{
if (!Directory.Exists(dir))
Directory.CreateDirectory(dir);
StreamWriter sw = new StreamWriter(Path.ChangeExtension(_cuePath, ".accurip"),
false, CUESheet.Encoding);
GenerateAccurateRipLog(sw);
sw.Close();
}
return;
}
}
if (_accurateRipMode == AccurateRipMode.VerifyThenConvert) if (_accurateRipMode == AccurateRipMode.VerifyThenConvert)
{ {
if (_arVerify.AccResult != HttpStatusCode.OK && !_isCD) if (_arVerify.AccResult != HttpStatusCode.OK && !_isCD)
@@ -2047,16 +2072,16 @@ namespace CUETools.Processor
if (!SkipOutput) if (!SkipOutput)
{ {
if (_accurateRipMode != AccurateRipMode.Verify) if (_accurateRipMode != AccurateRipMode.Verify && _accurateRipMode != AccurateRipMode.VerifyPlusCRCs)
{ {
if (!Directory.Exists(dir)) if (!Directory.Exists(dir))
Directory.CreateDirectory(dir); Directory.CreateDirectory(dir);
} }
if (_isCD) if (_isCD)
destLengths = CalculateAudioFileLengths(style); // need to recalc, might have changed after scanning the CD destLengths = CalculateAudioFileLengths(style); // need to recalc, might have changed after scanning the CD
if (_outputFormat != OutputAudioFormat.NoAudio || _accurateRipMode == AccurateRipMode.Verify) if (_outputFormat != OutputAudioFormat.NoAudio || _accurateRipMode == AccurateRipMode.Verify || _accurateRipMode == AccurateRipMode.VerifyPlusCRCs)
WriteAudioFilesPass(dir, style, destPaths, destLengths, htoaToFile, _accurateRipMode == AccurateRipMode.Verify); WriteAudioFilesPass(dir, style, destPaths, destLengths, htoaToFile, _accurateRipMode == AccurateRipMode.Verify || _accurateRipMode == AccurateRipMode.VerifyPlusCRCs);
if (_accurateRipMode != AccurateRipMode.Verify) if (_accurateRipMode != AccurateRipMode.Verify && _accurateRipMode != AccurateRipMode.VerifyPlusCRCs)
{ {
string logContents = LOGContents(); string logContents = LOGContents();
string cueContents = CUESheetContents(style); string cueContents = CUESheetContents(style);
@@ -2141,10 +2166,11 @@ namespace CUETools.Processor
} }
if (_accurateRipMode == AccurateRipMode.Verify || if (_accurateRipMode == AccurateRipMode.Verify ||
_accurateRipMode == AccurateRipMode.VerifyPlusCRCs ||
(_accurateRipMode != AccurateRipMode.None && _outputFormat != OutputAudioFormat.NoAudio)) (_accurateRipMode != AccurateRipMode.None && _outputFormat != OutputAudioFormat.NoAudio))
{ {
ShowProgress((string)"Generating AccurateRip report...", 0, 0, null, null); ShowProgress((string)"Generating AccurateRip report...", 0, 0, null, null);
if (_accurateRipMode == AccurateRipMode.Verify && _config.writeArTagsOnVerify && _writeOffset == 0 && !_isArchive && !_isCD) if ((_accurateRipMode == AccurateRipMode.Verify || _accurateRipMode == AccurateRipMode.VerifyPlusCRCs) && _config.writeArTagsOnVerify && _writeOffset == 0 && !_isArchive && !_isCD)
{ {
uint tracksMatch; uint tracksMatch;
int bestOffset; int bestOffset;
@@ -2174,8 +2200,8 @@ namespace CUETools.Processor
} }
} }
if ((_accurateRipMode != AccurateRipMode.Verify && _config.writeArLogOnConvert) || if ((_accurateRipMode != AccurateRipMode.Verify && _accurateRipMode != AccurateRipMode.VerifyPlusCRCs && _config.writeArLogOnConvert) ||
(_accurateRipMode == AccurateRipMode.Verify && _config.writeArLogOnVerify)) ((_accurateRipMode == AccurateRipMode.Verify || _accurateRipMode == AccurateRipMode.VerifyPlusCRCs) && _config.writeArLogOnVerify))
{ {
if (!Directory.Exists(dir)) if (!Directory.Exists(dir))
Directory.CreateDirectory(dir); Directory.CreateDirectory(dir);
@@ -2525,16 +2551,7 @@ namespace CUETools.Processor
samplesRemIndex -= copyCount; samplesRemIndex -= copyCount;
samplesRemSource -= copyCount; samplesRemSource -= copyCount;
lock (this) CheckStop();
{
if (_stop)
throw new StopException();
if (_pause)
{
ShowProgress("Paused...", 0, 0, null, null);
Monitor.Wait(this);
}
}
} }
} }
} }
@@ -2734,6 +2751,20 @@ namespace CUETools.Processor
return fileLengths; return fileLengths;
} }
private void CheckStop()
{
lock (this)
{
if (_stop)
throw new StopException();
if (_pause)
{
ShowProgress("Paused...", 0, 0, null, null);
Monitor.Wait(this);
}
}
}
public void Stop() { public void Stop() {
lock (this) { lock (this) {
if (_pause) if (_pause)
@@ -2766,6 +2797,14 @@ namespace CUETools.Processor
} }
} }
public CDImageLayout TOC
{
get
{
return _toc;
}
}
private IAudioDest GetAudioDest(string path, int finalSampleCount, int bps, bool noOutput) private IAudioDest GetAudioDest(string path, int finalSampleCount, int bps, bool noOutput)
{ {
if (noOutput) if (noOutput)
@@ -3007,123 +3046,6 @@ namespace CUETools.Processor
} }
} }
public class SeekableZipStream : Stream
{
ZipFile zipFile;
ZipEntry zipEntry;
Stream zipStream;
long position;
byte[] temp;
public SeekableZipStream(string path, string fileName)
{
zipFile = new ZipFile(path);
zipEntry = zipFile.GetEntry(fileName);
if (zipEntry == null)
throw new Exception("Archive entry not found.");
zipStream = zipFile.GetInputStream(zipEntry);
temp = new byte[65536];
position = 0;
}
public override bool CanRead
{
get { return true; }
}
public override bool CanSeek
{
get { return true; }
}
public override bool CanWrite
{
get { return false; }
}
public override long Length
{
get
{
return zipEntry.Size;
}
}
public override long Position
{
get { return position; }
set { Seek(value, SeekOrigin.Begin); }
}
public override void Close()
{
zipStream.Close();
zipEntry = null;
zipFile.Close();
}
public override void Flush()
{
throw new NotSupportedException();
}
public override void SetLength(long value)
{
throw new NotSupportedException();
}
public override int Read(byte[] buffer, int offset, int count)
{
if (position == 0 && zipEntry.IsCrypted && ((ZipInputStream)zipStream).Password == null && PasswordRequired != null)
{
PasswordRequiredEventArgs e = new PasswordRequiredEventArgs();
PasswordRequired(this, e);
if (e.ContinueOperation && e.Password.Length > 0)
((ZipInputStream)zipStream).Password = e.Password;
}
// TODO: always save to a local temp circular buffer for optimization of the backwards seek.
int total = zipStream.Read(buffer, offset, count);
position += total;
if (ExtractionProgress != null)
{
ExtractionProgressEventArgs e = new ExtractionProgressEventArgs();
e.BytesExtracted = position;
e.FileName = zipEntry.Name;
e.FileSize = zipEntry.Size;
e.PercentComplete = 100.0 * position / zipEntry.Size;
ExtractionProgress(this, e);
}
return total;
}
public override long Seek(long offset, SeekOrigin origin)
{
long seek_to;
switch (origin)
{
case SeekOrigin.Begin:
seek_to = offset;
break;
case SeekOrigin.Current:
seek_to = Position + offset;
break;
case SeekOrigin.End:
seek_to = Length + offset;
break;
default:
throw new NotSupportedException();
}
if (seek_to < 0 || seek_to > Length)
throw new IOException("Invalid seek");
if (seek_to < position)
{
zipStream.Close();
zipStream = zipFile.GetInputStream(zipEntry);
position = 0;
}
while (seek_to > position)
if (Read(temp, 0, (int) Math.Min(seek_to - position, (long) temp.Length)) <= 0)
throw new IOException("Invalid seek");
return position;
}
public override void Write(byte[] array, int offset, int count)
{
throw new NotSupportedException();
}
public event PasswordRequiredHandler PasswordRequired;
public event ExtractionProgressHandler ExtractionProgress;
}
public class ArchiveFileAbstraction : TagLib.File.IFileAbstraction public class ArchiveFileAbstraction : TagLib.File.IFileAbstraction
{ {
private string name; private string name;

View File

@@ -0,0 +1,167 @@
using System;
using System.IO;
using ICSharpCode.SharpZipLib.Zip;
namespace CUETools.Processor
{
#region Event Delegate Definitions
/// <summary>
/// Represents the method that will handle extraction progress events
/// </summary>
public delegate void ZipExtractionProgressHandler(object sender, ZipExtractionProgressEventArgs e);
/// <summary>
/// Represents the method that will handle password required events
/// </summary>
public delegate void ZipPasswordRequiredHandler(object sender, ZipPasswordRequiredEventArgs e);
#endregion
public class SeekableZipStream : Stream
{
ZipFile zipFile;
ZipEntry zipEntry;
Stream zipStream;
long position;
byte[] temp;
public SeekableZipStream(string path, string fileName)
{
zipFile = new ZipFile(path);
zipEntry = zipFile.GetEntry(fileName);
if (zipEntry == null)
throw new Exception("Archive entry not found.");
zipStream = zipFile.GetInputStream(zipEntry);
temp = new byte[65536];
position = 0;
}
public override bool CanRead
{
get { return true; }
}
public override bool CanSeek
{
get { return true; }
}
public override bool CanWrite
{
get { return false; }
}
public override long Length
{
get
{
return zipEntry.Size;
}
}
public override long Position
{
get { return position; }
set { Seek(value, SeekOrigin.Begin); }
}
public override void Close()
{
zipStream.Close();
zipEntry = null;
zipFile.Close();
}
public override void Flush()
{
throw new NotSupportedException();
}
public override void SetLength(long value)
{
throw new NotSupportedException();
}
public override int Read(byte[] buffer, int offset, int count)
{
if (position == 0 && zipEntry.IsCrypted && ((ZipInputStream)zipStream).Password == null && PasswordRequired != null)
{
ZipPasswordRequiredEventArgs e = new ZipPasswordRequiredEventArgs();
PasswordRequired(this, e);
if (e.ContinueOperation && e.Password.Length > 0)
((ZipInputStream)zipStream).Password = e.Password;
}
// TODO: always save to a local temp circular buffer for optimization of the backwards seek.
int total = zipStream.Read(buffer, offset, count);
position += total;
if (ExtractionProgress != null)
{
ZipExtractionProgressEventArgs e = new ZipExtractionProgressEventArgs();
e.BytesExtracted = position;
e.FileName = zipEntry.Name;
e.FileSize = zipEntry.Size;
e.PercentComplete = 100.0 * position / zipEntry.Size;
ExtractionProgress(this, e);
}
return total;
}
public override long Seek(long offset, SeekOrigin origin)
{
long seek_to;
switch (origin)
{
case SeekOrigin.Begin:
seek_to = offset;
break;
case SeekOrigin.Current:
seek_to = Position + offset;
break;
case SeekOrigin.End:
seek_to = Length + offset;
break;
default:
throw new NotSupportedException();
}
if (seek_to < 0 || seek_to > Length)
throw new IOException("Invalid seek");
if (seek_to < position)
{
zipStream.Close();
zipStream = zipFile.GetInputStream(zipEntry);
position = 0;
}
while (seek_to > position)
if (Read(temp, 0, (int)Math.Min(seek_to - position, (long)temp.Length)) <= 0)
throw new IOException("Invalid seek");
return position;
}
public override void Write(byte[] array, int offset, int count)
{
throw new NotSupportedException();
}
public event ZipPasswordRequiredHandler PasswordRequired;
public event ZipExtractionProgressHandler ExtractionProgress;
}
#region Event Argument Classes
public class ZipPasswordRequiredEventArgs
{
public string Password = string.Empty;
public bool ContinueOperation = true;
}
public class ZipExtractionProgressEventArgs
{
public string FileName;
public long FileSize;
public long BytesExtracted;
public double PercentComplete;
public bool ContinueOperation = true;
}
#endregion
}

View File

@@ -18,6 +18,8 @@ namespace CUETools.Processor
xiph.SetField(tag, tags.GetValues(tag)); xiph.SetField(tag, tags.GetValues(tag));
return true; return true;
} }
if (fileInfo is TagLib.Mpeg4.File)
return true;
if (fileInfo is TagLib.UserDefined.File && !(fileInfo as TagLib.UserDefined.File).SupportsAPEv2) if (fileInfo is TagLib.UserDefined.File && !(fileInfo as TagLib.UserDefined.File).SupportsAPEv2)
{ {
if (!(fileInfo as TagLib.UserDefined.File).SupportsID3v2) if (!(fileInfo as TagLib.UserDefined.File).SupportsID3v2)

View File

@@ -329,7 +329,7 @@ namespace TagLib.UserDefined {
private static TagLib.File UserDefinedResolver(TagLib.File.IFileAbstraction abstraction, string mimetype, TagLib.ReadStyle style) private static TagLib.File UserDefinedResolver(TagLib.File.IFileAbstraction abstraction, string mimetype, TagLib.ReadStyle style)
{ {
if (mimetype == "taglib/flac" || mimetype == "taglib/wv" || mimetype == "taglib/ape" || mimetype == "taglib/wav" || mimetype == "taglib/ogg") if (mimetype == "taglib/flac" || mimetype == "taglib/wv" || mimetype == "taglib/ape" || mimetype == "taglib/wav" || mimetype == "taglib/ogg" || mimetype == "taglib/m4a")
return null; return null;
if (mimetype == "taglib/tta") if (mimetype == "taglib/tta")
return new File(abstraction, style, true, false); return new File(abstraction, style, true, false);

View File

@@ -9,6 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder> <AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>JDP</RootNamespace> <RootNamespace>JDP</RootNamespace>
<AssemblyName>CUETools</AssemblyName> <AssemblyName>CUETools</AssemblyName>
<ApplicationIcon>Resources\cue.ico</ApplicationIcon>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols> <DebugSymbols>true</DebugSymbols>
@@ -203,6 +204,10 @@
<Compile Include="Settings.cs" /> <Compile Include="Settings.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\CUETools.CDImage\CUETools.CDImage.csproj">
<Project>{1DD41038-D885-46C5-8DDE-E0B82F066584}</Project>
<Name>CUETools.CDImage</Name>
</ProjectReference>
<ProjectReference Include="..\CUETools.Processor\CUETools.Processor.csproj"> <ProjectReference Include="..\CUETools.Processor\CUETools.Processor.csproj">
<Project>{4911BD82-49EF-4858-8B51-5394F86739A4}</Project> <Project>{4911BD82-49EF-4858-8B51-5394F86739A4}</Project>
<Name>CUETools.Processor</Name> <Name>CUETools.Processor</Name>
@@ -222,6 +227,10 @@
<ItemGroup> <ItemGroup>
<None Include="Resources\musicbrainz.ico" /> <None Include="Resources\musicbrainz.ico" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Content Include="Resources\cue.ico" />
<Content Include="Resources\eac.ico" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets. Other similar extension points exist, see Microsoft.Common.targets.

BIN
CUETools/Resources/cue.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
CUETools/Resources/eac.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -49,6 +49,7 @@ namespace JDP {
this.rbAppendFilename = new System.Windows.Forms.RadioButton(); this.rbAppendFilename = new System.Windows.Forms.RadioButton();
this.txtAppendFilename = new System.Windows.Forms.TextBox(); this.txtAppendFilename = new System.Windows.Forms.TextBox();
this.grpAudioOutput = new System.Windows.Forms.GroupBox(); this.grpAudioOutput = new System.Windows.Forms.GroupBox();
this.btnCodec = new System.Windows.Forms.Button();
this.rbUDC1 = new System.Windows.Forms.RadioButton(); this.rbUDC1 = new System.Windows.Forms.RadioButton();
this.rbTTA = new System.Windows.Forms.RadioButton(); this.rbTTA = new System.Windows.Forms.RadioButton();
this.chkLossyWAV = new System.Windows.Forms.CheckBox(); this.chkLossyWAV = new System.Windows.Forms.CheckBox();
@@ -61,6 +62,7 @@ namespace JDP {
this.btnFilenameCorrector = new System.Windows.Forms.Button(); this.btnFilenameCorrector = new System.Windows.Forms.Button();
this.btnSettings = new System.Windows.Forms.Button(); this.btnSettings = new System.Windows.Forms.Button();
this.grpAccurateRip = new System.Windows.Forms.GroupBox(); this.grpAccurateRip = new System.Windows.Forms.GroupBox();
this.rbArPlusCRC = new System.Windows.Forms.RadioButton();
this.rbArAndEncode = new System.Windows.Forms.RadioButton(); this.rbArAndEncode = new System.Windows.Forms.RadioButton();
this.label1 = new System.Windows.Forms.Label(); this.label1 = new System.Windows.Forms.Label();
this.txtDataTrackLength = new System.Windows.Forms.MaskedTextBox(); this.txtDataTrackLength = new System.Windows.Forms.MaskedTextBox();
@@ -80,9 +82,12 @@ namespace JDP {
this.rbFreedbAlways = new System.Windows.Forms.RadioButton(); this.rbFreedbAlways = new System.Windows.Forms.RadioButton();
this.rbFreedbIf = new System.Windows.Forms.RadioButton(); this.rbFreedbIf = new System.Windows.Forms.RadioButton();
this.rbFreedbNever = new System.Windows.Forms.RadioButton(); this.rbFreedbNever = new System.Windows.Forms.RadioButton();
this.btnCodec = new System.Windows.Forms.Button();
this.contextMenuStripUDC = new System.Windows.Forms.ContextMenuStrip(this.components); this.contextMenuStripUDC = new System.Windows.Forms.ContextMenuStrip(this.components);
this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
this.tAKToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.tAKToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripMenuItem();
this.mP3ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.mP3ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.oGGToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.oGGToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.grpCUEPaths.SuspendLayout(); this.grpCUEPaths.SuspendLayout();
@@ -97,78 +102,125 @@ namespace JDP {
// //
// btnConvert // btnConvert
// //
this.btnConvert.AccessibleDescription = null;
this.btnConvert.AccessibleName = null;
resources.ApplyResources(this.btnConvert, "btnConvert"); resources.ApplyResources(this.btnConvert, "btnConvert");
this.btnConvert.BackgroundImage = null;
this.btnConvert.Font = null;
this.btnConvert.Name = "btnConvert"; this.btnConvert.Name = "btnConvert";
this.toolTip1.SetToolTip(this.btnConvert, resources.GetString("btnConvert.ToolTip"));
this.btnConvert.UseVisualStyleBackColor = true; this.btnConvert.UseVisualStyleBackColor = true;
this.btnConvert.Click += new System.EventHandler(this.btnConvert_Click); this.btnConvert.Click += new System.EventHandler(this.btnConvert_Click);
// //
// grpCUEPaths // grpCUEPaths
// //
this.grpCUEPaths.AccessibleDescription = null;
this.grpCUEPaths.AccessibleName = null;
resources.ApplyResources(this.grpCUEPaths, "grpCUEPaths");
this.grpCUEPaths.BackgroundImage = null;
this.grpCUEPaths.Controls.Add(this.btnBrowseOutput); this.grpCUEPaths.Controls.Add(this.btnBrowseOutput);
this.grpCUEPaths.Controls.Add(this.btnBrowseInput); this.grpCUEPaths.Controls.Add(this.btnBrowseInput);
this.grpCUEPaths.Controls.Add(this.lblOutput); this.grpCUEPaths.Controls.Add(this.lblOutput);
this.grpCUEPaths.Controls.Add(this.lblInput); this.grpCUEPaths.Controls.Add(this.lblInput);
this.grpCUEPaths.Controls.Add(this.txtOutputPath); this.grpCUEPaths.Controls.Add(this.txtOutputPath);
this.grpCUEPaths.Controls.Add(this.txtInputPath); this.grpCUEPaths.Controls.Add(this.txtInputPath);
resources.ApplyResources(this.grpCUEPaths, "grpCUEPaths"); this.grpCUEPaths.Font = null;
this.grpCUEPaths.Name = "grpCUEPaths"; this.grpCUEPaths.Name = "grpCUEPaths";
this.grpCUEPaths.TabStop = false; this.grpCUEPaths.TabStop = false;
this.toolTip1.SetToolTip(this.grpCUEPaths, resources.GetString("grpCUEPaths.ToolTip"));
// //
// btnBrowseOutput // btnBrowseOutput
// //
this.btnBrowseOutput.AccessibleDescription = null;
this.btnBrowseOutput.AccessibleName = null;
resources.ApplyResources(this.btnBrowseOutput, "btnBrowseOutput"); resources.ApplyResources(this.btnBrowseOutput, "btnBrowseOutput");
this.btnBrowseOutput.BackgroundImage = null;
this.btnBrowseOutput.Font = null;
this.btnBrowseOutput.Name = "btnBrowseOutput"; this.btnBrowseOutput.Name = "btnBrowseOutput";
this.toolTip1.SetToolTip(this.btnBrowseOutput, resources.GetString("btnBrowseOutput.ToolTip"));
this.btnBrowseOutput.UseVisualStyleBackColor = true; this.btnBrowseOutput.UseVisualStyleBackColor = true;
this.btnBrowseOutput.Click += new System.EventHandler(this.btnBrowseOutput_Click); this.btnBrowseOutput.Click += new System.EventHandler(this.btnBrowseOutput_Click);
// //
// btnBrowseInput // btnBrowseInput
// //
this.btnBrowseInput.AccessibleDescription = null;
this.btnBrowseInput.AccessibleName = null;
resources.ApplyResources(this.btnBrowseInput, "btnBrowseInput"); resources.ApplyResources(this.btnBrowseInput, "btnBrowseInput");
this.btnBrowseInput.BackgroundImage = null;
this.btnBrowseInput.Font = null;
this.btnBrowseInput.Name = "btnBrowseInput"; this.btnBrowseInput.Name = "btnBrowseInput";
this.toolTip1.SetToolTip(this.btnBrowseInput, resources.GetString("btnBrowseInput.ToolTip"));
this.btnBrowseInput.UseVisualStyleBackColor = true; this.btnBrowseInput.UseVisualStyleBackColor = true;
this.btnBrowseInput.Click += new System.EventHandler(this.btnBrowseInput_Click); this.btnBrowseInput.Click += new System.EventHandler(this.btnBrowseInput_Click);
// //
// lblOutput // lblOutput
// //
this.lblOutput.AccessibleDescription = null;
this.lblOutput.AccessibleName = null;
resources.ApplyResources(this.lblOutput, "lblOutput"); resources.ApplyResources(this.lblOutput, "lblOutput");
this.lblOutput.Font = null;
this.lblOutput.Name = "lblOutput"; this.lblOutput.Name = "lblOutput";
this.toolTip1.SetToolTip(this.lblOutput, resources.GetString("lblOutput.ToolTip"));
// //
// lblInput // lblInput
// //
this.lblInput.AccessibleDescription = null;
this.lblInput.AccessibleName = null;
resources.ApplyResources(this.lblInput, "lblInput"); resources.ApplyResources(this.lblInput, "lblInput");
this.lblInput.Font = null;
this.lblInput.Name = "lblInput"; this.lblInput.Name = "lblInput";
this.toolTip1.SetToolTip(this.lblInput, resources.GetString("lblInput.ToolTip"));
// //
// txtOutputPath // txtOutputPath
// //
this.txtOutputPath.AccessibleDescription = null;
this.txtOutputPath.AccessibleName = null;
this.txtOutputPath.AllowDrop = true; this.txtOutputPath.AllowDrop = true;
resources.ApplyResources(this.txtOutputPath, "txtOutputPath"); resources.ApplyResources(this.txtOutputPath, "txtOutputPath");
this.txtOutputPath.BackgroundImage = null;
this.txtOutputPath.Font = null;
this.txtOutputPath.Name = "txtOutputPath"; this.txtOutputPath.Name = "txtOutputPath";
this.toolTip1.SetToolTip(this.txtOutputPath, resources.GetString("txtOutputPath.ToolTip"));
this.txtOutputPath.DragDrop += new System.Windows.Forms.DragEventHandler(this.PathTextBox_DragDrop); this.txtOutputPath.DragDrop += new System.Windows.Forms.DragEventHandler(this.PathTextBox_DragDrop);
this.txtOutputPath.DragEnter += new System.Windows.Forms.DragEventHandler(this.PathTextBox_DragEnter); this.txtOutputPath.DragEnter += new System.Windows.Forms.DragEventHandler(this.PathTextBox_DragEnter);
// //
// txtInputPath // txtInputPath
// //
this.txtInputPath.AccessibleDescription = null;
this.txtInputPath.AccessibleName = null;
this.txtInputPath.AllowDrop = true; this.txtInputPath.AllowDrop = true;
resources.ApplyResources(this.txtInputPath, "txtInputPath"); resources.ApplyResources(this.txtInputPath, "txtInputPath");
this.txtInputPath.BackgroundImage = null;
this.txtInputPath.Font = null;
this.txtInputPath.Name = "txtInputPath"; this.txtInputPath.Name = "txtInputPath";
this.toolTip1.SetToolTip(this.txtInputPath, resources.GetString("txtInputPath.ToolTip"));
this.txtInputPath.TextChanged += new System.EventHandler(this.txtInputPath_TextChanged); this.txtInputPath.TextChanged += new System.EventHandler(this.txtInputPath_TextChanged);
this.txtInputPath.DragDrop += new System.Windows.Forms.DragEventHandler(this.PathTextBox_DragDrop); this.txtInputPath.DragDrop += new System.Windows.Forms.DragEventHandler(this.PathTextBox_DragDrop);
this.txtInputPath.DragEnter += new System.Windows.Forms.DragEventHandler(this.PathTextBox_DragEnter); this.txtInputPath.DragEnter += new System.Windows.Forms.DragEventHandler(this.PathTextBox_DragEnter);
// //
// grpOutputStyle // grpOutputStyle
// //
this.grpOutputStyle.AccessibleDescription = null;
this.grpOutputStyle.AccessibleName = null;
resources.ApplyResources(this.grpOutputStyle, "grpOutputStyle");
this.grpOutputStyle.BackgroundImage = null;
this.grpOutputStyle.Controls.Add(this.rbEmbedCUE); this.grpOutputStyle.Controls.Add(this.rbEmbedCUE);
this.grpOutputStyle.Controls.Add(this.rbGapsLeftOut); this.grpOutputStyle.Controls.Add(this.rbGapsLeftOut);
this.grpOutputStyle.Controls.Add(this.rbGapsPrepended); this.grpOutputStyle.Controls.Add(this.rbGapsPrepended);
this.grpOutputStyle.Controls.Add(this.rbGapsAppended); this.grpOutputStyle.Controls.Add(this.rbGapsAppended);
this.grpOutputStyle.Controls.Add(this.rbSingleFile); this.grpOutputStyle.Controls.Add(this.rbSingleFile);
resources.ApplyResources(this.grpOutputStyle, "grpOutputStyle"); this.grpOutputStyle.Font = null;
this.grpOutputStyle.Name = "grpOutputStyle"; this.grpOutputStyle.Name = "grpOutputStyle";
this.grpOutputStyle.TabStop = false; this.grpOutputStyle.TabStop = false;
this.toolTip1.SetToolTip(this.grpOutputStyle, resources.GetString("grpOutputStyle.ToolTip"));
// //
// rbEmbedCUE // rbEmbedCUE
// //
this.rbEmbedCUE.AccessibleDescription = null;
this.rbEmbedCUE.AccessibleName = null;
resources.ApplyResources(this.rbEmbedCUE, "rbEmbedCUE"); resources.ApplyResources(this.rbEmbedCUE, "rbEmbedCUE");
this.rbEmbedCUE.BackgroundImage = null;
this.rbEmbedCUE.Font = null;
this.rbEmbedCUE.Name = "rbEmbedCUE"; this.rbEmbedCUE.Name = "rbEmbedCUE";
this.rbEmbedCUE.TabStop = true; this.rbEmbedCUE.TabStop = true;
this.toolTip1.SetToolTip(this.rbEmbedCUE, resources.GetString("rbEmbedCUE.ToolTip")); this.toolTip1.SetToolTip(this.rbEmbedCUE, resources.GetString("rbEmbedCUE.ToolTip"));
@@ -177,29 +229,45 @@ namespace JDP {
// //
// rbGapsLeftOut // rbGapsLeftOut
// //
this.rbGapsLeftOut.AccessibleDescription = null;
this.rbGapsLeftOut.AccessibleName = null;
resources.ApplyResources(this.rbGapsLeftOut, "rbGapsLeftOut"); resources.ApplyResources(this.rbGapsLeftOut, "rbGapsLeftOut");
this.rbGapsLeftOut.BackgroundImage = null;
this.rbGapsLeftOut.Font = null;
this.rbGapsLeftOut.Name = "rbGapsLeftOut"; this.rbGapsLeftOut.Name = "rbGapsLeftOut";
this.toolTip1.SetToolTip(this.rbGapsLeftOut, resources.GetString("rbGapsLeftOut.ToolTip")); this.toolTip1.SetToolTip(this.rbGapsLeftOut, resources.GetString("rbGapsLeftOut.ToolTip"));
this.rbGapsLeftOut.UseVisualStyleBackColor = true; this.rbGapsLeftOut.UseVisualStyleBackColor = true;
// //
// rbGapsPrepended // rbGapsPrepended
// //
this.rbGapsPrepended.AccessibleDescription = null;
this.rbGapsPrepended.AccessibleName = null;
resources.ApplyResources(this.rbGapsPrepended, "rbGapsPrepended"); resources.ApplyResources(this.rbGapsPrepended, "rbGapsPrepended");
this.rbGapsPrepended.BackgroundImage = null;
this.rbGapsPrepended.Font = null;
this.rbGapsPrepended.Name = "rbGapsPrepended"; this.rbGapsPrepended.Name = "rbGapsPrepended";
this.toolTip1.SetToolTip(this.rbGapsPrepended, resources.GetString("rbGapsPrepended.ToolTip")); this.toolTip1.SetToolTip(this.rbGapsPrepended, resources.GetString("rbGapsPrepended.ToolTip"));
this.rbGapsPrepended.UseVisualStyleBackColor = true; this.rbGapsPrepended.UseVisualStyleBackColor = true;
// //
// rbGapsAppended // rbGapsAppended
// //
this.rbGapsAppended.AccessibleDescription = null;
this.rbGapsAppended.AccessibleName = null;
resources.ApplyResources(this.rbGapsAppended, "rbGapsAppended"); resources.ApplyResources(this.rbGapsAppended, "rbGapsAppended");
this.rbGapsAppended.BackgroundImage = null;
this.rbGapsAppended.Font = null;
this.rbGapsAppended.Name = "rbGapsAppended"; this.rbGapsAppended.Name = "rbGapsAppended";
this.toolTip1.SetToolTip(this.rbGapsAppended, resources.GetString("rbGapsAppended.ToolTip")); this.toolTip1.SetToolTip(this.rbGapsAppended, resources.GetString("rbGapsAppended.ToolTip"));
this.rbGapsAppended.UseVisualStyleBackColor = true; this.rbGapsAppended.UseVisualStyleBackColor = true;
// //
// rbSingleFile // rbSingleFile
// //
this.rbSingleFile.AccessibleDescription = null;
this.rbSingleFile.AccessibleName = null;
resources.ApplyResources(this.rbSingleFile, "rbSingleFile"); resources.ApplyResources(this.rbSingleFile, "rbSingleFile");
this.rbSingleFile.BackgroundImage = null;
this.rbSingleFile.Checked = true; this.rbSingleFile.Checked = true;
this.rbSingleFile.Font = null;
this.rbSingleFile.Name = "rbSingleFile"; this.rbSingleFile.Name = "rbSingleFile";
this.rbSingleFile.TabStop = true; this.rbSingleFile.TabStop = true;
this.toolTip1.SetToolTip(this.rbSingleFile, resources.GetString("rbSingleFile.ToolTip")); this.toolTip1.SetToolTip(this.rbSingleFile, resources.GetString("rbSingleFile.ToolTip"));
@@ -207,13 +275,22 @@ namespace JDP {
// //
// btnAbout // btnAbout
// //
this.btnAbout.AccessibleDescription = null;
this.btnAbout.AccessibleName = null;
resources.ApplyResources(this.btnAbout, "btnAbout"); resources.ApplyResources(this.btnAbout, "btnAbout");
this.btnAbout.BackgroundImage = null;
this.btnAbout.Font = null;
this.btnAbout.Name = "btnAbout"; this.btnAbout.Name = "btnAbout";
this.toolTip1.SetToolTip(this.btnAbout, resources.GetString("btnAbout.ToolTip"));
this.btnAbout.UseVisualStyleBackColor = true; this.btnAbout.UseVisualStyleBackColor = true;
this.btnAbout.Click += new System.EventHandler(this.btnAbout_Click); this.btnAbout.Click += new System.EventHandler(this.btnAbout_Click);
// //
// grpOutputPathGeneration // grpOutputPathGeneration
// //
this.grpOutputPathGeneration.AccessibleDescription = null;
this.grpOutputPathGeneration.AccessibleName = null;
resources.ApplyResources(this.grpOutputPathGeneration, "grpOutputPathGeneration");
this.grpOutputPathGeneration.BackgroundImage = null;
this.grpOutputPathGeneration.Controls.Add(this.txtCustomFormat); this.grpOutputPathGeneration.Controls.Add(this.txtCustomFormat);
this.grpOutputPathGeneration.Controls.Add(this.rbCustomFormat); this.grpOutputPathGeneration.Controls.Add(this.rbCustomFormat);
this.grpOutputPathGeneration.Controls.Add(this.txtCreateSubdirectory); this.grpOutputPathGeneration.Controls.Add(this.txtCreateSubdirectory);
@@ -221,60 +298,100 @@ namespace JDP {
this.grpOutputPathGeneration.Controls.Add(this.rbCreateSubdirectory); this.grpOutputPathGeneration.Controls.Add(this.rbCreateSubdirectory);
this.grpOutputPathGeneration.Controls.Add(this.rbAppendFilename); this.grpOutputPathGeneration.Controls.Add(this.rbAppendFilename);
this.grpOutputPathGeneration.Controls.Add(this.txtAppendFilename); this.grpOutputPathGeneration.Controls.Add(this.txtAppendFilename);
resources.ApplyResources(this.grpOutputPathGeneration, "grpOutputPathGeneration"); this.grpOutputPathGeneration.Font = null;
this.grpOutputPathGeneration.Name = "grpOutputPathGeneration"; this.grpOutputPathGeneration.Name = "grpOutputPathGeneration";
this.grpOutputPathGeneration.TabStop = false; this.grpOutputPathGeneration.TabStop = false;
this.toolTip1.SetToolTip(this.grpOutputPathGeneration, resources.GetString("grpOutputPathGeneration.ToolTip"));
// //
// txtCustomFormat // txtCustomFormat
// //
this.txtCustomFormat.AccessibleDescription = null;
this.txtCustomFormat.AccessibleName = null;
resources.ApplyResources(this.txtCustomFormat, "txtCustomFormat"); resources.ApplyResources(this.txtCustomFormat, "txtCustomFormat");
this.txtCustomFormat.BackgroundImage = null;
this.txtCustomFormat.Font = null;
this.txtCustomFormat.Name = "txtCustomFormat"; this.txtCustomFormat.Name = "txtCustomFormat";
this.toolTip1.SetToolTip(this.txtCustomFormat, resources.GetString("txtCustomFormat.ToolTip"));
this.txtCustomFormat.TextChanged += new System.EventHandler(this.txtCustomFormat_TextChanged); this.txtCustomFormat.TextChanged += new System.EventHandler(this.txtCustomFormat_TextChanged);
// //
// rbCustomFormat // rbCustomFormat
// //
this.rbCustomFormat.AccessibleDescription = null;
this.rbCustomFormat.AccessibleName = null;
resources.ApplyResources(this.rbCustomFormat, "rbCustomFormat"); resources.ApplyResources(this.rbCustomFormat, "rbCustomFormat");
this.rbCustomFormat.BackgroundImage = null;
this.rbCustomFormat.Font = null;
this.rbCustomFormat.Name = "rbCustomFormat"; this.rbCustomFormat.Name = "rbCustomFormat";
this.rbCustomFormat.TabStop = true; this.rbCustomFormat.TabStop = true;
this.toolTip1.SetToolTip(this.rbCustomFormat, resources.GetString("rbCustomFormat.ToolTip"));
this.rbCustomFormat.UseVisualStyleBackColor = true; this.rbCustomFormat.UseVisualStyleBackColor = true;
this.rbCustomFormat.CheckedChanged += new System.EventHandler(this.rbCustomFormat_CheckedChanged); this.rbCustomFormat.CheckedChanged += new System.EventHandler(this.rbCustomFormat_CheckedChanged);
// //
// txtCreateSubdirectory // txtCreateSubdirectory
// //
this.txtCreateSubdirectory.AccessibleDescription = null;
this.txtCreateSubdirectory.AccessibleName = null;
resources.ApplyResources(this.txtCreateSubdirectory, "txtCreateSubdirectory"); resources.ApplyResources(this.txtCreateSubdirectory, "txtCreateSubdirectory");
this.txtCreateSubdirectory.BackgroundImage = null;
this.txtCreateSubdirectory.Font = null;
this.txtCreateSubdirectory.Name = "txtCreateSubdirectory"; this.txtCreateSubdirectory.Name = "txtCreateSubdirectory";
this.toolTip1.SetToolTip(this.txtCreateSubdirectory, resources.GetString("txtCreateSubdirectory.ToolTip"));
this.txtCreateSubdirectory.TextChanged += new System.EventHandler(this.txtCreateSubdirectory_TextChanged); this.txtCreateSubdirectory.TextChanged += new System.EventHandler(this.txtCreateSubdirectory_TextChanged);
// //
// rbDontGenerate // rbDontGenerate
// //
this.rbDontGenerate.AccessibleDescription = null;
this.rbDontGenerate.AccessibleName = null;
resources.ApplyResources(this.rbDontGenerate, "rbDontGenerate"); resources.ApplyResources(this.rbDontGenerate, "rbDontGenerate");
this.rbDontGenerate.BackgroundImage = null;
this.rbDontGenerate.Font = null;
this.rbDontGenerate.Name = "rbDontGenerate"; this.rbDontGenerate.Name = "rbDontGenerate";
this.toolTip1.SetToolTip(this.rbDontGenerate, resources.GetString("rbDontGenerate.ToolTip"));
this.rbDontGenerate.UseVisualStyleBackColor = true; this.rbDontGenerate.UseVisualStyleBackColor = true;
// //
// rbCreateSubdirectory // rbCreateSubdirectory
// //
this.rbCreateSubdirectory.AccessibleDescription = null;
this.rbCreateSubdirectory.AccessibleName = null;
resources.ApplyResources(this.rbCreateSubdirectory, "rbCreateSubdirectory"); resources.ApplyResources(this.rbCreateSubdirectory, "rbCreateSubdirectory");
this.rbCreateSubdirectory.BackgroundImage = null;
this.rbCreateSubdirectory.Checked = true; this.rbCreateSubdirectory.Checked = true;
this.rbCreateSubdirectory.Font = null;
this.rbCreateSubdirectory.Name = "rbCreateSubdirectory"; this.rbCreateSubdirectory.Name = "rbCreateSubdirectory";
this.rbCreateSubdirectory.TabStop = true; this.rbCreateSubdirectory.TabStop = true;
this.toolTip1.SetToolTip(this.rbCreateSubdirectory, resources.GetString("rbCreateSubdirectory.ToolTip"));
this.rbCreateSubdirectory.UseVisualStyleBackColor = true; this.rbCreateSubdirectory.UseVisualStyleBackColor = true;
this.rbCreateSubdirectory.CheckedChanged += new System.EventHandler(this.rbCreateSubdirectory_CheckedChanged); this.rbCreateSubdirectory.CheckedChanged += new System.EventHandler(this.rbCreateSubdirectory_CheckedChanged);
// //
// rbAppendFilename // rbAppendFilename
// //
this.rbAppendFilename.AccessibleDescription = null;
this.rbAppendFilename.AccessibleName = null;
resources.ApplyResources(this.rbAppendFilename, "rbAppendFilename"); resources.ApplyResources(this.rbAppendFilename, "rbAppendFilename");
this.rbAppendFilename.BackgroundImage = null;
this.rbAppendFilename.Font = null;
this.rbAppendFilename.Name = "rbAppendFilename"; this.rbAppendFilename.Name = "rbAppendFilename";
this.toolTip1.SetToolTip(this.rbAppendFilename, resources.GetString("rbAppendFilename.ToolTip"));
this.rbAppendFilename.UseVisualStyleBackColor = true; this.rbAppendFilename.UseVisualStyleBackColor = true;
this.rbAppendFilename.CheckedChanged += new System.EventHandler(this.rbAppendFilename_CheckedChanged); this.rbAppendFilename.CheckedChanged += new System.EventHandler(this.rbAppendFilename_CheckedChanged);
// //
// txtAppendFilename // txtAppendFilename
// //
this.txtAppendFilename.AccessibleDescription = null;
this.txtAppendFilename.AccessibleName = null;
resources.ApplyResources(this.txtAppendFilename, "txtAppendFilename"); resources.ApplyResources(this.txtAppendFilename, "txtAppendFilename");
this.txtAppendFilename.BackgroundImage = null;
this.txtAppendFilename.Font = null;
this.txtAppendFilename.Name = "txtAppendFilename"; this.txtAppendFilename.Name = "txtAppendFilename";
this.toolTip1.SetToolTip(this.txtAppendFilename, resources.GetString("txtAppendFilename.ToolTip"));
this.txtAppendFilename.TextChanged += new System.EventHandler(this.txtAppendFilename_TextChanged); this.txtAppendFilename.TextChanged += new System.EventHandler(this.txtAppendFilename_TextChanged);
// //
// grpAudioOutput // grpAudioOutput
// //
this.grpAudioOutput.AccessibleDescription = null;
this.grpAudioOutput.AccessibleName = null;
resources.ApplyResources(this.grpAudioOutput, "grpAudioOutput");
this.grpAudioOutput.BackgroundImage = null;
this.grpAudioOutput.Controls.Add(this.btnCodec); this.grpAudioOutput.Controls.Add(this.btnCodec);
this.grpAudioOutput.Controls.Add(this.rbUDC1); this.grpAudioOutput.Controls.Add(this.rbUDC1);
this.grpAudioOutput.Controls.Add(this.rbTTA); this.grpAudioOutput.Controls.Add(this.rbTTA);
@@ -284,29 +401,56 @@ namespace JDP {
this.grpAudioOutput.Controls.Add(this.rbWavPack); this.grpAudioOutput.Controls.Add(this.rbWavPack);
this.grpAudioOutput.Controls.Add(this.rbWAV); this.grpAudioOutput.Controls.Add(this.rbWAV);
this.grpAudioOutput.Controls.Add(this.rbFLAC); this.grpAudioOutput.Controls.Add(this.rbFLAC);
resources.ApplyResources(this.grpAudioOutput, "grpAudioOutput"); this.grpAudioOutput.Font = null;
this.grpAudioOutput.Name = "grpAudioOutput"; this.grpAudioOutput.Name = "grpAudioOutput";
this.grpAudioOutput.TabStop = false; this.grpAudioOutput.TabStop = false;
this.toolTip1.SetToolTip(this.grpAudioOutput, resources.GetString("grpAudioOutput.ToolTip"));
//
// btnCodec
//
this.btnCodec.AccessibleDescription = null;
this.btnCodec.AccessibleName = null;
resources.ApplyResources(this.btnCodec, "btnCodec");
this.btnCodec.BackgroundImage = null;
this.btnCodec.Font = null;
this.btnCodec.Name = "btnCodec";
this.toolTip1.SetToolTip(this.btnCodec, resources.GetString("btnCodec.ToolTip"));
this.btnCodec.UseVisualStyleBackColor = true;
this.btnCodec.Click += new System.EventHandler(this.btnCodec_Click);
// //
// rbUDC1 // rbUDC1
// //
this.rbUDC1.AccessibleDescription = null;
this.rbUDC1.AccessibleName = null;
resources.ApplyResources(this.rbUDC1, "rbUDC1"); resources.ApplyResources(this.rbUDC1, "rbUDC1");
this.rbUDC1.BackgroundImage = null;
this.rbUDC1.Font = null;
this.rbUDC1.Name = "rbUDC1"; this.rbUDC1.Name = "rbUDC1";
this.rbUDC1.TabStop = true; this.rbUDC1.TabStop = true;
this.toolTip1.SetToolTip(this.rbUDC1, resources.GetString("rbUDC1.ToolTip"));
this.rbUDC1.UseVisualStyleBackColor = true; this.rbUDC1.UseVisualStyleBackColor = true;
this.rbUDC1.CheckedChanged += new System.EventHandler(this.rbUDC1_CheckedChanged); this.rbUDC1.CheckedChanged += new System.EventHandler(this.rbUDC1_CheckedChanged);
// //
// rbTTA // rbTTA
// //
this.rbTTA.AccessibleDescription = null;
this.rbTTA.AccessibleName = null;
resources.ApplyResources(this.rbTTA, "rbTTA"); resources.ApplyResources(this.rbTTA, "rbTTA");
this.rbTTA.BackgroundImage = null;
this.rbTTA.Font = null;
this.rbTTA.Name = "rbTTA"; this.rbTTA.Name = "rbTTA";
this.rbTTA.TabStop = true; this.rbTTA.TabStop = true;
this.toolTip1.SetToolTip(this.rbTTA, resources.GetString("rbTTA.ToolTip"));
this.rbTTA.UseVisualStyleBackColor = true; this.rbTTA.UseVisualStyleBackColor = true;
this.rbTTA.CheckedChanged += new System.EventHandler(this.rbTTA_CheckedChanged); this.rbTTA.CheckedChanged += new System.EventHandler(this.rbTTA_CheckedChanged);
// //
// chkLossyWAV // chkLossyWAV
// //
this.chkLossyWAV.AccessibleDescription = null;
this.chkLossyWAV.AccessibleName = null;
resources.ApplyResources(this.chkLossyWAV, "chkLossyWAV"); resources.ApplyResources(this.chkLossyWAV, "chkLossyWAV");
this.chkLossyWAV.BackgroundImage = null;
this.chkLossyWAV.Font = null;
this.chkLossyWAV.Name = "chkLossyWAV"; this.chkLossyWAV.Name = "chkLossyWAV";
this.toolTip1.SetToolTip(this.chkLossyWAV, resources.GetString("chkLossyWAV.ToolTip")); this.toolTip1.SetToolTip(this.chkLossyWAV, resources.GetString("chkLossyWAV.ToolTip"));
this.chkLossyWAV.UseVisualStyleBackColor = true; this.chkLossyWAV.UseVisualStyleBackColor = true;
@@ -314,15 +458,24 @@ namespace JDP {
// //
// rbAPE // rbAPE
// //
this.rbAPE.AccessibleDescription = null;
this.rbAPE.AccessibleName = null;
resources.ApplyResources(this.rbAPE, "rbAPE"); resources.ApplyResources(this.rbAPE, "rbAPE");
this.rbAPE.BackgroundImage = null;
this.rbAPE.Font = null;
this.rbAPE.Name = "rbAPE"; this.rbAPE.Name = "rbAPE";
this.rbAPE.TabStop = true; this.rbAPE.TabStop = true;
this.toolTip1.SetToolTip(this.rbAPE, resources.GetString("rbAPE.ToolTip"));
this.rbAPE.UseVisualStyleBackColor = true; this.rbAPE.UseVisualStyleBackColor = true;
this.rbAPE.CheckedChanged += new System.EventHandler(this.rbAPE_CheckedChanged); this.rbAPE.CheckedChanged += new System.EventHandler(this.rbAPE_CheckedChanged);
// //
// rbNoAudio // rbNoAudio
// //
this.rbNoAudio.AccessibleDescription = null;
this.rbNoAudio.AccessibleName = null;
resources.ApplyResources(this.rbNoAudio, "rbNoAudio"); resources.ApplyResources(this.rbNoAudio, "rbNoAudio");
this.rbNoAudio.BackgroundImage = null;
this.rbNoAudio.Font = null;
this.rbNoAudio.Name = "rbNoAudio"; this.rbNoAudio.Name = "rbNoAudio";
this.toolTip1.SetToolTip(this.rbNoAudio, resources.GetString("rbNoAudio.ToolTip")); this.toolTip1.SetToolTip(this.rbNoAudio, resources.GetString("rbNoAudio.ToolTip"));
this.rbNoAudio.UseVisualStyleBackColor = true; this.rbNoAudio.UseVisualStyleBackColor = true;
@@ -330,85 +483,150 @@ namespace JDP {
// //
// rbWavPack // rbWavPack
// //
this.rbWavPack.AccessibleDescription = null;
this.rbWavPack.AccessibleName = null;
resources.ApplyResources(this.rbWavPack, "rbWavPack"); resources.ApplyResources(this.rbWavPack, "rbWavPack");
this.rbWavPack.BackgroundImage = null;
this.rbWavPack.Font = null;
this.rbWavPack.Name = "rbWavPack"; this.rbWavPack.Name = "rbWavPack";
this.toolTip1.SetToolTip(this.rbWavPack, resources.GetString("rbWavPack.ToolTip"));
this.rbWavPack.UseVisualStyleBackColor = true; this.rbWavPack.UseVisualStyleBackColor = true;
this.rbWavPack.CheckedChanged += new System.EventHandler(this.rbWavPack_CheckedChanged); this.rbWavPack.CheckedChanged += new System.EventHandler(this.rbWavPack_CheckedChanged);
// //
// rbWAV // rbWAV
// //
this.rbWAV.AccessibleDescription = null;
this.rbWAV.AccessibleName = null;
resources.ApplyResources(this.rbWAV, "rbWAV"); resources.ApplyResources(this.rbWAV, "rbWAV");
this.rbWAV.BackgroundImage = null;
this.rbWAV.Checked = true; this.rbWAV.Checked = true;
this.rbWAV.Font = null;
this.rbWAV.Name = "rbWAV"; this.rbWAV.Name = "rbWAV";
this.rbWAV.TabStop = true; this.rbWAV.TabStop = true;
this.toolTip1.SetToolTip(this.rbWAV, resources.GetString("rbWAV.ToolTip"));
this.rbWAV.UseVisualStyleBackColor = true; this.rbWAV.UseVisualStyleBackColor = true;
this.rbWAV.CheckedChanged += new System.EventHandler(this.rbWAV_CheckedChanged); this.rbWAV.CheckedChanged += new System.EventHandler(this.rbWAV_CheckedChanged);
// //
// rbFLAC // rbFLAC
// //
this.rbFLAC.AccessibleDescription = null;
this.rbFLAC.AccessibleName = null;
resources.ApplyResources(this.rbFLAC, "rbFLAC"); resources.ApplyResources(this.rbFLAC, "rbFLAC");
this.rbFLAC.BackgroundImage = null;
this.rbFLAC.Font = null;
this.rbFLAC.Name = "rbFLAC"; this.rbFLAC.Name = "rbFLAC";
this.toolTip1.SetToolTip(this.rbFLAC, resources.GetString("rbFLAC.ToolTip"));
this.rbFLAC.UseVisualStyleBackColor = true; this.rbFLAC.UseVisualStyleBackColor = true;
this.rbFLAC.CheckedChanged += new System.EventHandler(this.rbFLAC_CheckedChanged); this.rbFLAC.CheckedChanged += new System.EventHandler(this.rbFLAC_CheckedChanged);
// //
// btnBatch // btnBatch
// //
this.btnBatch.AccessibleDescription = null;
this.btnBatch.AccessibleName = null;
resources.ApplyResources(this.btnBatch, "btnBatch"); resources.ApplyResources(this.btnBatch, "btnBatch");
this.btnBatch.BackgroundImage = null;
this.btnBatch.Font = null;
this.btnBatch.Name = "btnBatch"; this.btnBatch.Name = "btnBatch";
this.toolTip1.SetToolTip(this.btnBatch, resources.GetString("btnBatch.ToolTip"));
this.btnBatch.UseVisualStyleBackColor = true; this.btnBatch.UseVisualStyleBackColor = true;
this.btnBatch.Click += new System.EventHandler(this.btnBatch_Click); this.btnBatch.Click += new System.EventHandler(this.btnBatch_Click);
// //
// btnFilenameCorrector // btnFilenameCorrector
// //
this.btnFilenameCorrector.AccessibleDescription = null;
this.btnFilenameCorrector.AccessibleName = null;
resources.ApplyResources(this.btnFilenameCorrector, "btnFilenameCorrector"); resources.ApplyResources(this.btnFilenameCorrector, "btnFilenameCorrector");
this.btnFilenameCorrector.BackgroundImage = null;
this.btnFilenameCorrector.Font = null;
this.btnFilenameCorrector.Name = "btnFilenameCorrector"; this.btnFilenameCorrector.Name = "btnFilenameCorrector";
this.toolTip1.SetToolTip(this.btnFilenameCorrector, resources.GetString("btnFilenameCorrector.ToolTip"));
this.btnFilenameCorrector.UseVisualStyleBackColor = true; this.btnFilenameCorrector.UseVisualStyleBackColor = true;
this.btnFilenameCorrector.Click += new System.EventHandler(this.btnFilenameCorrector_Click); this.btnFilenameCorrector.Click += new System.EventHandler(this.btnFilenameCorrector_Click);
// //
// btnSettings // btnSettings
// //
this.btnSettings.AccessibleDescription = null;
this.btnSettings.AccessibleName = null;
resources.ApplyResources(this.btnSettings, "btnSettings"); resources.ApplyResources(this.btnSettings, "btnSettings");
this.btnSettings.BackgroundImage = null;
this.btnSettings.Font = null;
this.btnSettings.Name = "btnSettings"; this.btnSettings.Name = "btnSettings";
this.toolTip1.SetToolTip(this.btnSettings, resources.GetString("btnSettings.ToolTip"));
this.btnSettings.UseVisualStyleBackColor = true; this.btnSettings.UseVisualStyleBackColor = true;
this.btnSettings.Click += new System.EventHandler(this.btnSettings_Click); this.btnSettings.Click += new System.EventHandler(this.btnSettings_Click);
// //
// grpAccurateRip // grpAccurateRip
// //
this.grpAccurateRip.AccessibleDescription = null;
this.grpAccurateRip.AccessibleName = null;
resources.ApplyResources(this.grpAccurateRip, "grpAccurateRip");
this.grpAccurateRip.BackgroundImage = null;
this.grpAccurateRip.Controls.Add(this.rbArPlusCRC);
this.grpAccurateRip.Controls.Add(this.rbArAndEncode); this.grpAccurateRip.Controls.Add(this.rbArAndEncode);
this.grpAccurateRip.Controls.Add(this.label1); this.grpAccurateRip.Controls.Add(this.label1);
this.grpAccurateRip.Controls.Add(this.txtDataTrackLength); this.grpAccurateRip.Controls.Add(this.txtDataTrackLength);
this.grpAccurateRip.Controls.Add(this.rbArApplyOffset); this.grpAccurateRip.Controls.Add(this.rbArApplyOffset);
this.grpAccurateRip.Controls.Add(this.rbArVerify); this.grpAccurateRip.Controls.Add(this.rbArVerify);
this.grpAccurateRip.Controls.Add(this.rbArNone); this.grpAccurateRip.Controls.Add(this.rbArNone);
resources.ApplyResources(this.grpAccurateRip, "grpAccurateRip"); this.grpAccurateRip.Font = null;
this.grpAccurateRip.Name = "grpAccurateRip"; this.grpAccurateRip.Name = "grpAccurateRip";
this.grpAccurateRip.TabStop = false; this.grpAccurateRip.TabStop = false;
this.toolTip1.SetToolTip(this.grpAccurateRip, resources.GetString("grpAccurateRip.ToolTip"));
//
// rbArPlusCRC
//
this.rbArPlusCRC.AccessibleDescription = null;
this.rbArPlusCRC.AccessibleName = null;
resources.ApplyResources(this.rbArPlusCRC, "rbArPlusCRC");
this.rbArPlusCRC.BackgroundImage = null;
this.rbArPlusCRC.Font = null;
this.rbArPlusCRC.Name = "rbArPlusCRC";
this.toolTip1.SetToolTip(this.rbArPlusCRC, resources.GetString("rbArPlusCRC.ToolTip"));
this.rbArPlusCRC.UseVisualStyleBackColor = true;
this.rbArPlusCRC.CheckedChanged += new System.EventHandler(this.rbArPlusCRC_CheckedChanged);
// //
// rbArAndEncode // rbArAndEncode
// //
this.rbArAndEncode.AccessibleDescription = null;
this.rbArAndEncode.AccessibleName = null;
resources.ApplyResources(this.rbArAndEncode, "rbArAndEncode"); resources.ApplyResources(this.rbArAndEncode, "rbArAndEncode");
this.rbArAndEncode.BackgroundImage = null;
this.rbArAndEncode.Font = null;
this.rbArAndEncode.Name = "rbArAndEncode"; this.rbArAndEncode.Name = "rbArAndEncode";
this.rbArAndEncode.TabStop = true; this.rbArAndEncode.TabStop = true;
this.toolTip1.SetToolTip(this.rbArAndEncode, resources.GetString("rbArAndEncode.ToolTip"));
this.rbArAndEncode.UseVisualStyleBackColor = true; this.rbArAndEncode.UseVisualStyleBackColor = true;
// //
// label1 // label1
// //
this.label1.AccessibleDescription = null;
this.label1.AccessibleName = null;
resources.ApplyResources(this.label1, "label1"); resources.ApplyResources(this.label1, "label1");
this.label1.Font = null;
this.label1.Name = "label1"; this.label1.Name = "label1";
this.toolTip1.SetToolTip(this.label1, resources.GetString("label1.ToolTip"));
// //
// txtDataTrackLength // txtDataTrackLength
// //
this.txtDataTrackLength.AccessibleDescription = null;
this.txtDataTrackLength.AccessibleName = null;
resources.ApplyResources(this.txtDataTrackLength, "txtDataTrackLength");
this.txtDataTrackLength.BackgroundImage = null;
this.txtDataTrackLength.Culture = new System.Globalization.CultureInfo(""); this.txtDataTrackLength.Culture = new System.Globalization.CultureInfo("");
this.txtDataTrackLength.CutCopyMaskFormat = System.Windows.Forms.MaskFormat.IncludePromptAndLiterals; this.txtDataTrackLength.CutCopyMaskFormat = System.Windows.Forms.MaskFormat.IncludePromptAndLiterals;
this.txtDataTrackLength.Font = null;
this.txtDataTrackLength.InsertKeyMode = System.Windows.Forms.InsertKeyMode.Overwrite; this.txtDataTrackLength.InsertKeyMode = System.Windows.Forms.InsertKeyMode.Overwrite;
resources.ApplyResources(this.txtDataTrackLength, "txtDataTrackLength");
this.txtDataTrackLength.Name = "txtDataTrackLength"; this.txtDataTrackLength.Name = "txtDataTrackLength";
this.txtDataTrackLength.TextMaskFormat = System.Windows.Forms.MaskFormat.IncludePromptAndLiterals; this.txtDataTrackLength.TextMaskFormat = System.Windows.Forms.MaskFormat.IncludePromptAndLiterals;
this.toolTip1.SetToolTip(this.txtDataTrackLength, resources.GetString("txtDataTrackLength.ToolTip")); this.toolTip1.SetToolTip(this.txtDataTrackLength, resources.GetString("txtDataTrackLength.ToolTip"));
// //
// rbArApplyOffset // rbArApplyOffset
// //
this.rbArApplyOffset.AccessibleDescription = null;
this.rbArApplyOffset.AccessibleName = null;
resources.ApplyResources(this.rbArApplyOffset, "rbArApplyOffset"); resources.ApplyResources(this.rbArApplyOffset, "rbArApplyOffset");
this.rbArApplyOffset.BackgroundImage = null;
this.rbArApplyOffset.Font = null;
this.rbArApplyOffset.Name = "rbArApplyOffset"; this.rbArApplyOffset.Name = "rbArApplyOffset";
this.toolTip1.SetToolTip(this.rbArApplyOffset, resources.GetString("rbArApplyOffset.ToolTip")); this.toolTip1.SetToolTip(this.rbArApplyOffset, resources.GetString("rbArApplyOffset.ToolTip"));
this.rbArApplyOffset.UseVisualStyleBackColor = true; this.rbArApplyOffset.UseVisualStyleBackColor = true;
@@ -416,7 +634,11 @@ namespace JDP {
// //
// rbArVerify // rbArVerify
// //
this.rbArVerify.AccessibleDescription = null;
this.rbArVerify.AccessibleName = null;
resources.ApplyResources(this.rbArVerify, "rbArVerify"); resources.ApplyResources(this.rbArVerify, "rbArVerify");
this.rbArVerify.BackgroundImage = null;
this.rbArVerify.Font = null;
this.rbArVerify.Name = "rbArVerify"; this.rbArVerify.Name = "rbArVerify";
this.toolTip1.SetToolTip(this.rbArVerify, resources.GetString("rbArVerify.ToolTip")); this.toolTip1.SetToolTip(this.rbArVerify, resources.GetString("rbArVerify.ToolTip"));
this.rbArVerify.UseVisualStyleBackColor = true; this.rbArVerify.UseVisualStyleBackColor = true;
@@ -424,8 +646,12 @@ namespace JDP {
// //
// rbArNone // rbArNone
// //
this.rbArNone.AccessibleDescription = null;
this.rbArNone.AccessibleName = null;
resources.ApplyResources(this.rbArNone, "rbArNone"); resources.ApplyResources(this.rbArNone, "rbArNone");
this.rbArNone.BackgroundImage = null;
this.rbArNone.Checked = true; this.rbArNone.Checked = true;
this.rbArNone.Font = null;
this.rbArNone.Name = "rbArNone"; this.rbArNone.Name = "rbArNone";
this.rbArNone.TabStop = true; this.rbArNone.TabStop = true;
this.toolTip1.SetToolTip(this.rbArNone, resources.GetString("rbArNone.ToolTip")); this.toolTip1.SetToolTip(this.rbArNone, resources.GetString("rbArNone.ToolTip"));
@@ -433,32 +659,44 @@ namespace JDP {
// //
// statusStrip1 // statusStrip1
// //
this.statusStrip1.AccessibleDescription = null;
this.statusStrip1.AccessibleName = null;
resources.ApplyResources(this.statusStrip1, "statusStrip1");
this.statusStrip1.BackgroundImage = null;
this.statusStrip1.Font = null;
this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripStatusLabel1, this.toolStripStatusLabel1,
this.toolStripProgressBar1, this.toolStripProgressBar1,
this.toolStripProgressBar2}); this.toolStripProgressBar2});
resources.ApplyResources(this.statusStrip1, "statusStrip1");
this.statusStrip1.Name = "statusStrip1"; this.statusStrip1.Name = "statusStrip1";
this.statusStrip1.SizingGrip = false; this.statusStrip1.SizingGrip = false;
this.toolTip1.SetToolTip(this.statusStrip1, resources.GetString("statusStrip1.ToolTip"));
// //
// toolStripStatusLabel1 // toolStripStatusLabel1
// //
this.toolStripStatusLabel1.Name = "toolStripStatusLabel1"; this.toolStripStatusLabel1.AccessibleDescription = null;
this.toolStripStatusLabel1.AccessibleName = null;
resources.ApplyResources(this.toolStripStatusLabel1, "toolStripStatusLabel1"); resources.ApplyResources(this.toolStripStatusLabel1, "toolStripStatusLabel1");
this.toolStripStatusLabel1.BackgroundImage = null;
this.toolStripStatusLabel1.Name = "toolStripStatusLabel1";
this.toolStripStatusLabel1.Spring = true; this.toolStripStatusLabel1.Spring = true;
// //
// toolStripProgressBar1 // toolStripProgressBar1
// //
this.toolStripProgressBar1.AccessibleDescription = null;
this.toolStripProgressBar1.AccessibleName = null;
resources.ApplyResources(this.toolStripProgressBar1, "toolStripProgressBar1");
this.toolStripProgressBar1.AutoToolTip = true; this.toolStripProgressBar1.AutoToolTip = true;
this.toolStripProgressBar1.Name = "toolStripProgressBar1"; this.toolStripProgressBar1.Name = "toolStripProgressBar1";
resources.ApplyResources(this.toolStripProgressBar1, "toolStripProgressBar1");
this.toolStripProgressBar1.Style = System.Windows.Forms.ProgressBarStyle.Continuous; this.toolStripProgressBar1.Style = System.Windows.Forms.ProgressBarStyle.Continuous;
// //
// toolStripProgressBar2 // toolStripProgressBar2
// //
this.toolStripProgressBar2.AccessibleDescription = null;
this.toolStripProgressBar2.AccessibleName = null;
resources.ApplyResources(this.toolStripProgressBar2, "toolStripProgressBar2");
this.toolStripProgressBar2.AutoToolTip = true; this.toolStripProgressBar2.AutoToolTip = true;
this.toolStripProgressBar2.Name = "toolStripProgressBar2"; this.toolStripProgressBar2.Name = "toolStripProgressBar2";
resources.ApplyResources(this.toolStripProgressBar2, "toolStripProgressBar2");
this.toolStripProgressBar2.Style = System.Windows.Forms.ProgressBarStyle.Continuous; this.toolStripProgressBar2.Style = System.Windows.Forms.ProgressBarStyle.Continuous;
// //
// toolTip1 // toolTip1
@@ -469,98 +707,189 @@ namespace JDP {
// //
// btnCUECreator // btnCUECreator
// //
this.btnCUECreator.AccessibleDescription = null;
this.btnCUECreator.AccessibleName = null;
resources.ApplyResources(this.btnCUECreator, "btnCUECreator"); resources.ApplyResources(this.btnCUECreator, "btnCUECreator");
this.btnCUECreator.BackgroundImage = null;
this.btnCUECreator.Font = null;
this.btnCUECreator.Name = "btnCUECreator"; this.btnCUECreator.Name = "btnCUECreator";
this.toolTip1.SetToolTip(this.btnCUECreator, resources.GetString("btnCUECreator.ToolTip"));
this.btnCUECreator.UseVisualStyleBackColor = true; this.btnCUECreator.UseVisualStyleBackColor = true;
this.btnCUECreator.Click += new System.EventHandler(this.btnCUECreator_Click); this.btnCUECreator.Click += new System.EventHandler(this.btnCUECreator_Click);
// //
// btnStop // btnStop
// //
this.btnStop.AccessibleDescription = null;
this.btnStop.AccessibleName = null;
resources.ApplyResources(this.btnStop, "btnStop"); resources.ApplyResources(this.btnStop, "btnStop");
this.btnStop.BackgroundImage = null;
this.btnStop.Font = null;
this.btnStop.Name = "btnStop"; this.btnStop.Name = "btnStop";
this.toolTip1.SetToolTip(this.btnStop, resources.GetString("btnStop.ToolTip"));
this.btnStop.UseVisualStyleBackColor = true; this.btnStop.UseVisualStyleBackColor = true;
this.btnStop.Click += new System.EventHandler(this.btnStop_Click); this.btnStop.Click += new System.EventHandler(this.btnStop_Click);
// //
// btnPause // btnPause
// //
this.btnPause.AccessibleDescription = null;
this.btnPause.AccessibleName = null;
resources.ApplyResources(this.btnPause, "btnPause"); resources.ApplyResources(this.btnPause, "btnPause");
this.btnPause.BackgroundImage = null;
this.btnPause.Font = null;
this.btnPause.Name = "btnPause"; this.btnPause.Name = "btnPause";
this.toolTip1.SetToolTip(this.btnPause, resources.GetString("btnPause.ToolTip"));
this.btnPause.UseVisualStyleBackColor = true; this.btnPause.UseVisualStyleBackColor = true;
this.btnPause.Click += new System.EventHandler(this.btnPause_Click); this.btnPause.Click += new System.EventHandler(this.btnPause_Click);
// //
// btnResume // btnResume
// //
this.btnResume.AccessibleDescription = null;
this.btnResume.AccessibleName = null;
resources.ApplyResources(this.btnResume, "btnResume"); resources.ApplyResources(this.btnResume, "btnResume");
this.btnResume.BackgroundImage = null;
this.btnResume.Font = null;
this.btnResume.Name = "btnResume"; this.btnResume.Name = "btnResume";
this.toolTip1.SetToolTip(this.btnResume, resources.GetString("btnResume.ToolTip"));
this.btnResume.UseVisualStyleBackColor = true; this.btnResume.UseVisualStyleBackColor = true;
this.btnResume.Click += new System.EventHandler(this.btnPause_Click); this.btnResume.Click += new System.EventHandler(this.btnPause_Click);
// //
// groupBox1 // groupBox1
// //
this.groupBox1.AccessibleDescription = null;
this.groupBox1.AccessibleName = null;
resources.ApplyResources(this.groupBox1, "groupBox1");
this.groupBox1.BackgroundImage = null;
this.groupBox1.Controls.Add(this.rbFreedbAlways); this.groupBox1.Controls.Add(this.rbFreedbAlways);
this.groupBox1.Controls.Add(this.rbFreedbIf); this.groupBox1.Controls.Add(this.rbFreedbIf);
this.groupBox1.Controls.Add(this.rbFreedbNever); this.groupBox1.Controls.Add(this.rbFreedbNever);
resources.ApplyResources(this.groupBox1, "groupBox1"); this.groupBox1.Font = null;
this.groupBox1.Name = "groupBox1"; this.groupBox1.Name = "groupBox1";
this.groupBox1.TabStop = false; this.groupBox1.TabStop = false;
this.toolTip1.SetToolTip(this.groupBox1, resources.GetString("groupBox1.ToolTip"));
// //
// rbFreedbAlways // rbFreedbAlways
// //
this.rbFreedbAlways.AccessibleDescription = null;
this.rbFreedbAlways.AccessibleName = null;
resources.ApplyResources(this.rbFreedbAlways, "rbFreedbAlways"); resources.ApplyResources(this.rbFreedbAlways, "rbFreedbAlways");
this.rbFreedbAlways.BackgroundImage = null;
this.rbFreedbAlways.Font = null;
this.rbFreedbAlways.Name = "rbFreedbAlways"; this.rbFreedbAlways.Name = "rbFreedbAlways";
this.rbFreedbAlways.TabStop = true; this.rbFreedbAlways.TabStop = true;
this.toolTip1.SetToolTip(this.rbFreedbAlways, resources.GetString("rbFreedbAlways.ToolTip"));
this.rbFreedbAlways.UseVisualStyleBackColor = true; this.rbFreedbAlways.UseVisualStyleBackColor = true;
// //
// rbFreedbIf // rbFreedbIf
// //
this.rbFreedbIf.AccessibleDescription = null;
this.rbFreedbIf.AccessibleName = null;
resources.ApplyResources(this.rbFreedbIf, "rbFreedbIf"); resources.ApplyResources(this.rbFreedbIf, "rbFreedbIf");
this.rbFreedbIf.BackgroundImage = null;
this.rbFreedbIf.Font = null;
this.rbFreedbIf.Name = "rbFreedbIf"; this.rbFreedbIf.Name = "rbFreedbIf";
this.rbFreedbIf.TabStop = true; this.rbFreedbIf.TabStop = true;
this.toolTip1.SetToolTip(this.rbFreedbIf, resources.GetString("rbFreedbIf.ToolTip"));
this.rbFreedbIf.UseVisualStyleBackColor = true; this.rbFreedbIf.UseVisualStyleBackColor = true;
// //
// rbFreedbNever // rbFreedbNever
// //
this.rbFreedbNever.AccessibleDescription = null;
this.rbFreedbNever.AccessibleName = null;
resources.ApplyResources(this.rbFreedbNever, "rbFreedbNever"); resources.ApplyResources(this.rbFreedbNever, "rbFreedbNever");
this.rbFreedbNever.BackgroundImage = null;
this.rbFreedbNever.Font = null;
this.rbFreedbNever.Name = "rbFreedbNever"; this.rbFreedbNever.Name = "rbFreedbNever";
this.rbFreedbNever.TabStop = true; this.rbFreedbNever.TabStop = true;
this.toolTip1.SetToolTip(this.rbFreedbNever, resources.GetString("rbFreedbNever.ToolTip"));
this.rbFreedbNever.UseVisualStyleBackColor = true; this.rbFreedbNever.UseVisualStyleBackColor = true;
// //
// btnCodec
//
resources.ApplyResources(this.btnCodec, "btnCodec");
this.btnCodec.Name = "btnCodec";
this.btnCodec.UseVisualStyleBackColor = true;
this.btnCodec.Click += new System.EventHandler(this.btnCodec_Click);
//
// contextMenuStripUDC // contextMenuStripUDC
// //
this.contextMenuStripUDC.AccessibleDescription = null;
this.contextMenuStripUDC.AccessibleName = null;
resources.ApplyResources(this.contextMenuStripUDC, "contextMenuStripUDC");
this.contextMenuStripUDC.BackgroundImage = null;
this.contextMenuStripUDC.Font = null;
this.contextMenuStripUDC.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.contextMenuStripUDC.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripMenuItem2,
this.tAKToolStripMenuItem, this.tAKToolStripMenuItem,
this.toolStripMenuItem1,
this.toolStripSeparator1,
this.toolStripMenuItem3,
this.mP3ToolStripMenuItem, this.mP3ToolStripMenuItem,
this.oGGToolStripMenuItem}); this.oGGToolStripMenuItem});
this.contextMenuStripUDC.Name = "contextMenuStripUDC"; this.contextMenuStripUDC.Name = "contextMenuStripUDC";
resources.ApplyResources(this.contextMenuStripUDC, "contextMenuStripUDC"); this.toolTip1.SetToolTip(this.contextMenuStripUDC, resources.GetString("contextMenuStripUDC.ToolTip"));
this.contextMenuStripUDC.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.contextMenuStripUDC_ItemClicked); this.contextMenuStripUDC.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.contextMenuStripUDC_ItemClicked);
// //
// toolStripMenuItem2
//
this.toolStripMenuItem2.AccessibleDescription = null;
this.toolStripMenuItem2.AccessibleName = null;
resources.ApplyResources(this.toolStripMenuItem2, "toolStripMenuItem2");
this.toolStripMenuItem2.BackgroundImage = null;
this.toolStripMenuItem2.Name = "toolStripMenuItem2";
this.toolStripMenuItem2.ShortcutKeyDisplayString = null;
//
// tAKToolStripMenuItem // tAKToolStripMenuItem
// //
this.tAKToolStripMenuItem.Name = "tAKToolStripMenuItem"; this.tAKToolStripMenuItem.AccessibleDescription = null;
this.tAKToolStripMenuItem.AccessibleName = null;
resources.ApplyResources(this.tAKToolStripMenuItem, "tAKToolStripMenuItem"); resources.ApplyResources(this.tAKToolStripMenuItem, "tAKToolStripMenuItem");
this.tAKToolStripMenuItem.BackgroundImage = null;
this.tAKToolStripMenuItem.Name = "tAKToolStripMenuItem";
this.tAKToolStripMenuItem.ShortcutKeyDisplayString = null;
//
// toolStripMenuItem1
//
this.toolStripMenuItem1.AccessibleDescription = null;
this.toolStripMenuItem1.AccessibleName = null;
resources.ApplyResources(this.toolStripMenuItem1, "toolStripMenuItem1");
this.toolStripMenuItem1.BackgroundImage = null;
this.toolStripMenuItem1.Name = "toolStripMenuItem1";
this.toolStripMenuItem1.ShortcutKeyDisplayString = null;
//
// toolStripSeparator1
//
this.toolStripSeparator1.AccessibleDescription = null;
this.toolStripSeparator1.AccessibleName = null;
resources.ApplyResources(this.toolStripSeparator1, "toolStripSeparator1");
this.toolStripSeparator1.Name = "toolStripSeparator1";
//
// toolStripMenuItem3
//
this.toolStripMenuItem3.AccessibleDescription = null;
this.toolStripMenuItem3.AccessibleName = null;
resources.ApplyResources(this.toolStripMenuItem3, "toolStripMenuItem3");
this.toolStripMenuItem3.BackgroundImage = null;
this.toolStripMenuItem3.Name = "toolStripMenuItem3";
this.toolStripMenuItem3.ShortcutKeyDisplayString = null;
// //
// mP3ToolStripMenuItem // mP3ToolStripMenuItem
// //
this.mP3ToolStripMenuItem.Name = "mP3ToolStripMenuItem"; this.mP3ToolStripMenuItem.AccessibleDescription = null;
this.mP3ToolStripMenuItem.AccessibleName = null;
resources.ApplyResources(this.mP3ToolStripMenuItem, "mP3ToolStripMenuItem"); resources.ApplyResources(this.mP3ToolStripMenuItem, "mP3ToolStripMenuItem");
this.mP3ToolStripMenuItem.BackgroundImage = null;
this.mP3ToolStripMenuItem.Name = "mP3ToolStripMenuItem";
this.mP3ToolStripMenuItem.ShortcutKeyDisplayString = null;
// //
// oGGToolStripMenuItem // oGGToolStripMenuItem
// //
this.oGGToolStripMenuItem.Name = "oGGToolStripMenuItem"; this.oGGToolStripMenuItem.AccessibleDescription = null;
this.oGGToolStripMenuItem.AccessibleName = null;
resources.ApplyResources(this.oGGToolStripMenuItem, "oGGToolStripMenuItem"); resources.ApplyResources(this.oGGToolStripMenuItem, "oGGToolStripMenuItem");
this.oGGToolStripMenuItem.BackgroundImage = null;
this.oGGToolStripMenuItem.Name = "oGGToolStripMenuItem";
this.oGGToolStripMenuItem.ShortcutKeyDisplayString = null;
// //
// frmCUETools // frmCUETools
// //
this.AccessibleDescription = null;
this.AccessibleName = null;
resources.ApplyResources(this, "$this"); resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackgroundImage = null;
this.Controls.Add(this.groupBox1); this.Controls.Add(this.groupBox1);
this.Controls.Add(this.btnResume); this.Controls.Add(this.btnResume);
this.Controls.Add(this.btnPause); this.Controls.Add(this.btnPause);
@@ -580,6 +909,7 @@ namespace JDP {
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MaximizeBox = false; this.MaximizeBox = false;
this.Name = "frmCUETools"; this.Name = "frmCUETools";
this.toolTip1.SetToolTip(this, resources.GetString("$this.ToolTip"));
this.Load += new System.EventHandler(this.frmCUETools_Load); this.Load += new System.EventHandler(this.frmCUETools_Load);
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.frmCUETools_FormClosed); this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.frmCUETools_FormClosed);
this.grpCUEPaths.ResumeLayout(false); this.grpCUEPaths.ResumeLayout(false);
@@ -664,6 +994,11 @@ namespace JDP {
private System.Windows.Forms.ToolStripMenuItem tAKToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem tAKToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem mP3ToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem mP3ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem oGGToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem oGGToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem2;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem3;
private System.Windows.Forms.RadioButton rbArPlusCRC;
} }
} }

View File

@@ -296,11 +296,9 @@ namespace JDP {
this.Invoke((MethodInvoker)delegate() this.Invoke((MethodInvoker)delegate()
{ {
frmChoice dlg = new frmChoice(); frmChoice dlg = new frmChoice();
foreach (string s in e.choices) dlg.Choices = e.choices;
dlg.comboRelease.Items.Add(s);
dlg.comboRelease.SelectedIndex = 0;
if (dlg.ShowDialog(this) == DialogResult.OK) if (dlg.ShowDialog(this) == DialogResult.OK)
e.selection = dlg.comboRelease.SelectedIndex; e.selection = dlg.ChosenIndex;
}); });
} }
@@ -318,14 +316,14 @@ namespace JDP {
try try
{ {
bool outputAudio = outputFormat != OutputAudioFormat.NoAudio && accurateRip != AccurateRipMode.Verify; bool outputAudio = outputFormat != OutputAudioFormat.NoAudio && accurateRip != AccurateRipMode.Verify && accurateRip != AccurateRipMode.VerifyPlusCRCs;
bool outputCUE = cueStyle != CUEStyle.SingleFileWithCUE && accurateRip != AccurateRipMode.Verify; bool outputCUE = cueStyle != CUEStyle.SingleFileWithCUE && accurateRip != AccurateRipMode.Verify && accurateRip != AccurateRipMode.VerifyPlusCRCs;
string pathOut = null; string pathOut = null;
List<object> releases = null; List<object> releases = null;
cueSheet.Open(pathIn); cueSheet.Open(pathIn);
if (_batchPaths.Count == 0 && accurateRip != AccurateRipMode.Verify) if (_batchPaths.Count == 0 && accurateRip != AccurateRipMode.Verify && accurateRip != AccurateRipMode.VerifyPlusCRCs)
{ {
if (rbFreedbAlways.Checked || (rbFreedbIf.Checked && if (rbFreedbAlways.Checked || (rbFreedbIf.Checked &&
(cueSheet.Artist == "" || cueSheet.Title == "" || cueSheet.Year == ""))) (cueSheet.Artist == "" || cueSheet.Title == "" || cueSheet.Year == "")))
@@ -337,11 +335,10 @@ namespace JDP {
if (releases != null && releases.Count > 0) if (releases != null && releases.Count > 0)
{ {
frmChoice dlg = new frmChoice(); frmChoice dlg = new frmChoice();
foreach (object release in releases)
dlg.comboRelease.Items.Add(release);
dlg.comboRelease.SelectedIndex = 0;
dlg.CUE = cueSheet; dlg.CUE = cueSheet;
if (dlg.ShowDialog(this) == DialogResult.Cancel) dlg.Choices = releases;
dlgRes = dlg.ShowDialog(this);
if (dlgRes == DialogResult.Cancel)
{ {
cueSheet.Close(); cueSheet.Close();
SetupControls(false); SetupControls(false);
@@ -419,6 +416,7 @@ namespace JDP {
reportForm.ShowDialog(this); reportForm.ShowDialog(this);
} }
else if (cueSheet.AccurateRip == AccurateRipMode.Verify || else if (cueSheet.AccurateRip == AccurateRipMode.Verify ||
cueSheet.AccurateRip == AccurateRipMode.VerifyPlusCRCs ||
(cueSheet.AccurateRip != AccurateRipMode.None && outputFormat != OutputAudioFormat.NoAudio)) (cueSheet.AccurateRip != AccurateRipMode.None && outputFormat != OutputAudioFormat.NoAudio))
{ {
frmReport reportForm = new frmReport(); frmReport reportForm = new frmReport();
@@ -487,10 +485,10 @@ namespace JDP {
private void SetupControls(bool running) { private void SetupControls(bool running) {
grpCUEPaths.Enabled = !running; grpCUEPaths.Enabled = !running;
grpOutputPathGeneration.Enabled = !running; grpOutputPathGeneration.Enabled = !running;
grpAudioOutput.Enabled = !running && !rbArVerify.Checked; grpAudioOutput.Enabled = !running && !rbArVerify.Checked && !rbArPlusCRC.Checked;
grpAccurateRip.Enabled = !running; grpAccurateRip.Enabled = !running;
grpOutputStyle.Enabled = !running && !rbArVerify.Checked; grpOutputStyle.Enabled = !running && !rbArVerify.Checked && !rbArPlusCRC.Checked;
groupBox1.Enabled = !running && !rbArVerify.Checked; groupBox1.Enabled = !running && !rbArVerify.Checked && !rbArPlusCRC.Checked;
txtDataTrackLength.Enabled = !running && !rbArNone.Checked; txtDataTrackLength.Enabled = !running && !rbArNone.Checked;
btnAbout.Enabled = !running; btnAbout.Enabled = !running;
btnSettings.Enabled = !running; btnSettings.Enabled = !running;
@@ -536,7 +534,8 @@ namespace JDP {
} }
private bool CheckWriteOffset() { private bool CheckWriteOffset() {
if ((_writeOffset == 0) || rbNoAudio.Checked || rbArVerify.Checked) { if ((_writeOffset == 0) || rbNoAudio.Checked || rbArVerify.Checked || rbArPlusCRC.Checked)
{
return true; return true;
} }
@@ -765,6 +764,7 @@ namespace JDP {
get get
{ {
return return
rbArPlusCRC.Checked ? AccurateRipMode.VerifyPlusCRCs :
rbArVerify.Checked ? AccurateRipMode.Verify : rbArVerify.Checked ? AccurateRipMode.Verify :
rbArApplyOffset.Checked ? AccurateRipMode.VerifyThenConvert : rbArApplyOffset.Checked ? AccurateRipMode.VerifyThenConvert :
rbArAndEncode.Checked ? AccurateRipMode.VerifyAndConvert : rbArAndEncode.Checked ? AccurateRipMode.VerifyAndConvert :
@@ -774,6 +774,9 @@ namespace JDP {
{ {
switch (value) switch (value)
{ {
case AccurateRipMode.VerifyPlusCRCs:
rbArPlusCRC.Checked = true;
break;
case AccurateRipMode.Verify: case AccurateRipMode.Verify:
rbArVerify.Checked = true; rbArVerify.Checked = true;
break; break;
@@ -1063,6 +1066,14 @@ namespace JDP {
apev2 = true; apev2 = true;
id3v2 = false; id3v2 = false;
break; break;
case "ALAC":
extension = "m4a";
executable = "ffmpeg.exe";
decParams = "%I -f wav -";
encParams = "-i - -f ipod -acodec alac -y %O";
apev2 = false;
id3v2 = false;
break;
case "MP3": case "MP3":
extension = "mp3"; extension = "mp3";
executable = "lame.exe"; executable = "lame.exe";
@@ -1107,6 +1118,12 @@ namespace JDP {
updateOutputStyles(); updateOutputStyles();
UpdateOutputPath(); UpdateOutputPath();
} }
private void rbArPlusCRC_CheckedChanged(object sender, EventArgs e)
{
UpdateOutputPath();
SetupControls(false);
}
} }
enum OutputPathGeneration { enum OutputPathGeneration {

File diff suppressed because it is too large Load Diff

View File

@@ -124,6 +124,9 @@
<data name="btnConvert.Text" xml:space="preserve"> <data name="btnConvert.Text" xml:space="preserve">
<value>Поехали</value> <value>Поехали</value>
</data> </data>
<data name="grpCUEPaths.Text" xml:space="preserve">
<value>Пути к файлам</value>
</data>
<data name="btnBrowseOutput.Text" xml:space="preserve"> <data name="btnBrowseOutput.Text" xml:space="preserve">
<value>Выбор...</value> <value>Выбор...</value>
</data> </data>
@@ -142,8 +145,11 @@
<data name="lblInput.Text" xml:space="preserve"> <data name="lblInput.Text" xml:space="preserve">
<value>&amp;Вход:</value> <value>&amp;Вход:</value>
</data> </data>
<data name="grpCUEPaths.Text" xml:space="preserve"> <data name="grpOutputStyle.Size" type="System.Drawing.Size, System.Drawing">
<value>Пути к файлам</value> <value>130, 164</value>
</data>
<data name="grpOutputStyle.Text" xml:space="preserve">
<value>Стиль CUE</value>
</data> </data>
<data name="rbEmbedCUE.Size" type="System.Drawing.Size, System.Drawing"> <data name="rbEmbedCUE.Size" type="System.Drawing.Size, System.Drawing">
<value>86, 17</value> <value>86, 17</value>
@@ -190,18 +196,18 @@
<data name="rbSingleFile.ToolTip" xml:space="preserve"> <data name="rbSingleFile.ToolTip" xml:space="preserve">
<value>Создать образ диска в виде одного аудио-файла и .cue файла</value> <value>Создать образ диска в виде одного аудио-файла и .cue файла</value>
</data> </data>
<data name="grpOutputStyle.Size" type="System.Drawing.Size, System.Drawing">
<value>130, 164</value>
</data>
<data name="grpOutputStyle.Text" xml:space="preserve">
<value>Стиль CUE</value>
</data>
<data name="btnAbout.Location" type="System.Drawing.Point, System.Drawing"> <data name="btnAbout.Location" type="System.Drawing.Point, System.Drawing">
<value>412, 191</value> <value>412, 191</value>
</data> </data>
<data name="btnAbout.Text" xml:space="preserve"> <data name="btnAbout.Text" xml:space="preserve">
<value>О программе</value> <value>О программе</value>
</data> </data>
<data name="grpOutputPathGeneration.Size" type="System.Drawing.Size, System.Drawing">
<value>392, 113</value>
</data>
<data name="grpOutputPathGeneration.Text" xml:space="preserve">
<value>Путь для выходных файлов</value>
</data>
<data name="txtCustomFormat.Size" type="System.Drawing.Size, System.Drawing"> <data name="txtCustomFormat.Size" type="System.Drawing.Size, System.Drawing">
<value>240, 21</value> <value>240, 21</value>
</data> </data>
@@ -235,11 +241,8 @@
<data name="txtAppendFilename.Size" type="System.Drawing.Size, System.Drawing"> <data name="txtAppendFilename.Size" type="System.Drawing.Size, System.Drawing">
<value>240, 21</value> <value>240, 21</value>
</data> </data>
<data name="grpOutputPathGeneration.Size" type="System.Drawing.Size, System.Drawing"> <data name="grpAudioOutput.Text" xml:space="preserve">
<value>392, 113</value> <value>Формат аудио</value>
</data>
<data name="grpOutputPathGeneration.Text" xml:space="preserve">
<value>Путь для выходных файлов</value>
</data> </data>
<data name="rbNoAudio.Size" type="System.Drawing.Size, System.Drawing"> <data name="rbNoAudio.Size" type="System.Drawing.Size, System.Drawing">
<value>76, 17</value> <value>76, 17</value>
@@ -247,9 +250,6 @@
<data name="rbNoAudio.Text" xml:space="preserve"> <data name="rbNoAudio.Text" xml:space="preserve">
<value>Без аудио</value> <value>Без аудио</value>
</data> </data>
<data name="grpAudioOutput.Text" xml:space="preserve">
<value>Формат аудио</value>
</data>
<data name="btnBatch.Location" type="System.Drawing.Point, System.Drawing"> <data name="btnBatch.Location" type="System.Drawing.Point, System.Drawing">
<value>412, 315</value> <value>412, 315</value>
</data> </data>
@@ -268,6 +268,18 @@
<data name="btnSettings.Text" xml:space="preserve"> <data name="btnSettings.Text" xml:space="preserve">
<value>Настройки...</value> <value>Настройки...</value>
</data> </data>
<data name="grpAccurateRip.Location" type="System.Drawing.Point, System.Drawing">
<value>250, 211</value>
</data>
<data name="grpAccurateRip.Size" type="System.Drawing.Size, System.Drawing">
<value>154, 164</value>
</data>
<data name="rbArPlusCRC.Size" type="System.Drawing.Size, System.Drawing">
<value>115, 17</value>
</data>
<data name="rbArPlusCRC.Text" xml:space="preserve">
<value>Проверить + CRC</value>
</data>
<data name="rbArAndEncode.Size" type="System.Drawing.Size, System.Drawing"> <data name="rbArAndEncode.Size" type="System.Drawing.Size, System.Drawing">
<value>138, 17</value> <value>138, 17</value>
</data> </data>
@@ -310,12 +322,6 @@
<data name="rbArNone.ToolTip" xml:space="preserve"> <data name="rbArNone.ToolTip" xml:space="preserve">
<value>Сконвертировать, не обращаясь к базе данных AccurateRip</value> <value>Сконвертировать, не обращаясь к базе данных AccurateRip</value>
</data> </data>
<data name="grpAccurateRip.Location" type="System.Drawing.Point, System.Drawing">
<value>250, 211</value>
</data>
<data name="grpAccurateRip.Size" type="System.Drawing.Size, System.Drawing">
<value>154, 164</value>
</data>
<data name="btnCUECreator.Location" type="System.Drawing.Point, System.Drawing"> <data name="btnCUECreator.Location" type="System.Drawing.Point, System.Drawing">
<value>412, 253</value> <value>412, 253</value>
</data> </data>
@@ -340,4 +346,32 @@
<data name="btnResume.Text" xml:space="preserve"> <data name="btnResume.Text" xml:space="preserve">
<value>&amp;Поехали</value> <value>&amp;Поехали</value>
</data> </data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAEBAAAAAACABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAB
AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAMDcwADwyqYABAQEAAgICAAMDAwAERERABYW
FgAcHBwAIiIiACkpKQBVVVUATU1NAEJCQgA5OTkAgHz/AFBQ/wCTANYA/+zMAMbW7wDW5+cAkKmtAAAA
MwAAAGYAAACZAAAAzAAAMwAAADMzAAAzZgAAM5kAADPMAAAz/wAAZgAAAGYzAABmZgAAZpkAAGbMAABm
/wAAmQAAAJkzAACZZgAAmZkAAJnMAACZ/wAAzAAAAMwzAADMZgAAzJkAAMzMAADM/wAA/2YAAP+ZAAD/
zAAzAAAAMwAzADMAZgAzAJkAMwDMADMA/wAzMwAAMzMzADMzZgAzM5kAMzPMADMz/wAzZgAAM2YzADNm
ZgAzZpkAM2bMADNm/wAzmQAAM5kzADOZZgAzmZkAM5nMADOZ/wAzzAAAM8wzADPMZgAzzJkAM8zMADPM
/wAz/zMAM/9mADP/mQAz/8wAM///AGYAAABmADMAZgBmAGYAmQBmAMwAZgD/AGYzAABmMzMAZjNmAGYz
mQBmM8wAZjP/AGZmAABmZjMAZmZmAGZmmQBmZswAZpkAAGaZMwBmmWYAZpmZAGaZzABmmf8AZswAAGbM
MwBmzJkAZszMAGbM/wBm/wAAZv8zAGb/mQBm/8wAzAD/AP8AzACZmQAAmTOZAJkAmQCZAMwAmQAAAJkz
MwCZAGYAmTPMAJkA/wCZZgAAmWYzAJkzZgCZZpkAmWbMAJkz/wCZmTMAmZlmAJmZmQCZmcwAmZn/AJnM
AACZzDMAZsxmAJnMmQCZzMwAmcz/AJn/AACZ/zMAmcxmAJn/mQCZ/8wAmf//AMwAAACZADMAzABmAMwA
mQDMAMwAmTMAAMwzMwDMM2YAzDOZAMwzzADMM/8AzGYAAMxmMwCZZmYAzGaZAMxmzACZZv8AzJkAAMyZ
MwDMmWYAzJmZAMyZzADMmf8AzMwAAMzMMwDMzGYAzMyZAMzMzADMzP8AzP8AAMz/MwCZ/2YAzP+ZAMz/
zADM//8AzAAzAP8AZgD/AJkAzDMAAP8zMwD/M2YA/zOZAP8zzAD/M/8A/2YAAP9mMwDMZmYA/2aZAP9m
zADMZv8A/5kAAP+ZMwD/mWYA/5mZAP+ZzAD/mf8A/8wAAP/MMwD/zGYA/8yZAP/MzAD/zP8A//8zAMz/
ZgD//5kA///MAGZm/wBm/2YAZv//AP9mZgD/Zv8A//9mACEApQBfX18Ad3d3AIaGhgCWlpYAy8vLALKy
sgDX19cA3d3dAOPj4wDq6uoA8fHxAPj4+ADw+/8ApKCgAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//
AAD///8ACgoKCgrr6+vr6+sKCgoKCgoKCu/r7/Pz8/Pv6+8KCgoKCuvr7/Pz8/Pz8+/r6woKCu/r8/Pz
8/Pz8/Pz8+vvCu/r8/Pz8/Pz8/Pz8/Pz6+/r7/Pz8/Pz8/Pz8/Pz8+/r6/PrCgrz6woK6/MKCgrz6+vz
CvPz8wrz8wrzCvPz8+vr8wrz8/MK8/MK8woK8/Pr6/MK8/PzCvPzCvMK8/Pz6+vv6woK8wrz8wrzCgoK
7+vv6/Pz8/Pz8/Pz8/Pz8+vvCu/r8/Pz8/Pz8/Pz8+vvCgoK6+vv8/Pz8/Pz7+vrCgoKCgrv6+/z8/Pz
7+vvCgoKCgoKCu/r6+vr6+vvCgoKCvgfAADgBwAAwAMAAIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAIABAADAAwAA4AcAAPAPAAA=
</value>
</data>
</root> </root>

View File

@@ -28,20 +28,20 @@ namespace JDP
/// </summary> /// </summary>
private void InitializeComponent() private void InitializeComponent()
{ {
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmChoice)); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmChoice));
this.comboRelease = new System.Windows.Forms.ComboBox();
this.button1 = new System.Windows.Forms.Button(); this.button1 = new System.Windows.Forms.Button();
this.listChoices = new System.Windows.Forms.ListView();
this.columnHeader1 = new System.Windows.Forms.ColumnHeader();
this.imageList1 = new System.Windows.Forms.ImageList(this.components);
this.textBox1 = new System.Windows.Forms.TextBox();
this.listTracks = new System.Windows.Forms.ListView();
this.Title = new System.Windows.Forms.ColumnHeader();
this.TrackNo = new System.Windows.Forms.ColumnHeader();
this.Length = new System.Windows.Forms.ColumnHeader();
this.btnEdit = new System.Windows.Forms.Button();
this.SuspendLayout(); this.SuspendLayout();
// //
// comboRelease
//
resources.ApplyResources(this.comboRelease, "comboRelease");
this.comboRelease.BackColor = System.Drawing.SystemColors.Control;
this.comboRelease.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
this.comboRelease.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboRelease.Name = "comboRelease";
this.comboRelease.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.comboRelease_DrawItem);
//
// button1 // button1
// //
this.button1.DialogResult = System.Windows.Forms.DialogResult.OK; this.button1.DialogResult = System.Windows.Forms.DialogResult.OK;
@@ -49,24 +49,110 @@ namespace JDP
this.button1.Name = "button1"; this.button1.Name = "button1";
this.button1.UseVisualStyleBackColor = true; this.button1.UseVisualStyleBackColor = true;
// //
// listChoices
//
this.listChoices.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.columnHeader1});
this.listChoices.FullRowSelect = true;
this.listChoices.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
this.listChoices.HideSelection = false;
resources.ApplyResources(this.listChoices, "listChoices");
this.listChoices.MultiSelect = false;
this.listChoices.Name = "listChoices";
this.listChoices.ShowItemToolTips = true;
this.listChoices.SmallImageList = this.imageList1;
this.listChoices.UseCompatibleStateImageBehavior = false;
this.listChoices.View = System.Windows.Forms.View.Details;
this.listChoices.SelectedIndexChanged += new System.EventHandler(this.listChoices_SelectedIndexChanged);
//
// columnHeader1
//
resources.ApplyResources(this.columnHeader1, "columnHeader1");
//
// imageList1
//
this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream")));
this.imageList1.TransparentColor = System.Drawing.Color.Transparent;
this.imageList1.Images.SetKeyName(0, "eac.ico");
this.imageList1.Images.SetKeyName(1, "freedb.gif");
this.imageList1.Images.SetKeyName(2, "musicbrainz.ico");
this.imageList1.Images.SetKeyName(3, "cue.ico");
//
// textBox1
//
this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
resources.ApplyResources(this.textBox1, "textBox1");
this.textBox1.Name = "textBox1";
this.textBox1.ReadOnly = true;
//
// listTracks
//
resources.ApplyResources(this.listTracks, "listTracks");
this.listTracks.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.Title,
this.TrackNo,
this.Length});
this.listTracks.FullRowSelect = true;
this.listTracks.GridLines = true;
this.listTracks.LabelEdit = true;
this.listTracks.Name = "listTracks";
this.listTracks.UseCompatibleStateImageBehavior = false;
this.listTracks.View = System.Windows.Forms.View.Details;
this.listTracks.AfterLabelEdit += new System.Windows.Forms.LabelEditEventHandler(this.listTracks_AfterLabelEdit);
this.listTracks.DoubleClick += new System.EventHandler(this.listTracks_DoubleClick);
this.listTracks.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.listTracks_PreviewKeyDown);
this.listTracks.BeforeLabelEdit += new System.Windows.Forms.LabelEditEventHandler(this.listTracks_BeforeLabelEdit);
this.listTracks.KeyDown += new System.Windows.Forms.KeyEventHandler(this.listTracks_KeyDown);
//
// Title
//
resources.ApplyResources(this.Title, "Title");
//
// TrackNo
//
resources.ApplyResources(this.TrackNo, "TrackNo");
//
// Length
//
resources.ApplyResources(this.Length, "Length");
//
// btnEdit
//
resources.ApplyResources(this.btnEdit, "btnEdit");
this.btnEdit.Name = "btnEdit";
this.btnEdit.UseVisualStyleBackColor = true;
this.btnEdit.Click += new System.EventHandler(this.btnEdit_Click);
//
// frmChoice // frmChoice
// //
this.AcceptButton = this.button1; this.AcceptButton = this.button1;
resources.ApplyResources(this, "$this"); resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.btnEdit);
this.Controls.Add(this.listTracks);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.listChoices);
this.Controls.Add(this.button1); this.Controls.Add(this.button1);
this.Controls.Add(this.comboRelease);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow; this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow;
this.Name = "frmChoice"; this.Name = "frmChoice";
this.Load += new System.EventHandler(this.frmChoice_Load); this.Load += new System.EventHandler(this.frmChoice_Load);
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmChoice_FormClosing); this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmChoice_FormClosing);
this.ResumeLayout(false); this.ResumeLayout(false);
this.PerformLayout();
} }
#endregion #endregion
private System.Windows.Forms.Button button1; private System.Windows.Forms.Button button1;
public System.Windows.Forms.ComboBox comboRelease; private System.Windows.Forms.ColumnHeader columnHeader1;
private System.Windows.Forms.ImageList imageList1;
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.ListView listChoices;
private System.Windows.Forms.ListView listTracks;
private System.Windows.Forms.ColumnHeader Title;
private System.Windows.Forms.ColumnHeader TrackNo;
private System.Windows.Forms.ColumnHeader Length;
private System.Windows.Forms.Button btnEdit;
} }
} }

View File

@@ -20,68 +20,215 @@ namespace JDP
public CUESheet CUE; public CUESheet CUE;
private void comboRelease_DrawItem(object sender, DrawItemEventArgs e)
{
e.DrawBackground();
StringFormat format = new StringFormat();
format.FormatFlags = StringFormatFlags.NoClip;
format.Alignment = StringAlignment.Near;
if (e.Index >= 0 && e.Index < comboRelease.Items.Count)
{
string text = null;
Bitmap ImageToDraw = null;
if (comboRelease.Items[e.Index] is string)
{
text = (string) comboRelease.Items[e.Index];
//comboRelease.GetItemText(comboRelease.Items[e.Index]);
}
else if (comboRelease.Items[e.Index] is MusicBrainz.Release)
{
ImageToDraw = Properties.Resources.musicbrainz;
MusicBrainz.Release release = (MusicBrainz.Release) comboRelease.Items[e.Index];
text = String.Format("{0}{1} - {2}",
release.GetEvents().Count > 0 ? release.GetEvents()[0].Date.Substring(0, 4) + ": " : "",
release.GetArtist(),
release.GetTitle());
}
else if (comboRelease.Items[e.Index] is CDEntry)
{
ImageToDraw = Properties.Resources.freedb;
CDEntry cdEntry = (CDEntry)comboRelease.Items[e.Index];
text = String.Format("{0}: {1} - {2}",
cdEntry.Year,
cdEntry.Artist,
cdEntry.Title);
}
if (ImageToDraw != null)
e.Graphics.DrawImage(ImageToDraw, new Rectangle(e.Bounds.X, e.Bounds.Y, e.Bounds.Height, e.Bounds.Height));
//e.Graphics.DrawImage(ImageToDraw, new Rectangle(e.Bounds.X + e.Bounds.Width - ImageToDraw.Width, e.Bounds.Y, ImageToDraw.Width, e.Bounds.Height));
if (text != null)
e.Graphics.DrawString(text, e.Font, new SolidBrush(e.ForeColor), new RectangleF((float)e.Bounds.X + e.Bounds.Height, (float)e.Bounds.Y, (float)(e.Bounds.Width - e.Bounds.Height), (float)e.Bounds.Height), format);
}
//e.DrawFocusRectangle();
}
private void frmChoice_Load(object sender, EventArgs e) private void frmChoice_Load(object sender, EventArgs e)
{ {
button1.Select(); button1.Select();
} }
public IEnumerable<object> Choices
{
set
{
bool isCD = false;
foreach(object i in value)
{
string text = "";
int image = -1;
if (i is string)
text = i as string;
else if (i is CUEToolsSourceFile)
{
text = (i as CUEToolsSourceFile).path;
image = 0;
}
else if (i is MusicBrainz.Release)
{
MusicBrainz.Release release = i as MusicBrainz.Release;
text = String.Format("{0}: {1} - {2}",
release.GetEvents().Count > 0 ? release.GetEvents()[0].Date.Substring(0, 4) : "YYYY",
release.GetArtist(),
release.GetTitle());
image = 2;
isCD = true;
}
else if (i is Freedb.CDEntry)
{
CDEntry cdEntry = i as CDEntry;
text = String.Format("{0}: {1} - {2}",
cdEntry.Year,
cdEntry.Artist,
cdEntry.Title);
image = 1;
isCD = true;
}
ListViewItem item = new ListViewItem(text, image);
item.Tag = i;
listChoices.Items.Add(item);
}
if (isCD)
{
if (CUE == null)
throw new Exception("selecting release information, but cue sheet has not been set");
string text = String.Format("{0}: {1} - {2}",
CUE.Year == "" ? "YYYY" : CUE.Year,
CUE.Artist == "" ? "Unknown Artist" : CUE.Artist,
CUE.Title == "" ? "Unknown Title" : CUE.Title);
ListViewItem item = new ListViewItem(text, 3);
item.Tag = CUE;
listChoices.Items.Insert(0, item);
textBox1.Hide();
listTracks.Show();
btnEdit.Show();
}
if (listChoices.Items.Count > 0)
listChoices.Items[0].Selected = true;
}
}
public int ChosenIndex
{
get
{
return listChoices.SelectedItems.Count > 0 ? listChoices.SelectedItems[0].Index : -1;
}
}
public object ChosenObject
{
get
{
return listChoices.SelectedItems.Count > 0 ? listChoices.SelectedItems[0].Tag : null;
}
}
private void frmChoice_FormClosing(object sender, FormClosingEventArgs e) private void frmChoice_FormClosing(object sender, FormClosingEventArgs e)
{ {
if (e.CloseReason != CloseReason.None || DialogResult != DialogResult.OK) object item = ChosenObject;
if (e.CloseReason != CloseReason.None || DialogResult != DialogResult.OK || item == null)
return; return;
if (comboRelease.SelectedItem != null && comboRelease.SelectedItem is MusicBrainz.Release) if (item is MusicBrainz.Release)
CUE.FillFromMusicBrainz((MusicBrainz.Release)comboRelease.SelectedItem); CUE.FillFromMusicBrainz((MusicBrainz.Release)item);
else else if (item is CDEntry)
if (comboRelease.SelectedItem != null && comboRelease.SelectedItem is CDEntry) CUE.FillFromFreedb((CDEntry)item);
CUE.FillFromFreedb((CDEntry)comboRelease.SelectedItem); }
private void listChoices_SelectedIndexChanged(object sender, EventArgs e)
{
object item = ChosenObject;
if (item != null && item is CUEToolsSourceFile)
textBox1.Text = (item as CUEToolsSourceFile).contents;
else if (item != null && item is MusicBrainz.Release)
{
MusicBrainz.Release release = item as MusicBrainz.Release;
listTracks.Items.Clear();
foreach (MusicBrainz.Track track in release.GetTracks())
{
listTracks.Items.Add(new ListViewItem(new string[] {
track.GetTitle(),
(listTracks.Items.Count + 1).ToString(),
CUE == null ? "" : CUE.TOC[listTracks.Items.Count + 1].LengthMSF
}));
}
}
else if (item != null && item is CDEntry)
{
CDEntry cdEntry = item as CDEntry;
listTracks.Items.Clear();
foreach (Freedb.Track track in cdEntry.Tracks)
{
listTracks.Items.Add(new ListViewItem(new string[] {
track.Title,
(listTracks.Items.Count + 1).ToString(),
CUE == null ? "" : CUE.TOC[listTracks.Items.Count + 1].LengthMSF
}));
}
}
else if (item != null && item is CUESheet)
{
CUESheet cueSheet = item as CUESheet;
listTracks.Items.Clear();
foreach (TrackInfo track in cueSheet.Tracks)
{
listTracks.Items.Add(new ListViewItem(new string[] {
track.Title,
(listTracks.Items.Count + 1).ToString(),
CUE == null ? "" : CUE.TOC[listTracks.Items.Count + 1].LengthMSF
}));
}
}
else else
{
listTracks.Items.Clear();
textBox1.Text = "";
}
}
private void btnEdit_Click(object sender, EventArgs e)
{
object item = ChosenObject;
if (item == null || CUE == null)
return; return;
if (item is MusicBrainz.Release)
CUE.FillFromMusicBrainz((MusicBrainz.Release)item);
else if (item is CDEntry)
CUE.FillFromFreedb((CDEntry)item);
else if (!(item is CUESheet))
return;
listChoices.Items[0].Selected = true;
listChoices.Items[0].Text = String.Format("{0}: {1} - {2}",
CUE.Year == "" ? "YYYY" : CUE.Year,
CUE.Artist == "" ? "Unknown Artist" : CUE.Artist,
CUE.Title == "" ? "Unknown Title" : CUE.Title);
frmProperties frm = new frmProperties(); frmProperties frm = new frmProperties();
frm.CUE = CUE; frm.CUE = CUE;
if (frm.ShowDialog(this) != DialogResult.OK) if (frm.ShowDialog(this) == DialogResult.OK)
e.Cancel = true; listChoices.Items[0].Text = String.Format("{0}: {1} - {2}",
CUE.Year == "" ? "YYYY" : CUE.Year,
CUE.Artist == "" ? "Unknown Artist" : CUE.Artist,
CUE.Title == "" ? "Unknown Title" : CUE.Title);
}
private void listTracks_DoubleClick(object sender, EventArgs e)
{
listTracks.FocusedItem.BeginEdit();
}
private void listTracks_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.F2)
listTracks.FocusedItem.BeginEdit();
}
private void listTracks_BeforeLabelEdit(object sender, LabelEditEventArgs e)
{
object item = ChosenObject;
if (item == null || !(item is CUESheet))
{
e.CancelEdit = true;
return;
}
}
private void listTracks_AfterLabelEdit(object sender, LabelEditEventArgs e)
{
if (e.Label != null)
{
CUE.Tracks[e.Item].Title = e.Label;
}
}
private void listTracks_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
if (listTracks.FocusedItem.Index + 1 < listTracks.Items.Count) // && e.editing
{
listTracks.FocusedItem.Selected = false;
listTracks.FocusedItem = listTracks.Items[listTracks.FocusedItem.Index + 1];
listTracks.FocusedItem.Selected = true;
listTracks.FocusedItem.BeginEdit();
}
}
} }
} }
} }

View File

@@ -117,39 +117,14 @@
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="comboRelease.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="comboRelease.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 12</value>
</data>
<data name="comboRelease.Size" type="System.Drawing.Size, System.Drawing">
<value>543, 21</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="comboRelease.TabIndex" type="System.Int32, mscorlib">
<value>22</value>
</data>
<data name="&gt;&gt;comboRelease.Name" xml:space="preserve">
<value>comboRelease</value>
</data>
<data name="&gt;&gt;comboRelease.Type" xml:space="preserve">
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;comboRelease.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;comboRelease.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="button1.Location" type="System.Drawing.Point, System.Drawing"> <data name="button1.Location" type="System.Drawing.Point, System.Drawing">
<value>480, 45</value> <value>488, 293</value>
</data> </data>
<data name="button1.Size" type="System.Drawing.Size, System.Drawing"> <data name="button1.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 23</value> <value>75, 23</value>
</data> </data>
<assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="button1.TabIndex" type="System.Int32, mscorlib"> <data name="button1.TabIndex" type="System.Int32, mscorlib">
<value>23</value> <value>23</value>
</data> </data>
@@ -166,6 +141,197 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;button1.ZOrder" xml:space="preserve"> <data name="&gt;&gt;button1.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="columnHeader1.Width" type="System.Int32, mscorlib">
<value>540</value>
</data>
<data name="listChoices.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 12</value>
</data>
<data name="listChoices.Size" type="System.Drawing.Size, System.Drawing">
<value>551, 72</value>
</data>
<metadata name="imageList1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<data name="imageList1.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAo
CwAAAk1TRnQBSQFMAgEBBAEAAQwBAAEEAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM
AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA
ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz
AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ
AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM
AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA
AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA
AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ
AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/
AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA
AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm
ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ
Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz
AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA
AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM
AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM
ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM
Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA
AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM
AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ
AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8A/wD/AP8ACgAG6wUA
EAQBAAF6AlELegYABusIAAHvAesB7wTzAe8B6wHvAwAEBAP/AQcB7AP/AewDBAFRAQABEQETAQABDwp6
AwAB7wHrAe8E8wHvAesB7wUAAusB7wbzAe8C6wIAAwQCBwEEAf8BBwHsAf8BBAHsAf8DBAEAAbwD/wET
AQ8JegIAAusB7wbzAe8C6wMAAe8B6wrzAesB7wEAAwQBBwHsAQQCBwHsAf8CBAH/AwQBAAG8BP8BAAl6
AQAB7wHrCvMB6wHvAQAB7wHrDPMB6wHvAwQB7AH/AQQB/wEHAewB/wHsAf8BBwMEAVEBDwHrAgcBvAEA
AREEAAERA3oBAAHrDPMB6wEAAesB7wzzAe8B6wQEAuwCBwHsAf8C7AQEAXoBUQEPAgAB/wEAAQ8B9wL/
AZICEQJ6AesO8wLrAfMDAAHzAQAC8wEAAfMB7wIAAfMB6wYEAgcB7AH/BgQEegEAAf8BAAERBP8BvAEA
AnoB6wHzAesCAAHzAesCAAHrAfMDAAHzAusB8wEAA/MBAALzAQAB8wEAA/MB6xAEBK4BAAH/AgABEwG8
A/8BAAKuAesB8wEAA/MBAALzAQAB8wEAA/MC6wHzAgAC8wQAAfMBAAPzAesQ/wSuAQAB/wEAARIBDwMA
Af8BAAKuAesB8wEAA/MBAALzAQAB8wIAAvMC6wHzAQAD8wEAAvMBAAHzAQAD8wHrAf8BBAEHAf8BBAL/
AwQBBwH/AwQB/wSuAQAB/wEPAQABEQISAQAB/wEAAq4B6wHzAQAD8wEAAvMBAAHzAQAD8wLrAe8DAAHz
Ae8CAAHvAfMB7wIAAe8B6wH/AQQBBwH/AQQC/wEEA/8BBwEEAf8BBwH/BK4BAAL/AZIBEQEAAQ8BAAH/
AQACrgHrAfMB6wIAAfMBAALzAQAB8wMAAfMB6wHvAesM8wHrAe8B/wEEAQcB/wEEAv8BBALsAQQBBwEE
AewCBASuAQABBwP/AbwB6gEAAf8BAAKuAQAB6wzzAesCAAHvAesK8wHrAe8BAAH/AQQB7AH/AgQBBwEE
AQcB7AEEAf8BBAEHAQQBBwSuAREBEwEHBv8BAAKuAQAB7wHrCvMB6wHvAwAC6wHvBvMB7wLrAgAB/wEE
AewB/wMHAf8B7AEHA/8B7AEHAf8FrgERAQABEQGSBP8BAAKuAgAC6wHvBvMB7wLrBQAB7wHrAe8E8wHv
AesB7wMAAf8CBAHsDP8HrgERAQABDwHrAbwB/wEAAq4DAAHvAesB7wTzAe8B6wHvBwAB7wbrAe8EABD/
AQAJrgEPAQABEwERAa4GAAbrBQABQgFNAT4HAAE+AwABKAMAAUADAAEgAwABAQEAAQEGAAEBFgAD/4EA
AfgBHwIAAYABAQH4AR8B4AEHBAAB4AEHAcABAwQAAcABAwGAAQEEAAGAAQEGAAGAAQE2AAGAAQEBgAEB
BAABgAEBAcABAwQAAcABAwHgAQcEAAHgAQcB8AEPAgABgAEBAfgBHws=
</value>
</data>
<data name="listChoices.TabIndex" type="System.Int32, mscorlib">
<value>24</value>
</data>
<data name="&gt;&gt;listChoices.Name" xml:space="preserve">
<value>listChoices</value>
</data>
<data name="&gt;&gt;listChoices.Type" xml:space="preserve">
<value>System.Windows.Forms.ListView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;listChoices.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;listChoices.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="textBox1.Font" type="System.Drawing.Font, System.Drawing">
<value>Courier New, 8pt</value>
</data>
<data name="textBox1.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 90</value>
</data>
<data name="textBox1.Multiline" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="textBox1.ScrollBars" type="System.Windows.Forms.ScrollBars, System.Windows.Forms">
<value>Vertical</value>
</data>
<data name="textBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>551, 197</value>
</data>
<data name="textBox1.TabIndex" type="System.Int32, mscorlib">
<value>25</value>
</data>
<data name="&gt;&gt;textBox1.Name" xml:space="preserve">
<value>textBox1</value>
</data>
<data name="&gt;&gt;textBox1.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;textBox1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;textBox1.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="listTracks.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
</data>
<data name="Title.DisplayIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="Title.Text" xml:space="preserve">
<value>Title</value>
</data>
<data name="Title.Width" type="System.Int32, mscorlib">
<value>455</value>
</data>
<data name="TrackNo.DisplayIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="TrackNo.Text" xml:space="preserve">
<value>#</value>
</data>
<data name="TrackNo.Width" type="System.Int32, mscorlib">
<value>30</value>
</data>
<data name="Length.Text" xml:space="preserve">
<value>Length</value>
</data>
<data name="Length.Width" type="System.Int32, mscorlib">
<value>62</value>
</data>
<data name="listTracks.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 90</value>
</data>
<data name="listTracks.Size" type="System.Drawing.Size, System.Drawing">
<value>551, 197</value>
</data>
<data name="listTracks.TabIndex" type="System.Int32, mscorlib">
<value>26</value>
</data>
<data name="listTracks.Visible" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="&gt;&gt;listTracks.Name" xml:space="preserve">
<value>listTracks</value>
</data>
<data name="&gt;&gt;listTracks.Type" xml:space="preserve">
<value>System.Windows.Forms.ListView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;listTracks.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;listTracks.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="btnEdit.Location" type="System.Drawing.Point, System.Drawing">
<value>407, 293</value>
</data>
<data name="btnEdit.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 23</value>
</data>
<data name="btnEdit.TabIndex" type="System.Int32, mscorlib">
<value>27</value>
</data>
<data name="btnEdit.Text" xml:space="preserve">
<value>Edit</value>
</data>
<data name="btnEdit.Visible" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="&gt;&gt;btnEdit.Name" xml:space="preserve">
<value>btnEdit</value>
</data>
<data name="&gt;&gt;btnEdit.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;btnEdit.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;btnEdit.ZOrder" xml:space="preserve">
<value>0</value> <value>0</value>
</data> </data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
@@ -175,7 +341,7 @@
<value>6, 13</value> <value>6, 13</value>
</data> </data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing"> <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>567, 80</value> <value>575, 328</value>
</data> </data>
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms"> <data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
<value>CenterParent</value> <value>CenterParent</value>
@@ -183,6 +349,36 @@
<data name="$this.Text" xml:space="preserve"> <data name="$this.Text" xml:space="preserve">
<value>Select the best match</value> <value>Select the best match</value>
</data> </data>
<data name="&gt;&gt;columnHeader1.Name" xml:space="preserve">
<value>columnHeader1</value>
</data>
<data name="&gt;&gt;columnHeader1.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;imageList1.Name" xml:space="preserve">
<value>imageList1</value>
</data>
<data name="&gt;&gt;imageList1.Type" xml:space="preserve">
<value>System.Windows.Forms.ImageList, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;Title.Name" xml:space="preserve">
<value>Title</value>
</data>
<data name="&gt;&gt;Title.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;TrackNo.Name" xml:space="preserve">
<value>TrackNo</value>
</data>
<data name="&gt;&gt;TrackNo.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;Length.Name" xml:space="preserve">
<value>Length</value>
</data>
<data name="&gt;&gt;Length.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve"> <data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>frmChoice</value> <value>frmChoice</value>
</data> </data>

View File

@@ -97,7 +97,7 @@ namespace UnRarDotNet
while (_buffer == null && !_eof && !_close) while (_buffer == null && !_eof && !_close)
Monitor.Wait(this); Monitor.Wait(this);
if (_close) if (_close)
throw new IOException("Decompression failed", _ex); throw _ex ?? new IOException("Decompression failed");
if (_buffer == null) if (_buffer == null)
return total; return total;
if (_seek_to != null) if (_seek_to != null)