From 850eb4b5fb0da1e115ae82b541c06ed698f59324 Mon Sep 17 00:00:00 2001 From: chudov Date: Wed, 22 Oct 2008 11:45:53 +0000 Subject: [PATCH] apeCompressionLevel option filenamesANSISafe option AR log saved even if disc not found in database fixed a crash when the input path didn't contain the actual path (current directory) tags preserved in more modes default options slightly re-tuned a separate form for 'About' dialog worker thread priority lowered dbpoweramp-like tag added --- CUETools/CUETools.csproj | 15 + CUETools/frmAbout.Designer.cs | 101 ++ CUETools/frmAbout.cs | 18 + CUETools/frmAbout.resx | 240 +++ CUETools/frmAbout.ru-RU.resx | 142 ++ CUETools/frmBatch.cs | 2 + CUETools/frmCUETools.cs | 17 +- CUETools/frmReport.Designer.cs | 3 +- CUETools/frmSettings.Designer.cs | 323 +++- CUETools/frmSettings.cs | 15 + CUETools/frmSettings.resx | 2640 ++++++++++++++---------------- CUETools/frmSettings.ru-RU.resx | 189 ++- CUETools/tmp.cs | 79 - CUEToolsLib/Main.cs | 263 +-- 14 files changed, 2454 insertions(+), 1593 deletions(-) create mode 100644 CUETools/frmAbout.Designer.cs create mode 100644 CUETools/frmAbout.cs create mode 100644 CUETools/frmAbout.resx create mode 100644 CUETools/frmAbout.ru-RU.resx delete mode 100644 CUETools/tmp.cs diff --git a/CUETools/CUETools.csproj b/CUETools/CUETools.csproj index d1748b2..05e9f2f 100644 --- a/CUETools/CUETools.csproj +++ b/CUETools/CUETools.csproj @@ -71,12 +71,19 @@ + + + Form + + + frmAbout.cs + Form @@ -109,6 +116,14 @@ + + Designer + frmAbout.cs + + + Designer + frmAbout.cs + Designer frmBatch.cs diff --git a/CUETools/frmAbout.Designer.cs b/CUETools/frmAbout.Designer.cs new file mode 100644 index 0000000..2c167f1 --- /dev/null +++ b/CUETools/frmAbout.Designer.cs @@ -0,0 +1,101 @@ +namespace JDP +{ + partial class frmAbout + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmAbout)); + this.linkLabel1 = new System.Windows.Forms.LinkLabel(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.button1 = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // linkLabel1 + // + this.linkLabel1.AccessibleDescription = null; + this.linkLabel1.AccessibleName = null; + resources.ApplyResources(this.linkLabel1, "linkLabel1"); + this.linkLabel1.Font = null; + this.linkLabel1.Name = "linkLabel1"; + this.linkLabel1.TabStop = true; + this.linkLabel1.UseCompatibleTextRendering = true; + // + // textBox1 + // + this.textBox1.AccessibleDescription = null; + this.textBox1.AccessibleName = null; + resources.ApplyResources(this.textBox1, "textBox1"); + this.textBox1.BackColor = System.Drawing.SystemColors.Control; + this.textBox1.BackgroundImage = null; + this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.textBox1.Font = null; + this.textBox1.Name = "textBox1"; + this.textBox1.ReadOnly = true; + // + // button1 + // + this.button1.AccessibleDescription = null; + this.button1.AccessibleName = null; + resources.ApplyResources(this.button1, "button1"); + this.button1.BackgroundImage = null; + this.button1.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.button1.Font = null; + this.button1.Name = "button1"; + this.button1.UseVisualStyleBackColor = true; + // + // frmAbout + // + this.AccessibleDescription = null; + this.AccessibleName = null; + resources.ApplyResources(this, "$this"); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackgroundImage = null; + this.CancelButton = this.button1; + this.Controls.Add(this.button1); + this.Controls.Add(this.textBox1); + this.Controls.Add(this.linkLabel1); + this.Font = null; + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D; + this.Icon = null; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "frmAbout"; + this.ShowIcon = false; + this.ShowInTaskbar = false; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.LinkLabel linkLabel1; + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.Button button1; + } +} \ No newline at end of file diff --git a/CUETools/frmAbout.cs b/CUETools/frmAbout.cs new file mode 100644 index 0000000..3152912 --- /dev/null +++ b/CUETools/frmAbout.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +namespace JDP +{ + public partial class frmAbout : Form + { + public frmAbout() + { + InitializeComponent(); + } + } +} \ No newline at end of file diff --git a/CUETools/frmAbout.resx b/CUETools/frmAbout.resx new file mode 100644 index 0000000..9d665b8 --- /dev/null +++ b/CUETools/frmAbout.resx @@ -0,0 +1,240 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + + 265, 17 + + + button1 + + + 182, 211 + + + textBox1 + + + + 27, 22 + + + About CUETools v1.9.2 + + + 0 + + + 2 + + + 87, 10 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + CenterParent + + + System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 415, 151 + + + 75, 23 + + + 439, 263 + + + 1 + + + Close + + + AccurateRip, Monkey's Audio and +embedded CUE sheet support added in 2008 +by Greg Chudov, gchudov@gmail.com. +Thanks go out to Christopher Key and Whitehobbit +for insight on AccurateRip functionality, +and to Mr Spoon for permission to use the database. +Monkey's Audio library by Matthew T. Ashland. + + + linkLabel1 + + + + True + + + True + + + $this + + + Center + + + MiddleCenter + + + 0 + + + 3 + + + $this + + + System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 6, 13 + + + 12, 41 + + + Copyright 2006-2008 Moitah http://www.moitah.net/. + + + frmAbout + + + 2 + + + True + + + Russian (Russia) + + \ No newline at end of file diff --git a/CUETools/frmAbout.ru-RU.resx b/CUETools/frmAbout.ru-RU.resx new file mode 100644 index 0000000..8848efc --- /dev/null +++ b/CUETools/frmAbout.ru-RU.resx @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + 415, 149 + + + Библиотека Monkey's Audio (c) Matthew T. Ashland. +Поддержка AccurateRip, Monkey's Audio и встроенных .cue +добавлена в 2008 году Григорием Чудовым, gchudov@gmail.com. +Спасибо Christopher Key и Whitehobbit за их исследования принципов +работы AccurateRip, и Mr Spoon за разрешение пользоваться базой данных. + +Пользуясь возможностью, хотел бы попросить российских +граждан требовать от своего правительства немедленного +освобождения политических заключенных и вывода войск +с оккупированных грузинских территорий. Григорий Чудов. + + + 182, 208 + + + CUETools v1.9.2: О программе + + \ No newline at end of file diff --git a/CUETools/frmBatch.cs b/CUETools/frmBatch.cs index 1a34355..ccc736f 100644 --- a/CUETools/frmBatch.cs +++ b/CUETools/frmBatch.cs @@ -199,6 +199,8 @@ namespace JDP _workThread = new Thread(WriteAudioFilesThread); _workClass = cueSheet; + _workThread.Priority = ThreadPriority.BelowNormal; + _workThread.IsBackground = true; _workThread.Start(cueSheet); } catch (Exception ex) diff --git a/CUETools/frmCUETools.cs b/CUETools/frmCUETools.cs index dc2e690..0b6824b 100644 --- a/CUETools/frmCUETools.cs +++ b/CUETools/frmCUETools.cs @@ -128,19 +128,9 @@ namespace JDP { } private void btnAbout_Click(object sender, EventArgs e) { - using (frmReport reportForm = new frmReport()) + using (frmAbout aboutForm = new frmAbout()) { - StringWriter sw = new StringWriter(); - sw.WriteLine("CUE Tools v1.9.2"); - sw.WriteLine("Copyright 2006-2007 Moitah http://www.moitah.net/."); - sw.WriteLine("AccurateRip, Monkey's Audio and embedded CUE sheet support added in 2008 by Greg Chudov, gchudov@gmail.com."); - sw.WriteLine("Thanks go out to Christopher Key and Whitehobbit for insight on AccurateRip functionality and to Mr Spoon for permission to use the database."); - sw.WriteLine("Monkey's Audio library by Matthew T. Ashland."); - reportForm.Message = sw.ToString(); - sw.Close(); - CenterSubForm(reportForm); - reportForm.Text = "About CUE Tools"; - reportForm.ShowDialog(this); + aboutForm.ShowDialog(this); } } @@ -296,6 +286,9 @@ namespace JDP { p[2] = cueStyle; SetupControls(true); + //System.Diagnostics; Process.GetCurrentProcess().PriorityClass = System.Diagnostics.ProcessPriorityClass.High; + _workThread.Priority = ThreadPriority.BelowNormal; + _workThread.IsBackground = true; _workThread.Start(p); } else { diff --git a/CUETools/frmReport.Designer.cs b/CUETools/frmReport.Designer.cs index ede315d..c3f2519 100644 --- a/CUETools/frmReport.Designer.cs +++ b/CUETools/frmReport.Designer.cs @@ -42,8 +42,8 @@ namespace JDP // // txtReport // - resources.ApplyResources(this.txtReport, "txtReport"); this.txtReport.BackColor = System.Drawing.SystemColors.Control; + resources.ApplyResources(this.txtReport, "txtReport"); this.txtReport.Name = "txtReport"; this.txtReport.ReadOnly = true; // @@ -57,6 +57,7 @@ namespace JDP this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "frmReport"; + this.ShowInTaskbar = false; this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; this.ResumeLayout(false); this.PerformLayout(); diff --git a/CUETools/frmSettings.Designer.cs b/CUETools/frmSettings.Designer.cs index 53294a5..c45636c 100644 --- a/CUETools/frmSettings.Designer.cs +++ b/CUETools/frmSettings.Designer.cs @@ -59,6 +59,7 @@ namespace JDP { this.numFixWhenPercent = new System.Windows.Forms.NumericUpDown(); this.chkArAddCRCs = new System.Windows.Forms.CheckBox(); this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); + this.chkFilenamesANSISafe = new System.Windows.Forms.CheckBox(); this.grpAudioFilenames = new System.Windows.Forms.GroupBox(); this.chkKeepOriginalFilenames = new System.Windows.Forms.CheckBox(); this.txtSpecialExceptions = new System.Windows.Forms.TextBox(); @@ -68,6 +69,12 @@ namespace JDP { this.lblTrackFilenameFormat = new System.Windows.Forms.Label(); this.lblSingleFilenameFormat = new System.Windows.Forms.Label(); this.txtSingleFilenameFormat = new System.Windows.Forms.TextBox(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.rbAPEinsane = new System.Windows.Forms.RadioButton(); + this.rbAPEextrahigh = new System.Windows.Forms.RadioButton(); + this.rbAPEhigh = new System.Windows.Forms.RadioButton(); + this.rbAPEnormal = new System.Windows.Forms.RadioButton(); + this.rbAPEfast = new System.Windows.Forms.RadioButton(); btnCancel = new System.Windows.Forms.Button(); this.grpGeneral.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.numericWriteOffset)).BeginInit(); @@ -81,43 +88,66 @@ namespace JDP { ((System.ComponentModel.ISupportInitialize)(this.numFixWhenConfidence)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numFixWhenPercent)).BeginInit(); this.grpAudioFilenames.SuspendLayout(); + this.groupBox2.SuspendLayout(); this.SuspendLayout(); // // btnCancel // - btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + btnCancel.AccessibleDescription = null; + btnCancel.AccessibleName = null; resources.ApplyResources(btnCancel, "btnCancel"); + btnCancel.BackgroundImage = null; + btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + btnCancel.Font = null; btnCancel.Name = "btnCancel"; + this.toolTip1.SetToolTip(btnCancel, resources.GetString("btnCancel.ToolTip")); btnCancel.UseVisualStyleBackColor = true; // // grpGeneral // + this.grpGeneral.AccessibleDescription = null; + this.grpGeneral.AccessibleName = null; + resources.ApplyResources(this.grpGeneral, "grpGeneral"); + this.grpGeneral.BackgroundImage = null; this.grpGeneral.Controls.Add(this.chkFillUpCUE); this.grpGeneral.Controls.Add(this.chkEmbedLog); this.grpGeneral.Controls.Add(this.numericWriteOffset); this.grpGeneral.Controls.Add(this.chkAutoCorrectFilenames); this.grpGeneral.Controls.Add(this.chkPreserveHTOA); this.grpGeneral.Controls.Add(this.lblWriteOffset); - resources.ApplyResources(this.grpGeneral, "grpGeneral"); + this.grpGeneral.Font = null; this.grpGeneral.Name = "grpGeneral"; this.grpGeneral.TabStop = false; + this.toolTip1.SetToolTip(this.grpGeneral, resources.GetString("grpGeneral.ToolTip")); // // chkFillUpCUE // + this.chkFillUpCUE.AccessibleDescription = null; + this.chkFillUpCUE.AccessibleName = null; resources.ApplyResources(this.chkFillUpCUE, "chkFillUpCUE"); + this.chkFillUpCUE.BackgroundImage = null; + this.chkFillUpCUE.Font = null; this.chkFillUpCUE.Name = "chkFillUpCUE"; + this.toolTip1.SetToolTip(this.chkFillUpCUE, resources.GetString("chkFillUpCUE.ToolTip")); this.chkFillUpCUE.UseVisualStyleBackColor = true; // // chkEmbedLog // + this.chkEmbedLog.AccessibleDescription = null; + this.chkEmbedLog.AccessibleName = null; resources.ApplyResources(this.chkEmbedLog, "chkEmbedLog"); + this.chkEmbedLog.BackgroundImage = null; + this.chkEmbedLog.Font = null; this.chkEmbedLog.Name = "chkEmbedLog"; this.toolTip1.SetToolTip(this.chkEmbedLog, resources.GetString("chkEmbedLog.ToolTip")); this.chkEmbedLog.UseVisualStyleBackColor = true; // // numericWriteOffset // + this.numericWriteOffset.AccessibleDescription = null; + this.numericWriteOffset.AccessibleName = null; resources.ApplyResources(this.numericWriteOffset, "numericWriteOffset"); + this.numericWriteOffset.Font = null; this.numericWriteOffset.Maximum = new decimal(new int[] { 5000, 0, @@ -129,43 +159,66 @@ namespace JDP { 0, -2147483648}); this.numericWriteOffset.Name = "numericWriteOffset"; + this.toolTip1.SetToolTip(this.numericWriteOffset, resources.GetString("numericWriteOffset.ToolTip")); // // chkAutoCorrectFilenames // + this.chkAutoCorrectFilenames.AccessibleDescription = null; + this.chkAutoCorrectFilenames.AccessibleName = null; resources.ApplyResources(this.chkAutoCorrectFilenames, "chkAutoCorrectFilenames"); + this.chkAutoCorrectFilenames.BackgroundImage = null; + this.chkAutoCorrectFilenames.Font = null; this.chkAutoCorrectFilenames.Name = "chkAutoCorrectFilenames"; this.toolTip1.SetToolTip(this.chkAutoCorrectFilenames, resources.GetString("chkAutoCorrectFilenames.ToolTip")); this.chkAutoCorrectFilenames.UseVisualStyleBackColor = true; // // chkPreserveHTOA // + this.chkPreserveHTOA.AccessibleDescription = null; + this.chkPreserveHTOA.AccessibleName = null; resources.ApplyResources(this.chkPreserveHTOA, "chkPreserveHTOA"); + this.chkPreserveHTOA.BackgroundImage = null; + this.chkPreserveHTOA.Font = null; this.chkPreserveHTOA.Name = "chkPreserveHTOA"; + this.toolTip1.SetToolTip(this.chkPreserveHTOA, resources.GetString("chkPreserveHTOA.ToolTip")); this.chkPreserveHTOA.UseVisualStyleBackColor = true; // // lblWriteOffset // + this.lblWriteOffset.AccessibleDescription = null; + this.lblWriteOffset.AccessibleName = null; resources.ApplyResources(this.lblWriteOffset, "lblWriteOffset"); + this.lblWriteOffset.Font = null; this.lblWriteOffset.Name = "lblWriteOffset"; + this.toolTip1.SetToolTip(this.lblWriteOffset, resources.GetString("lblWriteOffset.ToolTip")); // // grpFLAC // + this.grpFLAC.AccessibleDescription = null; + this.grpFLAC.AccessibleName = null; + resources.ApplyResources(this.grpFLAC, "grpFLAC"); + this.grpFLAC.BackgroundImage = null; this.grpFLAC.Controls.Add(this.numericFLACCompressionLevel); this.grpFLAC.Controls.Add(this.lblFLACCompressionLevel); this.grpFLAC.Controls.Add(this.chkFLACVerify); - resources.ApplyResources(this.grpFLAC, "grpFLAC"); + this.grpFLAC.Font = null; this.grpFLAC.Name = "grpFLAC"; this.grpFLAC.TabStop = false; + this.toolTip1.SetToolTip(this.grpFLAC, resources.GetString("grpFLAC.ToolTip")); // // numericFLACCompressionLevel // + this.numericFLACCompressionLevel.AccessibleDescription = null; + this.numericFLACCompressionLevel.AccessibleName = null; resources.ApplyResources(this.numericFLACCompressionLevel, "numericFLACCompressionLevel"); + this.numericFLACCompressionLevel.Font = null; this.numericFLACCompressionLevel.Maximum = new decimal(new int[] { 8, 0, 0, 0}); this.numericFLACCompressionLevel.Name = "numericFLACCompressionLevel"; + this.toolTip1.SetToolTip(this.numericFLACCompressionLevel, resources.GetString("numericFLACCompressionLevel.ToolTip")); this.numericFLACCompressionLevel.Value = new decimal(new int[] { 5, 0, @@ -174,38 +227,60 @@ namespace JDP { // // lblFLACCompressionLevel // + this.lblFLACCompressionLevel.AccessibleDescription = null; + this.lblFLACCompressionLevel.AccessibleName = null; resources.ApplyResources(this.lblFLACCompressionLevel, "lblFLACCompressionLevel"); + this.lblFLACCompressionLevel.Font = null; this.lblFLACCompressionLevel.Name = "lblFLACCompressionLevel"; + this.toolTip1.SetToolTip(this.lblFLACCompressionLevel, resources.GetString("lblFLACCompressionLevel.ToolTip")); // // chkFLACVerify // + this.chkFLACVerify.AccessibleDescription = null; + this.chkFLACVerify.AccessibleName = null; resources.ApplyResources(this.chkFLACVerify, "chkFLACVerify"); + this.chkFLACVerify.BackgroundImage = null; + this.chkFLACVerify.Font = null; this.chkFLACVerify.Name = "chkFLACVerify"; + this.toolTip1.SetToolTip(this.chkFLACVerify, resources.GetString("chkFLACVerify.ToolTip")); this.chkFLACVerify.UseVisualStyleBackColor = true; // // btnOK // - this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK; + this.btnOK.AccessibleDescription = null; + this.btnOK.AccessibleName = null; resources.ApplyResources(this.btnOK, "btnOK"); + this.btnOK.BackgroundImage = null; + this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK; + this.btnOK.Font = null; this.btnOK.Name = "btnOK"; + this.toolTip1.SetToolTip(this.btnOK, resources.GetString("btnOK.ToolTip")); this.btnOK.UseVisualStyleBackColor = true; this.btnOK.Click += new System.EventHandler(this.btnOK_Click); // // grpWavPack // + this.grpWavPack.AccessibleDescription = null; + this.grpWavPack.AccessibleName = null; + resources.ApplyResources(this.grpWavPack, "grpWavPack"); + this.grpWavPack.BackgroundImage = null; this.grpWavPack.Controls.Add(this.numWVExtraMode); this.grpWavPack.Controls.Add(this.chkWVExtraMode); this.grpWavPack.Controls.Add(this.rbWVVeryHigh); this.grpWavPack.Controls.Add(this.rbWVHigh); this.grpWavPack.Controls.Add(this.rbWVNormal); this.grpWavPack.Controls.Add(this.rbWVFast); - resources.ApplyResources(this.grpWavPack, "grpWavPack"); + this.grpWavPack.Font = null; this.grpWavPack.Name = "grpWavPack"; this.grpWavPack.TabStop = false; + this.toolTip1.SetToolTip(this.grpWavPack, resources.GetString("grpWavPack.ToolTip")); // // numWVExtraMode // + this.numWVExtraMode.AccessibleDescription = null; + this.numWVExtraMode.AccessibleName = null; resources.ApplyResources(this.numWVExtraMode, "numWVExtraMode"); + this.numWVExtraMode.Font = null; this.numWVExtraMode.Maximum = new decimal(new int[] { 6, 0, @@ -217,6 +292,7 @@ namespace JDP { 0, 0}); this.numWVExtraMode.Name = "numWVExtraMode"; + this.toolTip1.SetToolTip(this.numWVExtraMode, resources.GetString("numWVExtraMode.ToolTip")); this.numWVExtraMode.Value = new decimal(new int[] { 1, 0, @@ -225,39 +301,68 @@ namespace JDP { // // chkWVExtraMode // + this.chkWVExtraMode.AccessibleDescription = null; + this.chkWVExtraMode.AccessibleName = null; resources.ApplyResources(this.chkWVExtraMode, "chkWVExtraMode"); + this.chkWVExtraMode.BackgroundImage = null; + this.chkWVExtraMode.Font = null; this.chkWVExtraMode.Name = "chkWVExtraMode"; + this.toolTip1.SetToolTip(this.chkWVExtraMode, resources.GetString("chkWVExtraMode.ToolTip")); this.chkWVExtraMode.UseVisualStyleBackColor = true; this.chkWVExtraMode.CheckedChanged += new System.EventHandler(this.chkWVExtraMode_CheckedChanged); // // rbWVVeryHigh // + this.rbWVVeryHigh.AccessibleDescription = null; + this.rbWVVeryHigh.AccessibleName = null; resources.ApplyResources(this.rbWVVeryHigh, "rbWVVeryHigh"); + this.rbWVVeryHigh.BackgroundImage = null; + this.rbWVVeryHigh.Font = null; this.rbWVVeryHigh.Name = "rbWVVeryHigh"; + this.toolTip1.SetToolTip(this.rbWVVeryHigh, resources.GetString("rbWVVeryHigh.ToolTip")); this.rbWVVeryHigh.UseVisualStyleBackColor = true; // // rbWVHigh // + this.rbWVHigh.AccessibleDescription = null; + this.rbWVHigh.AccessibleName = null; resources.ApplyResources(this.rbWVHigh, "rbWVHigh"); + this.rbWVHigh.BackgroundImage = null; + this.rbWVHigh.Font = null; this.rbWVHigh.Name = "rbWVHigh"; + this.toolTip1.SetToolTip(this.rbWVHigh, resources.GetString("rbWVHigh.ToolTip")); this.rbWVHigh.UseVisualStyleBackColor = true; // // rbWVNormal // + this.rbWVNormal.AccessibleDescription = null; + this.rbWVNormal.AccessibleName = null; resources.ApplyResources(this.rbWVNormal, "rbWVNormal"); + this.rbWVNormal.BackgroundImage = null; this.rbWVNormal.Checked = true; + this.rbWVNormal.Font = null; this.rbWVNormal.Name = "rbWVNormal"; this.rbWVNormal.TabStop = true; + this.toolTip1.SetToolTip(this.rbWVNormal, resources.GetString("rbWVNormal.ToolTip")); this.rbWVNormal.UseVisualStyleBackColor = true; // // rbWVFast // + this.rbWVFast.AccessibleDescription = null; + this.rbWVFast.AccessibleName = null; resources.ApplyResources(this.rbWVFast, "rbWVFast"); + this.rbWVFast.BackgroundImage = null; + this.rbWVFast.Font = null; this.rbWVFast.Name = "rbWVFast"; + this.toolTip1.SetToolTip(this.rbWVFast, resources.GetString("rbWVFast.ToolTip")); this.rbWVFast.UseVisualStyleBackColor = true; // // groupBox1 // + this.groupBox1.AccessibleDescription = null; + this.groupBox1.AccessibleName = null; + resources.ApplyResources(this.groupBox1, "groupBox1"); + this.groupBox1.BackgroundImage = null; this.groupBox1.Controls.Add(this.chkArFixOffset); this.groupBox1.Controls.Add(this.label4); this.groupBox1.Controls.Add(this.numEncodeWhenPercent); @@ -270,38 +375,52 @@ namespace JDP { this.groupBox1.Controls.Add(this.label1); this.groupBox1.Controls.Add(this.numFixWhenPercent); this.groupBox1.Controls.Add(this.chkArAddCRCs); - resources.ApplyResources(this.groupBox1, "groupBox1"); + this.groupBox1.Font = null; this.groupBox1.Name = "groupBox1"; this.groupBox1.TabStop = false; + this.toolTip1.SetToolTip(this.groupBox1, resources.GetString("groupBox1.ToolTip")); // // chkArFixOffset // + this.chkArFixOffset.AccessibleDescription = null; + this.chkArFixOffset.AccessibleName = null; resources.ApplyResources(this.chkArFixOffset, "chkArFixOffset"); + this.chkArFixOffset.BackgroundImage = null; this.chkArFixOffset.Checked = true; this.chkArFixOffset.CheckState = System.Windows.Forms.CheckState.Checked; + this.chkArFixOffset.Font = null; this.chkArFixOffset.Name = "chkArFixOffset"; + this.toolTip1.SetToolTip(this.chkArFixOffset, resources.GetString("chkArFixOffset.ToolTip")); this.chkArFixOffset.UseVisualStyleBackColor = true; this.chkArFixOffset.CheckedChanged += new System.EventHandler(this.chkArFixOffset_CheckedChanged); // // label4 // + this.label4.AccessibleDescription = null; + this.label4.AccessibleName = null; resources.ApplyResources(this.label4, "label4"); + this.label4.Font = null; this.label4.Name = "label4"; + this.toolTip1.SetToolTip(this.label4, resources.GetString("label4.ToolTip")); // // numEncodeWhenPercent // + this.numEncodeWhenPercent.AccessibleDescription = null; + this.numEncodeWhenPercent.AccessibleName = null; + resources.ApplyResources(this.numEncodeWhenPercent, "numEncodeWhenPercent"); + this.numEncodeWhenPercent.Font = null; this.numEncodeWhenPercent.Increment = new decimal(new int[] { 5, 0, 0, 0}); - resources.ApplyResources(this.numEncodeWhenPercent, "numEncodeWhenPercent"); this.numEncodeWhenPercent.Minimum = new decimal(new int[] { 1, 0, 0, 0}); this.numEncodeWhenPercent.Name = "numEncodeWhenPercent"; + this.toolTip1.SetToolTip(this.numEncodeWhenPercent, resources.GetString("numEncodeWhenPercent.ToolTip")); this.numEncodeWhenPercent.Value = new decimal(new int[] { 100, 0, @@ -310,18 +429,26 @@ namespace JDP { // // label3 // + this.label3.AccessibleDescription = null; + this.label3.AccessibleName = null; resources.ApplyResources(this.label3, "label3"); + this.label3.Font = null; this.label3.Name = "label3"; + this.toolTip1.SetToolTip(this.label3, resources.GetString("label3.ToolTip")); // // numEncodeWhenConfidence // + this.numEncodeWhenConfidence.AccessibleDescription = null; + this.numEncodeWhenConfidence.AccessibleName = null; resources.ApplyResources(this.numEncodeWhenConfidence, "numEncodeWhenConfidence"); + this.numEncodeWhenConfidence.Font = null; this.numEncodeWhenConfidence.Minimum = new decimal(new int[] { 1, 0, 0, 0}); this.numEncodeWhenConfidence.Name = "numEncodeWhenConfidence"; + this.toolTip1.SetToolTip(this.numEncodeWhenConfidence, resources.GetString("numEncodeWhenConfidence.ToolTip")); this.numEncodeWhenConfidence.Value = new decimal(new int[] { 1, 0, @@ -330,35 +457,53 @@ namespace JDP { // // chkArNoUnverifiedAudio // + this.chkArNoUnverifiedAudio.AccessibleDescription = null; + this.chkArNoUnverifiedAudio.AccessibleName = null; resources.ApplyResources(this.chkArNoUnverifiedAudio, "chkArNoUnverifiedAudio"); + this.chkArNoUnverifiedAudio.BackgroundImage = null; this.chkArNoUnverifiedAudio.Checked = true; this.chkArNoUnverifiedAudio.CheckState = System.Windows.Forms.CheckState.Checked; + this.chkArNoUnverifiedAudio.Font = null; this.chkArNoUnverifiedAudio.Name = "chkArNoUnverifiedAudio"; + this.toolTip1.SetToolTip(this.chkArNoUnverifiedAudio, resources.GetString("chkArNoUnverifiedAudio.ToolTip")); this.chkArNoUnverifiedAudio.UseVisualStyleBackColor = true; this.chkArNoUnverifiedAudio.CheckedChanged += new System.EventHandler(this.chkArNoUnverifiedAudio_CheckedChanged); // // chkArSaveLog // + this.chkArSaveLog.AccessibleDescription = null; + this.chkArSaveLog.AccessibleName = null; resources.ApplyResources(this.chkArSaveLog, "chkArSaveLog"); + this.chkArSaveLog.BackgroundImage = null; this.chkArSaveLog.Checked = true; this.chkArSaveLog.CheckState = System.Windows.Forms.CheckState.Checked; + this.chkArSaveLog.Font = null; this.chkArSaveLog.Name = "chkArSaveLog"; + this.toolTip1.SetToolTip(this.chkArSaveLog, resources.GetString("chkArSaveLog.ToolTip")); this.chkArSaveLog.UseVisualStyleBackColor = true; // // label2 // + this.label2.AccessibleDescription = null; + this.label2.AccessibleName = null; resources.ApplyResources(this.label2, "label2"); + this.label2.Font = null; this.label2.Name = "label2"; + this.toolTip1.SetToolTip(this.label2, resources.GetString("label2.ToolTip")); // // numFixWhenConfidence // + this.numFixWhenConfidence.AccessibleDescription = null; + this.numFixWhenConfidence.AccessibleName = null; resources.ApplyResources(this.numFixWhenConfidence, "numFixWhenConfidence"); + this.numFixWhenConfidence.Font = null; this.numFixWhenConfidence.Minimum = new decimal(new int[] { 1, 0, 0, 0}); this.numFixWhenConfidence.Name = "numFixWhenConfidence"; + this.toolTip1.SetToolTip(this.numFixWhenConfidence, resources.GetString("numFixWhenConfidence.ToolTip")); this.numFixWhenConfidence.Value = new decimal(new int[] { 1, 0, @@ -367,23 +512,31 @@ namespace JDP { // // label1 // + this.label1.AccessibleDescription = null; + this.label1.AccessibleName = null; resources.ApplyResources(this.label1, "label1"); + this.label1.Font = null; this.label1.Name = "label1"; + this.toolTip1.SetToolTip(this.label1, resources.GetString("label1.ToolTip")); // // numFixWhenPercent // + this.numFixWhenPercent.AccessibleDescription = null; + this.numFixWhenPercent.AccessibleName = null; + resources.ApplyResources(this.numFixWhenPercent, "numFixWhenPercent"); + this.numFixWhenPercent.Font = null; this.numFixWhenPercent.Increment = new decimal(new int[] { 5, 0, 0, 0}); - resources.ApplyResources(this.numFixWhenPercent, "numFixWhenPercent"); this.numFixWhenPercent.Minimum = new decimal(new int[] { 1, 0, 0, 0}); this.numFixWhenPercent.Name = "numFixWhenPercent"; + this.toolTip1.SetToolTip(this.numFixWhenPercent, resources.GetString("numFixWhenPercent.ToolTip")); this.numFixWhenPercent.Value = new decimal(new int[] { 51, 0, @@ -392,9 +545,13 @@ namespace JDP { // // chkArAddCRCs // + this.chkArAddCRCs.AccessibleDescription = null; + this.chkArAddCRCs.AccessibleName = null; resources.ApplyResources(this.chkArAddCRCs, "chkArAddCRCs"); + this.chkArAddCRCs.BackgroundImage = null; this.chkArAddCRCs.Checked = true; this.chkArAddCRCs.CheckState = System.Windows.Forms.CheckState.Checked; + this.chkArAddCRCs.Font = null; this.chkArAddCRCs.Name = "chkArAddCRCs"; this.toolTip1.SetToolTip(this.chkArAddCRCs, resources.GetString("chkArAddCRCs.ToolTip")); this.chkArAddCRCs.UseVisualStyleBackColor = true; @@ -405,8 +562,24 @@ namespace JDP { this.toolTip1.InitialDelay = 500; this.toolTip1.ReshowDelay = 100; // + // chkFilenamesANSISafe + // + this.chkFilenamesANSISafe.AccessibleDescription = null; + this.chkFilenamesANSISafe.AccessibleName = null; + resources.ApplyResources(this.chkFilenamesANSISafe, "chkFilenamesANSISafe"); + this.chkFilenamesANSISafe.BackgroundImage = null; + this.chkFilenamesANSISafe.Font = null; + this.chkFilenamesANSISafe.Name = "chkFilenamesANSISafe"; + this.toolTip1.SetToolTip(this.chkFilenamesANSISafe, resources.GetString("chkFilenamesANSISafe.ToolTip")); + this.chkFilenamesANSISafe.UseVisualStyleBackColor = true; + // // grpAudioFilenames // + this.grpAudioFilenames.AccessibleDescription = null; + this.grpAudioFilenames.AccessibleName = null; + resources.ApplyResources(this.grpAudioFilenames, "grpAudioFilenames"); + this.grpAudioFilenames.BackgroundImage = null; + this.grpAudioFilenames.Controls.Add(this.chkFilenamesANSISafe); this.grpAudioFilenames.Controls.Add(this.chkKeepOriginalFilenames); this.grpAudioFilenames.Controls.Add(this.txtSpecialExceptions); this.grpAudioFilenames.Controls.Add(this.chkRemoveSpecial); @@ -415,75 +588,196 @@ namespace JDP { this.grpAudioFilenames.Controls.Add(this.lblTrackFilenameFormat); this.grpAudioFilenames.Controls.Add(this.lblSingleFilenameFormat); this.grpAudioFilenames.Controls.Add(this.txtSingleFilenameFormat); - resources.ApplyResources(this.grpAudioFilenames, "grpAudioFilenames"); + this.grpAudioFilenames.Font = null; this.grpAudioFilenames.Name = "grpAudioFilenames"; this.grpAudioFilenames.TabStop = false; + this.toolTip1.SetToolTip(this.grpAudioFilenames, resources.GetString("grpAudioFilenames.ToolTip")); // // chkKeepOriginalFilenames // + this.chkKeepOriginalFilenames.AccessibleDescription = null; + this.chkKeepOriginalFilenames.AccessibleName = null; resources.ApplyResources(this.chkKeepOriginalFilenames, "chkKeepOriginalFilenames"); + this.chkKeepOriginalFilenames.BackgroundImage = null; this.chkKeepOriginalFilenames.Checked = true; this.chkKeepOriginalFilenames.CheckState = System.Windows.Forms.CheckState.Checked; + this.chkKeepOriginalFilenames.Font = null; this.chkKeepOriginalFilenames.Name = "chkKeepOriginalFilenames"; + this.toolTip1.SetToolTip(this.chkKeepOriginalFilenames, resources.GetString("chkKeepOriginalFilenames.ToolTip")); this.chkKeepOriginalFilenames.UseVisualStyleBackColor = true; // // txtSpecialExceptions // + this.txtSpecialExceptions.AccessibleDescription = null; + this.txtSpecialExceptions.AccessibleName = null; resources.ApplyResources(this.txtSpecialExceptions, "txtSpecialExceptions"); + this.txtSpecialExceptions.BackgroundImage = null; + this.txtSpecialExceptions.Font = null; this.txtSpecialExceptions.Name = "txtSpecialExceptions"; + this.toolTip1.SetToolTip(this.txtSpecialExceptions, resources.GetString("txtSpecialExceptions.ToolTip")); // // chkRemoveSpecial // + this.chkRemoveSpecial.AccessibleDescription = null; + this.chkRemoveSpecial.AccessibleName = null; resources.ApplyResources(this.chkRemoveSpecial, "chkRemoveSpecial"); + this.chkRemoveSpecial.BackgroundImage = null; this.chkRemoveSpecial.Checked = true; this.chkRemoveSpecial.CheckState = System.Windows.Forms.CheckState.Checked; + this.chkRemoveSpecial.Font = null; this.chkRemoveSpecial.Name = "chkRemoveSpecial"; + this.toolTip1.SetToolTip(this.chkRemoveSpecial, resources.GetString("chkRemoveSpecial.ToolTip")); this.chkRemoveSpecial.UseVisualStyleBackColor = true; // // chkReplaceSpaces // + this.chkReplaceSpaces.AccessibleDescription = null; + this.chkReplaceSpaces.AccessibleName = null; resources.ApplyResources(this.chkReplaceSpaces, "chkReplaceSpaces"); + this.chkReplaceSpaces.BackgroundImage = null; this.chkReplaceSpaces.Checked = true; this.chkReplaceSpaces.CheckState = System.Windows.Forms.CheckState.Checked; + this.chkReplaceSpaces.Font = null; this.chkReplaceSpaces.Name = "chkReplaceSpaces"; + this.toolTip1.SetToolTip(this.chkReplaceSpaces, resources.GetString("chkReplaceSpaces.ToolTip")); this.chkReplaceSpaces.UseVisualStyleBackColor = true; // // txtTrackFilenameFormat // + this.txtTrackFilenameFormat.AccessibleDescription = null; + this.txtTrackFilenameFormat.AccessibleName = null; resources.ApplyResources(this.txtTrackFilenameFormat, "txtTrackFilenameFormat"); + this.txtTrackFilenameFormat.BackgroundImage = null; + this.txtTrackFilenameFormat.Font = null; this.txtTrackFilenameFormat.Name = "txtTrackFilenameFormat"; + this.toolTip1.SetToolTip(this.txtTrackFilenameFormat, resources.GetString("txtTrackFilenameFormat.ToolTip")); // // lblTrackFilenameFormat // + this.lblTrackFilenameFormat.AccessibleDescription = null; + this.lblTrackFilenameFormat.AccessibleName = null; resources.ApplyResources(this.lblTrackFilenameFormat, "lblTrackFilenameFormat"); + this.lblTrackFilenameFormat.Font = null; this.lblTrackFilenameFormat.Name = "lblTrackFilenameFormat"; + this.toolTip1.SetToolTip(this.lblTrackFilenameFormat, resources.GetString("lblTrackFilenameFormat.ToolTip")); // // lblSingleFilenameFormat // + this.lblSingleFilenameFormat.AccessibleDescription = null; + this.lblSingleFilenameFormat.AccessibleName = null; resources.ApplyResources(this.lblSingleFilenameFormat, "lblSingleFilenameFormat"); + this.lblSingleFilenameFormat.Font = null; this.lblSingleFilenameFormat.Name = "lblSingleFilenameFormat"; + this.toolTip1.SetToolTip(this.lblSingleFilenameFormat, resources.GetString("lblSingleFilenameFormat.ToolTip")); // // txtSingleFilenameFormat // + this.txtSingleFilenameFormat.AccessibleDescription = null; + this.txtSingleFilenameFormat.AccessibleName = null; resources.ApplyResources(this.txtSingleFilenameFormat, "txtSingleFilenameFormat"); + this.txtSingleFilenameFormat.BackgroundImage = null; + this.txtSingleFilenameFormat.Font = null; this.txtSingleFilenameFormat.Name = "txtSingleFilenameFormat"; + this.toolTip1.SetToolTip(this.txtSingleFilenameFormat, resources.GetString("txtSingleFilenameFormat.ToolTip")); + // + // groupBox2 + // + this.groupBox2.AccessibleDescription = null; + this.groupBox2.AccessibleName = null; + resources.ApplyResources(this.groupBox2, "groupBox2"); + this.groupBox2.BackgroundImage = null; + this.groupBox2.Controls.Add(this.rbAPEinsane); + this.groupBox2.Controls.Add(this.rbAPEextrahigh); + this.groupBox2.Controls.Add(this.rbAPEhigh); + this.groupBox2.Controls.Add(this.rbAPEnormal); + this.groupBox2.Controls.Add(this.rbAPEfast); + this.groupBox2.Font = null; + this.groupBox2.Name = "groupBox2"; + this.groupBox2.TabStop = false; + this.toolTip1.SetToolTip(this.groupBox2, resources.GetString("groupBox2.ToolTip")); + // + // rbAPEinsane + // + this.rbAPEinsane.AccessibleDescription = null; + this.rbAPEinsane.AccessibleName = null; + resources.ApplyResources(this.rbAPEinsane, "rbAPEinsane"); + this.rbAPEinsane.BackgroundImage = null; + this.rbAPEinsane.Font = null; + this.rbAPEinsane.Name = "rbAPEinsane"; + this.rbAPEinsane.TabStop = true; + this.toolTip1.SetToolTip(this.rbAPEinsane, resources.GetString("rbAPEinsane.ToolTip")); + this.rbAPEinsane.UseVisualStyleBackColor = true; + // + // rbAPEextrahigh + // + this.rbAPEextrahigh.AccessibleDescription = null; + this.rbAPEextrahigh.AccessibleName = null; + resources.ApplyResources(this.rbAPEextrahigh, "rbAPEextrahigh"); + this.rbAPEextrahigh.BackgroundImage = null; + this.rbAPEextrahigh.Font = null; + this.rbAPEextrahigh.Name = "rbAPEextrahigh"; + this.rbAPEextrahigh.TabStop = true; + this.toolTip1.SetToolTip(this.rbAPEextrahigh, resources.GetString("rbAPEextrahigh.ToolTip")); + this.rbAPEextrahigh.UseVisualStyleBackColor = true; + // + // rbAPEhigh + // + this.rbAPEhigh.AccessibleDescription = null; + this.rbAPEhigh.AccessibleName = null; + resources.ApplyResources(this.rbAPEhigh, "rbAPEhigh"); + this.rbAPEhigh.BackgroundImage = null; + this.rbAPEhigh.Font = null; + this.rbAPEhigh.Name = "rbAPEhigh"; + this.rbAPEhigh.TabStop = true; + this.toolTip1.SetToolTip(this.rbAPEhigh, resources.GetString("rbAPEhigh.ToolTip")); + this.rbAPEhigh.UseVisualStyleBackColor = true; + // + // rbAPEnormal + // + this.rbAPEnormal.AccessibleDescription = null; + this.rbAPEnormal.AccessibleName = null; + resources.ApplyResources(this.rbAPEnormal, "rbAPEnormal"); + this.rbAPEnormal.BackgroundImage = null; + this.rbAPEnormal.Font = null; + this.rbAPEnormal.Name = "rbAPEnormal"; + this.rbAPEnormal.TabStop = true; + this.toolTip1.SetToolTip(this.rbAPEnormal, resources.GetString("rbAPEnormal.ToolTip")); + this.rbAPEnormal.UseVisualStyleBackColor = true; + // + // rbAPEfast + // + this.rbAPEfast.AccessibleDescription = null; + this.rbAPEfast.AccessibleName = null; + resources.ApplyResources(this.rbAPEfast, "rbAPEfast"); + this.rbAPEfast.BackgroundImage = null; + this.rbAPEfast.Font = null; + this.rbAPEfast.Name = "rbAPEfast"; + this.rbAPEfast.TabStop = true; + this.toolTip1.SetToolTip(this.rbAPEfast, resources.GetString("rbAPEfast.ToolTip")); + this.rbAPEfast.UseVisualStyleBackColor = true; // // frmSettings // this.AcceptButton = this.btnOK; + this.AccessibleDescription = null; + this.AccessibleName = null; resources.ApplyResources(this, "$this"); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackgroundImage = null; this.CancelButton = btnCancel; + this.Controls.Add(this.groupBox2); + this.Controls.Add(this.grpFLAC); this.Controls.Add(this.grpAudioFilenames); this.Controls.Add(btnCancel); this.Controls.Add(this.groupBox1); this.Controls.Add(this.grpWavPack); this.Controls.Add(this.btnOK); - this.Controls.Add(this.grpFLAC); this.Controls.Add(this.grpGeneral); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Icon = null; this.MaximizeBox = false; this.Name = "frmSettings"; + this.toolTip1.SetToolTip(this, resources.GetString("$this.ToolTip")); this.Load += new System.EventHandler(this.frmSettings_Load); this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmSettings_FormClosing); this.grpGeneral.ResumeLayout(false); @@ -503,6 +797,8 @@ namespace JDP { ((System.ComponentModel.ISupportInitialize)(this.numFixWhenPercent)).EndInit(); this.grpAudioFilenames.ResumeLayout(false); this.grpAudioFilenames.PerformLayout(); + this.groupBox2.ResumeLayout(false); + this.groupBox2.PerformLayout(); this.ResumeLayout(false); } @@ -551,6 +847,13 @@ namespace JDP { private System.Windows.Forms.Label label4; private System.Windows.Forms.CheckBox chkEmbedLog; private System.Windows.Forms.CheckBox chkFillUpCUE; + private System.Windows.Forms.CheckBox chkFilenamesANSISafe; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.RadioButton rbAPEinsane; + private System.Windows.Forms.RadioButton rbAPEextrahigh; + private System.Windows.Forms.RadioButton rbAPEhigh; + private System.Windows.Forms.RadioButton rbAPEnormal; + private System.Windows.Forms.RadioButton rbAPEfast; } } \ No newline at end of file diff --git a/CUETools/frmSettings.cs b/CUETools/frmSettings.cs index 267c2a5..47731b5 100644 --- a/CUETools/frmSettings.cs +++ b/CUETools/frmSettings.cs @@ -33,6 +33,14 @@ namespace JDP { chkWVExtraMode.Checked = (_config.wvExtraMode != 0); chkWVExtraMode_CheckedChanged(null, null); if (_config.wvExtraMode != 0) numWVExtraMode.Value = _config.wvExtraMode; + switch (_config.apeCompressionLevel) + { + case 1: rbAPEfast.Checked = true; break; + case 2: rbAPEnormal.Checked = true; break; + case 3: rbAPEhigh.Checked = true; break; + case 4: rbAPEextrahigh.Checked = true; break; + case 5: rbAPEinsane.Checked = true; break; + } chkKeepOriginalFilenames.Checked = _config.keepOriginalFilenames; txtSingleFilenameFormat.Text = _config.singleFilenameFormat; txtTrackFilenameFormat.Text = _config.trackFilenameFormat; @@ -44,6 +52,7 @@ namespace JDP { chkArFixOffset.Checked = _config.fixOffset; chkEmbedLog.Checked = _config.embedLog; chkFillUpCUE.Checked = _config.fillUpCUE; + chkFilenamesANSISafe.Checked = _config.filenamesANSISafe; } private void frmSettings_FormClosing(object sender, FormClosingEventArgs e) { @@ -86,6 +95,11 @@ namespace JDP { else _config.wvCompressionMode = 1; if (!chkWVExtraMode.Checked) _config.wvExtraMode = 0; else _config.wvExtraMode = (int) numWVExtraMode.Value; + _config.apeCompressionLevel = (uint) (rbAPEfast.Checked ? 1 : + rbAPEnormal.Checked ? 2 : + rbAPEhigh.Checked ? 3 : + rbAPEextrahigh.Checked ? 4 : + rbAPEinsane.Checked ? 5 : 2); _config.keepOriginalFilenames = chkKeepOriginalFilenames.Checked; _config.singleFilenameFormat = txtSingleFilenameFormat.Text; _config.trackFilenameFormat = txtTrackFilenameFormat.Text; @@ -97,6 +111,7 @@ namespace JDP { _config.fixOffset = chkArFixOffset.Checked; _config.embedLog = chkEmbedLog.Checked; _config.fillUpCUE = chkFillUpCUE.Checked; + _config.filenamesANSISafe = chkFilenamesANSISafe.Checked; } private void chkArFixOffset_CheckedChanged(object sender, EventArgs e) diff --git a/CUETools/frmSettings.resx b/CUETools/frmSettings.resx index 0d00bba..e17a6f0 100644 --- a/CUETools/frmSettings.resx +++ b/CUETools/frmSettings.resx @@ -117,1561 +117,1465 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - False - - - - 270, 348 + + + + Verify + + 73, 23 + + chkRemoveSpecial + + + 2 + - - 6 + + True - - Cancel + + - - btnCancel + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 12, 44 - - $this + + 241, 114 - - 1 + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - chkFillUpCUE + + 12, 44 - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 2 + + + 2 + + + Single format: + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Very High + + + 46, 17 + + + True + + + 2 + + + File should be in the same directory as source file and have a .log extension + + + groupBox1 + + + groupBox1 grpGeneral - - 0 + + %N-%A-%T - - chkEmbedLog + + True - + + btnOK + + + 7 + + + 10 + + + 36, 21 + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 4 + + + System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 71, 17 + + + label2 + + + 6 + + + 5 + + + 5 + + + grpWavPack + + + True + + + chkKeepOriginalFilenames + + + 69, 17 + + + True + grpGeneral - - 1 + + Write offset (samples): - - numericWriteOffset + + 58, 17 - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpGeneral - - - 2 - - - chkAutoCorrectFilenames - - + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - grpGeneral - - + 3 - - chkPreserveHTOA + + True - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + True - - grpGeneral - - - 4 - - - lblWriteOffset - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpGeneral - - - 5 - - - 8, 4 - - - 252, 148 - - + 0 - - General + + System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - grpGeneral + + 12, 92 - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + True - - $this + + 585, 382 - - 6 + + 3 + + + + + + + + + %F + + + groupBox1 True - - 12, 95 + + grpAudioFilenames - - 187, 17 + + 12, 20 - + + grpAudioFilenames + + + 3 + + + 74, 13 + + + 135, 17 + + + 13, 36 + + + 130, 21 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 2 + + + grpWavPack + + + 12, 150 + + + frmSettings + + + + + + + + + grpFLAC + + + + + + 3 + + + chkArNoUnverifiedAudio + + + 54, 17 + + + True + + + groupBox2 + + + 4 + + + rbWVHigh + + + groupBox1 + + + True + + + 103, 91 + + + True + + + lblTrackFilenameFormat + + + 75, 17 + + + 0 + + + + + + 0 + + + $this + + 5 Fill up missing CUE data from tags - - chkFillUpCUE + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 1 - - grpGeneral + + 3 - - 0 + + 58, 17 - - 17, 17 - - - True + + grpWavPack - - 12, 78 + + 37, 21 - - 134, 17 + + 97, 123 - - 4 - - - Embed log file as a tag - - - File should be in the same directory as source file and have a .log extension - - - chkEmbedLog + + $this System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - grpGeneral - - - 1 - - - 133, 20 - - - 62, 21 - - - 1 - - - - Right - - - numericWriteOffset - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpGeneral - - - 2 - - + True - - 12, 61 + + 132, 66 - - 155, 17 - - - 3 + + 194, 17 Locate audio files if missing - - Preprocess with filename corrector if unable to locate audio files + + 72, 13 - - chkAutoCorrectFilenames + + Audio Filenames - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpGeneral - - - 3 - - - True - - - 12, 44 - - - 229, 17 - - + 2 - - Preserve HTOA for gaps appended output + + 2 + + + + + + 8 + + + rbWVVeryHigh + + + groupBox1 + + + groupBox1 + + + 93, 17 + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 chkPreserveHTOA - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 46, 17 - - grpGeneral + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + groupBox2 + + 4 - + + + + + + + True - - 9, 23 - - - 118, 13 - - + 0 - - Write offset (samples): + + 229, 17 - - lblWriteOffset - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpGeneral - - - 5 - - - numericFLACCompressionLevel - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpFLAC - - - 0 - - - lblFLACCompressionLevel - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpFLAC - - - 1 - - - chkFLACVerify - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpFLAC - - - 2 - - - 268, 284 - - - 256, 52 - - + 4 FLAC - - grpFLAC - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 5 - - - 208, 20 - - - 36, 21 - - - 2 - - - Right - - - numericFLACCompressionLevel - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpFLAC - - - 0 - - + True - - 99, 22 - - - 97, 13 - - - 1 - - - Compression level: - - - lblFLACCompressionLevel - - + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - grpFLAC - - - 1 - - + True - - 12, 20 - - - 54, 17 - - - 0 - - - Verify - - - chkFLACVerify - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpFLAC - - - 2 - - - 188, 348 - - - 73, 23 - - - 5 + + 101, 13 OK - - btnOK + + 270, 348 - - System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + numericFLACCompressionLevel - - $this - - - 4 - - - numWVExtraMode - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpWavPack - - - 0 - - - chkWVExtraMode - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpWavPack - - - 1 - - - rbWVVeryHigh - - - System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpWavPack - - - 2 - - - rbWVHigh - - - System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpWavPack - - - 3 - - - rbWVNormal - - - System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpWavPack - - - 4 - - - rbWVFast - - - System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpWavPack - - - 5 - - - 268, 184 - - - 256, 96 - - - 3 - - - WavPack - - - grpWavPack - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 3 - - - 208, 19 - - - 36, 21 - - - 5 - - - Right - - - numWVExtraMode - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpWavPack - - - 0 - - - True - - - 92, 20 - - - 112, 17 - - - 4 - - - Extra mode (1-6): - - - chkWVExtraMode - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpWavPack - - - 1 - - - True - - - 13, 70 - - - 71, 17 - - - 3 - - - Very High - - - rbWVVeryHigh - - - System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpWavPack - - - 2 - - - True - - - 13, 53 - - + 46, 17 - + 2 - - High - - - rbWVHigh - - - System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpWavPack - - - 3 - - - True - - - 13, 36 - - - 58, 17 - - - 1 - - - Normal - - - rbWVNormal - - - System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpWavPack - - - 4 - - - True - - - 13, 19 - - - 46, 17 - - - 0 - - - Fast - - - rbWVFast - - - System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpWavPack - - - 5 - - - chkArFixOffset - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 0 - - - label4 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 1 - - - numEncodeWhenPercent - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 2 - - - label3 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 3 - - - numEncodeWhenConfidence - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 4 - - - chkArNoUnverifiedAudio - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 5 - - - chkArSaveLog - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 6 - - - label2 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 7 - - - numFixWhenConfidence - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 8 - - - label1 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 9 - - - numFixWhenPercent - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 10 - - - chkArAddCRCs - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 11 - - - 268, 4 - - - 256, 176 - - - 2 - - - AccurateRip - - - groupBox1 - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 2 - - - True - - - 12, 105 - - - 81, 17 - - - 7 - - - Fix offset if - - - chkArFixOffset - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 0 - - - True - - - 38, 68 - - - 121, 13 - - - 3 - - - % of verified tracks >= - - - label4 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 1 - - - 168, 66 - - - 38, 21 - - - 4 - - - numEncodeWhenPercent - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 2 - - - True - - - 59, 89 - - - 101, 13 - - - 5 - - - with confidence >= - - - label3 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 3 - - - 168, 87 + + 132, 116 38, 21 - - 6 + + 12, 100 - - numEncodeWhenConfidence + + groupBox2 - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Only allow characters, which are present in ANSI codepage, for compatibility with non-unicode applications - - groupBox1 + + grpAudioFilenames - + + 38, 21 + + + True + + + True + + + 1 + + + chkEmbedLog + + 4 True - - 12, 44 - - - 93, 17 - - - 2 - - - Encode only if - - - chkArNoUnverifiedAudio - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 5 - - - True - - - 94, 21 - - - 69, 17 - - + 1 - - Write log - - - chkArSaveLog - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 6 - - - True - - - 59, 146 - - - 101, 13 - - - 10 - - - with confidence >= - - - label2 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 7 - - - 168, 144 - - - 37, 21 - - - 11 - - - numFixWhenConfidence - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 8 - - - True - - - 39, 125 - - - 121, 13 - - - 8 - - - % of verified tracks >= - - - label1 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 9 - - - 168, 123 - - - 38, 21 - - - 9 - - - numFixWhenPercent - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 10 - - - True - - - 12, 21 - - - 76, 17 - - + 0 - - Write tags - - - When using "apply offset" AccurateRip mode, also add ACCURATERIPCOUNT tag to flac files. You can set up foobar2000 to show this value, and see if your music was ripped correctly or how popular it is. - - - chkArAddCRCs - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 11 - - - 17, 17 - - - chkKeepOriginalFilenames - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpAudioFilenames - - - 0 - - - txtSpecialExceptions - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpAudioFilenames - - - 1 - - - chkRemoveSpecial - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpAudioFilenames - - - 2 - - - chkReplaceSpaces - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpAudioFilenames - - - 3 - - - txtTrackFilenameFormat - - - System.Windows.Forms.TextBox, 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 - - - 5 - - - lblSingleFilenameFormat - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpAudioFilenames - - - 6 - - - txtSingleFilenameFormat - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpAudioFilenames - - - 7 - - - 8, 156 - - - 252, 180 - - - 1 - - - Audio Filenames - grpAudioFilenames - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 3 - + + 73, 23 + + + Normal + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Compression level: + + + + + + numFixWhenPercent + + + Force ANSI filenames + + + + + + % of verified tracks >= + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Fix offset if + + + + + $this + + + Manual + + + 0 + + + 0 + - 0 + 2 - - True + + 252, 204 - - NoControl - - - 12, 20 - - - 135, 17 - - - 0 - - - Keep original filenames - - - chkKeepOriginalFilenames + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - grpAudioFilenames + + True - + + + + + NoControl + + + System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 241, 64 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 114, 21 + + + + + + numEncodeWhenConfidence + + + 111, 45 + + + lblWriteOffset + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 11 + + + True + + + chkFillUpCUE + + + Tahoma, 8.25pt + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 303, 54 + + 0 - - 92, 123 + + rbAPEhigh + + + 76, 17 + + + + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - 136, 21 + 149, 21 - - 6 + + 12, 21 - - -() + + groupBox1 + + + numEncodeWhenPercent + + + 145, 119 + + + grpFLAC + + + 12, 61 + + + grpGeneral + + + 97, 40 + + + 7 + + + 3 + + + groupBox1 + + + 8 + + + + + + 0 + + + 5 + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 10 + + + 1 txtSpecialExceptions - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 12, 78 - - grpAudioFilenames + + Embed log file as a tag - - 1 + + - + + 118, 13 + + + Right + + + rbAPEnormal + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + True NoControl - - 12, 100 - - - 194, 17 - - - 5 - - - Remove special characters except: - - - chkRemoveSpecial - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpAudioFilenames - - - 2 - - - True - - - NoControl - - - 12, 150 - - - 185, 17 - - - 7 - - - Replace spaces with underscores - - - chkReplaceSpaces - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpAudioFilenames - - - 3 - - - 92, 72 - - - 136, 21 - - - 4 - - - %N-%A-%T + + txtTrackFilenameFormat - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + grpWavPack - - grpAudioFilenames + + Right - - 4 - - - True - - - NoControl - - - 10, 76 - - - 72, 13 - - - 3 - - - Track format: - - - lblTrackFilenameFormat - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpAudioFilenames - - + 5 - - True - - - NoControl - - - 10, 48 - - - 74, 13 - - - 1 - - - Single format: - - - lblSingleFilenameFormat - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - + grpAudioFilenames - - 6 + + AccurateRip - - 92, 44 + + 13, 70 - - 136, 21 + + 0 - - 2 + + 97, 68 - - %F + + 13, 37 + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpGeneral + + + 5 txtSingleFilenameFormat - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 4 + + + 4 + + + NoControl + + + Monkey's Audio (.ape) + + + Cancel + + + 7 + + + -() + + + True + + + True + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 0 + + + System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 307, 147 + + + chkArAddCRCs + + + Normal + + + groupBox2 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + + + + 4 + + + + + + 134, 17 + + + chkWVExtraMode + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + with confidence >= + + + Write tags + + + rbWVNormal + + + Write log + + + grpWavPack + + + grpGeneral + + + 2 + + + groupBox1 grpAudioFilenames - - 7 + + Keep original filenames - - True - - - 6, 13 + + 233, 17 - - 532, 379 + + 187, 17 - - Tahoma, 8.25pt + + 0 - - Manual + + groupBox2 - - Advanced Settings + + 241, 43 + + + 9, 43 + + + 2 + + + 58, 17 + + + System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 5 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 268, 4 + + + rbAPEextrahigh + + + 270, 282 + + + 149, 21 + + + lblFLACCompressionLevel + + + chkArFixOffset + + + grpAudioFilenames toolTip1 + + Preserve HTOA for gaps appended output + + + grpWavPack + + + True + + + 3 + + + numWVExtraMode + + + 6 + + + $this + + + NoControl + + + 149, 21 + + + Extra High + + + System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 12, 95 + + + groupBox1 + + + rbAPEfast + + + 13, 53 + + + label3 + + + When using "apply offset" AccurateRip mode, also add ACCURATERIPCOUNT tag to flac files. You can set up foobar2000 to show this value, and see if your music was ripped correctly or how popular it is. + + + 81, 17 + + + rbAPEinsane + + + High + + + 252, 122 + + + Right + + + 3 + + + groupBox1 + + + System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 0 + + + 8, 4 + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 185, 17 + + + 13, 19 + + + 146, 119 + + + + + + + + + 1 + + + 6 + + + System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + + + + 0 + + + 1 + + + + + + 8 + System.Windows.Forms.ToolTip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - frmSettings + + 97, 13 - - System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + 5 + + + 3 + + + 5 + + + 6 + + + grpAudioFilenames + + + 6, 13 + + + $this + + + chkAutoCorrectFilenames + + + Remove special characters except: + + + 112, 95 + + + grpAudioFilenames + + + groupBox2 + + + 62, 21 + + + + + + True + + + label1 + + + 1 + + + 1 + + + 36, 21 + + + % of verified tracks >= + + + NoControl + + + 4 + + + System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 12, 20 + + + 46, 17 + + + 121, 13 + + + Replace spaces with underscores + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 6 + + + 155, 17 + + + + + + 241, 93 + + + + + + grpWavPack + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + + numFixWhenConfidence + + + 4 + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 85, 17 + + + 188, 348 + + + Encode only if + + + 1 + + + 3 + + + 7 + + + chkFLACVerify + + + 1 + + + 8, 132 + + + lblSingleFilenameFormat + + + Extra mode: + + + 11 + + + True + + + 4 + + + 1 + + + 13, 71 + + + groupBox1 + + + chkArSaveLog + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + Advanced Settings + + + + + + 13, 94 + + + 1 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 7 + + + 12, 172 + + + $this + + + 6 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 7 + + + Insane + + + + + + chkFilenamesANSISafe + + + 5 + + + WavPack (.wv) + + + + + + True + + + Fast + + + + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 13, 54 + + + 1 + + + Preprocess with filename corrector if unable to locate audio files + + + 4 + + + Fast + + + label4 + + + 101, 13 + + + $this + + + 9, 23 + + + 9 + + + 128, 17 + + + grpGeneral + + + + + + + + + + + + with confidence >= + + + btnCancel + + + 3 + + + numericWriteOffset + + + 9 + + + grpGeneral + + + 2 + + + 2 + + + + + + 1 + + + 121, 13 + + + High + + + Track format: + + + grpFLAC + + + 268, 157 + + + 2 + + + + + + True + + + groupBox1 + + + 133, 20 + + + chkReplaceSpaces + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + + 7 + + + + + + 13, 20 + + + grpFLAC + + + grpAudioFilenames + + + 428, 157 + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 11, 71 + + + 38, 21 + + + General + + + 13, 88 + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + + rbWVFast + + + + + + False + + + 17, 17 + + + True + \ No newline at end of file diff --git a/CUETools/frmSettings.ru-RU.resx b/CUETools/frmSettings.ru-RU.resx index 6cf26c1..b6e3f58 100644 --- a/CUETools/frmSettings.ru-RU.resx +++ b/CUETools/frmSettings.ru-RU.resx @@ -120,6 +120,9 @@ Отмена + + + 221, 17 @@ -127,6 +130,9 @@ Пополнить .cue информацией из тэгов + + + 156, 17 @@ -136,6 +142,12 @@ Работает, если .log лежит в той же папке и имеет то же имя, что и исходный файл + + + + + 213, 17 + Автоматически искать аудио файлы @@ -148,17 +160,32 @@ Сохранять HTOA при разбивке на треки + + + 114, 13 Смещение (сэмплов): + + + Общие + + + + + 233, 18 + + + + - 113, 17 + 133, 20 94, 13 @@ -166,17 +193,35 @@ Уровень сжатия: + + + 94, 17 Верификация + + + + + + + + + + + + - 116, 17 + 89, 17 - Доп. режим (1-6): + Доп. режим: + + + 103, 17 @@ -184,32 +229,53 @@ Очень высокий + + + 68, 17 Высокий + + + 69, 17 Средний + + + 70, 17 Быстрый + + + + + + + + 12, 82 + 165, 17 Исправлять смещение если + + + - 16, 68 + 110, 55 147, 13 @@ -217,8 +283,17 @@ % проверенных треков >= + + + + + 263, 49 + + + + - 43, 89 + 137, 69 120, 13 @@ -226,12 +301,27 @@ с достоверностью >= + + + + + 263, 71 + + + + + + 12, 38 + 176, 17 Конвертировать только если + + + 116, 21 @@ -241,8 +331,11 @@ Создать лог + + + - 43, 146 + 137, 116 120, 13 @@ -250,8 +343,17 @@ с достоверностью >= + + + + + 263, 114 + + + + - 15, 125 + 110, 98 147, 13 @@ -259,6 +361,15 @@ % проверенных треков >= + + + + + 263, 93 + + + + 94, 17 @@ -268,8 +379,17 @@ Добавлять тэги ACCURATERIPCOUNT и т.п. Можно настроить foobar2000 показывать эти значения в отдельном столбце, чтобы наглядно видеть точность рипа и популярность диска - - Имена аудиофайлов + + + + + 207, 17 + + + Только символы из ANSI кодировки + + + Использовать только символы, присутствующие в ANSI (1251) кодировке, для совместимости с приложениями, не поддерживающими Unicode (такими, как Far manager) 157, 17 @@ -277,18 +397,33 @@ Сохранять оригинальные + + + + + + 223, 17 Удалять специальные символы кроме: + + + 209, 17 Заменять пробелы подчеркиванями + + + + + + 10, 75 @@ -298,13 +433,49 @@ Трек: + + + 75, 13 Образ диска: + + + + + + + + Имена аудиофайлов + + + + + + + + + + + + + + + + + + + + + + Продвинутые настройки + + + \ No newline at end of file diff --git a/CUETools/tmp.cs b/CUETools/tmp.cs deleted file mode 100644 index 33cf0e8..0000000 --- a/CUETools/tmp.cs +++ /dev/null @@ -1,79 +0,0 @@ - uint bestTracksMatch = 0; - int bestWorstConfidence = 0; - int bestOffset = 0; - int bestDisk = -1; - - for (int di = 0; di < (int)accDisks.Count; di++) - { - for (int offset = -_arOffsetRange; offset <= _arOffsetRange; offset++) - { - uint tracksMatch = 0; - int worstConfidence = -1; - - for (int iTrack = 0; iTrack < TrackCount; iTrack++) - if (_tracks[iTrack].OffsetedCRC[_arOffsetRange - offset] == accDisks[di].tracks[iTrack].CRC) - { - tracksMatch++; - //confidence += accDisks[di].tracks[iTrack].count; - if (accDisks[di].tracks[iTrack].CRC != 0) - if (worstConfidence == -1 || worstConfidence > accDisks[di].tracks[iTrack].count) - worstConfidence = (int) accDisks[di].tracks[iTrack].count; - //if (_config.fixWhenConfidence) - //tracksMatchWithConfidence++; - } - - if (tracksMatch > bestTracksMatch - || (tracksMatch == bestTracksMatch && worstConfidence > bestWorstConfidence) - || (tracksMatch == bestTracksMatch && worstConfidence == bestWorstConfidence && Math.Abs(offset) < Math.Abs(bestOffset)) - ) - { - bestTracksMatch = tracksMatch; - bestWorstConfidence = worstConfidence; - bestOffset = offset; - bestDisk = di; - } - } - } - if (bestWorstConfidence > _config.fixWhenConfidence && - (bestTracksMatch == TrackCount || - (TrackCount > 2 && bestTracksMatch * 100 > TrackCount * _config.fixWhenPercent))) - _writeOffset = bestOffset; - else - if (bestTracksMatch != TrackCount && _config.noUnverifiedOutput) - SkipOutput = true; - - - - - - - - - - - - - - - - int s1 = (int) Math.Min(count, Math.Max(0, 450 * 588 - _arOffsetRange - (int)currentOffset)); - int s2 = (int) Math.Min(count, Math.Max(0, 451 * 588 + _arOffsetRange - (int)currentOffset)); - if ( s1 < s2 ) - fixed (uint* FrameCRCs = _tracks[iTrack].OffsetedFrame450CRC) - for (int sj = s1; sj < s2; sj++) - { - int magicFrameOffsetBase = (int)currentOffset + sj - 450 * 588 + 1; - for (int oi = -_arOffsetRange; oi <= _arOffsetRange; oi++) - { - int magicFrameOffset = magicFrameOffsetBase + oi; - if (magicFrameOffset > 0 && magicFrameOffset <= 588) - FrameCRCs[_arOffsetRange - oi] += (uint)(samples[sj] * magicFrameOffset); - } - } - - - int magicFrameOffset = (int)currentOffset + sj - 450 * 588 + 1; - int firstOffset = Math.Max(-_arOffsetRange, 1 - magicFrameOffset); - int lastOffset = Math.Min(_arOffsetRange, 588 - magicFrameOffset); - for (int oi = firstOffset; oi <= lastOffset; oi++) - FrameCRCs[_arOffsetRange - oi] += (uint)(samples[sj] * (magicFrameOffset + oi)); diff --git a/CUEToolsLib/Main.cs b/CUEToolsLib/Main.cs index e9b6453..b6b6b48 100644 --- a/CUEToolsLib/Main.cs +++ b/CUEToolsLib/Main.cs @@ -208,6 +208,7 @@ namespace CUEToolsLib public bool autoCorrectFilenames; public bool flacVerify; public uint flacCompressionLevel; + public uint apeCompressionLevel; public bool preserveHTOA; public int wvCompressionMode; public int wvExtraMode; @@ -219,6 +220,7 @@ namespace CUEToolsLib public bool replaceSpaces; public bool embedLog; public bool fillUpCUE; + public bool filenamesANSISafe; public CUEConfig() { @@ -234,7 +236,8 @@ namespace CUEToolsLib autoCorrectFilenames = true; flacVerify = false; flacCompressionLevel = 8; - preserveHTOA = false; + apeCompressionLevel = 2; + preserveHTOA = true; wvCompressionMode = 1; wvExtraMode = 0; keepOriginalFilenames = true; @@ -245,6 +248,7 @@ namespace CUEToolsLib replaceSpaces = true; embedLog = true; fillUpCUE = true; + filenamesANSISafe = true; } public void Save (SettingsWriter sw) @@ -261,6 +265,7 @@ namespace CUEToolsLib sw.Save("PreserveHTOA", preserveHTOA); sw.Save("AutoCorrectFilenames", autoCorrectFilenames); sw.Save("FLACCompressionLevel", flacCompressionLevel); + sw.Save("APECompressionLevel", apeCompressionLevel); sw.Save("FLACVerify", flacVerify); sw.Save("WVCompressionMode", wvCompressionMode); sw.Save("WVExtraMode", wvExtraMode); @@ -272,33 +277,36 @@ namespace CUEToolsLib sw.Save("ReplaceSpaces", replaceSpaces); sw.Save("EmbedLog", embedLog); sw.Save("FillUpCUE", fillUpCUE); + sw.Save("FilenamesANSISafe", filenamesANSISafe); } public void Load(SettingsReader sr) { - fixWhenConfidence = sr.LoadUInt32("ArFixWhenConfidence", 1, 1000) ?? 1; - fixWhenPercent = sr.LoadUInt32("ArFixWhenPercent", 1, 100) ?? 50; - encodeWhenConfidence = sr.LoadUInt32("ArEncodeWhenConfidence", 1, 1000) ?? 1; - encodeWhenPercent = sr.LoadUInt32("ArEncodeWhenPercent", 1, 100) ?? 50; - noUnverifiedOutput = sr.LoadBoolean("ArNoUnverifiedOutput") ?? true; - fixOffset = sr.LoadBoolean("ArFixOffset") ?? true; + fixWhenConfidence = sr.LoadUInt32("ArFixWhenConfidence", 1, 1000) ?? 2; + fixWhenPercent = sr.LoadUInt32("ArFixWhenPercent", 1, 100) ?? 51; + encodeWhenConfidence = sr.LoadUInt32("ArEncodeWhenConfidence", 1, 1000) ?? 2; + encodeWhenPercent = sr.LoadUInt32("ArEncodeWhenPercent", 1, 100) ?? 100; + noUnverifiedOutput = sr.LoadBoolean("ArNoUnverifiedOutput") ?? false; + fixOffset = sr.LoadBoolean("ArFixOffset") ?? false; writeArTags = sr.LoadBoolean("ArWriteCRC") ?? true; writeArLog = sr.LoadBoolean("ArWriteLog") ?? true; preserveHTOA = sr.LoadBoolean("PreserveHTOA") ?? true; - autoCorrectFilenames = sr.LoadBoolean("AutoCorrectFilenames") ?? false; - flacCompressionLevel = sr.LoadUInt32("FLACCompressionLevel", 0, 8) ?? 5; + autoCorrectFilenames = sr.LoadBoolean("AutoCorrectFilenames") ?? true; + flacCompressionLevel = sr.LoadUInt32("FLACCompressionLevel", 0, 8) ?? 8; flacVerify = sr.LoadBoolean("FLACVerify") ?? false; + apeCompressionLevel = sr.LoadUInt32("APECompressionLevel", 1, 5) ?? 2; wvCompressionMode = sr.LoadInt32("WVCompressionMode", 0, 3) ?? 1; wvExtraMode = sr.LoadInt32("WVExtraMode", 0, 6) ?? 0; keepOriginalFilenames = sr.LoadBoolean("KeepOriginalFilenames") ?? true; singleFilenameFormat = sr.Load("SingleFilenameFormat") ?? "%F"; trackFilenameFormat = sr.Load("TrackFilenameFormat") ?? "%N-%A-%T"; - removeSpecial = sr.LoadBoolean("RemoveSpecialCharacters") ?? true; + removeSpecial = sr.LoadBoolean("RemoveSpecialCharacters") ?? false; specialExceptions = sr.Load("SpecialCharactersExceptions") ?? "-()"; replaceSpaces = sr.LoadBoolean("ReplaceSpaces") ?? true; embedLog = sr.LoadBoolean("EmbedLog") ?? true; fillUpCUE = sr.LoadBoolean("FillUpCUE") ?? true; + filenamesANSISafe = sr.LoadBoolean("FilenamesANSISafe") ?? true; } public string CleanseString (string s) @@ -306,7 +314,8 @@ namespace CUEToolsLib StringBuilder sb = new StringBuilder(); char[] invalid = Path.GetInvalidFileNameChars(); - s = Encoding.Default.GetString(Encoding.Default.GetBytes(s)); + if (filenamesANSISafe) + s = Encoding.Default.GetString(Encoding.Default.GetBytes(s)); for (int i = 0; i < s.Length; i++) { @@ -1263,6 +1272,7 @@ namespace CUEToolsLib matching3 += accDisks[iDisk].tracks[iTrack].count; } tags.Add(String.Format("{0}ACCURATERIPCRC", prefix), String.Format("{0:x8}", _tracks[iTrack].OffsetedCRC[_arOffsetRange - offset])); + tags.Add(String.Format("{0}AccurateRipDiscId", prefix), String.Format("{0:000}-{1}-{2:00}", TrackCount, _accurateRipId, iTrack+1)); tags.Add(String.Format("{0}ACCURATERIPCOUNT", prefix), String.Format("{0}", matching)); tags.Add(String.Format("{0}ACCURATERIPCOUNTALLOFFSETS", prefix), String.Format("{0}", matching3)); tags.Add(String.Format("{0}ACCURATERIPTOTAL", prefix), String.Format("{0}", total)); @@ -1376,10 +1386,19 @@ namespace CUEToolsLib if (accResult != HttpStatusCode.OK) { - if (!_accurateOffset) - return; - if (_config.noUnverifiedOutput) + if (!_accurateOffset || _config.noUnverifiedOutput) + { + if (_config.writeArLog) + { + if (dir != "" && !Directory.Exists(dir)) + Directory.CreateDirectory(dir); + StreamWriter sw = new StreamWriter(Path.ChangeExtension(_cuePath, ".accurip"), + false, CUESheet.Encoding); + GenerateAccurateRipLog(sw); + sw.Close(); + } return; + } } else if (_accurateOffset) { @@ -1472,6 +1491,106 @@ namespace CUEToolsLib } } + private void SetTrackTags(IAudioDest audioDest, int iTrack, int bestOffset) + { + NameValueCollection destTags = new NameValueCollection(); + + if (_hasEmbeddedCUESheet) + { + string trackPrefix = String.Format ("cue_track{0:00}_", iTrack + 1); + string[] keys = _albumTags.AllKeys; + for (int i = 0; i < keys.Length; i++) + { + if (keys[i].ToLower().StartsWith(trackPrefix) + || !keys[i].ToLower().StartsWith("cue_track")) + { + string name = keys[i].ToLower().StartsWith(trackPrefix) ? + keys[i].Substring(trackPrefix.Length) : keys[i]; + string[] values = _albumTags.GetValues(keys[i]); + for (int j = 0; j < values.Length; j++) + destTags.Add(name, values[j]); + } + } + } + else if (_hasTrackFilenames) + destTags.Add(_tracks[iTrack]._trackTags); + else if (_hasSingleFilename) + { + // TODO? + } + + destTags.Remove("CUESHEET"); + destTags.Remove("TRACKNUMBER"); + destTags.Remove("LOG"); + destTags.Remove("LOGFILE"); + destTags.Remove("EACLOG"); + CleanupTags(destTags, "ACCURATERIP"); + CleanupTags(destTags, "REPLAYGAIN"); + + if (destTags.Get("TITLE") == null && "" != _tracks[iTrack].Title) + destTags.Add("TITLE", _tracks[iTrack].Title); + if (destTags.Get("ARTIST") == null && "" != _tracks[iTrack].Artist) + destTags.Add("ARTIST", _tracks[iTrack].Artist); + destTags.Add("TRACKNUMBER", (iTrack + 1).ToString()); + if (_accurateRipId != null && _config.writeArTags) + { + if (_accurateOffset && accResult == HttpStatusCode.OK) + GenerateAccurateRipTags(destTags, _writeOffset, bestOffset, iTrack); + else + destTags.Add("ACCURATERIPID", _accurateRipId); + } + audioDest.SetTags(destTags); + } + + private void SetAlbumTags(IAudioDest audioDest, int bestOffset, bool fWithCUE) + { + NameValueCollection destTags = new NameValueCollection(); + + if (_hasEmbeddedCUESheet || _hasSingleFilename) + destTags.Add(_albumTags); + else if (_hasTrackFilenames) + { + // TODO + } + + destTags.Remove("CUESHEET"); + CleanupTags(destTags, "ACCURATERIP"); + CleanupTags(destTags, "REPLAYGAIN"); + + if (fWithCUE) + { + StringWriter sw = new StringWriter(); + Write(sw, CUEStyle.SingleFileWithCUE); + destTags.Add("CUESHEET", sw.ToString()); + sw.Close(); + } + else + { + string[] keys = destTags.AllKeys; + for (int i = 0; i < keys.Length; i++) + if (keys[i].ToLower().StartsWith("cue_track")) + destTags.Remove(keys[i]); + } + + if (_config.embedLog) + { + destTags.Remove("LOG"); + destTags.Remove("LOGFILE"); + destTags.Remove("EACLOG"); + if (_eacLog != null) + destTags.Add("LOG", _eacLog); + } + + if (_accurateRipId != null && _config.writeArTags) + { + if (fWithCUE && _accurateOffset && accResult == HttpStatusCode.OK) + GenerateAccurateRipTags(destTags, _writeOffset, bestOffset, -1); + else + destTags.Add("ACCURATERIPID", _accurateRipId); + } + audioDest.SetTags(destTags); + } + public void WriteAudioFilesPass(string dir, CUEStyle style, SetStatus statusDel, string[] destPaths, int[] destLengths, bool htoaToFile, bool noOutput) { const int buffLen = 16384; @@ -1526,58 +1645,17 @@ namespace CUEToolsLib _appliedWriteOffset = true; } + uint tracksMatch; + int bestOffset = _writeOffset; + if (!noOutput && _accurateRipId != null && _config.writeArTags && _accurateOffset && accResult == HttpStatusCode.OK) + FindBestOffset(1, true, out tracksMatch, out bestOffset); + if (style == CUEStyle.SingleFile || style == CUEStyle.SingleFileWithCUE) { iDest++; audioDest = GetAudioDest(destPaths[iDest], destLengths[iDest], noOutput); - if (!(audioDest is WAVWriter)) - { - NameValueCollection destTags = new NameValueCollection(); - - if (_hasEmbeddedCUESheet || _hasSingleFilename) - destTags.Add(_albumTags); - else if (_hasTrackFilenames) - { - // TODO - } - - destTags.Remove ("CUESHEET"); - CleanupTags(destTags, "ACCURATERIP"); - CleanupTags(destTags, "REPLAYGAIN"); - - if (style == CUEStyle.SingleFileWithCUE) - { - StringWriter sw = new StringWriter(); - Write(sw, style); - destTags.Add("CUESHEET", sw.ToString()); - sw.Close(); - } - else - { - string[] keys = destTags.AllKeys; - for (int i = 0; i < keys.Length; i++) - if (keys[i].ToLower().StartsWith("cue_track")) - destTags.Remove(keys[i]); - } - - if (_config.embedLog) - { - destTags.Remove("LOG"); - destTags.Remove("LOGFILE"); - destTags.Remove("EACLOG"); - if (_eacLog != null) - destTags.Add("LOG", _eacLog); - } - - if (_accurateRipId != null && _config.writeArTags) - { - if (style == CUEStyle.SingleFileWithCUE && _accurateOffset && accResult == HttpStatusCode.OK) - GenerateAccurateRipTags(destTags, _writeOffset, _writeOffset, -1); - else - destTags.Add("ACCURATERIPID", _accurateRipId); - } - audioDest.SetTags(destTags); - } + if (!noOutput) + SetAlbumTags(audioDest, bestOffset, style == CUEStyle.SingleFileWithCUE); } if (_accurateRip && noOutput) @@ -1606,6 +1684,8 @@ namespace CUEToolsLib if (audioDest != null) audioDest.Close(); iDest++; audioDest = GetAudioDest(destPaths[iDest], destLengths[iDest], noOutput); + if (!noOutput) + SetTrackTags(audioDest, iTrack, bestOffset); } for (iIndex = 0; iIndex <= track.LastIndex; iIndex++) { @@ -1627,58 +1707,8 @@ namespace CUEToolsLib if (audioDest != null) audioDest.Close(); iDest++; audioDest = GetAudioDest(destPaths[iDest], destLengths[iDest], noOutput); -#if !MONO - if (audioDest is FLACWriter) - { - NameValueCollection destTags = new NameValueCollection(); - - if (_hasEmbeddedCUESheet) - { - string trackPrefix = String.Format ("cue_track{0:00}_", iTrack + 1); - string[] keys = _albumTags.AllKeys; - for (int i = 0; i < keys.Length; i++) - { - if (keys[i].ToLower().StartsWith(trackPrefix) - || !keys[i].ToLower().StartsWith("cue_track")) - { - string name = keys[i].ToLower().StartsWith(trackPrefix) ? - keys[i].Substring(trackPrefix.Length) : keys[i]; - string[] values = _albumTags.GetValues(keys[i]); - for (int j = 0; j < values.Length; j++) - destTags.Add(name, values[j]); - } - } - } - else if (_hasTrackFilenames) - destTags.Add(track._trackTags); - else if (_hasSingleFilename) - { - // TODO? - } - - destTags.Remove("CUESHEET"); - destTags.Remove("TRACKNUMBER"); - destTags.Remove("LOG"); - destTags.Remove("LOGFILE"); - destTags.Remove("EACLOG"); - CleanupTags(destTags, "ACCURATERIP"); - CleanupTags(destTags, "REPLAYGAIN"); - - if (destTags.Get("TITLE") == null && "" != track.Title) - destTags.Add("TITLE", track.Title); - if (destTags.Get("ARTIST") == null && "" != track.Artist) - destTags.Add("ARTIST", track.Artist); - destTags.Add("TRACKNUMBER", (iTrack + 1).ToString()); - if (_accurateRipId != null && _config.writeArTags) - { - if (_accurateOffset && accResult == HttpStatusCode.OK) - GenerateAccurateRipTags(destTags, _writeOffset, _writeOffset, iTrack); - else - destTags.Add("ACCURATERIPID", _accurateRipId); - } - ((FLACWriter)audioDest).SetTags(destTags); - } -#endif + if (!noOutput) + SetTrackTags(audioDest, iTrack, bestOffset); } if ((style == CUEStyle.GapsAppended) && (iIndex == 0) && (iTrack == 0)) { @@ -1934,6 +1964,11 @@ namespace CUEToolsLib w.CompressionMode = _config.wvCompressionMode; w.ExtraMode = _config.wvExtraMode; } + if (dest is APEWriter) + { + APEWriter w = (APEWriter)dest; + w.CompressionLevel = (int) _config.apeCompressionLevel; + } #endif return dest;