From 98c80c8396d01ff2916c43af61ba226129a143df Mon Sep 17 00:00:00 2001 From: chudov Date: Sat, 8 Aug 2009 16:14:06 +0000 Subject: [PATCH] Minor bugfixes (2.0.4a) --- ArCueDotNet/Program.cs | 2 +- CUERipper/frmCUERipper.cs | 42 +- CUERipper/frmCUERipper.resx | 4 +- CUETools.Codecs/Codecs.cs | 4 +- CUETools.Converter/Program.cs | 2 +- CUETools.Processor/AudioReadWrite.cs | 13 +- CUETools.Processor/Processor.cs | 391 ++-- CUETools/frmAbout.ru-RU.resx | 2 +- CUETools/frmBatch.cs | 23 +- CUETools/frmCUETools.Designer.cs | 3 + CUETools/frmCUETools.cs | 95 +- CUETools/frmCUETools.de-DE.resx | 2 +- CUETools/frmCUETools.resx | 1872 +++++++++++++------- CUETools/frmCUETools.ru-RU.resx | 3 + CUETools/frmSettings.Designer.cs | 9 +- CUETools/frmSettings.cs | 6 +- CUETools/frmSettings.resx | 2446 ++++++++------------------ 17 files changed, 2291 insertions(+), 2628 deletions(-) diff --git a/ArCueDotNet/Program.cs b/ArCueDotNet/Program.cs index 501fe9a..3bb8a17 100644 --- a/ArCueDotNet/Program.cs +++ b/ArCueDotNet/Program.cs @@ -32,7 +32,7 @@ namespace ArCueDotNet cueSheet.Action = CUEAction.Verify; //cueSheet.OutputStyle = CUEStyle.SingleFile; cueSheet.Open(pathIn); - cueSheet.Lookup(); + cueSheet.UseAccurateRip(); cueSheet.GenerateFilenames(AudioEncoderType.NoAudio, "dummy", pathIn); cueSheet.Go(); cueSheet.GenerateAccurateRipLog(sw); diff --git a/CUERipper/frmCUERipper.cs b/CUERipper/frmCUERipper.cs index e773ccb..9546e73 100644 --- a/CUERipper/frmCUERipper.cs +++ b/CUERipper/frmCUERipper.cs @@ -76,7 +76,7 @@ namespace CUERipper _config.createEACLOG = sr.LoadBoolean("CreateEACLOG") ?? false; _config.preserveHTOA = sr.LoadBoolean("PreserveHTOA") ?? false; _config.createM3U = sr.LoadBoolean("CreateM3U") ?? true; - _pathFormat = sr.Load("PathFormat") ?? "%music%\\%artist%\\%year% - %album%\\%artist% - %album%.cue"; + _pathFormat = sr.Load("PathFormat") ?? "%music%\\%artist%\\[%year% - ]%album%\\%artist% - %album%.cue"; checkBoxEACMode.Checked = _config.createEACLOG; SelectedOutputAudioType = (AudioEncoderType?)sr.LoadInt32("OutputAudioType", null, null) ?? AudioEncoderType.Lossless; comboBoxAudioFormat.SelectedIndex = sr.LoadInt32("ComboCodec", 0, comboBoxAudioFormat.Items.Count - 1) ?? 0; @@ -244,39 +244,22 @@ namespace CUERipper }); } - private string GenerateOutputPath() - { - List find = new List(); - find.Add("%music%"); - find.Add("%artist%"); - find.Add("%D"); - find.Add("%album%"); - find.Add("%C"); - find.Add("%year%"); - find.Add("%Y"); - List replace = new List(); - replace.Add(m_icon_mgr.GetFolderPath(CUEControls.ExtraSpecialFolder.MyMusic)); - replace.Add(General.EmptyStringToNull(_config.CleanseString(_cueSheet.Artist))); - replace.Add(General.EmptyStringToNull(_config.CleanseString(_cueSheet.Artist))); - replace.Add(General.EmptyStringToNull(_config.CleanseString(_cueSheet.Title))); - replace.Add(General.EmptyStringToNull(_config.CleanseString(_cueSheet.Title))); - replace.Add(_cueSheet.Year); - replace.Add(_cueSheet.Year); - - return Path.ChangeExtension(General.ReplaceMultiple(_pathFormat, find, replace) ?? "image.cue", ".cue"); - } - private void buttonGo_Click(object sender, EventArgs e) { if (_reader == null) return; + _format = (string)comboBoxAudioFormat.SelectedItem; _cueSheet.OutputStyle = comboImage.SelectedIndex == 0 ? CUEStyle.SingleFileWithCUE : CUEStyle.GapsAppended; - _pathOut = GenerateOutputPath(); - if (_cueSheet.OutputStyle == CUEStyle.SingleFileWithCUE) - _cueSheet.SingleFilename = Path.GetFileName(_pathOut); - _format = (string)comboBoxAudioFormat.SelectedItem; + _pathOut = _cueSheet.GenerateUniqueOutputPath(_pathFormat, + _cueSheet.OutputStyle == CUEStyle.SingleFileWithCUE ? "." + _format : ".cue", + CUEAction.Encode, null); + if (_pathOut == "") + { + MessageBox.Show(this, "Output path generation failed", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } _cueSheet.GenerateFilenames(SelectedOutputAudioType, _format, _pathOut); _workThread = new Thread(Rip); @@ -383,8 +366,9 @@ namespace CUERipper } if (r.cueSheet.Genre == "") r.cueSheet.Genre = ""; if (r.cueSheet.Year == "") r.cueSheet.Year = ""; - r.cueSheet.Action = CUEAction.VerifyAndConvert; - r.cueSheet.ArVerify.ContactAccurateRip(AccurateRipVerify.CalculateAccurateRipId(audioSource.TOC)); + r.cueSheet.Action = CUEAction.Encode; + r.cueSheet.UseAccurateRip(); + //r.cueSheet.ArVerify.ContactAccurateRip(AccurateRipVerify.CalculateAccurateRipId(audioSource.TOC)); return r; } diff --git a/CUERipper/frmCUERipper.resx b/CUERipper/frmCUERipper.resx index bd68fbd..11161c1 100644 --- a/CUERipper/frmCUERipper.resx +++ b/CUERipper/frmCUERipper.resx @@ -148,7 +148,7 @@ 0, 443 - 229, 17 + 260, 17 MiddleLeft @@ -745,7 +745,7 @@ CenterScreen - CUERipper 2.0.2 + CUERipper 2.0.4a toolStripStatusLabel1 diff --git a/CUETools.Codecs/Codecs.cs b/CUETools.Codecs/Codecs.cs index 7fb2171..b729b74 100644 --- a/CUETools.Codecs/Codecs.cs +++ b/CUETools.Codecs/Codecs.cs @@ -735,7 +735,7 @@ namespace CUETools.Codecs Process _encoderProcess; WAVWriter wrt; - public UserDefinedWriter(string path, int bitsPerSample, int channelCount, int sampleRate, Stream IO, string encoder, string encoderParams, string encoderMode) + public UserDefinedWriter(string path, int bitsPerSample, int channelCount, int sampleRate, Stream IO, string encoder, string encoderParams, string encoderMode, int padding) { _path = path; _encoder = encoder; @@ -744,7 +744,7 @@ namespace CUETools.Codecs _encoderProcess = new Process(); _encoderProcess.StartInfo.FileName = _encoder; - _encoderProcess.StartInfo.Arguments = _encoderParams.Replace("%O", "\"" + path + "\"").Replace("%M", encoderMode); + _encoderProcess.StartInfo.Arguments = _encoderParams.Replace("%O", "\"" + path + "\"").Replace("%M", encoderMode).Replace("%P", padding.ToString()); _encoderProcess.StartInfo.CreateNoWindow = true; _encoderProcess.StartInfo.RedirectStandardInput = true; _encoderProcess.StartInfo.UseShellExecute = false; diff --git a/CUETools.Converter/Program.cs b/CUETools.Converter/Program.cs index a720fcf..0535193 100644 --- a/CUETools.Converter/Program.cs +++ b/CUETools.Converter/Program.cs @@ -42,7 +42,7 @@ namespace CUETools.Converter #endif { IAudioSource audioSource = AudioReadWrite.GetAudioSource(sourceFile, null, config); - IAudioDest audioDest = AudioReadWrite.GetAudioDest(AudioEncoderType.Lossless, destFile, (long)audioSource.Length, audioSource.BitsPerSample, audioSource.SampleRate, config); + IAudioDest audioDest = AudioReadWrite.GetAudioDest(AudioEncoderType.Lossless, destFile, (long)audioSource.Length, audioSource.BitsPerSample, audioSource.SampleRate, 8192, config); int[,] buff = new int[0x4000, audioSource.ChannelCount]; Console.WriteLine("Filename : {0}", sourceFile); diff --git a/CUETools.Processor/AudioReadWrite.cs b/CUETools.Processor/AudioReadWrite.cs index 6822e70..45a1769 100644 --- a/CUETools.Processor/AudioReadWrite.cs +++ b/CUETools.Processor/AudioReadWrite.cs @@ -69,7 +69,7 @@ namespace CUETools.Processor return new LossyWAVReader(lossySource, lwcdfSource); } - public static IAudioDest GetAudioDest(AudioEncoderType audioEncoderType, string path, int bitsPerSample, int channelCount, int sampleRate, long finalSampleCount, string extension, CUEConfig config) + public static IAudioDest GetAudioDest(AudioEncoderType audioEncoderType, string path, int bitsPerSample, int channelCount, int sampleRate, long finalSampleCount, int padding, string extension, CUEConfig config) { IAudioDest dest; if (audioEncoderType == AudioEncoderType.NoAudio || extension == ".dummy") @@ -94,6 +94,7 @@ namespace CUETools.Processor #if !MONO case "FLACWriter": dest = new FLACWriter(path, bitsPerSample, channelCount, sampleRate); + ((FLACWriter)dest).PaddingLength = padding; ((FLACWriter)dest).CompressionLevel = encoder.DefaultModeIndex; ((FLACWriter)dest).Verify = config.flacVerify; ((FLACWriter)dest).DisableAsm = config.disableAsm; @@ -115,24 +116,24 @@ namespace CUETools.Processor default: if (encoder.path == null) throw new Exception("Unsupported audio type: " + path); - dest = new UserDefinedWriter(path, bitsPerSample, channelCount, sampleRate, null, encoder.path, encoder.parameters, encoder.default_mode); + dest = new UserDefinedWriter(path, bitsPerSample, channelCount, sampleRate, null, encoder.path, encoder.parameters, encoder.default_mode, padding); break; } dest.FinalSampleCount = finalSampleCount; return dest; } - public static IAudioDest GetAudioDest(AudioEncoderType audioEncoderType, string path, long finalSampleCount, int bitsPerSample, int sampleRate, CUEConfig config) + public static IAudioDest GetAudioDest(AudioEncoderType audioEncoderType, string path, long finalSampleCount, int bitsPerSample, int sampleRate, int padding, CUEConfig config) { string extension = Path.GetExtension(path).ToLower(); string filename = Path.GetFileNameWithoutExtension(path); if (audioEncoderType == AudioEncoderType.NoAudio || audioEncoderType == AudioEncoderType.Lossless || Path.GetExtension(filename).ToLower() != ".lossy") - return GetAudioDest(audioEncoderType, path, bitsPerSample, 2, sampleRate, finalSampleCount, extension, config); + return GetAudioDest(audioEncoderType, path, bitsPerSample, 2, sampleRate, finalSampleCount, padding, extension, config); string lwcdfPath = Path.Combine(Path.GetDirectoryName(path), Path.GetFileNameWithoutExtension(filename) + ".lwcdf" + extension); int lossyBitsPerSample = (config.detectHDCD && config.decodeHDCD && !config.decodeHDCDtoLW16) ? 24 : 16; - IAudioDest lossyDest = GetAudioDest(AudioEncoderType.Lossless, path, lossyBitsPerSample, 2, sampleRate, finalSampleCount, extension, config); - IAudioDest lwcdfDest = audioEncoderType == AudioEncoderType.Hybrid ? GetAudioDest(AudioEncoderType.Lossless, lwcdfPath, bitsPerSample, 2, sampleRate, finalSampleCount, extension, config) : null; + IAudioDest lossyDest = GetAudioDest(AudioEncoderType.Lossless, path, lossyBitsPerSample, 2, sampleRate, finalSampleCount, padding, extension, config); + IAudioDest lwcdfDest = audioEncoderType == AudioEncoderType.Hybrid ? GetAudioDest(AudioEncoderType.Lossless, lwcdfPath, bitsPerSample, 2, sampleRate, finalSampleCount, padding, extension, config) : null; return new LossyWAVWriter(lossyDest, lwcdfDest, bitsPerSample, 2, sampleRate, config.lossyWAVQuality); } } diff --git a/CUETools.Processor/Processor.cs b/CUETools.Processor/Processor.cs index 4ed2446..e7e10d9 100644 --- a/CUETools.Processor/Processor.cs +++ b/CUETools.Processor/Processor.cs @@ -65,11 +65,10 @@ namespace CUETools.Processor public enum CUEAction { - Convert, - Verify, - VerifyAndConvert, - CreateDummyCUE, - CorrectFilenames + Encode = 0, + Verify = 1, + CreateDummyCUE = 2, + CorrectFilenames = 3 } public enum CUEStyle @@ -405,6 +404,30 @@ namespace CUETools.Processor return ReplaceMultiple(s, find, replace); } + public delegate bool CheckIfExists(string output); + + public static string ReplaceMultiple(string fmt, NameValueCollection tags, string unique_key, CheckIfExists exists) + { + string result = ReplaceMultiple(fmt, tags); + if (result == String.Empty || result == null) + return result; + int unique = 1; + try + { + while (exists(result)) + { + tags[unique_key] = unique.ToString(); + string new_result = ReplaceMultiple(fmt, tags); + if (new_result == result || new_result == String.Empty || new_result == null) + break; + result = new_result; + unique++; + } + } + catch { } + return result; + } + public static string ReplaceMultiple(string s, List find, List replace) { if (find.Count != replace.Count) @@ -757,7 +780,7 @@ namespace CUETools.Processor public bool encodeWhenZeroOffset; public bool writeArTagsOnVerify; public bool writeArLogOnVerify; - public bool writeArTagsOnConvert; + public bool writeArTagsOnEncode; public bool writeArLogOnConvert; public bool fixOffset; public bool noUnverifiedOutput; @@ -798,7 +821,7 @@ namespace CUETools.Processor public Dictionary decoders; public Dictionary scripts; public string defaultVerifyScript; - public string defaultVerifyAndConvertScript; + public string defaultEncodeScript; public bool writeBasicTagsFromCUEData; public bool copyBasicTags; public bool copyUnknownTags; @@ -813,8 +836,8 @@ namespace CUETools.Processor public CUEStyle gapsHandling; public bool CopyAlbumArt { get { return copyAlbumArt; } set { copyAlbumArt = value; } } - public string ArLogFilenameFormat { get { return arLogFilenameFormat; } } - public string AlArtFilenameFormat { get { return alArtFilenameFormat; } } + public string ArLogFilenameFormat { get { return arLogFilenameFormat; } set { arLogFilenameFormat = value; } } + public string AlArtFilenameFormat { get { return alArtFilenameFormat; } set { alArtFilenameFormat = value; } } public CUEToolsUDCList Encoders { get { return encoders; } @@ -829,7 +852,7 @@ namespace CUETools.Processor encodeWhenZeroOffset = false; fixOffset = false; noUnverifiedOutput = false; - writeArTagsOnConvert = true; + writeArTagsOnEncode = true; writeArLogOnConvert = true; writeArTagsOnVerify = false; writeArLogOnVerify = true; @@ -840,8 +863,8 @@ namespace CUETools.Processor wvExtraMode = 0; wvStoreMD5 = false; keepOriginalFilenames = false; - trackFilenameFormat = "%N. %T"; - singleFilenameFormat = "%F"; + trackFilenameFormat = "%tracknumber%. %title%"; + singleFilenameFormat = "%filename%"; removeSpecial = false; specialExceptions = "-()"; replaceSpaces = false; @@ -878,7 +901,7 @@ namespace CUETools.Processor arLogToSourceFolder = false; arLogVerbose = true; fixOffsetToNearest = true; - arLogFilenameFormat = "%F.accurip"; + arLogFilenameFormat = "%filename%.accurip"; alArtFilenameFormat = "folder.jpg"; gapsHandling = CUEStyle.GapsAppended; @@ -926,7 +949,7 @@ namespace CUETools.Processor scripts = new Dictionary(); scripts.Add("default", new CUEToolsScript("default", true, - new CUEAction[] { CUEAction.VerifyAndConvert, CUEAction.Verify, CUEAction.Convert }, + new CUEAction[] { CUEAction.Verify, CUEAction.Encode }, "return processor.Go();")); scripts.Add("only if found", new CUEToolsScript("only if found", true, new CUEAction[] { CUEAction.Verify }, @@ -934,7 +957,7 @@ namespace CUETools.Processor return processor.WriteReport(); return processor.Go();")); scripts.Add("fix offset", new CUEToolsScript("fix offset", true, - new CUEAction[] { CUEAction.VerifyAndConvert }, + new CUEAction[] { CUEAction.Encode }, @"if (processor.ArVerify.AccResult != HttpStatusCode.OK) return processor.WriteReport(); processor.WriteOffset = 0; @@ -946,12 +969,12 @@ processor.FindBestOffset(processor.Config.fixOffsetMinimumConfidence, !processor if (tracksMatch * 100 < processor.Config.fixOffsetMinimumTracksPercent * processor.TrackCount) return status; processor.WriteOffset = bestOffset; -processor.Action = CUEAction.VerifyAndConvert; +processor.Action = CUEAction.Encode; //MessageBox.Show(null, processor.AccurateRipLog, " + "\"Done\"" + @"MessageBoxButtons.OK, MessageBoxIcon.Information); return processor.Go(); ")); scripts.Add("encode if verified", new CUEToolsScript("encode if verified", true, - new CUEAction[] { CUEAction.VerifyAndConvert }, + new CUEAction[] { CUEAction.Encode }, @"if (processor.ArVerify.AccResult != HttpStatusCode.OK) return processor.WriteReport(); processor.Action = CUEAction.Verify; @@ -961,11 +984,11 @@ int bestOffset; processor.FindBestOffset(processor.Config.encodeWhenConfidence, false, out tracksMatch, out bestOffset); if (tracksMatch * 100 < processor.Config.encodeWhenPercent * processor.TrackCount || (processor.Config.encodeWhenZeroOffset && bestOffset != 0)) return status; -processor.Action = CUEAction.VerifyAndConvert; +processor.Action = CUEAction.Encode; return processor.Go(); ")); defaultVerifyScript = "default"; - defaultVerifyAndConvertScript = "default"; + defaultEncodeScript = "default"; } public void Save (SettingsWriter sw) @@ -978,7 +1001,7 @@ return processor.Go(); sw.Save("ArEncodeWhenZeroOffset", encodeWhenZeroOffset); sw.Save("ArNoUnverifiedOutput", noUnverifiedOutput); sw.Save("ArFixOffset", fixOffset); - sw.Save("ArWriteCRC", writeArTagsOnConvert); + sw.Save("ArWriteCRC", writeArTagsOnEncode); sw.Save("ArWriteLog", writeArLogOnConvert); sw.Save("ArWriteTagsOnVerify", writeArTagsOnVerify); sw.Save("ArWriteLogOnVerify", writeArLogOnVerify); @@ -1089,7 +1112,7 @@ return processor.Go(); } sw.Save("CustomScripts", nScripts); sw.Save("DefaultVerifyScript", defaultVerifyScript); - sw.Save("DefaultVerifyAndConvertScript", defaultVerifyAndConvertScript); + sw.Save("DefaultVerifyAndConvertScript", defaultEncodeScript); sw.Save("GapsHandling", (int)gapsHandling); } @@ -1105,7 +1128,7 @@ return processor.Go(); encodeWhenZeroOffset = sr.LoadBoolean("ArEncodeWhenZeroOffset") ?? false; noUnverifiedOutput = sr.LoadBoolean("ArNoUnverifiedOutput") ?? false; fixOffset = sr.LoadBoolean("ArFixOffset") ?? false; - writeArTagsOnConvert = sr.LoadBoolean("ArWriteCRC") ?? true; + writeArTagsOnEncode = sr.LoadBoolean("ArWriteCRC") ?? true; writeArLogOnConvert = sr.LoadBoolean("ArWriteLog") ?? true; writeArTagsOnVerify = sr.LoadBoolean("ArWriteTagsOnVerify") ?? false; writeArLogOnVerify = sr.LoadBoolean("ArWriteLogOnVerify") ?? true; @@ -1116,8 +1139,8 @@ return processor.Go(); wvExtraMode = sr.LoadInt32("WVExtraMode", 0, 6) ?? 0; wvStoreMD5 = sr.LoadBoolean("WVStoreMD5") ?? false; keepOriginalFilenames = sr.LoadBoolean("KeepOriginalFilenames") ?? false; - singleFilenameFormat = sr.Load("SingleFilenameFormat") ?? "%F"; - trackFilenameFormat = sr.Load("TrackFilenameFormat") ?? "%N. %T"; + singleFilenameFormat = sr.Load("SingleFilenameFormat") ?? singleFilenameFormat; + trackFilenameFormat = sr.Load("TrackFilenameFormat") ?? trackFilenameFormat; removeSpecial = sr.LoadBoolean("RemoveSpecialCharacters") ?? false; specialExceptions = sr.Load("SpecialCharactersExceptions") ?? "-()"; replaceSpaces = sr.LoadBoolean("ReplaceSpaces") ?? false; @@ -1266,11 +1289,18 @@ return processor.Go(); } defaultVerifyScript = sr.Load("DefaultVerifyScript") ?? "default"; - defaultVerifyAndConvertScript = sr.Load("DefaultVerifyAndConvertScript") ?? "default"; + defaultEncodeScript = sr.Load("DefaultVerifyAndConvertScript") ?? "default"; gapsHandling = (CUEStyle?)sr.LoadInt32("GapsHandling", null, null) ?? gapsHandling; language = sr.Load("Language") ?? Thread.CurrentThread.CurrentUICulture.Name; + + if (arLogFilenameFormat.Contains("%F")) + arLogFilenameFormat = "%filename%.accurip"; + if (singleFilenameFormat.Contains("%F")) + singleFilenameFormat = "%filename%"; + if (trackFilenameFormat.Contains("%N")) + trackFilenameFormat = "%tracknumber%. %title%"; } public string CleanseString (string s) @@ -1313,10 +1343,10 @@ return processor.Go(); _script = "only if found"; break; case "convert": - _action = CUEAction.VerifyAndConvert; + _action = CUEAction.Encode; break; case "fix": - _action = CUEAction.VerifyAndConvert; + _action = CUEAction.Encode; _script = "fix offset"; break; } @@ -1331,7 +1361,7 @@ return processor.Go(); _useAccurateRip = sr.LoadBoolean("AccurateRipLookup") ?? _useAccurateRip; _outputAudioType = (AudioEncoderType?)sr.LoadInt32("OutputAudioType", null, null) ?? _outputAudioType; _outputAudioFormat = sr.Load("OutputAudioFmt") ?? _outputAudioFormat; - _action = (CUEAction?)sr.LoadInt32("AccurateRipMode", null, null) ?? _action; + _action = (CUEAction?)sr.LoadInt32("AccurateRipMode", (int)CUEAction.Encode, (int)CUEAction.CorrectFilenames) ?? _action; _CUEStyle = (CUEStyle?)sr.LoadInt32("CUEStyle", null, null) ?? _CUEStyle; _writeOffset = sr.LoadInt32("WriteOffset", null, null) ?? 0; _outputTemplate = sr.Load("OutputPathTemplate") ?? _outputTemplate; @@ -1357,7 +1387,7 @@ return processor.Go(); public CUEConfig _config; public AudioEncoderType _outputAudioType = AudioEncoderType.Lossless; public string _outputAudioFormat = "flac", _outputTemplate = null, _script = "default"; - public CUEAction _action = CUEAction.VerifyAndConvert; + public CUEAction _action = CUEAction.Encode; public CUEStyle _CUEStyle = CUEStyle.SingleFileWithCUE; public int _writeOffset = 0; public bool _useFreeDb = true, _useMusicBrainz = true, _useAccurateRip = true; @@ -1416,6 +1446,7 @@ return processor.Go(); private bool _paddedToFrame, _truncated4608, _usePregapForFirstTrackInSingleFile; private int _writeOffset; private CUEAction _action; + private bool _useAccurateRip = false; private uint? _minDataTrackLength; private string _accurateRipId; private string _eacLog; @@ -1444,6 +1475,7 @@ return processor.Go(); private CDImageLayout _toc; private string _arLogFileName, _alArtFileName; private TagLib.IPicture[] _albumArt; + private int _padding = 8192; public event ArchivePasswordRequiredHandler PasswordRequired; public event CUEToolsProgressHandler CUEToolsProgress; @@ -1465,7 +1497,7 @@ return processor.Go(); _paddedToFrame = false; _truncated4608 = false; _usePregapForFirstTrackInSingleFile = false; - _action = CUEAction.Convert; + _action = CUEAction.Encode; _appliedWriteOffset = false; _minDataTrackLength = null; hdcdDecoder = null; @@ -1907,7 +1939,8 @@ return processor.Go(); List logFiles = new List(); foreach (string logPath in Directory.GetFiles(_inputDir, "*.log")) - logFiles.Add(new CUEToolsSourceFile(logPath, new StreamReader(logPath, CUESheet.Encoding))); + try { logFiles.Add(new CUEToolsSourceFile(logPath, new StreamReader(logPath, CUESheet.Encoding))); } + catch { } CUEToolsSourceFile selectedLogFile = ChooseFile(logFiles, Path.GetFileNameWithoutExtension(pathIn), false); _eacLog = selectedLogFile != null ? selectedLogFile.contents : null; } @@ -1943,7 +1976,8 @@ return processor.Go(); sr = new StringReader(cueSheet); List logFiles = new List(); foreach (string logPath in Directory.GetFiles(_inputDir, "*.log")) - logFiles.Add(new CUEToolsSourceFile(logPath, new StreamReader(logPath, CUESheet.Encoding))); + try { logFiles.Add(new CUEToolsSourceFile(logPath, new StreamReader(logPath, CUESheet.Encoding))); } + catch { } CUEToolsSourceFile selectedLogFile = ChooseFile(logFiles, null, false); _eacLog = selectedLogFile != null ? selectedLogFile.contents : null; } @@ -2410,41 +2444,42 @@ return processor.Go(); } LoadAlbumArt(_tracks[0]._fileInfo ?? _fileInfo); + ResizeAlbumArt(); + if ((_config.embedAlbumArt || _config.copyAlbumArt) && _albumArt != null && _albumArt.Length > 0) + _padding += _albumArt[0].Data.Count; + if (_config.embedLog && _eacLog != null) + _padding += _eacLog.Length; } - public void Lookup() + public void UseAccurateRip() { - if (_action == CUEAction.Verify - || _action == CUEAction.VerifyAndConvert - ) + ShowProgress((string)"Contacting AccurateRip database...", 0, 0, null, null); + if (!_toc[_toc.TrackCount].IsAudio && DataTrackLength == 0 && _minDataTrackLength.HasValue && _accurateRipId == null && _config.bruteForceDTL) { - ShowProgress((string)"Contacting AccurateRip database...", 0, 0, null, null); - if (!_toc[_toc.TrackCount].IsAudio && DataTrackLength == 0 && _minDataTrackLength.HasValue && _accurateRipId == null && _config.bruteForceDTL) + uint minDTL = _minDataTrackLength.Value; + CDImageLayout toc2 = new CDImageLayout(_toc); + for (uint dtl = minDTL; dtl < minDTL + 75; dtl++) { - uint minDTL = _minDataTrackLength.Value; - CDImageLayout toc2 = new CDImageLayout(_toc); - for (uint dtl = minDTL; dtl < minDTL + 75; dtl++) + toc2[toc2.TrackCount].Length = dtl; + _arVerify.ContactAccurateRip(AccurateRipVerify.CalculateAccurateRipId(toc2)); + if (_arVerify.AccResult != HttpStatusCode.NotFound) { - toc2[toc2.TrackCount].Length = dtl; - _arVerify.ContactAccurateRip(AccurateRipVerify.CalculateAccurateRipId(toc2)); - if (_arVerify.AccResult != HttpStatusCode.NotFound) - { - DataTrackLength = dtl; - break; - } - ShowProgress((string)"Contacting AccurateRip database...", 0, (dtl - minDTL) / 75.0, null, null); - CheckStop(); - lock (this) - { - Monitor.Wait(this, 500); - } + DataTrackLength = dtl; + break; + } + ShowProgress((string)"Contacting AccurateRip database...", 0, (dtl - minDTL) / 75.0, null, null); + CheckStop(); + lock (this) + { + Monitor.Wait(this, 500); } } - else - { - _arVerify.ContactAccurateRip(_accurateRipId ?? AccurateRipVerify.CalculateAccurateRipId(_toc)); - } } + else + { + _arVerify.ContactAccurateRip(_accurateRipId ?? AccurateRipVerify.CalculateAccurateRipId(_toc)); + } + _useAccurateRip = true; } public static Encoding Encoding { @@ -2686,20 +2721,14 @@ return processor.Go(); return pathIn.Length == 3 && pathIn.Substring(1) == ":\\" && new DriveInfo(pathIn).DriveType == DriveType.CDRom; } - private static string GenerateOutputPath(CUEConfig _config, string format, NameValueCollection tags, string ext) + public string GenerateUniqueOutputPath(string format, string ext, CUEAction action, string pathIn) { - string pathOut = General.ReplaceMultiple(format, tags); - if (pathOut == null) - return String.Empty; - - try { pathOut = Path.ChangeExtension(pathOut, ext); } - catch { pathOut = ""; } - return pathOut; + return GenerateUniqueOutputPath(_config, format, ext, action, new NameValueCollection(), pathIn, this); } public static string GenerateUniqueOutputPath(CUEConfig _config, string format, string ext, CUEAction action, NameValueCollection vars, string pathIn, CUESheet cueSheet) { - if (pathIn.Length == 0 || (!IsCDROM(pathIn) && !File.Exists(pathIn) && !Directory.Exists(pathIn))) + if (pathIn == "" || (pathIn == null && action != CUEAction.Encode) || (pathIn != null && !IsCDROM(pathIn) && !File.Exists(pathIn) && !Directory.Exists(pathIn))) return String.Empty; if (action == CUEAction.Verify && _config.arLogToSourceFolder) return Path.ChangeExtension(pathIn, ".cue"); @@ -2716,20 +2745,22 @@ return processor.Go(); ext = ".20bit" + ext; } - vars.Add("path", pathIn); - try - { - vars.Add("filename", Path.GetFileNameWithoutExtension(pathIn)); - vars.Add("filename_ext", Path.GetFileName(pathIn)); - vars.Add("directoryname", General.EmptyStringToNull(Path.GetDirectoryName(pathIn))); + if (pathIn != null) + { + vars.Add("path", pathIn); + try + { + vars.Add("filename", Path.GetFileNameWithoutExtension(pathIn)); + vars.Add("filename_ext", Path.GetFileName(pathIn)); + vars.Add("directoryname", General.EmptyStringToNull(Path.GetDirectoryName(pathIn))); + } + catch { } } - catch { } vars.Add("music", Environment.GetFolderPath(Environment.SpecialFolder.MyMusic)); - bool rs = _config.replaceSpaces; string artist = cueSheet == null ? "Artist" : cueSheet.Artist == "" ? "Unknown Artist" : cueSheet.Artist; string album = cueSheet == null ? "Album" : cueSheet.Title == "" ? "Unknown Title" : cueSheet.Title; - vars.Add("artist", General.EmptyStringToNull(_config.CleanseString(rs ? artist.Replace(' ', '_') : artist))); - vars.Add("album", General.EmptyStringToNull(_config.CleanseString(rs ? album.Replace(' ', '_') : album))); + vars.Add("artist", General.EmptyStringToNull(_config.CleanseString(artist))); + vars.Add("album", General.EmptyStringToNull(_config.CleanseString(album))); if (cueSheet != null) { @@ -2738,37 +2769,34 @@ return processor.Go(); vars.Add("discnumber", General.EmptyStringToNull(cueSheet.DiscNumber)); vars.Add("totaldiscs", General.EmptyStringToNull(cueSheet.TotalDiscs)); NameValueCollection tags = cueSheet.Tags; - foreach (string tag in tags.AllKeys) - { - string key = tag.ToLower(); - string val = tags[tag]; - if (vars.Get(key) == null && val != null && val != "") - vars.Add(key, _config.CleanseString(rs ? val.Replace(' ', '_') : val)); - } + if (tags != null) + foreach (string tag in tags.AllKeys) + { + string key = tag.ToLower(); + string val = tags[tag]; + if (vars.Get(key) == null && val != null && val != "") + vars.Add(key, _config.CleanseString(val)); + } } vars.Add("unique", null); - string outputPath = GenerateOutputPath(_config, format, vars, ext); - if (outputPath == String.Empty) - return outputPath; - int unique = 1; - try - { - while (File.Exists(outputPath)) - { - vars["unique"] = unique.ToString(); - string newPath = GenerateOutputPath(_config, format, vars, ext); - if (newPath == outputPath || newPath == String.Empty) - break; - outputPath = newPath; - unique++; - } - } - catch { } + string outputPath = General.ReplaceMultiple(format, vars, "unique", + (General.CheckIfExists)delegate(string pathOut) { + return File.Exists(Path.ChangeExtension(pathOut, ext)); + }); + if (outputPath == "" || outputPath == null) + return ""; + try { outputPath = Path.ChangeExtension(outputPath, ext); } + catch { outputPath = ""; } return outputPath; } + private bool CheckIfFileExists(string output) + { + return File.Exists(Path.Combine(OutputDir, output)); + } + public void GenerateFilenames(AudioEncoderType audioEncoderType, string format, string outputPath) { _audioEncoderType = audioEncoderType; @@ -2777,29 +2805,22 @@ return processor.Go(); _outputPath = outputPath; string extension = "." + format; - List find, replace; string filename; int iTrack; - find = new List(); - replace = new List(); - - find.Add("%D"); // 0: Album artist - find.Add("%C"); // 1: Album title - find.Add("%N"); // 2: Track number - find.Add("%A"); // 3: Track artist - find.Add("%T"); // 4: Track title - find.Add("%F"); // 5: Input filename - find.Add("%Y"); // 6: Album date - - replace.Add(General.EmptyStringToNull(_config.CleanseString(Artist))); - replace.Add(General.EmptyStringToNull(_config.CleanseString(Title))); - replace.Add(null); - replace.Add(null); - replace.Add(null); - replace.Add(Path.GetFileNameWithoutExtension(outputPath)); - replace.Add(General.EmptyStringToNull(_config.CleanseString(Year))); - + NameValueCollection vars = new NameValueCollection(); + vars.Add("unique", null); + vars.Add("album artist", General.EmptyStringToNull(_config.CleanseString(Artist))); + vars.Add("artist", General.EmptyStringToNull(_config.CleanseString(Artist))); + vars.Add("album", General.EmptyStringToNull(_config.CleanseString(Title))); + vars.Add("year", General.EmptyStringToNull(_config.CleanseString(Year))); + vars.Add("catalog", General.EmptyStringToNull(_config.CleanseString(Catalog))); + vars.Add("discnumber", General.EmptyStringToNull(_config.CleanseString(DiscNumber))); + vars.Add("totaldiscs", General.EmptyStringToNull(_config.CleanseString(TotalDiscs))); + vars.Add("filename", Path.GetFileNameWithoutExtension(outputPath)); + vars.Add("tracknumber", null); + vars.Add("title", null); + if (_config.detectHDCD && _config.decodeHDCD && (!_outputLossyWAV || !_config.decodeHDCDtoLW16)) { if (_config.decodeHDCDto24bit ) @@ -2808,21 +2829,17 @@ return processor.Go(); extension = ".20bit" + extension; } - ArLogFileName = General.ReplaceMultiple(_config.arLogFilenameFormat, find, replace) ?? Path.ChangeExtension(outputPath, ".accurip"); - AlArtFileName = General.ReplaceMultiple(_config.alArtFilenameFormat, find, replace) ?? "Folder.jpg"; + ArLogFileName = General.ReplaceMultiple(_config.arLogFilenameFormat, vars, "unique", CheckIfFileExists) + ?? vars["%filename%"] + ".accurip"; + AlArtFileName = General.ReplaceMultiple(_config.alArtFilenameFormat, vars, "unique", CheckIfFileExists) + ?? "folder.jpg"; - if (_config.keepOriginalFilenames && HasSingleFilename) - { + if (OutputStyle == CUEStyle.SingleFileWithCUE) + SingleFilename = Path.ChangeExtension(Path.GetFileName(outputPath), extension); + else if (_config.keepOriginalFilenames && HasSingleFilename) SingleFilename = Path.ChangeExtension(SingleFilename, extension); - } else - { - filename = General.ReplaceMultiple(_config.singleFilenameFormat, find, replace); - if (filename == null) - filename = "Range"; - filename += extension; - SingleFilename = filename; - } + SingleFilename = (General.ReplaceMultiple(_config.singleFilenameFormat, vars) ?? "range") + extension; for (iTrack = -1; iTrack < TrackCount; iTrack++) { @@ -2843,23 +2860,16 @@ return processor.Go(); string artist = Tracks[htoa ? 0 : iTrack].Artist; string title = htoa ? "(HTOA)" : Tracks[iTrack].Title; - replace[2] = trackStr; - replace[3] = General.EmptyStringToNull(_config.CleanseString(artist==""?Artist:artist)); - replace[4] = General.EmptyStringToNull(_config.CleanseString(title)); + vars["tracknumber"] = trackStr; + vars["artist"] = General.EmptyStringToNull(_config.CleanseString(artist)) ?? vars["album artist"]; + vars["title"] = General.EmptyStringToNull(_config.CleanseString(title)); - filename = General.ReplaceMultiple(_config.trackFilenameFormat, find, replace); - if (filename == null) - filename = replace[2]; - filename += extension; + filename = (General.ReplaceMultiple(_config.trackFilenameFormat, vars) ?? vars["tracknumber"]) + extension; if (htoa) - { HTOAFilename = filename; - } else - { TrackFilenames[iTrack] = filename; - } } } @@ -2880,6 +2890,34 @@ return processor.Go(); } } + public bool OutputExists() + { + bool outputExists = false; + bool outputCUE = Action == CUEAction.Encode && (OutputStyle != CUEStyle.SingleFileWithCUE || _config.createCUEFileWhenEmbedded); + bool outputAudio = Action == CUEAction.Encode && _audioEncoderType != AudioEncoderType.NoAudio; + if (outputCUE) + outputExists = File.Exists(_outputPath); + if (_useAccurateRip && ( + (Action == CUEAction.Encode && _config.writeArLogOnConvert) || + (Action == CUEAction.Verify && _config.writeArLogOnVerify))) + outputExists |= File.Exists(Path.Combine(OutputDir, ArLogFileName)); + if (outputAudio) + { + if (_config.extractAlbumArt && AlbumArt != null && AlbumArt.Length != 0) + outputExists |= File.Exists(Path.Combine(OutputDir, AlArtFileName)); + if (OutputStyle == CUEStyle.SingleFile || OutputStyle == CUEStyle.SingleFileWithCUE) + outputExists |= File.Exists(Path.Combine(OutputDir, SingleFilename)); + else + { + if (OutputStyle == CUEStyle.GapsAppended && _config.preserveHTOA) + outputExists |= File.Exists(Path.Combine(OutputDir, HTOAFilename)); + for (int i = 0; i < TrackCount; i++) + outputExists |= File.Exists(Path.Combine(OutputDir, TrackFilenames[i])); + } + } + return outputExists; + } + private int GetSampleLength(string path, out TagLib.File fileInfo) { ShowProgress("Analyzing input file...", 0.0, 0.0, path, null); @@ -3158,7 +3196,7 @@ return processor.Go(); logWriter.WriteLine("Track {0} contains {1} errors", iTrack + 1, cdErrors); } } - if (_action != CUEAction.Convert) + if (_useAccurateRip) { logWriter.WriteLine(); logWriter.WriteLine("AccurateRip summary"); @@ -3216,7 +3254,7 @@ return processor.Go(); using (sw) { - if (_config.writeArTagsOnConvert) + if (_config.writeArTagsOnEncode) WriteLine(sw, 0, "REM ACCURATERIPID " + (_accurateRipId ?? AccurateRipVerify.CalculateAccurateRipId(_toc))); for (i = 0; i < _attributes.Count; i++) @@ -3316,8 +3354,7 @@ return processor.Go(); string prefix = ""; if (hdcdDecoder != null && hdcdDecoder.Detected) prefix += "hdcd detected, "; - if (_action == CUEAction.Verify || - (_action == CUEAction.VerifyAndConvert && _audioEncoderType != AudioEncoderType.NoAudio)) + if (_useAccurateRip) { if (_arVerify.ARStatus != null) prefix += _arVerify.ARStatus; @@ -3418,8 +3455,8 @@ return processor.Go(); bool htoaToFile = ((OutputStyle == CUEStyle.GapsAppended) && _config.preserveHTOA && (_toc.Pregap != 0)); - if (_isCD && (OutputStyle == CUEStyle.GapsLeftOut || OutputStyle == CUEStyle.GapsPrepended) && (_action == CUEAction.Convert || _action == CUEAction.VerifyAndConvert)) - throw new Exception("When ripping a CD, gaps Left Out/Gaps prepended modes can only be used in verify-then-convert mode"); + if (_isCD && (OutputStyle == CUEStyle.GapsLeftOut || OutputStyle == CUEStyle.GapsPrepended)) + throw new Exception("Gaps Left Out/Gaps prepended modes cannot be used when ripping a CD"); if (_usePregapForFirstTrackInSingleFile) throw new Exception("UsePregapForFirstTrackInSingleFile is not supported for writing audio files."); @@ -3444,15 +3481,17 @@ return processor.Go(); if (_audioEncoderType != AudioEncoderType.NoAudio || _action == CUEAction.Verify) WriteAudioFilesPass(OutputDir, OutputStyle, destLengths, htoaToFile, _action == CUEAction.Verify); + CreateRipperLOG(); - if (_action == CUEAction.Convert || _action == CUEAction.VerifyAndConvert) + + if (_action == CUEAction.Encode) { string cueContents = CUESheetContents(OutputStyle); uint tracksMatch = 0; int bestOffset = 0; - if (_action != CUEAction.Convert && - _config.writeArTagsOnConvert && + if (_useAccurateRip && + _config.writeArTagsOnEncode && _arVerify.AccResult == HttpStatusCode.OK) FindBestOffset(1, true, out tracksMatch, out bestOffset); @@ -3469,6 +3508,9 @@ return processor.Go(); if (_eacLog != null && _config.extractLog) WriteText(Path.ChangeExtension(_outputPath, ".log"), _eacLog); + if (_audioEncoderType != AudioEncoderType.NoAudio && _config.extractAlbumArt) + ExtractAlbumArt(); + if (OutputStyle == CUEStyle.SingleFileWithCUE || OutputStyle == CUEStyle.SingleFile) { if (OutputStyle == CUEStyle.SingleFileWithCUE && _config.createCUEFileWhenEmbedded) @@ -3524,7 +3566,9 @@ return processor.Go(); fileInfo.Tag.Year = sourceFileInfo.Tag.Year; } - ProcessAlbumArt(fileInfo); + if ((_config.embedAlbumArt || _config.copyAlbumArt) && _albumArt != null && _albumArt.Length > 0) + fileInfo.Tag.Pictures = _albumArt; + fileInfo.Save(); } } @@ -3594,7 +3638,9 @@ return processor.Go(); fileInfo.Tag.Genres = sourceFileInfo.Tag.Genres; } - ProcessAlbumArt(fileInfo); + if ((_config.embedAlbumArt || _config.copyAlbumArt) && _albumArt != null && _albumArt.Length > 0) + fileInfo.Tag.Pictures = _albumArt; + fileInfo.Save(); } } @@ -3634,14 +3680,6 @@ return processor.Go(); return b; } - public void ProcessAlbumArt(TagLib.File destFileInfo) - { - ResizeAlbumArt(); - ExtractAlbumArt(); - if ((_config.embedAlbumArt || _config.copyAlbumArt) && _albumArt != null) - destFileInfo.Tag.Pictures = _albumArt; - } - public void ExtractAlbumArt() { if (!_config.extractAlbumArt || _albumArt == null || _albumArt.Length == 0) @@ -3725,8 +3763,7 @@ return processor.Go(); public string WriteReport() { - if (_action == CUEAction.Verify || - (_action != CUEAction.Convert && _audioEncoderType != AudioEncoderType.NoAudio)) + if (_useAccurateRip) { ShowProgress((string)"Generating AccurateRip report...", 0, 0, null, null); if (_action == CUEAction.Verify && _config.writeArTagsOnVerify && _writeOffset == 0 && !_isArchive && !_isCD) @@ -3833,7 +3870,7 @@ return processor.Go(); //CleanupTags(destTags, "REPLAYGAIN"); } - if (_config.writeArTagsOnConvert && _action == CUEAction.VerifyAndConvert && _arVerify.AccResult == HttpStatusCode.OK) + if (_config.writeArTagsOnEncode && _action == CUEAction.Encode && _useAccurateRip && _arVerify.AccResult == HttpStatusCode.OK) GenerateAccurateRipTags(destTags, bestOffset, iTrack); return destTags; @@ -3904,7 +3941,7 @@ return processor.Go(); if (_config.embedLog && logContents != null) destTags.Add("LOG", logContents); - if (fWithCUE && _config.writeArTagsOnConvert && _action == CUEAction.VerifyAndConvert && _arVerify.AccResult == HttpStatusCode.OK) + if (fWithCUE && _config.writeArTagsOnEncode && _action == CUEAction.Encode && _useAccurateRip && _arVerify.AccResult == HttpStatusCode.OK) GenerateAccurateRipTags(destTags, bestOffset, -1); return destTags; @@ -3975,7 +4012,7 @@ return processor.Go(); if (style == CUEStyle.SingleFile || style == CUEStyle.SingleFileWithCUE) { iDest++; - audioDest = GetAudioDest(_destPaths[iDest], destLengths[iDest], hdcdDecoder != null && hdcdDecoder.Decoding ? hdcdDecoder.BitsPerSample : 16, noOutput); + audioDest = GetAudioDest(_destPaths[iDest], destLengths[iDest], hdcdDecoder != null && hdcdDecoder.Decoding ? hdcdDecoder.BitsPerSample : 16, _padding, noOutput); } uint currentOffset = 0, previousOffset = 0; @@ -3983,7 +4020,7 @@ return processor.Go(); uint diskLength = 588 * _toc.AudioLength; uint diskOffset = 0; - if (_action != CUEAction.Convert) + if (_useAccurateRip) _arVerify.Init(); ShowProgress(String.Format("{2} track {0:00} ({1:00}%)...", 0, 0, noOutput ? "Verifying" : "Writing"), 0, 0.0, null, null); @@ -4003,7 +4040,7 @@ return processor.Go(); hdcdDecoder.AudioDest = null; if (audioDest != null) audioDest.Close(); - audioDest = GetAudioDest(_destPaths[iDest], destLengths[iDest], hdcdDecoder != null && hdcdDecoder.Decoding ? hdcdDecoder.BitsPerSample : 16, noOutput); + audioDest = GetAudioDest(_destPaths[iDest], destLengths[iDest], hdcdDecoder != null && hdcdDecoder.Decoding ? hdcdDecoder.BitsPerSample : 16, _padding, noOutput); } for (iIndex = 0; iIndex <= _toc[_toc.FirstAudio + iTrack].LastIndex; iIndex++) @@ -4024,7 +4061,7 @@ return processor.Go(); if (audioDest != null) audioDest.Close(); iDest++; - audioDest = GetAudioDest(_destPaths[iDest], destLengths[iDest], hdcdDecoder != null && hdcdDecoder.Decoding ? hdcdDecoder.BitsPerSample : 16, noOutput); + audioDest = GetAudioDest(_destPaths[iDest], destLengths[iDest], hdcdDecoder != null && hdcdDecoder.Decoding ? hdcdDecoder.BitsPerSample : 16, _padding, noOutput); } if ((style == CUEStyle.GapsAppended) && (iIndex == 0) && (iTrack == 0)) @@ -4033,7 +4070,7 @@ return processor.Go(); if (htoaToFile) { iDest++; - audioDest = GetAudioDest(_destPaths[iDest], destLengths[iDest], hdcdDecoder != null && hdcdDecoder.Decoding ? hdcdDecoder.BitsPerSample : 16, noOutput); + audioDest = GetAudioDest(_destPaths[iDest], destLengths[iDest], hdcdDecoder != null && hdcdDecoder.Decoding ? hdcdDecoder.BitsPerSample : 16, _padding, noOutput); } } else if ((style == CUEStyle.GapsLeftOut) && (iIndex == 0)) @@ -4096,7 +4133,7 @@ return processor.Go(); } } } - if (_action != CUEAction.Convert) + if (_useAccurateRip) _arVerify.Write(sampleBuffer, copyCount); if (iTrack > 0 || iIndex > 0) Tracks[iTrack + (iIndex == 0 ? -1 : 0)].MeasurePeakLevel(sampleBuffer, copyCount); @@ -4400,11 +4437,11 @@ return processor.Go(); } } - private IAudioDest GetAudioDest(string path, int finalSampleCount, int bps, bool noOutput) + private IAudioDest GetAudioDest(string path, int finalSampleCount, int bps, int padding, bool noOutput) { if (noOutput) return new DummyWriter(path, bps, 2, 44100); - return AudioReadWrite.GetAudioDest(_audioEncoderType, path, finalSampleCount, bps, 44100, _config); + return AudioReadWrite.GetAudioDest(_audioEncoderType, path, finalSampleCount, bps, 44100, padding, _config); } private IAudioSource GetAudioSource(int sourceIndex) { @@ -4934,7 +4971,7 @@ return processor.Go(); if (tracksMatch * 100 >= Config.fixOffsetMinimumTracksPercent * TrackCount) { WriteOffset = bestOffset; - Action = CUEAction.VerifyAndConvert; + Action = CUEAction.Encode; status = Go(); } return status; @@ -4953,7 +4990,7 @@ return processor.Go(); FindBestOffset(Config.encodeWhenConfidence, false, out tracksMatch, out bestOffset); if (tracksMatch * 100 >= Config.encodeWhenPercent * TrackCount && (!_config.encodeWhenZeroOffset || bestOffset == 0)) { - Action = CUEAction.VerifyAndConvert; + Action = CUEAction.Encode; status = Go(); } return status; diff --git a/CUETools/frmAbout.ru-RU.resx b/CUETools/frmAbout.ru-RU.resx index 3596c98..699b056 100644 --- a/CUETools/frmAbout.ru-RU.resx +++ b/CUETools/frmAbout.ru-RU.resx @@ -156,6 +156,6 @@ hdcd.dll (c) Christopher Key 439, 296 - CUETools v1.9.5: О программе + CUETools: О программе \ No newline at end of file diff --git a/CUETools/frmBatch.cs b/CUETools/frmBatch.cs index 282f18c..5cc1958 100644 --- a/CUETools/frmBatch.cs +++ b/CUETools/frmBatch.cs @@ -114,17 +114,28 @@ namespace JDP pathIn = Path.GetFullPath(pathIn); - textBox1.Text += "Processing " + pathIn + ":\r\n"; - textBox1.Select(0, 0); + this.Invoke((MethodInvoker)delegate() + { + textBox1.Text += "Processing " + pathIn + ":\r\n"; + textBox1.Select(0, 0); + }); if (!File.Exists(pathIn) && !Directory.Exists(pathIn)) throw new Exception("Input CUE Sheet not found."); + if (_profile._action == CUEAction.CorrectFilenames) + throw new Exception("CorrectFilenames action not yet supported in commandline mode."); + if (_profile._action == CUEAction.CreateDummyCUE) + throw new Exception("CreateDummyCUE action not yet supported in commandline mode."); + + bool useAR = _profile._action == CUEAction.Verify || _profile._useAccurateRip; + cueSheet.Action = _profile._action; cueSheet.OutputStyle = _profile._CUEStyle; cueSheet.WriteOffset = _profile._writeOffset; cueSheet.Open(pathIn); - cueSheet.Lookup(); + if (useAR) + cueSheet.UseAccurateRip(); pathOut = CUESheet.GenerateUniqueOutputPath(_config, _profile._outputTemplate, @@ -137,10 +148,8 @@ namespace JDP throw new Exception("Could not generate output path."); cueSheet.GenerateFilenames(_profile._outputAudioType, _profile._outputAudioFormat, pathOut); - if (_profile._action != CUEAction.Verify && _profile._CUEStyle == CUEStyle.SingleFileWithCUE) - cueSheet.SingleFilename = Path.ChangeExtension(Path.GetFileName(pathOut), "." + _profile._outputAudioFormat); - cueSheet.UsePregapForFirstTrackInSingleFile = false; + if (script == null) cueSheet.Go(); else @@ -158,7 +167,7 @@ namespace JDP textBox1.Text += cueSheet.LOGContents; textBox1.Show(); } - else if (cueSheet.Action != CUEAction.Convert) + else if (useAR) { StringWriter sw = new StringWriter(); cueSheet.GenerateAccurateRipLog(sw); diff --git a/CUETools/frmCUETools.Designer.cs b/CUETools/frmCUETools.Designer.cs index c876517..917d385 100644 --- a/CUETools/frmCUETools.Designer.cs +++ b/CUETools/frmCUETools.Designer.cs @@ -629,15 +629,18 @@ namespace JDP { // toolStripOutput // resources.ApplyResources(this.toolStripOutput, "toolStripOutput"); + this.toolStripOutput.GripMargin = new System.Windows.Forms.Padding(0); this.toolStripOutput.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden; this.toolStripOutput.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.toolStripLabelOutput, this.toolStripSplitButtonOutputBrowser}); + this.toolStripOutput.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.HorizontalStackWithOverflow; this.toolStripOutput.Name = "toolStripOutput"; this.toolStripOutput.RenderMode = System.Windows.Forms.ToolStripRenderMode.System; // // toolStripLabelOutput // + this.toolStripLabelOutput.Margin = new System.Windows.Forms.Padding(0); this.toolStripLabelOutput.Name = "toolStripLabelOutput"; resources.ApplyResources(this.toolStripLabelOutput, "toolStripLabelOutput"); // diff --git a/CUETools/frmCUETools.cs b/CUETools/frmCUETools.cs index 8f8e662..0f26e62 100644 --- a/CUETools/frmCUETools.cs +++ b/CUETools/frmCUETools.cs @@ -256,26 +256,6 @@ namespace JDP { if (_reducePriority) Process.GetCurrentProcess().PriorityClass = System.Diagnostics.ProcessPriorityClass.Idle; - //fileSystemTreeView1.CheckBoxes = FileBrowserState == FileBrowserStateEnum.Checkboxes; - //fileSystemTreeView1.IconManager = m_icon_mgr; - //if (InputPath != "") - //{ - // TreeNode node = null; - // try - // { - // node = fileSystemTreeView1.LookupNode(InputPath) ?? - // fileSystemTreeView1.LookupNode(Path.GetDirectoryName(InputPath)); - // } - // catch - // { - // } - // if (node != null) - // { - // fileSystemTreeView1.SelectedNode = node; - // node.Expand(); - // } - //} - motdImage = null; if (File.Exists(MOTDImagePath)) using (FileStream imageStream = new FileStream(MOTDImagePath, FileMode.Open, FileAccess.Read)) @@ -495,6 +475,8 @@ namespace JDP { CUEToolsScript script = (CUEToolsScript)p[6]; DialogResult dlgRes = DialogResult.OK; string status = null; + bool outputAudio = action == CUEAction.Encode && audioEncoderType != AudioEncoderType.NoAudio; + bool useAR = action == CUEAction.Verify || (outputAudio && checkBoxUseAccurateRip.Checked); try { @@ -743,7 +725,6 @@ namespace JDP { } else if (File.Exists(pathIn) || IsCDROM(pathIn)) { - bool convertAction = action == CUEAction.Convert || action == CUEAction.VerifyAndConvert; string pathOut = null; List releases = null; @@ -753,12 +734,14 @@ namespace JDP { cueSheet.Action = action; cueSheet.OutputStyle = cueStyle; cueSheet.Open(pathIn); - if (action != CUEAction.Convert) - cueSheet.DataTrackLengthMSF = txtDataTrackLength.Text; cueSheet.PreGapLengthMSF = txtPreGapLength.Text; - cueSheet.Lookup(); + if (useAR) + { + cueSheet.DataTrackLengthMSF = txtDataTrackLength.Text; + cueSheet.UseAccurateRip(); + } - if (_batchPaths.Count == 0 && convertAction) + if (_batchPaths.Count == 0 && action == CUEAction.Encode) { if (checkBoxUseFreeDb.Checked || checkBoxUseMusicBrainz.Checked) releases = cueSheet.LookupAlbumInfo(checkBoxUseFreeDb.Checked, checkBoxUseMusicBrainz.Checked); @@ -766,7 +749,7 @@ namespace JDP { this.Invoke((MethodInvoker)delegate() { - toolStripStatusLabelAR.Visible = action != CUEAction.Convert;// && cueSheet.ArVerify.ARStatus == null; + toolStripStatusLabelAR.Visible = useAR;// && cueSheet.ArVerify.ARStatus == null; toolStripStatusLabelAR.Text = cueSheet.ArVerify.ARStatus == null ? cueSheet.ArVerify.WorstTotal().ToString() : "?"; toolStripStatusLabelAR.ToolTipText = "AccurateRip: " + (cueSheet.ArVerify.ARStatus ?? "found") + "."; if (releases != null) @@ -792,31 +775,10 @@ namespace JDP { if (dlgRes == DialogResult.Cancel) return; - bool outputAudio = convertAction && audioEncoderType != AudioEncoderType.NoAudio; - bool outputCUE = convertAction && (cueStyle != CUEStyle.SingleFileWithCUE || _profile._config.createCUEFileWhenEmbedded); - cueSheet.GenerateFilenames(audioEncoderType, outputFormat, pathOut); - string outDir = Path.GetDirectoryName(pathOut); - if (cueStyle == CUEStyle.SingleFileWithCUE) - cueSheet.SingleFilename = Path.GetFileName(pathOut); - if (outDir == "") - outDir = "."; - bool outputExists = false; - if (outputCUE) - outputExists = File.Exists(pathOut); - if (outputAudio) - { - if (cueStyle == CUEStyle.SingleFile || cueStyle == CUEStyle.SingleFileWithCUE) - outputExists |= File.Exists(Path.Combine(outDir, cueSheet.SingleFilename)); - else - { - if (cueStyle == CUEStyle.GapsAppended && _profile._config.preserveHTOA) - outputExists |= File.Exists(Path.Combine(outDir, cueSheet.HTOAFilename)); - for (int i = 0; i < cueSheet.TrackCount; i++) - outputExists |= File.Exists(Path.Combine(outDir, cueSheet.TrackFilenames[i])); - } - } + bool outputExists = cueSheet.OutputExists(); + dlgRes = DialogResult.Cancel; if (outputExists) { @@ -872,8 +834,7 @@ namespace JDP { //reportForm.Message = _batchReport.ToString(); //reportForm.ShowDialog(this); } - else if (cueSheet.Action == CUEAction.Verify || - (cueSheet.Action == CUEAction.VerifyAndConvert && audioEncoderType != AudioEncoderType.NoAudio)) + else if (useAR) { using (StringWriter sw = new StringWriter()) { @@ -963,8 +924,8 @@ namespace JDP { } private void SetupControls(bool running) { - bool converting = (SelectedAction == CUEAction.Convert || SelectedAction == CUEAction.VerifyAndConvert); - bool verifying = (SelectedAction == CUEAction.Verify || SelectedAction == CUEAction.VerifyAndConvert); + bool converting = (SelectedAction == CUEAction.Encode); + bool verifying = (SelectedAction == CUEAction.Verify || (SelectedAction == CUEAction.Encode && SelectedOutputAudioType != AudioEncoderType.NoAudio && checkBoxUseAccurateRip.Checked)); //grpInput.Enabled = !running; toolStripMenu.Enabled = !running; fileSystemTreeView1.Enabled = !running; @@ -979,10 +940,10 @@ namespace JDP { grpOutputPathGeneration.Enabled = !running; grpAudioOutput.Enabled = !running && converting; grpAction.Enabled = !running; - checkBoxUseFreeDb.Enabled = - checkBoxUseMusicBrainz.Enabled = - checkBoxUseAccurateRip.Enabled = - !running && !(FileBrowserState == FileBrowserStateEnum.DragDrop || FileBrowserState == FileBrowserStateEnum.Checkboxes) && converting; + //checkBoxUseFreeDb.Enabled = + // checkBoxUseMusicBrainz.Enabled = + // checkBoxUseAccurateRip.Enabled = + // !(FileBrowserState == FileBrowserStateEnum.DragDrop || FileBrowserState == FileBrowserStateEnum.Checkboxes) && converting; txtDataTrackLength.Enabled = !running && verifying; txtPreGapLength.Enabled = !running; btnConvert.Visible = !running; @@ -1350,6 +1311,7 @@ namespace JDP { ? toolStripMenuItemOutputManual : toolStripMenuItemOutputBrowse; toolStripSplitButtonOutputBrowser.Text = toolStripSplitButtonOutputBrowser.DefaultItem.Text; toolStripSplitButtonOutputBrowser.Image = toolStripSplitButtonOutputBrowser.DefaultItem.Image; + toolStripSplitButtonOutputBrowser.Enabled = toolStripSplitButtonOutputBrowser.DefaultItem.Enabled; UpdateOutputPath(); } } @@ -1375,6 +1337,7 @@ namespace JDP { set { ToolStripMenuItem inputBtn = FileBrowserStateButton(value); + if (inputBtn == null) { value = FileBrowserStateEnum.Hidden; inputBtn = toolStripMenuItemInputBrowserHide; } ToolStripMenuItem defaultBtn = FileBrowserStateButton(value != FileBrowserStateEnum.Hidden ? FileBrowserStateEnum.Hidden : _fileBrowserControlState == FileBrowserStateEnum.Hidden ? FileBrowserStateEnum.Tree : _fileBrowserControlState); @@ -1465,8 +1428,7 @@ namespace JDP { rbActionVerify.Checked ? CUEAction.Verify : rbActionCorrectFilenames.Checked ? CUEAction.CorrectFilenames : rbActionCreateCUESheet.Checked ? CUEAction.CreateDummyCUE : - checkBoxUseAccurateRip.Checked ? CUEAction.VerifyAndConvert : - CUEAction.Convert; + CUEAction.Encode; } set { @@ -1707,9 +1669,10 @@ namespace JDP { } set { + CUEAction action = SelectedAction; comboBoxScript.Items.Clear(); foreach (KeyValuePair script in _profile._config.scripts) - if (script.Value.conditions.Contains(SelectedAction)) + if (script.Value.conditions.Contains(action)) comboBoxScript.Items.Add(script.Value); comboBoxScript.Enabled = btnConvert.Enabled && comboBoxScript.Items.Count > 1; comboBoxScript.SelectedItem = @@ -1725,9 +1688,8 @@ namespace JDP { case CUEAction.Verify: SelectedScript = _profile._config.defaultVerifyScript; break; - case CUEAction.Convert: - case CUEAction.VerifyAndConvert: - SelectedScript = _profile._config.defaultVerifyAndConvertScript; + case CUEAction.Encode: + SelectedScript = _profile._config.defaultEncodeScript; break; default: SelectedScript = null; @@ -1742,9 +1704,8 @@ namespace JDP { case CUEAction.Verify: _profile._config.defaultVerifyScript = SelectedScript; break; - case CUEAction.Convert: - case CUEAction.VerifyAndConvert: - _profile._config.defaultVerifyAndConvertScript = SelectedScript; + case CUEAction.Encode: + _profile._config.defaultEncodeScript = SelectedScript; break; } } @@ -1756,7 +1717,7 @@ namespace JDP { if (sender == rbActionVerify && comboBoxScript.SelectedItem != null) SaveScripts(CUEAction.Verify); if (sender == rbActionEncode && comboBoxScript.SelectedItem != null) - SaveScripts(CUEAction.VerifyAndConvert); + SaveScripts(CUEAction.Encode); return; } UpdateOutputPath(); diff --git a/CUETools/frmCUETools.de-DE.resx b/CUETools/frmCUETools.de-DE.resx index f888876..90e2d5a 100644 --- a/CUETools/frmCUETools.de-DE.resx +++ b/CUETools/frmCUETools.de-DE.resx @@ -348,7 +348,7 @@ E&ingabe: - Aus&gabe: + Aus&gabe: Neue Erweiterung diff --git a/CUETools/frmCUETools.resx b/CUETools/frmCUETools.resx index a5887c6..a18b1b2 100644 --- a/CUETools/frmCUETools.resx +++ b/CUETools/frmCUETools.resx @@ -207,6 +207,186 @@ 2 + + textBatchReport + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel1 + + + 0 + + + grpInput + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel1 + + + 1 + + + tableLayoutPanel2 + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel1 + + + 2 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="groupBoxMode" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="grpAudioOutput" Row="1" RowSpan="2" Column="2" ColumnSpan="1" /><Control Name="pictureBoxMotd" Row="2" RowSpan="2" Column="0" ColumnSpan="1" /><Control Name="grpOutputPathGeneration" Row="0" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="grpAction" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="grpExtra" Row="2" RowSpan="2" Column="1" ColumnSpan="1" /><Control Name="panelGo" Row="3" RowSpan="1" Column="2" ColumnSpan="1" /></Controls><Columns Styles="Percent,35,41667,Percent,32,70833,Percent,31,875" /><Rows Styles="Percent,29,69697,Percent,41,51515,Percent,19,39394,Percent,9,393939" /></TableLayoutSettings> + + + Fill + + + 0, 0 + + + 0, 0, 0, 0 + + + 2 + + + 684, 451 + + + 17 + + + tableLayoutPanel1 + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripContainer1.ContentPanel + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="textBatchReport" Row="1" RowSpan="1" Column="0" ColumnSpan="2" /><Control Name="grpInput" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="tableLayoutPanel2" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Percent,100,Absolute,480" /><Rows Styles="Absolute,330,Percent,100" /></TableLayoutSettings> + + + 0, 0, 0, 0 + + + 684, 451 + + + toolStripContainer1.ContentPanel + + + System.Windows.Forms.ToolStripContentPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripContainer1 + + + 0 + + + Fill + + + toolStripContainer1.LeftToolStripPanel + + + System.Windows.Forms.ToolStripPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripContainer1 + + + 1 + + + 0, 0 + + + toolStripContainer1.RightToolStripPanel + + + System.Windows.Forms.ToolStripPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripContainer1 + + + 2 + + + 684, 502 + + + 17 + + + toolStripContainer1 + + + 0, 0 + + + None + + + 0, 0 + + + 684, 25 + + + 0 + + + toolStripMenu + + + System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripContainer1.TopToolStripPanel + + + 0 + + + toolStripContainer1.TopToolStripPanel + + + System.Windows.Forms.ToolStripPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripContainer1 + + + 3 + + + toolStripContainer1 + + + System.Windows.Forms.ToolStripContainer, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 1 + Fill @@ -246,21 +426,6 @@ 0 - - Top, Bottom, Left, Right - - - 19 - - - 3, 17 - - - 192, 304 - - - 1 - fileSystemTreeView1 @@ -303,12 +468,321 @@ 1 + + Top, Bottom, Left, Right + + + 19 + + + 3, 17 + + + 192, 304 + + + 1 + + + fileSystemTreeView1 + + + CUEControls.FileSystemTreeView, CUEControls, Version=1.0.3469.35476, Culture=neutral, PublicKeyToken=null + + + grpInput + + + 0 + 3 + + groupBoxMode + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel2 + + + 0 + + + grpAudioOutput + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel2 + + + 1 + + + pictureBoxMotd + + + System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel2 + + + 2 + + + grpOutputPathGeneration + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel2 + + + 3 + + + grpAction + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel2 + + + 4 + + + grpExtra + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel2 + + + 5 + + + panelGo + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel2 + + + 6 + + + Fill + + + 204, 0 + + + 0, 0, 0, 0 + + + 4 + + + 480, 330 + + + 1 + + + tableLayoutPanel2 + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel1 + + + 2 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="groupBoxMode" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="grpAudioOutput" Row="1" RowSpan="2" Column="2" ColumnSpan="1" /><Control Name="pictureBoxMotd" Row="2" RowSpan="2" Column="0" ColumnSpan="1" /><Control Name="grpOutputPathGeneration" Row="0" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="grpAction" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="grpExtra" Row="2" RowSpan="2" Column="1" ColumnSpan="1" /><Control Name="panelGo" Row="3" RowSpan="1" Column="2" ColumnSpan="1" /></Controls><Columns Styles="Percent,35,41667,Percent,32,70833,Percent,31,875" /><Rows Styles="Percent,29,69697,Percent,41,51515,Percent,19,39394,Percent,9,393939" /></TableLayoutSettings> + + + 3, 17 + + + tableLayoutPanelCUEStyle + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBoxMode + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="checkBoxUseAccurateRip" Row="4" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="checkBoxUseFreeDb" Row="4" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="rbTracks" Row="2" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="rbEmbedCUE" Row="0" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="rbSingleFile" Row="1" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="checkBoxUseMusicBrainz" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,33,33333,Percent,33,33334,Percent,33,33334" /><Rows Styles="Percent,16,41941,Percent,16,41942,Percent,16,42196,Percent,24,54545,Percent,26,36364" /></TableLayoutSettings> + + + toolStripCorrectorFormat + + + System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBoxMode + + + 1 + + + Fill + + + 173, 101 + + + 150, 130 + + + 12 + + + Mode + + + groupBoxMode + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel2 + + + 0 + 3 + + checkBoxUseAccurateRip + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelCUEStyle + + + 0 + + + checkBoxUseFreeDb + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelCUEStyle + + + 1 + + + rbTracks + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelCUEStyle + + + 2 + + + rbEmbedCUE + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelCUEStyle + + + 3 + + + rbSingleFile + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelCUEStyle + + + 4 + + + checkBoxUseMusicBrainz + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelCUEStyle + + + 5 + + + Fill + + + 3, 17 + + + 0, 0, 0, 0 + + + 5 + + + 144, 110 + + + 11 + + + tableLayoutPanelCUEStyle + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBoxMode + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="checkBoxUseAccurateRip" Row="4" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="checkBoxUseFreeDb" Row="4" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="rbTracks" Row="2" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="rbEmbedCUE" Row="0" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="rbSingleFile" Row="1" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="checkBoxUseMusicBrainz" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,33,33333,Percent,33,33334,Percent,33,33334" /><Rows Styles="Percent,16,41941,Percent,16,41942,Percent,16,42196,Percent,24,54545,Percent,26,36364" /></TableLayoutSettings> + + + 153, 8 + True @@ -330,9 +804,6 @@ 5 - - 153, 8 - Use AccurateRip @@ -534,39 +1005,6 @@ 5 - - Fill - - - 3, 17 - - - 0, 0, 0, 0 - - - 5 - - - 144, 110 - - - 11 - - - tableLayoutPanelCUEStyle - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxMode - - - 0 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="checkBoxUseAccurateRip" Row="4" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="checkBoxUseFreeDb" Row="4" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="rbTracks" Row="2" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="rbEmbedCUE" Row="0" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="rbSingleFile" Row="1" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="checkBoxUseMusicBrainz" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,33,33333,Percent,33,33334,Percent,33,33334" /><Rows Styles="Percent,16,41941,Percent,16,41942,Percent,16,42196,Percent,24,54545,Percent,26,36364" /></TableLayoutSettings> - 3, 17 @@ -576,51 +1014,6 @@ Fill - - Magenta - - - 78, 20 - - - Overwrite - - - 168, 22 - - - Locate files - - - Try to locate missing files automaticly - - - 168, 22 - - - Change extension - - - Replace extension for audio files with this: - - - Magenta - - - 79, 19 - - - Locate files - - - Magenta - - - 39, 19 - - - flac - 3, 17 @@ -645,32 +1038,209 @@ 1 - + + Magenta + + + 78, 20 + + + Overwrite + + + Magenta + + + 79, 19 + + + Locate files + + + 168, 22 + + + Locate files + + + Try to locate missing files automaticly + + + 168, 22 + + + Change extension + + + Replace extension for audio files with this: + + + Magenta + + + 39, 19 + + + flac + + + labelEncoderMaxMode + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAudioOutput + + + 0 + + + labelEncoderMinMode + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAudioOutput + + + 1 + + + labelEncoderMode + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAudioOutput + + + 2 + + + trackBarEncoderMode + + + System.Windows.Forms.TrackBar, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAudioOutput + + + 3 + + + comboBoxEncoder + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAudioOutput + + + 4 + + + radioButtonAudioNone + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAudioOutput + + + 5 + + + radioButtonAudioLossy + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAudioOutput + + + 6 + + + radioButtonAudioHybrid + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAudioOutput + + + 7 + + + radioButtonAudioLossless + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAudioOutput + + + 8 + + + labelFormat + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAudioOutput + + + 9 + + + comboBoxAudioFormat + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAudioOutput + + + 10 + + Fill - - 173, 101 + + 329, 101 - - 150, 130 + + 148, 194 - - 12 + + 2 - - Mode + + Audio Output - - groupBoxMode + + grpAudioOutput - + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + tableLayoutPanel2 - - 0 + + 1 False @@ -1032,33 +1602,6 @@ 10 - - Fill - - - 329, 101 - - - 148, 194 - - - 2 - - - Audio Output - - - grpAudioOutput - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel2 - - - 1 - Fill @@ -1089,32 +1632,56 @@ 2 - - 2 + + tableLayoutPanelPaths - + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpOutputPathGeneration + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="labelOutputTemplate" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="comboBoxOutputFormat" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="txtInputPath" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="txtOutputPath" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="toolStripInput" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="toolStripOutput" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,20,94017,Percent,79,05983" /><Rows Styles="Percent,33,33333,Percent,33,33333,Percent,33,33333" /></TableLayoutSettings> + + Fill - - NoControl + + 3, 3 - - 0, 48 + + 474, 92 - - 0, 0, 0, 0 + + 1 - - 86, 24 + + CUE Paths - - 13 + + grpOutputPathGeneration - - Template: + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - MiddleLeft + + tableLayoutPanel2 + + + 3 + + + 0, 0 + + + 0, 24 + + + 2 labelOutputTemplate @@ -1128,21 +1695,6 @@ 0 - - Fill - - - 89, 51 - - - 376, 21 - - - 9 - - - Template for output files (foobar2000 format) - comboBoxOutputFormat @@ -1155,21 +1707,6 @@ 1 - - Fill - - - 89, 3 - - - 376, 21 - - - 0 - - - Input file - txtInputPath @@ -1182,21 +1719,6 @@ 2 - - Fill - - - 89, 27 - - - 376, 21 - - - 0 - - - Output file - txtOutputPath @@ -1209,66 +1731,6 @@ 3 - - 0, 0 - - - Fill - - - 38, 21 - - - Input: - - - 177, 22 - - - Folder browser - - - 177, 22 - - - Multiselect Browser - - - 177, 22 - - - Drag'n'drop mode - - - 177, 22 - - - Hide browser - - - Magenta - - - 32, 21 - - - Open/close input browser - - - 0, 0 - - - 0, 0, 0, 0 - - - 86, 24 - - - 14 - - - toolStripInput - toolStripInput @@ -1281,60 +1743,6 @@ 4 - - 0, 24 - - - Fill - - - 48, 21 - - - Output: - - - 143, 22 - - - Browse - - - 143, 22 - - - Manual - - - 143, 22 - - - Use template - - - Magenta - - - 32, 21 - - - toolStripSplitButtonOutputBrowser - - - 0, 24 - - - 0, 0, 0, 0 - - - 86, 24 - - - 15 - - - toolStripOutput - toolStripOutput @@ -1378,34 +1786,349 @@ 0 - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="labelOutputTemplate" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="comboBoxOutputFormat" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="txtInputPath" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="txtOutputPath" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="toolStripInput" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="toolStripOutput" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,18,41004,Percent,81,58996" /><Rows Styles="Percent,33,33333,Percent,33,33333,Percent,33,33333" /></TableLayoutSettings> + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="labelOutputTemplate" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="comboBoxOutputFormat" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="txtInputPath" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="txtOutputPath" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="toolStripInput" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="toolStripOutput" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,20,94017,Percent,79,05983" /><Rows Styles="Percent,33,33333,Percent,33,33333,Percent,33,33333" /></TableLayoutSettings> - + Fill - - 3, 3 + + NoControl - - 474, 92 + + 0, 48 - + + 0, 0, 0, 0 + + + 97, 24 + + + 13 + + + Template: + + + MiddleLeft + + + labelOutputTemplate + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelPaths + + + 0 + + + Fill + + + 100, 51 + + + 365, 21 + + + 9 + + + Template for output files (foobar2000 format) + + + comboBoxOutputFormat + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelPaths + + 1 - - CUE Paths + + Fill - - grpOutputPathGeneration + + 100, 3 - + + 365, 21 + + + 0 + + + Input file + + + txtInputPath + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelPaths + + + 2 + + + Fill + + + 100, 27 + + + 365, 21 + + + 0 + + + Output file + + + txtOutputPath + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelPaths + + + 3 + + + 0, 0 + + + Fill + + + 0, 0 + + + 0, 0, 0, 0 + + + 97, 24 + + + 14 + + + toolStripInput + + + toolStripInput + + + System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelPaths + + + 4 + + + 38, 21 + + + Input: + + + Magenta + + + 32, 21 + + + Open/close input browser + + + 177, 22 + + + Folder browser + + + 177, 22 + + + Multiselect Browser + + + 177, 22 + + + Drag'n'drop mode + + + 177, 22 + + + Hide browser + + + 0, 24 + + + Fill + + + 0, 24 + + + 0, 0, 0, 0 + + + 97, 24 + + + 15 + + + toolStripOutput + + + toolStripOutput + + + System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelPaths + + + 5 + + + 48, 24 + + + Output: + + + Magenta + + + 32, 21 + + + toolStripSplitButtonOutputBrowser + + + 143, 22 + + + Browse + + + 143, 22 + + + Manual + + + 143, 22 + + + Use template + + + comboBoxScript + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAction + + + 0 + + + rbActionCorrectFilenames + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAction + + + 1 + + + rbActionCreateCUESheet + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAction + + + 2 + + + rbActionVerify + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAction + + + 3 + + + rbActionEncode + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAction + + + 4 + + + Fill + + + 3, 101 + + + 164, 130 + + + 4 + + + Action + + + grpAction + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + tableLayoutPanel2 - - 3 + + 4 Top, Left, Right @@ -1566,36 +2289,156 @@ 4 - + + tableLayoutPanel4 + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpExtra + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="labelPregap" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lblWriteOffset" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="numericWriteOffset" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="txtPreGapLength" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="labelDataTrack" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="txtDataTrackLength" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Percent,56,75676,Percent,43,24324" /><Rows Styles="Percent,33,33333,Percent,33,33333,Percent,33,33333" /></TableLayoutSettings> + + Fill - - 3, 101 + + 173, 237 - - 164, 130 + + 150, 90 - - 4 + + 6 - - Action + + Extra - - grpAction + + grpExtra - + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + tableLayoutPanel2 - - 4 + + 5 2 + + labelPregap + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel4 + + + 0 + + + lblWriteOffset + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel4 + + + 1 + + + numericWriteOffset + + + System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel4 + + + 2 + + + txtPreGapLength + + + System.Windows.Forms.MaskedTextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel4 + + + 3 + + + labelDataTrack + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel4 + + + 4 + + + txtDataTrackLength + + + System.Windows.Forms.MaskedTextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel4 + + + 5 + + + Fill + + + 3, 17 + + + 0, 0, 0, 0 + + + 3 + + + 144, 70 + + + 6 + + + tableLayoutPanel4 + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpExtra + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="labelPregap" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lblWriteOffset" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="numericWriteOffset" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="txtPreGapLength" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="labelDataTrack" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="txtDataTrackLength" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Percent,56,75676,Percent,43,24324" /><Rows Styles="Percent,33,33333,Percent,33,33333,Percent,33,33333" /></TableLayoutSettings> + True @@ -1800,65 +2643,80 @@ 5 - - Fill + + btnConvert - - 3, 17 + + System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 0, 0, 0, 0 + + panelGo - - 3 - - - 144, 70 - - - 6 - - - tableLayoutPanel4 - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpExtra - - + 0 - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="labelPregap" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lblWriteOffset" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="numericWriteOffset" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="txtPreGapLength" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="labelDataTrack" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="txtDataTrackLength" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Percent,56,75676,Percent,43,24324" /><Rows Styles="Percent,33,33333,Percent,33,33333,Percent,33,33333" /></TableLayoutSettings> + + btnStop - + + System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panelGo + + + 1 + + + btnResume + + + System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panelGo + + + 2 + + + btnPause + + + System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panelGo + + + 3 + + Fill - - 173, 237 + + 338, 301 - - 150, 90 + + 12, 3, 12, 3 - - 6 + + 130, 26 - - Extra + + 14 - - grpExtra + + panelGo - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + System.Windows.Forms.Panel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + tableLayoutPanel2 - - 5 + + 6 Fill @@ -1998,161 +2856,17 @@ 3 - - Fill + + Magenta - - 338, 301 + + 73, 22 - - 12, 3, 12, 3 + + default - - 130, 26 - - - 14 - - - panelGo - - - System.Windows.Forms.Panel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel2 - - - 6 - - - Fill - - - 204, 0 - - - 0, 0, 0, 0 - - - 4 - - - 480, 330 - - - 1 - - - tableLayoutPanel2 - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel1 - - - 2 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="groupBoxMode" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="grpAudioOutput" Row="1" RowSpan="2" Column="2" ColumnSpan="1" /><Control Name="pictureBoxMotd" Row="2" RowSpan="2" Column="0" ColumnSpan="1" /><Control Name="grpOutputPathGeneration" Row="0" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="grpAction" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="grpExtra" Row="2" RowSpan="2" Column="1" ColumnSpan="1" /><Control Name="panelGo" Row="3" RowSpan="1" Column="2" ColumnSpan="1" /></Controls><Columns Styles="Percent,35,41667,Percent,32,70833,Percent,31,875" /><Rows Styles="Percent,29,69697,Percent,41,51515,Percent,19,39394,Percent,9,393939" /></TableLayoutSettings> - - - Fill - - - 0, 0 - - - 0, 0, 0, 0 - - - 2 - - - 684, 451 - - - 17 - - - tableLayoutPanel1 - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripContainer1.ContentPanel - - - 0 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="textBatchReport" Row="1" RowSpan="1" Column="0" ColumnSpan="2" /><Control Name="grpInput" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="tableLayoutPanel2" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Percent,100,Absolute,480" /><Rows Styles="Absolute,330,Percent,100" /></TableLayoutSettings> - - - 0, 0, 0, 0 - - - 684, 451 - - - toolStripContainer1.ContentPanel - - - System.Windows.Forms.ToolStripContentPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripContainer1 - - - 0 - - - Fill - - - toolStripContainer1.LeftToolStripPanel - - - System.Windows.Forms.ToolStripPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripContainer1 - - - 1 - - - 0, 0 - - - toolStripContainer1.RightToolStripPanel - - - System.Windows.Forms.ToolStripPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripContainer1 - - - 2 - - - 684, 502 - - - 17 - - - toolStripContainer1 - - - 0, 0 - - - None + + Profile 100, 23 @@ -2178,18 +2892,6 @@ default - - Magenta - - - 73, 22 - - - default - - - Profile - 6, 25 @@ -2232,54 +2934,21 @@ Batch log - - 0, 0 - - - 684, 25 - - - 0 - - - toolStripMenu - - - System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripContainer1.TopToolStripPanel - - - 0 - - - toolStripContainer1.TopToolStripPanel - - - System.Windows.Forms.ToolStripPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripContainer1 - - - 3 - - - toolStripContainer1 - - - System.Windows.Forms.ToolStripContainer, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 1 - + + 153, 8 + 424, 8 + + 206, 76 + + + contextMenuStripFileTree + + + System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + False @@ -2304,15 +2973,6 @@ Reset to original location - - 206, 76 - - - contextMenuStripFileTree - - - System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - True @@ -2729,7 +3389,7 @@ 700, 538 - CUETools 2.0.4 + CUETools 2.0.4a toolStripStatusLabel1 diff --git a/CUETools/frmCUETools.ru-RU.resx b/CUETools/frmCUETools.ru-RU.resx index ff7c040..d6cdd31 100644 --- a/CUETools/frmCUETools.ru-RU.resx +++ b/CUETools/frmCUETools.ru-RU.resx @@ -927,4 +927,7 @@ Автоматический поиск переименованных файлов + + Настройки + \ No newline at end of file diff --git a/CUETools/frmSettings.Designer.cs b/CUETools/frmSettings.Designer.cs index fb2363f..9a2d6d3 100644 --- a/CUETools/frmSettings.Designer.cs +++ b/CUETools/frmSettings.Designer.cs @@ -497,6 +497,8 @@ namespace JDP { // // txtSingleFilenameFormat // + this.txtSingleFilenameFormat.AutoCompleteCustomSource.AddRange(new string[] { + resources.GetString("txtSingleFilenameFormat.AutoCompleteCustomSource")}); resources.ApplyResources(this.txtSingleFilenameFormat, "txtSingleFilenameFormat"); this.txtSingleFilenameFormat.Name = "txtSingleFilenameFormat"; this.toolTip1.SetToolTip(this.txtSingleFilenameFormat, resources.GetString("txtSingleFilenameFormat.ToolTip")); @@ -826,7 +828,12 @@ namespace JDP { this.textBoxARLogExtension.AutoCompleteCustomSource.AddRange(new string[] { resources.GetString("textBoxARLogExtension.AutoCompleteCustomSource"), resources.GetString("textBoxARLogExtension.AutoCompleteCustomSource1"), - resources.GetString("textBoxARLogExtension.AutoCompleteCustomSource2")}); + resources.GetString("textBoxARLogExtension.AutoCompleteCustomSource2"), + resources.GetString("textBoxARLogExtension.AutoCompleteCustomSource3"), + resources.GetString("textBoxARLogExtension.AutoCompleteCustomSource4"), + resources.GetString("textBoxARLogExtension.AutoCompleteCustomSource5"), + resources.GetString("textBoxARLogExtension.AutoCompleteCustomSource6"), + resources.GetString("textBoxARLogExtension.AutoCompleteCustomSource7")}); this.textBoxARLogExtension.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.textBoxARLogExtension.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource; this.textBoxARLogExtension.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.cUEConfigBindingSource, "ArLogFilenameFormat", true)); diff --git a/CUETools/frmSettings.cs b/CUETools/frmSettings.cs index d29d0d2..534908e 100644 --- a/CUETools/frmSettings.cs +++ b/CUETools/frmSettings.cs @@ -45,7 +45,7 @@ namespace JDP { numEncodeWhenPercent.Value = _config.encodeWhenPercent; chkEncodeWhenZeroOffset.Checked = _config.encodeWhenZeroOffset; chkFLACVerify.Checked = _config.flacVerify; - chkWriteArTagsOnConvert.Checked = _config.writeArTagsOnConvert; + chkWriteArTagsOnConvert.Checked = _config.writeArTagsOnEncode; chkWriteARTagsOnVerify.Checked = _config.writeArTagsOnVerify; chkWVExtraMode.Checked = (_config.wvExtraMode != 0); if (_config.wvExtraMode != 0) numWVExtraMode.Value = _config.wvExtraMode; @@ -151,7 +151,7 @@ namespace JDP { listViewScriptConditions.Items.Add(resources.GetString("rbActionVerify.Text").Replace("&", "")); listViewScriptConditions.Items.Add(resources.GetString("rbActionEncode.Text").Replace("&", "")); listViewScriptConditions.Items[0].Tag = CUEAction.Verify; - listViewScriptConditions.Items[1].Tag = CUEAction.VerifyAndConvert; + listViewScriptConditions.Items[1].Tag = CUEAction.Encode; EnableDisable(); } @@ -207,7 +207,7 @@ namespace JDP { _config.encodeWhenConfidence = (uint)numEncodeWhenConfidence.Value; _config.encodeWhenZeroOffset = chkEncodeWhenZeroOffset.Checked; _config.flacVerify = chkFLACVerify.Checked; - _config.writeArTagsOnConvert = chkWriteArTagsOnConvert.Checked; + _config.writeArTagsOnEncode = chkWriteArTagsOnConvert.Checked; _config.writeArTagsOnVerify = chkWriteARTagsOnVerify.Checked; if (!chkWVExtraMode.Checked) _config.wvExtraMode = 0; else _config.wvExtraMode = (int) numWVExtraMode.Value; diff --git a/CUETools/frmSettings.resx b/CUETools/frmSettings.resx index 70adbee..3c0f375 100644 --- a/CUETools/frmSettings.resx +++ b/CUETools/frmSettings.resx @@ -150,117 +150,6 @@ 1 - - checkBoxCheckForUpdates - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpGeneral - - - 0 - - - chkAllowMultipleInstances - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpGeneral - - - 1 - - - chkReducePriority - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpGeneral - - - 2 - - - chkTruncateExtra4206Samples - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpGeneral - - - 3 - - - chkCreateCUEFileWhenEmbedded - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpGeneral - - - 4 - - - chkCreateM3U - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpGeneral - - - 5 - - - chkAutoCorrectFilenames - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpGeneral - - - 6 - - - 6, 6 - - - 252, 144 - - - 0 - - - General - - - grpGeneral - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage1 - - - 3 - - - 17, 17 - True @@ -279,6 +168,9 @@ Check for updates + + 17, 17 + Check for updates @@ -492,6 +384,30 @@ 6 + + 6, 6 + + + 252, 144 + + + 0 + + + General + + + grpGeneral + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage1 + + + 3 + True @@ -573,54 +489,6 @@ 2 - - chkWriteArLogOnConvert - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 0 - - - chkWriteArTagsOnConvert - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 1 - - - 8, 103 - - - 248, 61 - - - 1 - - - Encode and verify - - - groupBox1 - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage2 - - - 4 - True @@ -684,6 +552,30 @@ 1 + + 8, 103 + + + 248, 61 + + + 1 + + + Encode and verify + + + groupBox1 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage2 + + + 4 + 2 @@ -942,9 +834,6 @@ 4 - - 17, 17 - True @@ -1210,16 +1099,16 @@ 1 - %N. %T + %tracknumber%. %title% - %N - %T + %tracknumber% - %title% - %N. %A - %T + %tracknumber%. %artist% - %title% - %N. %D - %T + %tracknumber%. %album artist% - %title% 97, 68 @@ -1248,6 +1137,9 @@ 5 + + %filename% + 97, 40 @@ -1278,6 +1170,9 @@ 575, 17 + + 251, 17 + 96, 80 @@ -1302,15 +1197,6 @@ 4 - - 575, 17 - - - 251, 17 - - - 251, 17 - Top, Right @@ -1554,90 +1440,6 @@ 1 - - txtSpecialExceptions - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpAudioFilenames - - - 2 - - - chkRemoveSpecial - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpAudioFilenames - - - 3 - - - chkReplaceSpaces - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpAudioFilenames - - - 4 - - - lblTrackFilenameFormat - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpAudioFilenames - - - 6 - - - lblSingleFilenameFormat - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpAudioFilenames - - - 7 - - - 264, 6 - - - 252, 195 - - - 1 - - - Audio Filenames - - - grpAudioFilenames - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage1 - - - 4 - 97, 132 @@ -1782,9 +1584,45 @@ 7 + + 264, 6 + + + 252, 195 + + + 1 + + + Audio Filenames + + + grpAudioFilenames + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage1 + + + 4 + Top, Left, Right + + 8, 156 + + + 250, 99 + + + 16 + + + Gaps handling + groupBoxGaps @@ -1824,927 +1662,9 @@ 0 - - groupBoxAlbumArt - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage6 - - - 0 - - - groupBoxTagging - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage6 - - - 1 - - - 4, 22 - - - 535, 261 - - - 9 - - - Tagging - - - tabPage6 - - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabControl1 - - - 1 - - - textBoxARLogExtension - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxARLog - - - 0 - - - labelLogFileExtension - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxARLog - - - 1 - - - checkBoxARLogVerbose - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxARLog - - - 2 - - - 6, 170 - - - 250, 85 - - - 4 - - - Log file - - - groupBoxARLog - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage2 - - - 0 - - - 278, 6 - - - 248, 91 - - - 3 - - - Encode if verified - - - groupBox5 - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage2 - - - 1 - - - 2 - - - True - - - Fill - - - NoControl - - - 3, 49 - - - Yes - - - 236, 19 - - - 6 - - - to nearest - - - checkBoxFixToNearest - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel1 - - - 0 - - - Fill - - - NoControl - - - 3, 0 - - - 187, 23 - - - 9 - - - % of verified tracks >= - - - MiddleRight - - - label3 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel1 - - - 1 - - - Fill - - - 3, 17 - - - 3 - - - 242, 71 - - - 10 - - - tableLayoutPanel1 - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox4 - - - 0 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="checkBoxFixToNearest" Row="2" RowSpan="1" Column="0" ColumnSpan="2" /><Control Name="label3" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="numFixWhenConfidence" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="labelFixWhenConfidence" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="numFixWhenPercent" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Percent,79,75207,Percent,20,24793" /><Rows Styles="Percent,33,33333,Percent,33,33333,Percent,33,33333" /></TableLayoutSettings> - - - 278, 103 - - - 248, 91 - - - 2 - - - Fix offset - - - groupBox4 - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage2 - - - 2 - - - checkBoxARVerifyUseSourceFolder - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxVerify - - - 0 - - - chkWriteARLogOnVerify - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxVerify - - - 1 - - - 8, 6 - - - 248, 91 - - - 0 - - - Verify - - - groupBoxVerify - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage2 - - - 3 - - - 4, 22 - - - 3, 3, 3, 3 - - - 535, 261 - - - 1 - - - AccurateRip - - - tabPage2 - - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabControl1 - - - 2 - - - groupBoxFormat - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage3 - - - 0 - - - listViewFormats - - - System.Windows.Forms.ListView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage3 - - - 1 - - - 4, 22 - - - 3, 3, 3, 3 - - - 535, 261 - - - 2 - - - Formats - - - tabPage3 - - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabControl1 - - - 3 - - - True - - - buttonEncoderDelete - - - System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage10 - - - 0 - - - buttonEncoderAdd - - - System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage10 - - - 1 - - - listBoxEncoders - - - System.Windows.Forms.ListBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage10 - - - 2 - - - groupBoxExternalEncoder - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage10 - - - 3 - - - comboBoxEncoderExtension - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage10 - - - 4 - - - groupBoxLibMAC_SDK - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage10 - - - 5 - - - groupBoxLibWavpack - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage10 - - - 6 - - - groupBoxLibFLAC - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage10 - - - 7 - - - labelEncoderExtension - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage10 - - - 8 - - - 4, 22 - - - 3, 3, 3, 3 - - - 535, 261 - - - 6 - - - Encoders - - - tabPage10 - - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabControl1 - - - 4 - - - comboBoxDecoderExtension - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage11 - - - 0 - - - groupBoxExternalDecoder - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage11 - - - 1 - - - listViewDecoders - - - System.Windows.Forms.ListView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage11 - - - 2 - - - labelDecoderExtension - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage11 - - - 3 - - - 4, 22 - - - 3, 3, 3, 3 - - - 535, 261 - - - 7 - - - Decoders - - - tabPage11 - - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabControl1 - - - 5 - - - groupBox2 - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage4 - - - 0 - - - grpHDCD - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage4 - - - 1 - - - chkHDCDDetect - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage4 - - - 2 - - - 4, 22 - - - 3, 3, 3, 3 - - - 535, 261 - - - 3 - - - HDCD - - - tabPage4 - - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabControl1 - - - 6 - - - richTextBoxScript - - - System.Windows.Forms.RichTextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage5 - - - 0 - - - buttonScriptCompile - - - System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage5 - - - 1 - - - groupBoxScriptConditions - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage5 - - - 2 - - - listViewScripts - - - System.Windows.Forms.ListView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage5 - - - 3 - - - 4, 22 - - - 535, 261 - - - 8 - - - Scripts - - - tabPage5 - - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabControl1 - - - 7 - - - 0, 0 - - - 0, 0, 0, 0 - - - 543, 287 - - - 0 - - - tabControl1 - - - System.Windows.Forms.TabControl, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 0 - - - 8, 156 - - - 250, 99 - - - 16 - - - Gaps handling - - - groupBoxGaps - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage1 - - - 2 - - - tableLayoutPanel3 - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxAlbumArt - - - 0 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="checkBoxCopyAlbumArt" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="checkBoxExtractAlbumArt" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="checkBoxEmbedAlbumArt" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="labelAlbumArtMaximumResolution" Row="3" RowSpan="1" Column="0" ColumnSpan="2" /><Control Name="numericUpDownMaxResolution" Row="3" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="textBoxAlArtFilenameFormat" Row="2" RowSpan="1" Column="1" ColumnSpan="2" /></Controls><Columns Styles="Percent,54,41177,Percent,22,42647,Percent,22,79412" /><Rows Styles="Percent,25,Percent,25,Percent,25,Percent,25" /></TableLayoutSettings> - - - 242, 3 - - - 284, 255 - - - 1 - - - Album Art - - - groupBoxAlbumArt - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage6 - - - 0 - 3 - - checkBoxCopyAlbumArt - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel3 - - - 0 - - - checkBoxExtractAlbumArt - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel3 - - - 1 - - - checkBoxEmbedAlbumArt - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel3 - - - 2 - - - labelAlbumArtMaximumResolution - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel3 - - - 3 - - - numericUpDownMaxResolution - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel3 - - - 4 - - - textBoxAlArtFilenameFormat - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel3 - - - 5 - - - 6, 20 - - - 4 - - - 272, 95 - - - 22 - - - tableLayoutPanel3 - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxAlbumArt - - - 0 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="checkBoxCopyAlbumArt" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="checkBoxExtractAlbumArt" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="checkBoxEmbedAlbumArt" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="labelAlbumArtMaximumResolution" Row="3" RowSpan="1" Column="0" ColumnSpan="2" /><Control Name="numericUpDownMaxResolution" Row="3" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="textBoxAlArtFilenameFormat" Row="2" RowSpan="1" Column="1" ColumnSpan="2" /></Controls><Columns Styles="Percent,54,41177,Percent,22,42647,Percent,22,79412" /><Rows Styles="Percent,25,Percent,25,Percent,25,Percent,25" /></TableLayoutSettings> - True @@ -2940,98 +1860,56 @@ 5 - - chkExtractLog + + 6, 20 - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxTagging - - - 0 - - - checkBoxCopyBasicTags - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxTagging - - - 1 - - - checkBoxWriteCUETags - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxTagging - - - 2 - - - checkBoxCopyUnknownTags - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxTagging - - - 3 - - - chkOverwriteTags - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxTagging - - + 4 - - chkFillUpCUE + + 272, 95 - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 22 - - groupBoxTagging + + tableLayoutPanel3 - - 5 + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 8, 3 + + groupBoxAlbumArt - - 226, 255 - - + 0 - - groupBoxTagging + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="checkBoxCopyAlbumArt" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="checkBoxExtractAlbumArt" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="checkBoxEmbedAlbumArt" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="labelAlbumArtMaximumResolution" Row="3" RowSpan="1" Column="0" ColumnSpan="2" /><Control Name="numericUpDownMaxResolution" Row="3" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="textBoxAlArtFilenameFormat" Row="2" RowSpan="1" Column="1" ColumnSpan="2" /></Controls><Columns Styles="Percent,54,41177,Percent,22,42647,Percent,22,79412" /><Rows Styles="Percent,25,Percent,25,Percent,25,Percent,25" /></TableLayoutSettings> - + + 242, 3 + + + 284, 255 + + + 1 + + + Album Art + + + groupBoxAlbumArt + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + tabPage6 - - 1 + + 0 True @@ -3213,15 +2091,75 @@ 5 + + 8, 3 + + + 226, 255 + + + 0 + + + groupBoxTagging + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage6 + + + 1 + + + 4, 22 + + + 535, 261 + + + 9 + + + Tagging + + + tabPage6 + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabControl1 + + + 1 + %F.accurip - %F.cuetools.log + %F['('%unique%')'].accurip + %F.cuetools.log + + + %F['('%unique%')'].cuetools.log + + cuetools.log + + cuetools['('%unique%')'].log + + + accurip.log + + + accurip['('%unique%')'].log + 90, 20 @@ -3303,6 +2241,180 @@ 2 + + 6, 170 + + + 250, 85 + + + 4 + + + Log file + + + groupBoxARLog + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage2 + + + 0 + + + 278, 6 + + + 248, 91 + + + 3 + + + Encode if verified + + + groupBox5 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage2 + + + 1 + + + 2 + + + True + + + Fill + + + NoControl + + + 3, 49 + + + Yes + + + 236, 19 + + + 6 + + + to nearest + + + checkBoxFixToNearest + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel1 + + + 0 + + + Fill + + + NoControl + + + 3, 0 + + + 187, 23 + + + 9 + + + % of verified tracks >= + + + MiddleRight + + + label3 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel1 + + + 1 + + + Fill + + + 3, 17 + + + 3 + + + 242, 71 + + + 10 + + + tableLayoutPanel1 + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox4 + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="checkBoxFixToNearest" Row="2" RowSpan="1" Column="0" ColumnSpan="2" /><Control Name="label3" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="numFixWhenConfidence" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="labelFixWhenConfidence" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="numFixWhenPercent" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Percent,79,75207,Percent,20,24793" /><Rows Styles="Percent,33,33333,Percent,33,33333,Percent,33,33333" /></TableLayoutSettings> + + + 278, 103 + + + 248, 91 + + + 2 + + + Fix offset + + + groupBox4 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage2 + + + 2 + True @@ -3363,173 +2475,56 @@ 1 - - comboFormatLossyEncoder + + 8, 6 - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 248, 91 - - groupBoxFormat - - + 0 - - labelFormatLossyEncoder + + Verify - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + groupBoxVerify - - groupBoxFormat - - - 1 - - - checkBoxFormatAllowLossy - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxFormat - - - 2 - - - comboFormatLosslessEncoder - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxFormat - - - 3 - - - checkBoxFormatSupportsLossyWAV - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxFormat - - - 4 - - - labelFormatLosslessEncoder - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxFormat - - - 5 - - - checkBoxFormatEmbedCUESheet - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxFormat - - - 6 - - - comboFormatDecoder - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxFormat - - - 7 - - - checkBoxFormatAllowLossless - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxFormat - - - 8 - - - labelFormatDefaultDecoder - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxFormat - - - 9 - - - labelFormatTagger - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxFormat - - - 10 - - - comboBoxFormatTagger - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxFormat - - - 11 - - - 136, 6 - - - 390, 249 - - - 17 - - - False - - - groupBoxFormat - - + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - tabPage3 + + tabPage2 - - 0 + + 3 + + + 4, 22 + + + 3, 3, 3, 3 + + + 535, 261 + + + 1 + + + AccurateRip + + + tabPage2 + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabControl1 + + + 2 155, 74 @@ -3855,6 +2850,33 @@ 11 + + 136, 6 + + + 390, 249 + + + 17 + + + False + + + groupBoxFormat + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage3 + + + 0 + + + 120 + 6, 6 @@ -3876,8 +2898,35 @@ 1 - - 120 + + 4, 22 + + + 3, 3, 3, 3 + + + 535, 261 + + + 2 + + + Formats + + + tabPage3 + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabControl1 + + + 3 + + + True @@ -3982,81 +3031,6 @@ None - - labelEncoderName - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxExternalEncoder - - - 0 - - - labelEncoderModes - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxExternalEncoder - - - 3 - - - labelEncoderPath - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxExternalEncoder - - - 7 - - - labelEncoderParameters - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxExternalEncoder - - - 8 - - - 136, 39 - - - 390, 149 - - - 22 - - - External encoder options - - - False - - - groupBoxExternalEncoder - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage10 - - - 3 - True @@ -4174,6 +3148,33 @@ 8 + + 136, 39 + + + 390, 149 + + + 22 + + + External encoder options + + + False + + + groupBoxExternalEncoder + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage10 + + + 3 + 459, 12 @@ -4225,69 +3226,6 @@ 5 - - chkWVStoreMD5 - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxLibWavpack - - - 0 - - - numWVExtraMode - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxLibWavpack - - - 1 - - - chkWVExtraMode - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxLibWavpack - - - 2 - - - 136, 39 - - - 390, 100 - - - 23 - - - wavpack options - - - False - - - groupBoxLibWavpack - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage10 - - - 6 - True @@ -4372,6 +3310,51 @@ 2 + + 136, 39 + + + 390, 100 + + + 23 + + + wavpack options + + + False + + + groupBoxLibWavpack + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage10 + + + 6 + + + True + + + NoControl + + + 9, 46 + + + 54, 17 + + + 20 + + + Verify + chkFLACVerify @@ -4411,36 +3394,6 @@ 7 - - True - - - NoControl - - - 9, 46 - - - 54, 17 - - - 20 - - - Verify - - - chkFLACVerify - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxLibFLAC - - - 0 - True @@ -4477,6 +3430,33 @@ 8 + + 4, 22 + + + 3, 3, 3, 3 + + + 535, 261 + + + 6 + + + Encoders + + + tabPage10 + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabControl1 + + + 4 + 459, 12 @@ -4501,81 +3481,6 @@ 0 - - textBoxDecoderPath - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxExternalDecoder - - - 0 - - - labelDecoderPath - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxExternalDecoder - - - 1 - - - labelDecoderParameters - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxExternalDecoder - - - 2 - - - textBoxDecoderParameters - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxExternalDecoder - - - 3 - - - 136, 39 - - - 390, 87 - - - 27 - - - External decoder options - - - False - - - groupBoxExternalDecoder - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage11 - - - 1 - 96, 20 @@ -4678,6 +3583,36 @@ 3 + + 136, 39 + + + 390, 87 + + + 27 + + + External decoder options + + + False + + + groupBoxExternalDecoder + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage11 + + + 1 + + + 120 + 3, 6 @@ -4699,9 +3634,6 @@ 2 - - 120 - True @@ -4738,53 +3670,32 @@ 3 - - label1 + + 4, 22 - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 3, 3, 3, 3 - - groupBox2 + + 535, 261 - - 0 - - - numericLossyWAVQuality - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox2 - - - 1 - - - 228, 42 - - - 298, 100 - - + 7 - - LossyWAV + + Decoders - - groupBox2 + + tabPage11 - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - tabPage4 + + tabControl1 - - 0 + + 5 True @@ -4840,6 +3751,30 @@ 1 + + 228, 42 + + + 298, 100 + + + 7 + + + LossyWAV + + + groupBox2 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage4 + + + 0 + 19, 42 @@ -4894,6 +3829,33 @@ 2 + + 4, 22 + + + 3, 3, 3, 3 + + + 535, 261 + + + 3 + + + HDCD + + + tabPage4 + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabControl1 + + + 6 + Courier New, 8pt @@ -4957,6 +3919,18 @@ 1 + + 200 + + + 6, 20 + + + 249, 77 + + + 2 + listViewScriptConditions @@ -4996,29 +3970,8 @@ 2 - - 6, 20 - - - 249, 77 - - - 2 - - - listViewScriptConditions - - - System.Windows.Forms.ListView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxScriptConditions - - - 0 - - - 200 + + 120 6, 6 @@ -5041,8 +3994,53 @@ 3 - - 120 + + 4, 22 + + + 535, 261 + + + 8 + + + Scripts + + + tabPage5 + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabControl1 + + + 7 + + + 0, 0 + + + 0, 0, 0, 0 + + + 543, 287 + + + 0 + + + tabControl1 + + + System.Windows.Forms.TabControl, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 0 True