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;