diff --git a/CUERipper/frmCUERipper.Designer.cs b/CUERipper/frmCUERipper.Designer.cs index 39931f9..664857f 100644 --- a/CUERipper/frmCUERipper.Designer.cs +++ b/CUERipper/frmCUERipper.Designer.cs @@ -56,6 +56,7 @@ namespace CUERipper this.numericWriteOffset = new System.Windows.Forms.NumericUpDown(); this.lblWriteOffset = new System.Windows.Forms.Label(); this.groupBoxSettings = new System.Windows.Forms.GroupBox(); + this.checkBoxTestAndCopy = new System.Windows.Forms.CheckBox(); this.bnComboBoxLosslessOrNot = new CUEControls.ImgComboBox(); this.losslessOrNotBindingSource = new System.Windows.Forms.BindingSource(this.components); this.bindingSourceCR = new System.Windows.Forms.BindingSource(this.components); @@ -102,7 +103,12 @@ namespace CUERipper this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.backgroundWorkerArtwork = new System.ComponentModel.BackgroundWorker(); this.buttonSettings = new System.Windows.Forms.Button(); - this.checkBoxTestAndCopy = new System.Windows.Forms.CheckBox(); + this.panel2 = new System.Windows.Forms.Panel(); + this.panel7 = new System.Windows.Forms.Panel(); + this.panel3 = new System.Windows.Forms.Panel(); + this.panel4 = new System.Windows.Forms.Panel(); + this.panel5 = new System.Windows.Forms.Panel(); + this.panel6 = new System.Windows.Forms.Panel(); this.statusStrip1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.numericWriteOffset)).BeginInit(); this.groupBoxSettings.SuspendLayout(); @@ -117,6 +123,12 @@ namespace CUERipper ((System.ComponentModel.ISupportInitialize)(this.releasesBindingSource)).BeginInit(); this.panel1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.panel2.SuspendLayout(); + this.panel7.SuspendLayout(); + this.panel3.SuspendLayout(); + this.panel4.SuspendLayout(); + this.panel5.SuspendLayout(); + this.panel6.SuspendLayout(); this.SuspendLayout(); // // statusStrip1 @@ -187,13 +199,13 @@ namespace CUERipper // // listTracks // - resources.ApplyResources(this.listTracks, "listTracks"); this.listTracks.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { this.Title, this.TrackNo, this.columnHeaderArtist, this.Start, this.Length}); + resources.ApplyResources(this.listTracks, "listTracks"); this.listTracks.FullRowSelect = true; this.listTracks.GridLines = true; this.listTracks.LabelEdit = true; @@ -288,6 +300,13 @@ namespace CUERipper this.groupBoxSettings.Name = "groupBoxSettings"; this.groupBoxSettings.TabStop = false; // + // checkBoxTestAndCopy + // + resources.ApplyResources(this.checkBoxTestAndCopy, "checkBoxTestAndCopy"); + this.checkBoxTestAndCopy.Name = "checkBoxTestAndCopy"; + this.checkBoxTestAndCopy.UseVisualStyleBackColor = true; + this.checkBoxTestAndCopy.Click += new System.EventHandler(this.checkBoxTestAndCopy_Click); + // // bnComboBoxLosslessOrNot // this.bnComboBoxLosslessOrNot.BackColor = System.Drawing.Color.Transparent; @@ -384,6 +403,7 @@ namespace CUERipper rectRadius4.TopLeft = 2; rectRadius4.TopRight = 6; this.bnComboBoxImage.Radius = rectRadius4; + this.bnComboBoxImage.SelectedValueChanged += new System.EventHandler(this.bnComboBoxImage_SelectedValueChanged); // // cUEStylesBindingSource // @@ -570,10 +590,10 @@ namespace CUERipper // // bnComboBoxOutputFormat // - resources.ApplyResources(this.bnComboBoxOutputFormat, "bnComboBoxOutputFormat"); this.bnComboBoxOutputFormat.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.bnComboBoxOutputFormat.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; this.bnComboBoxOutputFormat.BackColor = System.Drawing.Color.Transparent; + resources.ApplyResources(this.bnComboBoxOutputFormat, "bnComboBoxOutputFormat"); this.bnComboBoxOutputFormat.ImageList = null; this.bnComboBoxOutputFormat.MinimumSize = new System.Drawing.Size(40, 0); this.bnComboBoxOutputFormat.Name = "bnComboBoxOutputFormat"; @@ -590,10 +610,10 @@ namespace CUERipper // // listMetadata // - resources.ApplyResources(this.listMetadata, "listMetadata"); this.listMetadata.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { this.columnHeaderValue, this.columnHeaderName}); + resources.ApplyResources(this.listMetadata, "listMetadata"); this.listMetadata.FullRowSelect = true; this.listMetadata.GridLines = true; this.listMetadata.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None; @@ -675,17 +695,18 @@ namespace CUERipper // // panel1 // - resources.ApplyResources(this.panel1, "panel1"); this.panel1.Controls.Add(this.buttonGo); this.panel1.Controls.Add(this.buttonPause); this.panel1.Controls.Add(this.buttonAbort); this.panel1.Controls.Add(this.progressBarCD); this.panel1.Controls.Add(this.progressBarErrors); + resources.ApplyResources(this.panel1, "panel1"); this.panel1.Name = "panel1"; // // pictureBox1 // resources.ApplyResources(this.pictureBox1, "pictureBox1"); + this.pictureBox1.MinimumSize = new System.Drawing.Size(100, 100); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.TabStop = false; this.pictureBox1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseClick); @@ -706,42 +727,71 @@ namespace CUERipper this.buttonSettings.UseVisualStyleBackColor = true; this.buttonSettings.Click += new System.EventHandler(this.buttonSettings_Click); // - // checkBoxTestAndCopy + // panel2 // - resources.ApplyResources(this.checkBoxTestAndCopy, "checkBoxTestAndCopy"); - this.checkBoxTestAndCopy.Name = "checkBoxTestAndCopy"; - this.checkBoxTestAndCopy.UseVisualStyleBackColor = true; - this.checkBoxTestAndCopy.Click += new System.EventHandler(this.checkBoxTestAndCopy_Click); + this.panel2.Controls.Add(this.panel7); + this.panel2.Controls.Add(this.panel1); + this.panel2.Controls.Add(this.groupBoxSettings); + resources.ApplyResources(this.panel2, "panel2"); + this.panel2.Name = "panel2"; + // + // panel7 + // + this.panel7.Controls.Add(this.pictureBox1); + resources.ApplyResources(this.panel7, "panel7"); + this.panel7.Name = "panel7"; + // + // panel3 + // + this.panel3.Controls.Add(this.bnComboBoxDrives); + this.panel3.Controls.Add(this.bnComboBoxRelease); + this.panel3.Controls.Add(this.buttonSettings); + this.panel3.Controls.Add(this.buttonVA); + this.panel3.Controls.Add(this.buttonFreedbSubmit); + this.panel3.Controls.Add(this.buttonTrackMetadata); + this.panel3.Controls.Add(this.buttonTracks); + this.panel3.Controls.Add(this.buttonReload); + this.panel3.Controls.Add(this.buttonEncoding); + this.panel3.Controls.Add(this.buttonMetadata); + resources.ApplyResources(this.panel3, "panel3"); + this.panel3.Name = "panel3"; + // + // panel4 + // + this.panel4.Controls.Add(this.listTracks); + this.panel4.Controls.Add(this.listMetadata); + resources.ApplyResources(this.panel4, "panel4"); + this.panel4.Name = "panel4"; + // + // panel5 + // + this.panel5.Controls.Add(this.bnComboBoxOutputFormat); + this.panel5.Controls.Add(this.txtOutputPath); + resources.ApplyResources(this.panel5, "panel5"); + this.panel5.Name = "panel5"; + // + // panel6 + // + this.panel6.Controls.Add(this.panel4); + this.panel6.Controls.Add(this.panel5); + this.panel6.Controls.Add(this.panel2); + this.panel6.Controls.Add(this.panel3); + resources.ApplyResources(this.panel6, "panel6"); + this.panel6.Name = "panel6"; // // frmCUERipper // resources.ApplyResources(this, "$this"); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.buttonSettings); - this.Controls.Add(this.pictureBox1); - this.Controls.Add(this.panel1); - this.Controls.Add(this.buttonFreedbSubmit); - this.Controls.Add(this.buttonTracks); - this.Controls.Add(this.buttonEncoding); - this.Controls.Add(this.buttonMetadata); - this.Controls.Add(this.buttonReload); - this.Controls.Add(this.buttonTrackMetadata); - this.Controls.Add(this.buttonVA); - this.Controls.Add(this.bnComboBoxRelease); - this.Controls.Add(this.bnComboBoxDrives); - this.Controls.Add(this.bnComboBoxOutputFormat); - this.Controls.Add(this.groupBoxSettings); - this.Controls.Add(this.listTracks); + this.Controls.Add(this.panel6); this.Controls.Add(this.statusStrip1); - this.Controls.Add(this.txtOutputPath); - this.Controls.Add(this.listMetadata); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.KeyPreview = true; this.MaximizeBox = false; this.Name = "frmCUERipper"; this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.frmCUERipper_FormClosed); this.Load += new System.EventHandler(this.frmCUERipper_Load); + this.ClientSizeChanged += new System.EventHandler(this.frmCUERipper_ClientSizeChanged); this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.frmCUERipper_KeyDown); this.statusStrip1.ResumeLayout(false); this.statusStrip1.PerformLayout(); @@ -759,6 +809,13 @@ namespace CUERipper ((System.ComponentModel.ISupportInitialize)(this.releasesBindingSource)).EndInit(); this.panel1.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.panel2.ResumeLayout(false); + this.panel7.ResumeLayout(false); + this.panel3.ResumeLayout(false); + this.panel4.ResumeLayout(false); + this.panel5.ResumeLayout(false); + this.panel5.PerformLayout(); + this.panel6.ResumeLayout(false); this.ResumeLayout(false); this.PerformLayout(); @@ -832,6 +889,12 @@ namespace CUERipper private System.ComponentModel.BackgroundWorker backgroundWorkerArtwork; private System.Windows.Forms.Button buttonSettings; private System.Windows.Forms.CheckBox checkBoxTestAndCopy; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.Panel panel3; + private System.Windows.Forms.Panel panel4; + private System.Windows.Forms.Panel panel5; + private System.Windows.Forms.Panel panel6; + private System.Windows.Forms.Panel panel7; } } diff --git a/CUERipper/frmCUERipper.cs b/CUERipper/frmCUERipper.cs index 1600c4e..194772e 100644 --- a/CUERipper/frmCUERipper.cs +++ b/CUERipper/frmCUERipper.cs @@ -166,6 +166,11 @@ namespace CUERipper trackBarSecureMode_Scroll(this, new EventArgs()); defaultDrive = sr.Load("DefaultDrive"); this.checkBoxTestAndCopy.Checked = this.testAndCopy = sr.LoadBoolean("TestAndCopy") ?? this.testAndCopy; + + Size SizeIncrement = new Size(sr.LoadInt32("WidthIncrement", 0, null) ?? 0, sr.LoadInt32("HeightIncrement", 0, null) ?? 0); + Size = MinimumSize + SizeIncrement; + Left -= SizeIncrement.Width / 2; + Top -= SizeIncrement.Height / 2; UpdateDrives(); } @@ -371,6 +376,7 @@ namespace CUERipper private void Rip(object o) { ICDRipper audioSource = o as ICDRipper; + audioSource.ReadProgress += new EventHandler(CDReadProgress); audioSource.DriveOffset = (int)numericWriteOffset.Value; @@ -439,6 +445,7 @@ namespace CUERipper this.BeginInvoke((MethodInvoker)delegate() { SetupControls(); + UpdateOutputPath(); }); } @@ -474,14 +481,16 @@ namespace CUERipper MessageBox.Show(this, "Output path generation failed", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } - cueSheet.GenerateFilenames(SelectedOutputAudioType, selectedFormat.ToString(), _pathOut); + if (cueSheet.Metadata.Comment == "") + cueSheet.Metadata.Comment = selectedDriveInfo.drive.RipperVersion; + cueSheet.GenerateFilenames(SelectedOutputAudioType, selectedFormat.ToString(), _pathOut); selectedDriveInfo.drive.CorrectionQuality = trackBarSecureMode.Value; _workThread = new Thread(Rip); _workThread.Priority = ThreadPriority.BelowNormal; _workThread.IsBackground = true; SetupControls(); - _workThread.Start(selectedDriveInfo.drive); + _workThread.Start(selectedDriveInfo.drive); } private void buttonAbort_Click(object sender, EventArgs e) @@ -494,10 +503,21 @@ namespace CUERipper _startStop.Pause(); } + private void ResizeList(ListView list, ColumnHeader title) + { + int colSum = 0; + foreach (ColumnHeader col in list.Columns) + { + colSum += col.Width + SystemInformation.BorderSize.Width; + } + + title.Width += list.Width - colSum - 2 * SystemInformation.BorderSize.Width - SystemInformation.VerticalScrollBarWidth; + } + private void UpdateRelease() { data.selectedRelease = bnComboBoxRelease.SelectedItem as CUEMetadataEntry; - comboBoxOutputFormat_TextUpdate(this, new EventArgs()); + UpdateOutputPath(); listTracks.BeginUpdate(); listMetadata.BeginUpdate(); listTracks.Items.Clear(); @@ -508,17 +528,7 @@ namespace CUERipper listMetadata.Visible = false; if (data.selectedRelease != null) { - bool various = data.selectedRelease.metadata.IsVarious(); - if (various) - { - Title.Width = 300; - columnHeaderArtist.Width = 120; - } - else - { - Title.Width = 300 + 120; - columnHeaderArtist.Width = 0; - } + columnHeaderArtist.Width = data.selectedRelease.metadata.IsVarious() ? 120 : 0; for (int i = 1; i <= selectedDriveInfo.drive.TOC.TrackCount; i++) { string title = "Data track"; @@ -544,7 +554,7 @@ namespace CUERipper if (data.selectedRelease != null) { PropertyDescriptorCollection props = TypeDescriptor.GetProperties(data.selectedRelease.metadata); - PropertyDescriptorCollection sortedprops = props.Sort(new string[] { "Artist", "Title", "Genre", "Year", "DiscNumber", "TotalDiscs" }); + PropertyDescriptorCollection sortedprops = props.Sort(new string[] { "Artist", "Title", "Genre", "Year", "DiscNumber", "TotalDiscs", "DiscName", "Label", "LabelNo", "Country", "ReleaseDate" }); foreach (PropertyDescriptor p in sortedprops) if (p.Name != "Tracks" && p.Name != "AlbumArt" && p.Name != "Id" && !p.Attributes.Contains(new System.Xml.Serialization.XmlIgnoreAttribute())) listMetadata.Items.Add(new ListViewItem(new string[] { p.GetValue(data.selectedRelease.metadata).ToString(), p.Name })); @@ -571,6 +581,8 @@ namespace CUERipper } } } + ResizeList(listTracks, Title); + ResizeList(listMetadata, columnHeaderValue); listTracks.EndUpdate(); listMetadata.EndUpdate(); @@ -658,7 +670,6 @@ namespace CUERipper cueSheet.UseAccurateRip(); General.SetCUELine(cueSheet.Attributes, "REM", "DISCID", AccurateRipVerify.CalculateCDDBId(audioSource.TOC), false); - General.SetCUELine(cueSheet.Attributes, "REM", "COMMENT", audioSource.RipperVersion, true); try { @@ -908,7 +919,10 @@ namespace CUERipper sw.Save("SecureMode", trackBarSecureMode.Value); sw.Save("OutputPathUseTemplates", bnComboBoxOutputFormat.Items.Count - OutputPathUseTemplates.Length); sw.Save("TestAndCopy", this.testAndCopy); - for (int iFormat = bnComboBoxOutputFormat.Items.Count - 1; iFormat >= OutputPathUseTemplates.Length; iFormat--) + var SizeIncrement = Size - MinimumSize; + sw.Save("WidthIncrement", SizeIncrement.Width); + sw.Save("HeightIncrement", SizeIncrement.Height); + for (int iFormat = bnComboBoxOutputFormat.Items.Count - 1; iFormat >= OutputPathUseTemplates.Length; iFormat--) sw.Save(string.Format("OutputPathUseTemplate{0}", iFormat - OutputPathUseTemplates.Length), bnComboBoxOutputFormat.Items[iFormat].ToString()); if (defaultDrive != null) @@ -1030,12 +1044,7 @@ namespace CUERipper } } - private void comboBoxOutputFormat_SelectedIndexChanged(object sender, EventArgs e) - { - comboBoxOutputFormat_TextUpdate(sender, e); - } - - private void comboBoxOutputFormat_TextUpdate(object sender, EventArgs e) + private void UpdateOutputPath() { if (selectedFormat == null) return; if (data.selectedRelease == null) @@ -1104,7 +1113,12 @@ namespace CUERipper data.Encoders.ResetBindings(); bnComboBoxEncoder.SelectedItem = select; - comboBoxOutputFormat_TextUpdate(sender, e); + UpdateOutputPath(); + } + + private void bnComboBoxImage_SelectedValueChanged(object sender, EventArgs e) + { + UpdateOutputPath(); } private void bnComboBoxLosslessOrNot_SelectedValueChanged(object sender, EventArgs e) @@ -1152,7 +1166,7 @@ namespace CUERipper private void bnComboBoxOutputFormat_TextChanged(object sender, EventArgs e) { - comboBoxOutputFormat_TextUpdate(sender, e); + UpdateOutputPath(); } private void txtOutputPath_Enter(object sender, EventArgs e) @@ -1288,7 +1302,7 @@ namespace CUERipper data.selectedRelease.metadata.FreedbToEncoding(); UpdateRelease(); data.Releases.ResetItem(bnComboBoxRelease.SelectedIndex); - comboBoxOutputFormat_TextUpdate(sender, e); + UpdateOutputPath(); SetupControls(); } @@ -1543,6 +1557,12 @@ namespace CUERipper { this.testAndCopy = checkBoxTestAndCopy.Checked; } + + private void frmCUERipper_ClientSizeChanged(object sender, EventArgs e) + { + ResizeList(listTracks, Title); + ResizeList(listMetadata, columnHeaderValue); + } } internal class BackgroundWorkerArtworkArgs diff --git a/CUERipper/frmCUERipper.resx b/CUERipper/frmCUERipper.resx index f94fad6..e87deca 100644 --- a/CUERipper/frmCUERipper.resx +++ b/CUERipper/frmCUERipper.resx @@ -122,7 +122,7 @@ - 473, 20 + 487, 20 MiddleLeft @@ -174,10 +174,10 @@ toolStripStatusAr - 0, 469 + 0, 424 - 650, 25 + 664, 25 @@ -196,11 +196,7 @@ $this - 15 - - - - Top, Left, Right + 1 1 @@ -238,11 +234,15 @@ 70 + + + Fill + - 7, 87 + 0, 0 - 630, 220 + 656, 158 7 @@ -260,10 +260,10 @@ System.Windows.Forms.ListView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - $this + panel4 - 14 + 0 Top, Left, Right @@ -362,7 +362,7 @@ 1 - 257, 20 + 271, 20 54, 20 @@ -392,7 +392,7 @@ NoControl - 189, 22 + 203, 22 62, 13 @@ -419,7 +419,7 @@ True - 192, 48 + 206, 48 83, 17 @@ -452,7 +452,7 @@ 6, 19 - 80, 21 + 82, 21 0 @@ -476,10 +476,10 @@ 1217, 56 - 92, 46 + 94, 46 - 80, 21 + 101, 21 3 @@ -503,7 +503,7 @@ NoControl - 195, 103 + 209, 103 109, 18 @@ -530,10 +530,10 @@ 1045, 56 - 92, 19 + 94, 19 - 80, 21 + 101, 21 2 @@ -599,7 +599,7 @@ 6, 46 - 80, 21 + 82, 21 1 @@ -629,7 +629,7 @@ NoControl - 143, 106 + 166, 106 0, 0, 0, 0 @@ -665,13 +665,13 @@ NoControl - 12, 106 + 6, 106 0, 0, 0, 0 - 167, 15 + 189, 15 31 @@ -704,7 +704,7 @@ 0, 0, 0, 0 - 166, 45 + 189, 45 4 @@ -725,7 +725,7 @@ NoControl - 184, 76 + 198, 76 127, 45 @@ -745,11 +745,14 @@ 10 + + Left + - 6, 332 + 0, 0 - 320, 134 + 339, 136 11 @@ -761,10 +764,10 @@ System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - $this + panel2 - 13 + 2 882, 56 @@ -777,7 +780,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABy - CQAAAk1TRnQBSQFMAgEBBAEAAYwBAAGMAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + CQAAAk1TRnQBSQFMAgEBBAEAAYwBAQGMAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA @@ -851,7 +854,7 @@ progressBarErrors - ProgressODoom.ProgressBarEx, ProgressODoom, Version=1.0.4313.32741, Culture=neutral, PublicKeyToken=null + ProgressODoom.ProgressBarEx, ProgressODoom, Version=1.0.4486.36018, Culture=neutral, PublicKeyToken=null panel1 @@ -878,7 +881,7 @@ progressBarCD - ProgressODoom.ProgressBarEx, ProgressODoom, Version=1.0.4313.32741, Culture=neutral, PublicKeyToken=null + ProgressODoom.ProgressBarEx, ProgressODoom, Version=1.0.4486.36018, Culture=neutral, PublicKeyToken=null panel1 @@ -886,14 +889,14 @@ 3 - - Top, Left, Right + + Fill - 5, 312 + 0, 4 - 633, 20 + 656, 20 10 @@ -908,10 +911,10 @@ System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - $this + panel5 - 16 + 1 Top, Left, Right @@ -927,7 +930,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADy - EAAAAk1TRnQBSQFMAgEBCgEAAYwBAAGMAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + EAAAAk1TRnQBSQFMAgEBCgEAAYwBAQGMAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAATADAAEBAQABCAYAAQwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA @@ -1003,10 +1006,10 @@ - 6, 33 + 0, 28 - 632, 21 + 656, 21 1 @@ -1021,19 +1024,19 @@ CUEControls.ImgComboBox, CUEControls, Version=2.1.4.0, Culture=neutral, PublicKeyToken=null - $this + panel3 - 10 + 1 Top, Left, Right - 6, 6 + 0, 0 - 632, 21 + 656, 21 0 @@ -1048,19 +1051,19 @@ CUEControls.ImgComboBox, CUEControls, Version=2.1.4.0, Culture=neutral, PublicKeyToken=null - $this + panel3 - 11 + 0 - - Top, Left, Right + + Fill - 5, 312 + 0, 4 - 633, 21 + 656, 21 9 @@ -1075,13 +1078,10 @@ CUEControls.ImgComboBox, CUEControls, Version=2.1.4.0, Culture=neutral, PublicKeyToken=null - $this + panel5 - 12 - - - Top, Left, Right + 0 1 @@ -1101,11 +1101,14 @@ 140 + + Fill + - 7, 87 + 0, 0 - 630, 220 + 656, 158 8 @@ -1120,10 +1123,10 @@ System.Windows.Forms.ListView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - $this + panel4 - 17 + 1 Flat @@ -1135,7 +1138,7 @@ NoControl - 595, 64 + 594, 61 19, 17 @@ -1153,13 +1156,13 @@ System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - $this + panel3 - 8 + 5 - 7, 60 + 6, 57 80, 23 @@ -1180,16 +1183,16 @@ System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - $this + panel3 - 6 + 9 NoControl - 183, 60 + 182, 57 80, 23 @@ -1210,16 +1213,16 @@ System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - $this + panel3 - 9 + 3 NoControl - 95, 60 + 94, 57 80, 23 @@ -1240,7 +1243,7 @@ System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - $this + panel3 7 @@ -1249,7 +1252,7 @@ NoControl - 271, 60 + 270, 57 80, 23 @@ -1270,16 +1273,16 @@ System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - $this + panel3 - 5 + 8 NoControl - 7, 60 + 6, 57 80, 23 @@ -1303,16 +1306,16 @@ System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - $this + panel3 - 4 + 6 NoControl - 357, 60 + 356, 57 80, 23 @@ -1333,19 +1336,19 @@ System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - $this + panel3 - 3 + 4 - - Top, Right + + Right - 462, 339 + 480, 0 - 176, 125 + 176, 136 42 @@ -1357,16 +1360,19 @@ System.Windows.Forms.Panel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - $this + panel2 - 2 + 1 + + + Fill - 332, 339 + 5, 5 - 125, 125 + 131, 126 Zoom @@ -1381,10 +1387,10 @@ System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - $this + panel7 - 1 + 0 1148, 17 @@ -1393,7 +1399,7 @@ NoControl - 443, 60 + 442, 57 80, 23 @@ -1414,9 +1420,165 @@ System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - $this + panel3 + 2 + + + Fill + + + 339, 0 + + + 5, 5, 5, 5 + + + 141, 136 + + + 44 + + + panel7 + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panel2 + + + 0 + + + Bottom + + + 4, 284 + + + 656, 136 + + + 45 + + + panel2 + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panel6 + + + 2 + + + Top + + + 4, 4 + + + 0, 0, 0, 0 + + + 656, 90 + + + 46 + + + panel3 + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panel6 + + + 3 + + + Fill + + + 4, 94 + + + 656, 158 + + + 47 + + + panel4 + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panel6 + + + 0 + + + Bottom + + + 4, 252 + + + 0, 4, 0, 0 + + + 656, 32 + + + 48 + + + panel5 + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panel6 + + + 1 + + + Fill + + + 0, 0 + + + 4, 4, 4, 4 + + + 664, 424 + + + 49 + + + panel6 + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + 0 @@ -1429,7 +1591,7 @@ 6, 13 - 650, 494 + 664, 449 @@ -1828,6 +1990,9 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAQAAwAMAAPAPAAA= + + 680, 487 + CenterScreen @@ -1952,31 +2117,31 @@ plainBackgroundPainter1 - ProgressODoom.PlainBackgroundPainter, ProgressODoom, Version=1.0.4313.32741, Culture=neutral, PublicKeyToken=null + ProgressODoom.PlainBackgroundPainter, ProgressODoom, Version=1.0.4486.36018, Culture=neutral, PublicKeyToken=null styledBorderPainter1 - ProgressODoom.StyledBorderPainter, ProgressODoom, Version=1.0.4313.32741, Culture=neutral, PublicKeyToken=null + ProgressODoom.StyledBorderPainter, ProgressODoom, Version=1.0.4486.36018, Culture=neutral, PublicKeyToken=null plainProgressPainter1 - ProgressODoom.PlainProgressPainter, ProgressODoom, Version=1.0.4313.32741, Culture=neutral, PublicKeyToken=null + ProgressODoom.PlainProgressPainter, ProgressODoom, Version=1.0.4486.36018, Culture=neutral, PublicKeyToken=null gradientGlossPainter1 - ProgressODoom.GradientGlossPainter, ProgressODoom, Version=1.0.4313.32741, Culture=neutral, PublicKeyToken=null + ProgressODoom.GradientGlossPainter, ProgressODoom, Version=1.0.4486.36018, Culture=neutral, PublicKeyToken=null plainProgressPainter2 - ProgressODoom.PlainProgressPainter, ProgressODoom, Version=1.0.4313.32741, Culture=neutral, PublicKeyToken=null + ProgressODoom.PlainProgressPainter, ProgressODoom, Version=1.0.4486.36018, Culture=neutral, PublicKeyToken=null toolTip1 diff --git a/CUETools.CTDB/CTDBResponseMeta.cs b/CUETools.CTDB/CTDBResponseMeta.cs index 888555b..0a6c2bc 100644 --- a/CUETools.CTDB/CTDBResponseMeta.cs +++ b/CUETools.CTDB/CTDBResponseMeta.cs @@ -60,7 +60,7 @@ namespace CUETools.CTDB public string year { get; set; } [XmlAttribute] public string genre { get; set; } - [XmlAttribute] + [XmlElement] public string extra { get; set; } [XmlAttribute] public string country { get; set; } diff --git a/CUETools.CTDB/CTDBResponseMetaTrack.cs b/CUETools.CTDB/CTDBResponseMetaTrack.cs index a9f55b9..2c6e553 100644 --- a/CUETools.CTDB/CTDBResponseMetaTrack.cs +++ b/CUETools.CTDB/CTDBResponseMetaTrack.cs @@ -21,7 +21,7 @@ namespace CUETools.CTDB public string name { get; set; } [XmlAttribute] public string artist { get; set; } - [XmlAttribute] + [XmlElement] public string extra { get; set; } } } diff --git a/CUETools.Codecs.ALAC/ALACWriter.cs b/CUETools.Codecs.ALAC/ALACWriter.cs index aaadc78..9fdc77b 100644 --- a/CUETools.Codecs.ALAC/ALACWriter.cs +++ b/CUETools.Codecs.ALAC/ALACWriter.cs @@ -1304,7 +1304,7 @@ namespace CUETools.Codecs.ALAC } } - string vendor_string = "CUETools.2.05"; + string vendor_string = "CUETools 2.1.4"; int select_blocksize(int samplerate, int time_ms) { diff --git a/CUETools.Codecs.HDCD/CUETools.Codecs.HDCD.csproj b/CUETools.Codecs.HDCD/CUETools.Codecs.HDCD.csproj index c43084b..3633790 100644 --- a/CUETools.Codecs.HDCD/CUETools.Codecs.HDCD.csproj +++ b/CUETools.Codecs.HDCD/CUETools.Codecs.HDCD.csproj @@ -46,7 +46,7 @@ pdbonly true - ..\bin\Release\plugins\ + ..\bin\Release\plugins %28Win32%29\ TRACE prompt 4 diff --git a/CUETools.Codecs.LAME/LAMEEncoderCBR.cs b/CUETools.Codecs.LAME/LAMEEncoderCBR.cs index 8ea8d1d..9dedaef 100644 --- a/CUETools.Codecs.LAME/LAMEEncoderCBR.cs +++ b/CUETools.Codecs.LAME/LAMEEncoderCBR.cs @@ -4,7 +4,7 @@ using CUETools.Codecs.LAME.Interop; namespace CUETools.Codecs.LAME { - [AudioEncoderClass("lame CBR", "mp3", false, "96 128 192 256 320", "256", 2, typeof(LAMEEncoderCBRSettings))] + //[AudioEncoderClass("lame CBR", "mp3", false, "96 128 192 256 320", "256", 2, typeof(LAMEEncoderCBRSettings))] public class LAMEEncoderCBR : LAMEEncoder { private static readonly uint[] bps_table = new uint[] { 96, 128, 192, 256, 320 }; diff --git a/CUETools.Codecs.LAME/LAMEEncoderVBR.cs b/CUETools.Codecs.LAME/LAMEEncoderVBR.cs index 30a4e07..0732ef2 100644 --- a/CUETools.Codecs.LAME/LAMEEncoderVBR.cs +++ b/CUETools.Codecs.LAME/LAMEEncoderVBR.cs @@ -4,7 +4,7 @@ using CUETools.Codecs.LAME.Interop; namespace CUETools.Codecs.LAME { - [AudioEncoderClass("lame VBR", "mp3", false, "V9 V8 V7 V6 V5 V4 V3 V2 V1 V0", "V2", 2, typeof(LAMEEncoderVBRSettings))] + //[AudioEncoderClass("lame VBR", "mp3", false, "V9 V8 V7 V6 V5 V4 V3 V2 V1 V0", "V2", 2, typeof(LAMEEncoderVBRSettings))] public class LAMEEncoderVBR : LAMEEncoder { private int quality = 0; diff --git a/CUETools.Codecs.LAME/LameWriterCBR.cs b/CUETools.Codecs.LAME/LameWriterCBR.cs index bf73b06..8dd3038 100644 --- a/CUETools.Codecs.LAME/LameWriterCBR.cs +++ b/CUETools.Codecs.LAME/LameWriterCBR.cs @@ -3,7 +3,7 @@ using System.IO; namespace CUETools.Codecs.LAME { - [AudioEncoderClass("libmp3lame CBR", "mp3", false, "96 128 192 256 320", "256", 2, typeof(LameWriterCBRSettings))] + [AudioEncoderClass("CBR (libmp3lame)", "mp3", false, "96 128 192 256 320", "256", 1, typeof(LameWriterCBRSettings))] public class LameWriterCBR : LameWriter { private static readonly int[] bps_table = new int[] { 96, 128, 192, 256, 320 }; diff --git a/CUETools.Codecs.LAME/LameWriterVBR.cs b/CUETools.Codecs.LAME/LameWriterVBR.cs index bf93915..c97977e 100644 --- a/CUETools.Codecs.LAME/LameWriterVBR.cs +++ b/CUETools.Codecs.LAME/LameWriterVBR.cs @@ -3,7 +3,7 @@ using System.IO; namespace CUETools.Codecs.LAME { - [AudioEncoderClass("libmp3lame VBR", "mp3", false, "V9 V8 V7 V6 V5 V4 V3 V2 V1 V0", "V2", 2, typeof(LameWriterVBRSettings))] + [AudioEncoderClass("VBR (libmp3lame)", "mp3", false, "V9 V8 V7 V6 V5 V4 V3 V2 V1 V0", "V2", 2, typeof(LameWriterVBRSettings))] public class LameWriterVBR : LameWriter { private int quality = 0; diff --git a/CUETools.Processor/CUEConfig.cs b/CUETools.Processor/CUEConfig.cs index 1ece8a8..d63b37a 100644 --- a/CUETools.Processor/CUEConfig.cs +++ b/CUETools.Processor/CUEConfig.cs @@ -162,8 +162,8 @@ namespace CUETools.Processor encoders.Add(new CUEToolsUDC("flake", "flac", true, "0 1 2 3 4 5 6 7 8 9 10 11 12", "8", "flake.exe", "-%M - -o %O -p %P")); encoders.Add(new CUEToolsUDC("takc", "tak", true, "0 1 2 2e 2m 3 3e 3m 4 4e 4m", "2", "takc.exe", "-e -p%M -overwrite - %O")); encoders.Add(new CUEToolsUDC("ffmpeg alac", "m4a", true, "", "", "ffmpeg.exe", "-i - -f ipod -acodec alac -y %O")); - encoders.Add(new CUEToolsUDC("lame vbr", "mp3", false, "V9 V8 V7 V6 V5 V4 V3 V2 V1 V0", "V2", "lame.exe", "--vbr-new -%M - %O")); - encoders.Add(new CUEToolsUDC("lame cbr", "mp3", false, "96 128 192 256 320", "256", "lame.exe", "-m s -q 0 -b %M --noreplaygain - %O")); + encoders.Add(new CUEToolsUDC("VBR (lame.exe)", "mp3", false, "V9 V8 V7 V6 V5 V4 V3 V2 V1 V0", "V2", "lame.exe", "--vbr-new -%M - %O")); + encoders.Add(new CUEToolsUDC("CBR (lame.exe)", "mp3", false, "96 128 192 256 320", "256", "lame.exe", "-m s -q 0 -b %M --noreplaygain - %O")); encoders.Add(new CUEToolsUDC("oggenc", "ogg", false, "-1 -0.5 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8", "3", "oggenc.exe", "-q %M - -o %O")); encoders.Add(new CUEToolsUDC("nero aac", "m4a", false, "0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9", "0.4", "neroAacEnc.exe", "-q %M -if - -of %O")); encoders.Add(new CUEToolsUDC("qaac tvbr", "m4a", false, "10 20 30 40 50 60 70 80 90 100 110 127", "80", "qaac.exe", "-s -V %M -q 2 - -o %O")); @@ -539,9 +539,9 @@ return processor.Go(); CUEToolsFormat format; CUEToolsUDC udcLossless, udcLossy; if (encoderLossless == "" || !encoders.TryGetValue(encoderLossless, out udcLossless)) - udcLossless = null; + udcLossless = encoders.GetDefault(extension, true); if (encoderLossy == "" || !encoders.TryGetValue(encoderLossy, out udcLossy)) - udcLossy = null; + udcLossy = encoders.GetDefault(extension, false); if (!formats.TryGetValue(extension, out format)) formats.Add(extension, new CUEToolsFormat(extension, tagger, allowLossless, allowLossy, allowLossyWav, allowEmbed, false, udcLossless, udcLossy, decoder)); else diff --git a/CUETools.Processor/CUEConfigAdvanced.cs b/CUETools.Processor/CUEConfigAdvanced.cs index fa236c5..77d337d 100644 --- a/CUETools.Processor/CUEConfigAdvanced.cs +++ b/CUETools.Processor/CUEConfigAdvanced.cs @@ -81,5 +81,8 @@ namespace CUETools.Processor [DefaultValue(CTDBCoversSearch.Small), Category("CTDB"), DisplayName("Album art search")] public CTDBCoversSearch coversSearch { get; set; } + + [DefaultValue(false), Category("CTDB"), DisplayName("Detailed log")] + public bool DetailedCTDBLog { get; set; } } } diff --git a/CUETools.Processor/CUEMetadata.cs b/CUETools.Processor/CUEMetadata.cs index 90708ca..35de74e 100644 --- a/CUETools.Processor/CUEMetadata.cs +++ b/CUETools.Processor/CUEMetadata.cs @@ -16,13 +16,15 @@ namespace CUETools.Processor TotalDiscs = ""; DiscNumber = ""; DiscName = ""; - Year = ""; + Comment = ""; + Year = ""; Genre = ""; Artist = ""; Title = ""; Barcode = ""; ReleaseDate = ""; Label = ""; + LabelNo = ""; Country = ""; AlbumArt = new List(); Tracks = new List(); @@ -62,7 +64,9 @@ namespace CUETools.Processor public string DiscNumber { get; set; } [DefaultValue("")] public string DiscName { get; set; } - [DefaultValue("")] + [DefaultValue("")] + public string Comment { get; set; } + [DefaultValue("")] public string Year { get; set; } [DefaultValue("")] public string Genre { get; set; } @@ -76,7 +80,9 @@ namespace CUETools.Processor public string ReleaseDate { get; set; } [DefaultValue("")] public string Label { get; set; } - [DefaultValue("")] + [DefaultValue("")] + public string LabelNo { get; set; } + [DefaultValue("")] public string Country { get; set; } public List Tracks { get; set; } @@ -103,15 +109,24 @@ namespace CUETools.Processor } } + [XmlIgnore] + public string LabelAndNumber + { + get + { + return Label + (Label != "" && LabelNo != "" ? " " : "") + LabelNo; + } + } + [XmlIgnore] public string ReleaseDateAndLabel { get { - return Label == "" && ReleaseDate == "" && Country == "" ? "" - : Country - + (Country != "" && Label != "" ? " - " : "") + Label - + (Label + Country != "" && ReleaseDate != "" ? " - " : "") + ReleaseDate; + return LabelAndNumber == "" && ReleaseDate == "" && Country == "" ? "" + : Country + + (Country != "" && LabelAndNumber != "" ? " - " : "") + LabelAndNumber + + (LabelAndNumber + Country != "" && ReleaseDate != "" ? " - " : "") + ReleaseDate; } } @@ -145,19 +160,22 @@ namespace CUETools.Processor if ((overwrite || TotalDiscs == "") && metadata.TotalDiscs != "") TotalDiscs = metadata.TotalDiscs; if ((overwrite || DiscNumber == "") && metadata.DiscNumber != "") DiscNumber = metadata.DiscNumber; if ((overwrite || DiscName == "") && metadata.DiscName != "") DiscName = metadata.DiscName; - if ((overwrite || Year == "") && metadata.Year != "") Year = metadata.Year; + if ((overwrite || Comment == "") && metadata.Comment != "") Comment = metadata.Comment; + if ((overwrite || Year == "") && metadata.Year != "") Year = metadata.Year; if ((overwrite || Genre == "") && metadata.Genre != "") Genre = metadata.Genre; if ((overwrite || Artist == "") && metadata.Artist != "") Artist = metadata.Artist; if ((overwrite || Title == "") && metadata.Title != "") Title = metadata.Title; if ((overwrite || Barcode == "") && metadata.Barcode != "") Barcode = metadata.Barcode; if ((overwrite || ReleaseDate == "") && metadata.ReleaseDate != "") ReleaseDate = metadata.ReleaseDate; if ((overwrite || Label == "") && metadata.Label != "") Label = metadata.Label; + if ((overwrite || LabelNo == "") && metadata.LabelNo != "") LabelNo = metadata.LabelNo; if ((overwrite || Country == "") && metadata.Country != "") Country = metadata.Country; if ((overwrite || AlbumArt.Count == 0) && metadata.AlbumArt.Count != 0) AlbumArt = metadata.AlbumArt; for (int i = 0; i < Tracks.Count; i++) { if ((overwrite || Tracks[i].Title == "") && metadata.Tracks[i].Title != "") Tracks[i].Title = metadata.Tracks[i].Title; if ((overwrite || Tracks[i].Artist == "") && metadata.Tracks[i].Artist != "") Tracks[i].Artist = metadata.Tracks[i].Artist; + if ((overwrite || Tracks[i].Comment == "") && metadata.Tracks[i].Artist != "") Tracks[i].Comment = metadata.Tracks[i].Comment; if ((overwrite || Tracks[i].ISRC == "") && metadata.Tracks[i].ISRC != "") Tracks[i].ISRC = metadata.Tracks[i].ISRC; } } @@ -175,6 +193,7 @@ namespace CUETools.Processor if (TotalDiscs != metadata.TotalDiscs || DiscNumber != metadata.DiscNumber || DiscName != metadata.DiscName || + Comment != metadata.Comment || Year != metadata.Year || Genre != metadata.Genre || Artist != metadata.Artist || @@ -182,6 +201,7 @@ namespace CUETools.Processor Barcode != metadata.Barcode || ReleaseDate != metadata.ReleaseDate || Label != metadata.Label || + LabelNo != metadata.LabelNo || Country != metadata.Country || Tracks.Count != metadata.Tracks.Count ) @@ -189,6 +209,7 @@ namespace CUETools.Processor for (int i = 0; i < Tracks.Count; i++) if (Tracks[i].Title != metadata.Tracks[i].Title || Tracks[i].Artist != metadata.Tracks[i].Artist || + Tracks[i].Comment != metadata.Tracks[i].Comment || Tracks[i].ISRC != metadata.Tracks[i].ISRC) return false; return true; @@ -208,6 +229,7 @@ namespace CUETools.Processor TotalDiscs = metadata.TotalDiscs; DiscNumber = metadata.DiscNumber; DiscName = metadata.DiscName; + Comment = metadata.Comment; Year = metadata.Year; Genre = metadata.Genre; Artist = metadata.Artist; @@ -216,11 +238,13 @@ namespace CUETools.Processor ReleaseDate = metadata.ReleaseDate; Country = metadata.Country; Label = metadata.Label; + LabelNo = metadata.LabelNo; AlbumArt = metadata.AlbumArt; for (int i = 0; i < Tracks.Count; i++) { Tracks[i].Title = metadata.Tracks[i].Title; Tracks[i].Artist = metadata.Tracks[i].Artist; + Tracks[i].Comment = metadata.Tracks[i].Comment; Tracks[i].ISRC = metadata.Tracks[i].ISRC; } } @@ -231,10 +255,12 @@ namespace CUETools.Processor Genre = cdEntry.Genre; Artist = cdEntry.Artist; Title = cdEntry.Title; + Comment = cdEntry.ExtendedData; for (int i = 0; i < Tracks.Count; i++) { Tracks[i].Title = cdEntry.Tracks[i + firstAudio].Title; Tracks[i].Artist = cdEntry.Artist; + Tracks[i].Comment = cdEntry.ExtendedData; } } @@ -247,14 +273,32 @@ namespace CUETools.Processor this.DiscNumber = cdEntry.discnumber ?? ""; this.TotalDiscs = cdEntry.disccount ?? ""; this.DiscName = cdEntry.discname ?? ""; + this.Comment = cdEntry.extra ?? ""; this.Barcode = cdEntry.barcode ?? ""; this.ReleaseDate = cdEntry.releasedate ?? ""; this.Country = cdEntry.country ?? ""; this.Genre = cdEntry.genre ?? ""; this.Label = ""; - if (cdEntry.label != null) + this.LabelNo = ""; + if (cdEntry.label != null && cdEntry.label.Length > 0) + { + var listLabel = new List(); + var listLabelNo = new List(); foreach (var l in cdEntry.label) - this.Label = (this.Label == "" ? "" : this.Label + ": ") + (l.name ?? "") + (l.name != null && l.catno != null ? " " : "") + (l.catno ?? ""); + { + listLabel.Add(l.name ?? ""); + listLabelNo.Add(l.catno?? ""); + } + + if (listLabel.Find(s => s != listLabel[0]) == null) + this.Label = listLabel[0]; + else + this.Label = string.Join(";", listLabel.ToArray()); + if (listLabelNo.Find(s => s != listLabelNo[0]) == null) + this.LabelNo = listLabelNo[0]; + else + this.LabelNo = string.Join(";", listLabelNo.ToArray()); + } this.AlbumArt.Clear(); if (cdEntry.coverart != null) this.AlbumArt.AddRange(cdEntry.coverart); @@ -266,6 +310,7 @@ namespace CUETools.Processor { this.Tracks[i].Title = cdEntry.track[i + firstAudio].name ?? ""; this.Tracks[i].Artist = cdEntry.track[i + firstAudio].artist ?? cdEntry.artist ?? ""; + this.Tracks[i].Comment = cdEntry.track[i + firstAudio].extra ?? ""; } } } @@ -293,10 +338,12 @@ namespace CUETools.Processor bool error = false; Artist = FreedbToEncoding(iso, def, ref different, ref error, Artist); Title = FreedbToEncoding(iso, def, ref different, ref error, Title); + Comment = FreedbToEncoding(iso, def, ref different, ref error, Comment); for (int i = 0; i < Tracks.Count; i++) { Tracks[i].Artist = FreedbToEncoding(iso, def, ref different, ref error, Tracks[i].Artist); Tracks[i].Title = FreedbToEncoding(iso, def, ref different, ref error, Tracks[i].Title); + Tracks[i].Comment = FreedbToEncoding(iso, def, ref different, ref error, Tracks[i].Comment); } return different && !error; } diff --git a/CUETools.Processor/CUESheet.cs b/CUETools.Processor/CUESheet.cs index 3bb107f..c21a6bd 100644 --- a/CUETools.Processor/CUESheet.cs +++ b/CUETools.Processor/CUESheet.cs @@ -1360,7 +1360,7 @@ namespace CUETools.Processor { if (line.Params.Count > 2 && !line.IsQuoted[1] && (line.Params[0].ToUpper() == "TITLE" || line.Params[0].ToUpper() == "ARTIST" || - (line.Params[0].ToUpper() == "REM" && line.Params[1].ToUpper() == "GENRE" && line.Params.Count > 3 && !line.IsQuoted[2]))) + (line.Params[0].ToUpper() == "REM" && (line.Params[1].ToUpper() == "GENRE" || line.Params[1].ToUpper() == "COMMENT") && line.Params.Count > 3 && !line.IsQuoted[2]))) { CUELine modline = new CUELine(); int nParams = line.Params[0].ToUpper() == "REM" ? 2 : 1; @@ -1452,8 +1452,14 @@ namespace CUETools.Processor taglibMetadata.Title = GetCommonTag(file => file.Tag.Album) ?? ""; taglibMetadata.Year = GetCommonTag(file => file.Tag.Year != 0 ? file.Tag.Year.ToString() : null) ?? ""; taglibMetadata.Genre = GetCommonTag(file => file.Tag.JoinedGenres) ?? ""; + taglibMetadata.Comment = GetCommonTag(file => file.Tag.Comment) ?? ""; taglibMetadata.TotalDiscs = GetCommonTag(file => file.Tag.DiscCount != 0 ? file.Tag.DiscCount.ToString() : null) ?? ""; taglibMetadata.DiscNumber = GetCommonTag(file => file.Tag.Disc != 0 ? file.Tag.Disc.ToString() : null) ?? ""; + taglibMetadata.ReleaseDate = GetCommonTag(file => file.Tag.ReleaseDate) ?? ""; + taglibMetadata.Country = GetCommonTag(file => file.Tag.MusicBrainzReleaseCountry) ?? ""; + taglibMetadata.Label = GetCommonTag(file => file.Tag.Publisher) ?? ""; + taglibMetadata.LabelNo = GetCommonTag(file => file.Tag.CatalogNo) ?? ""; + taglibMetadata.DiscName = GetCommonTag(file => file.Tag.DiscSubtitle) ?? ""; for (i = 0; i < TrackCount; i++) { TrackInfo track = _tracks[i]; @@ -1463,7 +1469,10 @@ namespace CUETools.Processor taglibMetadata.Tracks[i].Title = (_hasTrackFilenames && track._fileInfo != null ? track._fileInfo.Tag.Title : _hasEmbeddedCUESheet && _fileInfo != null ? Tagging.TagListToSingleValue(Tagging.GetMiscTag(_fileInfo, String.Format("cue_track{0:00}_TITLE", i + 1))) : null) ?? ""; - } + taglibMetadata.Tracks[i].Comment = (_hasTrackFilenames && track._fileInfo != null ? track._fileInfo.Tag.Title : + _hasEmbeddedCUESheet && _fileInfo != null ? Tagging.TagListToSingleValue(Tagging.GetMiscTag(_fileInfo, String.Format("cue_track{0:00}_COMMENT", i + 1))) : + null) ?? ""; + } cueMetadata = new CUEMetadata(TOC.TOCID, (int)TOC.AudioTracks); cueMetadata.Artist = General.GetCUELine(_attributes, "PERFORMER"); @@ -1473,6 +1482,12 @@ namespace CUETools.Processor cueMetadata.DiscNumber = General.GetCUELine(_attributes, "REM", "DISCNUMBER"); cueMetadata.TotalDiscs = General.GetCUELine(_attributes, "REM", "TOTALDISCS"); cueMetadata.Genre = General.GetCUELine(_attributes, "REM", "GENRE"); + cueMetadata.Comment = General.GetCUELine(_attributes, "REM", "COMMENT"); + cueMetadata.ReleaseDate = General.GetCUELine(_attributes, "REM", "RELEASEDATE"); + cueMetadata.Country = General.GetCUELine(_attributes, "REM", "COUNTRY"); + cueMetadata.Label = General.GetCUELine(_attributes, "REM", "LABEL"); + cueMetadata.LabelNo = General.GetCUELine(_attributes, "REM", "CATALOGNUMBER"); + cueMetadata.DiscName = General.GetCUELine(_attributes, "REM", "DISCSUBTITLE"); for (i = 0; i < Tracks.Count; i++) { cueMetadata.Tracks[i].Artist = General.GetCUELine(Tracks[i].Attributes, "PERFORMER"); @@ -1962,8 +1977,10 @@ namespace CUETools.Processor if (cueSheet != null) { vars.Add("year", General.EmptyStringToNull(_config.CleanseString(cueSheet.Metadata.Year))); - vars.Add("catalog", General.EmptyStringToNull(_config.CleanseString(cueSheet.Metadata.Barcode))); + vars.Add("barcode", General.EmptyStringToNull(_config.CleanseString(cueSheet.Metadata.Barcode))); vars.Add("label", General.EmptyStringToNull(_config.CleanseString(cueSheet.Metadata.Label))); + vars.Add("labelno", General.EmptyStringToNull(_config.CleanseString(cueSheet.Metadata.LabelNo))); + vars.Add("labelandnumber", General.EmptyStringToNull(_config.CleanseString(cueSheet.Metadata.LabelAndNumber))); vars.Add("country", General.EmptyStringToNull(_config.CleanseString(cueSheet.Metadata.Country))); vars.Add("releasedate", General.EmptyStringToNull(_config.CleanseString(cueSheet.Metadata.ReleaseDate))); vars.Add("discname", General.EmptyStringToNull(_config.CleanseString(cueSheet.Metadata.DiscName))); @@ -1985,14 +2002,14 @@ namespace CUETools.Processor vars.Add("unique", null); string outputPath = ""; - for (int maxLen = 260; maxLen >= 16; maxLen--) + for (int maxLen = 255; maxLen >= 8; maxLen--) { outputPath = General.ReplaceMultiple(format, vars, "unique", pathOut => File.Exists(Path.ChangeExtension(pathOut, ext)), maxLen); if (outputPath == "" || outputPath == null) return ""; try { outputPath = Path.ChangeExtension(outputPath, ext); } catch { return ""; } - if (outputPath.Length < 260) + if (outputPath.Length < 255) return outputPath; } return outputPath; @@ -2035,8 +2052,18 @@ namespace CUETools.Processor extension = ".20bit" + extension; } - ArLogFileName = General.ReplaceMultiple(_config.ArLogFilenameFormat, vars, "unique", CheckIfFileExists, -1) - ?? vars["%filename%"] + ".accurip"; + for (int maxLen = 255; maxLen >= 8; maxLen--) + { + ArLogFileName = General.ReplaceMultiple(_config.ArLogFilenameFormat, vars, "unique", CheckIfFileExists, maxLen); + if (ArLogFileName == "" || ArLogFileName == null) + { + ArLogFileName = "ar.log"; + break; + } + if (Path.Combine(OutputDir, ArLogFileName).Length < 255) + break; + } + AlArtFileName = General.ReplaceMultiple(_config.AlArtFilenameFormat, vars, "unique", CheckIfFileExists, -1) ?? "folder.jpg"; @@ -2071,7 +2098,7 @@ namespace CUETools.Processor vars["title"] = General.EmptyStringToNull(_config.CleanseString(title)); filename = ""; - for (int maxLen = 260; maxLen >= 16; maxLen--) + for (int maxLen = 255; maxLen >= 8; maxLen--) { filename = General.ReplaceMultiple(_config.trackFilenameFormat, vars, maxLen); if (filename == "" || filename == null) @@ -2287,6 +2314,7 @@ namespace CUETools.Processor General.SetCUELine(_attributes, "REM", "DISCNUMBER", Metadata.DiscNumber, false); General.SetCUELine(_attributes, "REM", "TOTALDISCS", Metadata.TotalDiscs, false); General.SetCUELine(_attributes, "REM", "GENRE", Metadata.Genre, true); + General.SetCUELine(_attributes, "REM", "COMMENT", Metadata.Comment, true); for (i = 0; i < Tracks.Count; i++) { General.SetCUELine(Tracks[i].Attributes, "PERFORMER", Metadata.Tracks[i].Artist, true); @@ -2358,7 +2386,7 @@ namespace CUETools.Processor return; if (_CUEToolsDB.SubStatus != null) sw.WriteLine("CUETools DB: {0}.", _CUEToolsDB.SubStatus); - _CUEToolsDB.GenerateLog(sw, true); + _CUEToolsDB.GenerateLog(sw, _config.advanced.DetailedCTDBLog); } public string GenerateAccurateRipStatus() @@ -2627,7 +2655,19 @@ namespace CUETools.Processor fileInfo.Tag.Disc = temp; if (fileInfo.Tag.Year == 0 && Metadata.Year != "" && uint.TryParse(Metadata.Year, out temp)) fileInfo.Tag.Year = temp; - } + if (fileInfo.Tag.Comment == null && Metadata.Comment != "") + fileInfo.Tag.Comment = Metadata.Comment; + if (fileInfo.Tag.ReleaseDate == null && Metadata.ReleaseDate != "") + fileInfo.Tag.ReleaseDate = Metadata.ReleaseDate; + if (fileInfo.Tag.MusicBrainzReleaseCountry == null && Metadata.Country != "") + fileInfo.Tag.MusicBrainzReleaseCountry = Metadata.Country; + if (fileInfo.Tag.Publisher == null && Metadata.Label != "") + fileInfo.Tag.Publisher = Metadata.Label; + if (fileInfo.Tag.CatalogNo == null && Metadata.LabelNo != "") + fileInfo.Tag.CatalogNo = Metadata.LabelNo; + if (fileInfo.Tag.DiscSubtitle == null && Metadata.DiscName != "") + fileInfo.Tag.DiscSubtitle = Metadata.DiscName; + } // fill up missing information from tags if (_config.copyBasicTags && sourceFileInfo != null) @@ -2647,7 +2687,19 @@ namespace CUETools.Processor fileInfo.Tag.Genres = sourceFileInfo.Tag.Genres; if (fileInfo.Tag.Year == 0) fileInfo.Tag.Year = sourceFileInfo.Tag.Year; - } + if (fileInfo.Tag.Comment == null) + fileInfo.Tag.Comment = sourceFileInfo.Tag.Comment; + if (fileInfo.Tag.ReleaseDate == null) + fileInfo.Tag.ReleaseDate = sourceFileInfo.Tag.ReleaseDate; + if (fileInfo.Tag.MusicBrainzReleaseCountry == null) + fileInfo.Tag.MusicBrainzReleaseCountry = sourceFileInfo.Tag.MusicBrainzReleaseCountry; + if (fileInfo.Tag.Publisher == null) + fileInfo.Tag.Publisher = sourceFileInfo.Tag.Publisher; + if (fileInfo.Tag.CatalogNo == null) + fileInfo.Tag.CatalogNo = sourceFileInfo.Tag.CatalogNo; + if (fileInfo.Tag.DiscSubtitle == null) + fileInfo.Tag.DiscSubtitle = sourceFileInfo.Tag.DiscSubtitle; + } if ((_config.embedAlbumArt || _config.CopyAlbumArt) && _albumArt.Count > 0) fileInfo.Tag.Pictures = _albumArt.ToArray(); @@ -2694,7 +2746,19 @@ namespace CUETools.Processor fileInfo.Tag.Disc = temp; if (fileInfo.Tag.Year == 0 && Metadata.Year != "" && uint.TryParse(Metadata.Year, out temp)) fileInfo.Tag.Year = temp; - } + if (fileInfo.Tag.Comment == null && Metadata.Comment != "") + fileInfo.Tag.Comment = Metadata.Comment; + if (fileInfo.Tag.ReleaseDate == null && Metadata.ReleaseDate != "") + fileInfo.Tag.ReleaseDate = Metadata.ReleaseDate; + if (fileInfo.Tag.MusicBrainzReleaseCountry == null && Metadata.Country != "") + fileInfo.Tag.MusicBrainzReleaseCountry = Metadata.Country; + if (fileInfo.Tag.Publisher == null && Metadata.Label != "") + fileInfo.Tag.Publisher = Metadata.Label; + if (fileInfo.Tag.CatalogNo == null && Metadata.LabelNo != "") + fileInfo.Tag.CatalogNo = Metadata.LabelNo; + if (fileInfo.Tag.DiscSubtitle == null && Metadata.DiscName != "") + fileInfo.Tag.DiscSubtitle = Metadata.DiscName; + } if (_config.copyBasicTags && sourceFileInfo != null) { @@ -2714,7 +2778,19 @@ namespace CUETools.Processor fileInfo.Tag.Year = sourceFileInfo.Tag.Year; if (fileInfo.Tag.Genres.Length == 0) fileInfo.Tag.Genres = sourceFileInfo.Tag.Genres; - } + if (fileInfo.Tag.Comment == null) + fileInfo.Tag.Comment = sourceFileInfo.Tag.Comment; + if (fileInfo.Tag.ReleaseDate == null) + fileInfo.Tag.ReleaseDate = sourceFileInfo.Tag.ReleaseDate; + if (fileInfo.Tag.MusicBrainzReleaseCountry == null) + fileInfo.Tag.MusicBrainzReleaseCountry = sourceFileInfo.Tag.MusicBrainzReleaseCountry; + if (fileInfo.Tag.Publisher == null) + fileInfo.Tag.Publisher = sourceFileInfo.Tag.Publisher; + if (fileInfo.Tag.CatalogNo == null) + fileInfo.Tag.CatalogNo = sourceFileInfo.Tag.CatalogNo; + if (fileInfo.Tag.DiscSubtitle == null) + fileInfo.Tag.DiscSubtitle = sourceFileInfo.Tag.DiscSubtitle; + } if ((_config.embedAlbumArt || _config.CopyAlbumArt) && _albumArt.Count > 0) fileInfo.Tag.Pictures = _albumArt.ToArray(); @@ -3003,6 +3079,7 @@ namespace CUETools.Processor destTags.Remove("ALBUM ARTIST"); destTags.Remove("DATE"); destTags.Remove("GENRE"); + destTags.Remove("COMMENT"); destTags.Remove("TRACKNUMBER"); destTags.Remove("TRACKTOTAL"); destTags.Remove("TOTALTRACKS"); @@ -3074,6 +3151,7 @@ namespace CUETools.Processor destTags.Remove("ALBUM ARTIST"); destTags.Remove("DATE"); destTags.Remove("GENRE"); + destTags.Remove("COMMENT"); destTags.Remove("TRACKNUMBER"); destTags.Remove("TRACKTOTAL"); destTags.Remove("TOTALTRACKS"); diff --git a/CUETools.Processor/CUETools.Processor.csproj b/CUETools.Processor/CUETools.Processor.csproj index 43c18ad..c88950f 100644 --- a/CUETools.Processor/CUETools.Processor.csproj +++ b/CUETools.Processor/CUETools.Processor.csproj @@ -66,10 +66,6 @@ - - False - ..\ThirdParty\taglib-sharp.dll - @@ -148,6 +144,10 @@ {8A0426FA-0BC2-4C49-A6E5-1F9A68156F19} CUETools.Codecs.LossyWAV + + {6B143A39-C7B2-4743-9917-92262C60E9A6} + taglib-sharp + diff --git a/CUETools.Processor/CUETrackMetadata.cs b/CUETools.Processor/CUETrackMetadata.cs index b6f88b5..a5ca3aa 100644 --- a/CUETools.Processor/CUETrackMetadata.cs +++ b/CUETools.Processor/CUETrackMetadata.cs @@ -8,13 +8,16 @@ namespace CUETools.Processor public string Artist { get; set; } [DefaultValue("")] public string Title { get; set; } - [DefaultValue("")] + [DefaultValue("")] + public string Comment { get; set; } + [DefaultValue("")] public string ISRC { get; set; } public CUETrackMetadata() { Artist = ""; Title = ""; + Comment = ""; ISRC = ""; } } diff --git a/CUETools.Processor/General.cs b/CUETools.Processor/General.cs index baa76f2..a010519 100644 --- a/CUETools.Processor/General.cs +++ b/CUETools.Processor/General.cs @@ -369,7 +369,7 @@ namespace CUETools.Processor public static string Shorten(string f, string s, int maxLen) { - return maxLen <= 0 || maxLen >= s.Length || f == "music" || f == "path" || f == "filename" || f == "filename_ext" || f == "directoryname" ? + return maxLen <= 0 || maxLen >= s.Length || f == "music" || f == "path" /*|| f == "filename"*/ || f == "filename_ext" || f == "directoryname" ? s : s.Substring(0, maxLen); } diff --git a/CUETools.Processor/Tagging.cs b/CUETools.Processor/Tagging.cs index 27adc19..567cbdb 100644 --- a/CUETools.Processor/Tagging.cs +++ b/CUETools.Processor/Tagging.cs @@ -5,187 +5,191 @@ using System.Text; namespace CUETools.Processor { - public class Tagging - { - public static bool UpdateTags(TagLib.File fileInfo, NameValueCollection tags, CUEConfig config) - { - if (fileInfo is TagLib.Riff.File) - return false; - TagLib.Ogg.XiphComment xiph = (TagLib.Ogg.XiphComment)fileInfo.GetTag(TagLib.TagTypes.Xiph); - if (xiph != null) - { - foreach (string tag in tags.AllKeys) - xiph.SetField(tag, tags.GetValues(tag)); - return true; - } - if (fileInfo is TagLib.Mpeg4.File) - { - // remove fb2k/nero nasty tags mess - //if (((TagLib.Mpeg4.File)fileInfo).UserData. - ((TagLib.Mpeg4.File)fileInfo).UserData.RemoveChild("tags"); - TagLib.Mpeg4.AppleTag mpeg4 = (TagLib.Mpeg4.AppleTag)fileInfo.GetTag(TagLib.TagTypes.Apple, true); - return true; - } - if (fileInfo is TagLib.UserDefined.File && (fileInfo as TagLib.UserDefined.File).Tagger != CUEToolsTagger.APEv2) - { - if ((fileInfo as TagLib.UserDefined.File).Tagger != CUEToolsTagger.ID3v2) - return false; - TagLib.Id3v2.Tag id3v2 = (TagLib.Id3v2.Tag)fileInfo.GetTag(TagLib.TagTypes.Id3v2, true); - return true; - } - TagLib.Ape.Tag ape = (TagLib.Ape.Tag)fileInfo.GetTag(TagLib.TagTypes.Ape, true); - foreach (string tag in tags.AllKeys) - ape.SetValue(XiphTagNameToApe(tag), tags.GetValues(tag)); - return true; - } + public class Tagging + { + public static bool UpdateTags(TagLib.File fileInfo, NameValueCollection tags, CUEConfig config) + { + if (fileInfo is TagLib.Riff.File) + return false; + TagLib.Ogg.XiphComment xiph = (TagLib.Ogg.XiphComment)fileInfo.GetTag(TagLib.TagTypes.Xiph); + if (xiph != null) + { + foreach (string tag in tags.AllKeys) + xiph.SetField(tag, tags.GetValues(tag)); + return true; + } + if (fileInfo is TagLib.Mpeg4.File) + { + var mpeg4 = (TagLib.Mpeg4.AppleTag)fileInfo.GetTag(TagLib.TagTypes.Apple, true); + foreach (string tag in tags.AllKeys) + { + mpeg4.SetDashBox("com.apple.iTunes", tag, string.Join(";", tags.GetValues(tag))); + } + return true; + } + if (fileInfo is TagLib.Mpeg.AudioFile || (fileInfo is TagLib.UserDefined.File && (fileInfo as TagLib.UserDefined.File).Tagger == CUEToolsTagger.ID3v2)) + { + var id3v2 = (TagLib.Id3v2.Tag)fileInfo.GetTag(TagLib.TagTypes.Id3v2, true); + foreach (string tag in tags.AllKeys) + { + var frame = TagLib.Id3v2.UserTextInformationFrame.Get(id3v2, tag, true); + frame.Text = tags.GetValues(tag); + } + return true; + } + TagLib.Ape.Tag ape = (TagLib.Ape.Tag)fileInfo.GetTag(TagLib.TagTypes.Ape, true); + foreach (string tag in tags.AllKeys) + ape.SetValue(XiphTagNameToApe(tag), tags.GetValues(tag)); + return true; + } - public static void UpdateTags(string path, NameValueCollection tags, CUEConfig config) - { - TagLib.UserDefined.AdditionalFileTypes.Config = config; - TagLib.File fileInfo = TagLib.File.Create(new TagLib.File.LocalFileAbstraction(path)); - if (UpdateTags(fileInfo, tags, config)) - fileInfo.Save(); - //IAudioSource audioSource = AudioReadWrite.GetAudioSource(path, null, config); - //audioSource.Tags = tags; - //audioSource.UpdateTags(false); - //audioSource.Close(); - //audioSource = null; - } + public static void UpdateTags(string path, NameValueCollection tags, CUEConfig config) + { + TagLib.UserDefined.AdditionalFileTypes.Config = config; + TagLib.File fileInfo = TagLib.File.Create(new TagLib.File.LocalFileAbstraction(path)); + if (UpdateTags(fileInfo, tags, config)) + fileInfo.Save(); + //IAudioSource audioSource = AudioReadWrite.GetAudioSource(path, null, config); + //audioSource.Tags = tags; + //audioSource.UpdateTags(false); + //audioSource.Close(); + //audioSource = null; + } - public static string[] GetMiscTag(TagLib.File file, string name) - { - //TagLib.Mpeg4.AppleTag apple = (TagLib.Mpeg4.AppleTag)file.GetTag(TagLib.TagTypes.Apple); - //TagLib.Id3v2.Tag id3v2 = (TagLib.Id3v2.Tag)file.GetTag(TagLib.TagTypes.Id3v2); - TagLib.Ogg.XiphComment xiph = (TagLib.Ogg.XiphComment)file.GetTag(TagLib.TagTypes.Xiph); - TagLib.Ape.Tag ape = (TagLib.Ape.Tag)file.GetTag(TagLib.TagTypes.Ape); + public static string[] GetMiscTag(TagLib.File file, string name) + { + //TagLib.Mpeg4.AppleTag apple = (TagLib.Mpeg4.AppleTag)file.GetTag(TagLib.TagTypes.Apple); + //TagLib.Id3v2.Tag id3v2 = (TagLib.Id3v2.Tag)file.GetTag(TagLib.TagTypes.Id3v2); + TagLib.Ogg.XiphComment xiph = (TagLib.Ogg.XiphComment)file.GetTag(TagLib.TagTypes.Xiph); + TagLib.Ape.Tag ape = (TagLib.Ape.Tag)file.GetTag(TagLib.TagTypes.Ape); - //if (apple != null) - //{ - // string[] text = apple.GetText(name); - // if (text.Length != 0) - // return text; - //} + //if (apple != null) + //{ + // string[] text = apple.GetText(name); + // if (text.Length != 0) + // return text; + //} - //if (id3v2 != null) - // foreach (TagLib.Id3v2.Frame f in id3v2.GetFrames()) - // if (f is TagLib.Id3v2.TextInformationFrame && ((TagLib.Id3v2.TextInformationFrame)f).Text != null) - // return ((TagLib.Id3v2.TextInformationFrame)f).Text; + //if (id3v2 != null) + // foreach (TagLib.Id3v2.Frame f in id3v2.GetFrames()) + // if (f is TagLib.Id3v2.TextInformationFrame && ((TagLib.Id3v2.TextInformationFrame)f).Text != null) + // return ((TagLib.Id3v2.TextInformationFrame)f).Text; - if (xiph != null) - { - string[] l = xiph.GetField(name); - if (l != null && l.Length != 0) - return l; - } + if (xiph != null) + { + string[] l = xiph.GetField(name); + if (l != null && l.Length != 0) + return l; + } - if (ape != null) - { - TagLib.Ape.Item item = ape.GetItem(name); - if (item != null) - return item.ToStringArray(); - } + if (ape != null) + { + TagLib.Ape.Item item = ape.GetItem(name); + if (item != null) + return item.ToStringArray(); + } - return null; - } + return null; + } - public static string TagListToSingleValue(string[] list) - { - return list == null ? null : - list.Length == 0 ? null : - list.Length == 1 ? list[0] : - null; // TODO: merge them? - } + public static string TagListToSingleValue(string[] list) + { + return list == null ? null : + list.Length == 0 ? null : + list.Length == 1 ? list[0] : + null; // TODO: merge them? + } - public static string ApeTagNameToXiph(string tag) - { - if (tag.ToUpper() == "YEAR") - return "DATE"; - if (tag.ToUpper() == "TRACK") - return "TRACKNUMBER"; - if (tag.ToUpper() == "DISC") - return "DISCNUMBER"; - return tag; - } + public static string ApeTagNameToXiph(string tag) + { + if (tag.ToUpper() == "YEAR") + return "DATE"; + if (tag.ToUpper() == "TRACK") + return "TRACKNUMBER"; + if (tag.ToUpper() == "DISC") + return "DISCNUMBER"; + return tag; + } - public static string XiphTagNameToApe(string tag) - { - if (tag.ToUpper() == "DATE") - return "Year"; - if (tag.ToUpper() == "TRACKNUMBER") - return "Track"; - if (tag.ToUpper() == "DISCNUMBER") - return "Disc"; - return tag; - } + public static string XiphTagNameToApe(string tag) + { + if (tag.ToUpper() == "DATE") + return "Year"; + if (tag.ToUpper() == "TRACKNUMBER") + return "Track"; + if (tag.ToUpper() == "DISCNUMBER") + return "Disc"; + return tag; + } - public static NameValueCollection Analyze(string path) - { - return Analyze(new TagLib.File.LocalFileAbstraction(path)); - } + public static NameValueCollection Analyze(string path) + { + return Analyze(new TagLib.File.LocalFileAbstraction(path)); + } - public static NameValueCollection Analyze(TagLib.File.IFileAbstraction file) - { - return Analyze(TagLib.File.Create(file)); - } + public static NameValueCollection Analyze(TagLib.File.IFileAbstraction file) + { + return Analyze(TagLib.File.Create(file)); + } - public static NameValueCollection Analyze(TagLib.File fileInfo) - { - NameValueCollection tags = new NameValueCollection(); - - TagLib.Ogg.XiphComment xiph = (TagLib.Ogg.XiphComment)fileInfo.GetTag(TagLib.TagTypes.Xiph); - TagLib.Ape.Tag ape = (TagLib.Ape.Tag)fileInfo.GetTag(TagLib.TagTypes.Ape); + public static NameValueCollection Analyze(TagLib.File fileInfo) + { + NameValueCollection tags = new NameValueCollection(); - if (xiph != null) - { - foreach (string tag in xiph) - foreach (string value in xiph.GetField(tag)) - tags.Add(tag, value); - } - else if (ape != null) - { - foreach (string tag in ape) - foreach (string value in ape.GetItem(tag).ToStringArray()) - tags.Add(ApeTagNameToXiph(tag), value); - } - else - { - //if (audioSource is CUETools.Codecs.ALAC.ALACReader) - //tags = (audioSource as CUETools.Codecs.ALAC.ALACReader).Tags; - } + TagLib.Ogg.XiphComment xiph = (TagLib.Ogg.XiphComment)fileInfo.GetTag(TagLib.TagTypes.Xiph); + TagLib.Ape.Tag ape = (TagLib.Ape.Tag)fileInfo.GetTag(TagLib.TagTypes.Ape); - // TODO: enumerate dash atoms somehow? - //TagLib.Mpeg4.AppleTag apple = (TagLib.Mpeg4.AppleTag)fileInfo.GetTag(TagLib.TagTypes.Apple); - //if (apple != null) - //{ - // tags = new NameValueCollection(); - // foreach (TagLib.Mpeg4.Box tag in apple) - // if (tag.BoxType == "----") - // foreach (string value in apple.GetDashBox(tag.) - // tags.Add(tag, value); - //} - return tags; - } + if (xiph != null) + { + foreach (string tag in xiph) + foreach (string value in xiph.GetField(tag)) + tags.Add(tag, value); + } + else if (ape != null) + { + foreach (string tag in ape) + foreach (string value in ape.GetItem(tag).ToStringArray()) + tags.Add(ApeTagNameToXiph(tag), value); + } + else + { + //if (audioSource is CUETools.Codecs.ALAC.ALACReader) + //tags = (audioSource as CUETools.Codecs.ALAC.ALACReader).Tags; + } - //public void SetTextField(TagLib.File file, - // TagLib.ByteVector apple_name, TagLib.ByteVector id3v2_name, - // string xiph_name, string ape_name, string[] values) - //{ - // TagLib.Mpeg4.AppleTag apple = (TagLib.Mpeg4.AppleTag)file.GetTag(TagLib.TagTypes.Apple, true); - // TagLib.Id3v2.Tag id3v2 = (TagLib.Id3v2.Tag)file.GetTag(TagLib.TagTypes.Id3v2, true); - // TagLib.Ogg.XiphComment xiph = (TagLib.Ogg.XiphComment)file.GetTag(TagLib.TagTypes.Xiph, true); - // TagLib.Ape.Tag ape = (TagLib.Ape.Tag)file.GetTag(TagLib.TagTypes.Ape, (file is TagLib.Mpc.File)); + // TODO: enumerate dash atoms somehow? + //TagLib.Mpeg4.AppleTag apple = (TagLib.Mpeg4.AppleTag)fileInfo.GetTag(TagLib.TagTypes.Apple); + //if (apple != null) + //{ + // tags = new NameValueCollection(); + // foreach (TagLib.Mpeg4.Box tag in apple) + // if (tag.BoxType == "----") + // foreach (string value in apple.GetDashBox(tag.) + // tags.Add(tag, value); + //} + return tags; + } - // if (apple != null) - // apple.SetText(apple_name, values); + //public void SetTextField(TagLib.File file, + // TagLib.ByteVector apple_name, TagLib.ByteVector id3v2_name, + // string xiph_name, string ape_name, string[] values) + //{ + // TagLib.Mpeg4.AppleTag apple = (TagLib.Mpeg4.AppleTag)file.GetTag(TagLib.TagTypes.Apple, true); + // TagLib.Id3v2.Tag id3v2 = (TagLib.Id3v2.Tag)file.GetTag(TagLib.TagTypes.Id3v2, true); + // TagLib.Ogg.XiphComment xiph = (TagLib.Ogg.XiphComment)file.GetTag(TagLib.TagTypes.Xiph, true); + // TagLib.Ape.Tag ape = (TagLib.Ape.Tag)file.GetTag(TagLib.TagTypes.Ape, (file is TagLib.Mpc.File)); - // if (id3v2 != null) - // id3v2.SetTextFrame(id3v2_name, new TagLib.StringList(values)); + // if (apple != null) + // apple.SetText(apple_name, values); - // if (xiph != null) - // xiph.AddFields(xiph_name, values); + // if (id3v2 != null) + // id3v2.SetTextFrame(id3v2_name, new TagLib.StringList(values)); - // if (ape != null) - // ape.AddValues(ape_name, values, true); - //} - } + // if (xiph != null) + // xiph.AddFields(xiph_name, values); + + // if (ape != null) + // ape.AddValues(ape_name, values, true); + //} + } } diff --git a/CUETools/CUETools.sln b/CUETools/CUETools.sln index 91fb9f3..e2f849e 100644 --- a/CUETools/CUETools.sln +++ b/CUETools/CUETools.sln @@ -33,7 +33,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Third party binaries", "Thi ..\ThirdParty\Freedb.dll = ..\ThirdParty\Freedb.dll ..\ThirdParty\ICSharpCode.SharpZipLib.dll = ..\ThirdParty\ICSharpCode.SharpZipLib.dll ..\ThirdParty\MusicBrainz.dll = ..\ThirdParty\MusicBrainz.dll - ..\ThirdParty\taglib-sharp.dll = ..\ThirdParty\taglib-sharp.dll EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Win32", "Win32", "{9A0D1EB8-269E-4165-971C-541C96AA506F}" @@ -174,6 +173,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CUETools.CTDB.Converter", " EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CUETools.AVX", "..\CUETools.AVX\CUETools.AVX.vcxproj", "{CC022842-F2E9-4016-82B8-65A264B642D5}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Third Party Libraries", "Third Party Libraries", "{7E402406-7E51-4F0D-8209-60824C1CD6E8}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "taglib-sharp", "..\taglib-sharp\src\taglib-sharp.csproj", "{6B143A39-C7B2-4743-9917-92262C60E9A6}" +EndProject Global GlobalSection(TestCaseManagementSettings) = postSolution CategoryFile = CUETools1.vsmdi @@ -1083,6 +1086,20 @@ Global {CC022842-F2E9-4016-82B8-65A264B642D5}.Release|Win32.Build.0 = Release|Win32 {CC022842-F2E9-4016-82B8-65A264B642D5}.Release|x64.ActiveCfg = Release|x64 {CC022842-F2E9-4016-82B8-65A264B642D5}.Release|x86.ActiveCfg = Release|Win32 + {6B143A39-C7B2-4743-9917-92262C60E9A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6B143A39-C7B2-4743-9917-92262C60E9A6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6B143A39-C7B2-4743-9917-92262C60E9A6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {6B143A39-C7B2-4743-9917-92262C60E9A6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {6B143A39-C7B2-4743-9917-92262C60E9A6}.Debug|Win32.ActiveCfg = Debug|Any CPU + {6B143A39-C7B2-4743-9917-92262C60E9A6}.Debug|x64.ActiveCfg = Debug|Any CPU + {6B143A39-C7B2-4743-9917-92262C60E9A6}.Debug|x86.ActiveCfg = Debug|Any CPU + {6B143A39-C7B2-4743-9917-92262C60E9A6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6B143A39-C7B2-4743-9917-92262C60E9A6}.Release|Any CPU.Build.0 = Release|Any CPU + {6B143A39-C7B2-4743-9917-92262C60E9A6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {6B143A39-C7B2-4743-9917-92262C60E9A6}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {6B143A39-C7B2-4743-9917-92262C60E9A6}.Release|Win32.ActiveCfg = Release|Any CPU + {6B143A39-C7B2-4743-9917-92262C60E9A6}.Release|x64.ActiveCfg = Release|Any CPU + {6B143A39-C7B2-4743-9917-92262C60E9A6}.Release|x86.ActiveCfg = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -1136,5 +1153,6 @@ Global {0E404B8B-FF82-427F-ADE4-77B54A29219F} = {5D823ABE-D280-4800-824C-2633CBAB2EA9} {816D964C-9772-46C5-AF1D-49E8C78A1E7C} = {86BBE3FC-E4E5-4190-B675-C6745EAF4E64} {0AC7691C-562A-4879-8A11-6C7890BF659B} = {86BBE3FC-E4E5-4190-B675-C6745EAF4E64} + {6B143A39-C7B2-4743-9917-92262C60E9A6} = {7E402406-7E51-4F0D-8209-60824C1CD6E8} EndGlobalSection EndGlobal diff --git a/CUETools/frmCUETools.Designer.cs b/CUETools/frmCUETools.Designer.cs index 789c57e..7db1830 100644 --- a/CUETools/frmCUETools.Designer.cs +++ b/CUETools/frmCUETools.Designer.cs @@ -126,9 +126,9 @@ namespace JDP { this.editMetadataToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.addFolderToLocalDatabaseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.removeItemFromDatabaseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.backgroundWorkerAddToLocalDB = new System.ComponentModel.BackgroundWorker(); this.updateLocalDatabaseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.locateInExplorerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.backgroundWorkerAddToLocalDB = new System.ComponentModel.BackgroundWorker(); this.toolStripContainer1.BottomToolStripPanel.SuspendLayout(); this.toolStripContainer1.ContentPanel.SuspendLayout(); this.toolStripContainer1.TopToolStripPanel.SuspendLayout(); @@ -1045,11 +1045,6 @@ namespace JDP { resources.ApplyResources(this.removeItemFromDatabaseToolStripMenuItem, "removeItemFromDatabaseToolStripMenuItem"); this.removeItemFromDatabaseToolStripMenuItem.Click += new System.EventHandler(this.removeItemFromDatabaseToolStripMenuItem_Click); // - // backgroundWorkerAddToLocalDB - // - this.backgroundWorkerAddToLocalDB.DoWork += new System.ComponentModel.DoWorkEventHandler(this.backgroundWorkerAddToLocalDB_DoWork); - this.backgroundWorkerAddToLocalDB.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.backgroundWorkerAddToLocalDB_RunWorkerCompleted); - // // updateLocalDatabaseToolStripMenuItem // this.updateLocalDatabaseToolStripMenuItem.Name = "updateLocalDatabaseToolStripMenuItem"; @@ -1062,6 +1057,11 @@ namespace JDP { resources.ApplyResources(this.locateInExplorerToolStripMenuItem, "locateInExplorerToolStripMenuItem"); this.locateInExplorerToolStripMenuItem.Click += new System.EventHandler(this.locateInExplorerToolStripMenuItem_Click); // + // backgroundWorkerAddToLocalDB + // + this.backgroundWorkerAddToLocalDB.DoWork += new System.ComponentModel.DoWorkEventHandler(this.backgroundWorkerAddToLocalDB_DoWork); + this.backgroundWorkerAddToLocalDB.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.backgroundWorkerAddToLocalDB_RunWorkerCompleted); + // // frmCUETools // resources.ApplyResources(this, "$this"); diff --git a/CUETools/frmCUETools.cs b/CUETools/frmCUETools.cs index 589b531..ec9bc8f 100644 --- a/CUETools/frmCUETools.cs +++ b/CUETools/frmCUETools.cs @@ -2676,6 +2676,10 @@ namespace JDP { SetStatus(sender, new CUEToolsProgressEventArgs()); SetupControls(false); + foreach (TreeNode node in fileSystemTreeView1.Nodes) + if (node is FileSystemTreeNodeLocalDB) + foreach(TreeNode grp in node.Nodes) + grp.Collapse(); } private void removeItemFromDatabaseToolStripMenuItem_Click(object sender, EventArgs e) diff --git a/CUETools/frmCUETools.resx b/CUETools/frmCUETools.resx index 82fea9c..d71501e 100644 --- a/CUETools/frmCUETools.resx +++ b/CUETools/frmCUETools.resx @@ -252,6 +252,21 @@ 0 + + Top, Bottom, Left, Right + + + 19 + + + 3, 17 + + + 192, 304 + + + 1 + fileSystemTreeView1 @@ -297,993 +312,9 @@ 3 - - 3, 17 - - - tableLayoutPanelVerifyMode - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxMode - - - 0 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="checkBoxSkipRecent" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="checkBoxVerifyUseLocal" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="checkBoxVerifyUseCDRepair" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,33.33333,Percent,33.33333,Percent,33.33333,Absolute,20" /><Rows Styles="Percent,32.72727,Percent,67.27273" /></TableLayoutSettings> - - - tableLayoutPanelCUEStyle - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxMode - - - 1 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="checkBoxUseAccurateRip" Row="4" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="checkBoxUseFreeDb" Row="4" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="rbTracks" Row="2" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="rbEmbedCUE" Row="0" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="rbSingleFile" Row="1" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="checkBoxUseMusicBrainz" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,33.33332,Percent,33.33334,Percent,33.33334" /><Rows Styles="Percent,18.18229,Percent,18.18229,Percent,18.18229,Percent,22.72658,Percent,22.72658" /></TableLayoutSettings> - - - toolStripCorrectorFormat - - - System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxMode - - - 2 - - - Fill - - - 173, 101 - - - 150, 130 - - - 12 - - - Mode - - - groupBoxMode - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel2 - - - 0 - - - labelEncoderMaxMode - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpAudioOutput - - - 0 - - - labelEncoderMinMode - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpAudioOutput - - - 1 - - - labelEncoderMode - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpAudioOutput - - - 2 - - - trackBarEncoderMode - - - System.Windows.Forms.TrackBar, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpAudioOutput - - - 3 - - - comboBoxEncoder - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpAudioOutput - - - 4 - - - radioButtonAudioNone - - - System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpAudioOutput - - - 5 - - - radioButtonAudioLossy - - - System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpAudioOutput - - - 6 - - - radioButtonAudioHybrid - - - System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpAudioOutput - - - 7 - - - radioButtonAudioLossless - - - System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpAudioOutput - - - 8 - - - labelFormat - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpAudioOutput - - - 9 - - - comboBoxAudioFormat - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpAudioOutput - - - 10 - - - Fill - - - 329, 101 - - - 148, 194 - - - 2 - - - Audio Output - - - grpAudioOutput - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel2 - - - 1 - - - Fill - - - NoControl - - - 3, 237 - - - 164, 90 - - - Zoom - - - 15 - - - pictureBoxMotd - - - System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel2 - - - 2 - - - 2 - - - Fill - - - NoControl - - - 0, 48 - - - 0, 0, 0, 0 - - - 97, 24 - - - 13 - - - Template: - - - MiddleLeft - - - labelOutputTemplate - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanelPaths - - - 0 - - - Fill - - - 100, 51 - - - 365, 21 - - - 9 - - - 153, 8 - - - Template for output files (foobar2000 format) - - - comboBoxOutputFormat - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanelPaths - - - 1 - - - Fill - - - 100, 3 - - - 365, 21 - - - 0 - - - Input file - - - txtInputPath - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanelPaths - - - 2 - - - Fill - - - 100, 27 - - - 365, 21 - - - 0 - - - Output file - - - txtOutputPath - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanelPaths - - - 3 - - - 0, 0 - - - Fill - - - 0, 0 - - - 0, 0, 0, 0 - - - 97, 24 - - - 14 - - - toolStripInput - - - toolStripInput - - - System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanelPaths - - - 4 - - - 0, 24 - - - Fill - - - 0, 24 - - - 0, 0, 0, 0 - - - 97, 24 - - - 15 - - - toolStripOutput - - - toolStripOutput - - - System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanelPaths - - - 5 - - - Fill - - - 3, 17 - - - 0, 0, 0, 0 - - - 3 - - - 468, 72 - - - 14 - - - tableLayoutPanelPaths - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpOutputPathGeneration - - - 0 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="labelOutputTemplate" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="comboBoxOutputFormat" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="txtInputPath" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="txtOutputPath" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="toolStripInput" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="toolStripOutput" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,20.94017,Percent,79.05983" /><Rows Styles="Percent,33.33333,Percent,33.33333,Percent,33.33333" /></TableLayoutSettings> - - - Fill - - - 3, 3 - - - 474, 92 - - - 1 - - - CUE Paths - - - grpOutputPathGeneration - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel2 - - - 3 - - - comboBoxScript - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpAction - - - 0 - - - rbActionCorrectFilenames - - - System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpAction - - - 1 - - - rbActionCreateCUESheet - - - System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpAction - - - 2 - - - rbActionVerify - - - System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpAction - - - 3 - - - rbActionEncode - - - System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpAction - - - 4 - - - Fill - - - 3, 101 - - - 164, 130 - - - 4 - - - Action - - - grpAction - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel2 - - - 4 - - - tableLayoutPanel4 - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpExtra - - - 0 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="labelPregap" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lblWriteOffset" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="numericWriteOffset" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="txtPreGapLength" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="labelDataTrack" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="txtDataTrackLength" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Percent,56.75676,Percent,43.24324" /><Rows Styles="Percent,33.33333,Percent,33.33333,Percent,33.33333" /></TableLayoutSettings> - - - Fill - - - 173, 237 - - - 150, 90 - - - 6 - - - Extra - - - grpExtra - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel2 - - - 5 - - - btnConvert - - - System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - panelGo - - - 0 - - - btnStop - - - System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - panelGo - - - 1 - - - btnResume - - - System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - panelGo - - - 2 - - - btnPause - - - System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - panelGo - - - 3 - - - Fill - - - 338, 301 - - - 12, 3, 12, 3 - - - 130, 26 - - - 14 - - - panelGo - - - System.Windows.Forms.Panel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel2 - - - 6 - - - Fill - - - 204, 0 - - - 0, 0, 0, 0 - - - 4 - - - 480, 330 - - - 1 - - - tableLayoutPanel2 - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel1 - - - 2 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="groupBoxMode" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="grpAudioOutput" Row="1" RowSpan="2" Column="2" ColumnSpan="1" /><Control Name="pictureBoxMotd" Row="2" RowSpan="2" Column="0" ColumnSpan="1" /><Control Name="grpOutputPathGeneration" Row="0" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="grpAction" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="grpExtra" Row="2" RowSpan="2" Column="1" ColumnSpan="1" /><Control Name="panelGo" Row="3" RowSpan="1" Column="2" ColumnSpan="1" /></Controls><Columns Styles="Percent,35.41667,Percent,32.70833,Percent,31.875" /><Rows Styles="Percent,29.69697,Percent,41.51515,Percent,19.39394,Percent,9.393939" /></TableLayoutSettings> - - - Fill - - - 0, 0 - - - 0, 0, 0, 0 - - - 2 - - - 684, 448 - - - 17 - - - tableLayoutPanel1 - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripContainer1.ContentPanel - - - 0 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="textBatchReport" Row="1" RowSpan="1" Column="0" ColumnSpan="2" /><Control Name="grpInput" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="tableLayoutPanel2" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Percent,100,Absolute,480" /><Rows Styles="Absolute,330,Percent,100" /></TableLayoutSettings> - - - 0, 0, 0, 0 - - - 684, 448 - - - toolStripContainer1.ContentPanel - - - System.Windows.Forms.ToolStripContentPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripContainer1 - - - 0 - - - Fill - - - toolStripContainer1.LeftToolStripPanel - - - System.Windows.Forms.ToolStripPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripContainer1 - - - 1 - - - 0, 0 - - - toolStripContainer1.RightToolStripPanel - - - System.Windows.Forms.ToolStripPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripContainer1 - - - 2 - - - 684, 502 - - - 17 - - - toolStripContainer1 - - - 0, 0 - - - None - - - 0, 0 - - - 684, 25 - - - 0 - - - toolStripMenu - - - System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripContainer1.TopToolStripPanel - - - 0 - - - toolStripContainer1.TopToolStripPanel - - - System.Windows.Forms.ToolStripPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripContainer1 - - - 3 - - - toolStripContainer1 - - - System.Windows.Forms.ToolStripContainer, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 1 - - - Top, Bottom, Left, Right - - - 19 - - - 3, 17 - - - 192, 304 - - - 1 - - - fileSystemTreeView1 - - - CUEControls.FileSystemTreeView, CUEControls, Version=2.1.4.0, Culture=neutral, PublicKeyToken=null - - - grpInput - - - 0 - 3 - - checkBoxSkipRecent - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanelVerifyMode - - - 0 - - - checkBoxVerifyUseLocal - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanelVerifyMode - - - 1 - - - checkBoxVerifyUseCDRepair - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanelVerifyMode - - - 2 - - - Fill - - - 3, 17 - - - 2 - - - 144, 110 - - - 2 - - - tableLayoutPanelVerifyMode - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxMode - - - 0 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="checkBoxSkipRecent" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="checkBoxVerifyUseLocal" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="checkBoxVerifyUseCDRepair" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,33.33333,Percent,33.33333,Percent,33.33333,Absolute,20" /><Rows Styles="Percent,32.72727,Percent,67.27273" /></TableLayoutSettings> - - - 153, 8 - True @@ -1302,6 +333,9 @@ 2 + + 153, 8 + Skip recently verified @@ -1383,113 +417,38 @@ 2 - - 3 - - - checkBoxUseAccurateRip - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanelCUEStyle - - - 0 - - - checkBoxUseFreeDb - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanelCUEStyle - - - 1 - - - rbTracks - - - System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanelCUEStyle - - - 2 - - - rbEmbedCUE - - - System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanelCUEStyle - - - 3 - - - rbSingleFile - - - System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanelCUEStyle - - - 4 - - - checkBoxUseMusicBrainz - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanelCUEStyle - - - 5 - - + Fill - + 3, 17 - - 0, 0, 0, 0 + + 2 - - 5 - - + 144, 110 - - 11 + + 2 - - tableLayoutPanelCUEStyle + + tableLayoutPanelVerifyMode - + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + groupBoxMode - - 1 + + 0 - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="checkBoxUseAccurateRip" Row="4" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="checkBoxUseFreeDb" Row="4" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="rbTracks" Row="2" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="rbEmbedCUE" Row="0" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="rbSingleFile" Row="1" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="checkBoxUseMusicBrainz" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,33.33332,Percent,33.33334,Percent,33.33334" /><Rows Styles="Percent,18.18229,Percent,18.18229,Percent,18.18229,Percent,22.72658,Percent,22.72658" /></TableLayoutSettings> + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="checkBoxSkipRecent" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="checkBoxVerifyUseLocal" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="checkBoxVerifyUseCDRepair" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,33.33333,Percent,33.33333,Percent,33.33333,Absolute,20" /><Rows Styles="Percent,32.72727,Percent,67.27273" /></TableLayoutSettings> + + + 3 True @@ -1716,6 +675,39 @@ 5 + + Fill + + + 3, 17 + + + 0, 0, 0, 0 + + + 5 + + + 144, 110 + + + 11 + + + tableLayoutPanelCUEStyle + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBoxMode + + + 1 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="checkBoxUseAccurateRip" Row="4" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="checkBoxUseFreeDb" Row="4" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="rbTracks" Row="2" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="rbEmbedCUE" Row="0" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="rbSingleFile" Row="1" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="checkBoxUseMusicBrainz" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,33.33332,Percent,33.33334,Percent,33.33334" /><Rows Styles="Percent,18.18229,Percent,18.18229,Percent,18.18229,Percent,22.72658,Percent,22.72658" /></TableLayoutSettings> + 3, 17 @@ -1725,6 +717,51 @@ Fill + + Magenta + + + 78, 20 + + + Overwrite + + + 168, 22 + + + Locate files + + + Try to locate missing files automatically + + + 168, 22 + + + Change extension + + + Replace extension for audio files with this: + + + Magenta + + + 79, 19 + + + Locate files + + + Magenta + + + 39, 19 + + + flac + 3, 17 @@ -1749,50 +786,32 @@ 2 - - Magenta + + Fill - - 78, 20 + + 173, 101 - - Overwrite + + 150, 130 - - Magenta + + 12 - - 79, 19 + + Mode - - Locate files + + groupBoxMode - - 168, 22 + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Locate files + + tableLayoutPanel2 - - Try to locate missing files automatically - - - 168, 22 - - - Change extension - - - Replace extension for audio files with this: - - - Magenta - - - 39, 19 - - - flac + + 0 False @@ -2154,21 +1173,195 @@ 10 + + Fill + + + 329, 101 + + + 148, 194 + + + 2 + + + Audio Output + + + grpAudioOutput + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel2 + + + 1 + + + Fill + + + NoControl + + + 3, 237 + + + 164, 90 + + + Zoom + + + 15 + + + pictureBoxMotd + + + System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel2 + + + 2 + + + 2 + + + Fill + + + NoControl + + + 0, 48 + + + 0, 0, 0, 0 + + + 97, 24 + + + 13 + + + Template: + + + MiddleLeft + + + labelOutputTemplate + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelPaths + + + 0 + + + Fill + + + 100, 51 + + + 365, 21 + + + 9 + + + Template for output files (foobar2000 format) + + + comboBoxOutputFormat + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelPaths + + + 1 + + + Fill + + + 100, 3 + + + 365, 21 + + + 0 + + + Input file + + + txtInputPath + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelPaths + + + 2 + + + Fill + + + 100, 27 + + + 365, 21 + + + 0 + + + Output file + + + txtOutputPath + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelPaths + + + 3 + + + 0, 0 + + + Fill + 38, 21 Input: - - Magenta - - - 32, 21 - - - Open/close input browser - 177, 22 @@ -2193,21 +1386,54 @@ Hide browser + + Magenta + + + 32, 21 + + + Open/close input browser + + + 0, 0 + + + 0, 0, 0, 0 + + + 97, 24 + + + 14 + + + toolStripInput + + + toolStripInput + + + System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelPaths + + + 4 + + + 0, 24 + + + Fill + 48, 24 Output: - - Magenta - - - 32, 21 - - - toolStripSplitButtonOutputBrowser - 143, 22 @@ -2226,6 +1452,102 @@ Use template + + Magenta + + + 32, 21 + + + toolStripSplitButtonOutputBrowser + + + 0, 24 + + + 0, 0, 0, 0 + + + 97, 24 + + + 15 + + + toolStripOutput + + + toolStripOutput + + + System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelPaths + + + 5 + + + Fill + + + 3, 17 + + + 0, 0, 0, 0 + + + 3 + + + 468, 72 + + + 14 + + + tableLayoutPanelPaths + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpOutputPathGeneration + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="labelOutputTemplate" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="comboBoxOutputFormat" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="txtInputPath" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="txtOutputPath" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="toolStripInput" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="toolStripOutput" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,20.94017,Percent,79.05983" /><Rows Styles="Percent,33.33333,Percent,33.33333,Percent,33.33333" /></TableLayoutSettings> + + + Fill + + + 3, 3 + + + 474, 92 + + + 1 + + + CUE Paths + + + grpOutputPathGeneration + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel2 + + + 3 + Top, Left, Right @@ -2385,113 +1707,35 @@ 4 - - 2 - - - labelPregap - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel4 - - - 0 - - - lblWriteOffset - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel4 - - - 1 - - - numericWriteOffset - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel4 - - - 2 - - - txtPreGapLength - - - System.Windows.Forms.MaskedTextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel4 - - - 3 - - - labelDataTrack - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel4 - - - 4 - - - txtDataTrackLength - - - System.Windows.Forms.MaskedTextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel4 - - - 5 - - + Fill - - 3, 17 + + 3, 101 - - 0, 0, 0, 0 + + 164, 130 - - 3 + + 4 - - 144, 70 + + Action - - 6 + + grpAction - - tableLayoutPanel4 + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + tableLayoutPanel2 - - grpExtra + + 4 - - 0 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="labelPregap" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lblWriteOffset" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="numericWriteOffset" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="txtPreGapLength" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="labelDataTrack" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="txtDataTrackLength" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Percent,56.75676,Percent,43.24324" /><Rows Styles="Percent,33.33333,Percent,33.33333,Percent,33.33333" /></TableLayoutSettings> + + 2 True @@ -2697,6 +1941,66 @@ 5 + + Fill + + + 3, 17 + + + 0, 0, 0, 0 + + + 3 + + + 144, 70 + + + 6 + + + tableLayoutPanel4 + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpExtra + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="labelPregap" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lblWriteOffset" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="numericWriteOffset" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="txtPreGapLength" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="labelDataTrack" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="txtDataTrackLength" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Percent,56.75676,Percent,43.24324" /><Rows Styles="Percent,33.33333,Percent,33.33333,Percent,33.33333" /></TableLayoutSettings> + + + Fill + + + 173, 237 + + + 150, 90 + + + 6 + + + Extra + + + grpExtra + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel2 + + + 5 + Fill @@ -2835,17 +2139,161 @@ 3 - - Magenta + + Fill - - 73, 22 + + 338, 301 - - default + + 12, 3, 12, 3 - - Profile + + 130, 26 + + + 14 + + + panelGo + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel2 + + + 6 + + + Fill + + + 204, 0 + + + 0, 0, 0, 0 + + + 4 + + + 480, 330 + + + 1 + + + tableLayoutPanel2 + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel1 + + + 2 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="groupBoxMode" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="grpAudioOutput" Row="1" RowSpan="2" Column="2" ColumnSpan="1" /><Control Name="pictureBoxMotd" Row="2" RowSpan="2" Column="0" ColumnSpan="1" /><Control Name="grpOutputPathGeneration" Row="0" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="grpAction" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="grpExtra" Row="2" RowSpan="2" Column="1" ColumnSpan="1" /><Control Name="panelGo" Row="3" RowSpan="1" Column="2" ColumnSpan="1" /></Controls><Columns Styles="Percent,35.41667,Percent,32.70833,Percent,31.875" /><Rows Styles="Percent,29.69697,Percent,41.51515,Percent,19.39394,Percent,9.393939" /></TableLayoutSettings> + + + Fill + + + 0, 0 + + + 0, 0, 0, 0 + + + 2 + + + 684, 448 + + + 17 + + + tableLayoutPanel1 + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripContainer1.ContentPanel + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="textBatchReport" Row="1" RowSpan="1" Column="0" ColumnSpan="2" /><Control Name="grpInput" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="tableLayoutPanel2" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Percent,100,Absolute,480" /><Rows Styles="Absolute,330,Percent,100" /></TableLayoutSettings> + + + 0, 0, 0, 0 + + + 684, 448 + + + toolStripContainer1.ContentPanel + + + System.Windows.Forms.ToolStripContentPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripContainer1 + + + 0 + + + Fill + + + toolStripContainer1.LeftToolStripPanel + + + System.Windows.Forms.ToolStripPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripContainer1 + + + 1 + + + 0, 0 + + + toolStripContainer1.RightToolStripPanel + + + System.Windows.Forms.ToolStripPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripContainer1 + + + 2 + + + 684, 502 + + + 17 + + + toolStripContainer1 + + + 0, 0 + + + None 100, 23 @@ -2871,6 +2319,18 @@ default + + Magenta + + + 73, 22 + + + default + + + Profile + 6, 25 @@ -2913,6 +2373,51 @@ Batch log + + 0, 0 + + + 684, 25 + + + 0 + + + toolStripMenu + + + System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripContainer1.TopToolStripPanel + + + 0 + + + toolStripContainer1.TopToolStripPanel + + + System.Windows.Forms.ToolStripPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripContainer1 + + + 3 + + + toolStripContainer1 + + + System.Windows.Forms.ToolStripContainer, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 1 + 424, 8 @@ -2971,7 +2476,7 @@ Locate in explorer - 225, 208 + 225, 186 contextMenuStripFileTree @@ -3634,12 +3139,6 @@ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - backgroundWorkerAddToLocalDB - - - System.ComponentModel.BackgroundWorker, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - updateLocalDatabaseToolStripMenuItem @@ -3652,6 +3151,12 @@ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + backgroundWorkerAddToLocalDB + + + System.ComponentModel.BackgroundWorker, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + frmCUETools diff --git a/CUETools/frmChoice.cs b/CUETools/frmChoice.cs index e1cd724..d2858a5 100644 --- a/CUETools/frmChoice.cs +++ b/CUETools/frmChoice.cs @@ -214,11 +214,13 @@ namespace JDP dataGridViewMetadata.Rows.Add("Disc Number", r.metadata.DiscNumber); dataGridViewMetadata.Rows.Add("Total Discs", r.metadata.TotalDiscs); dataGridViewMetadata.Rows.Add("Disc Name", r.metadata.DiscName); - dataGridViewMetadata.Rows.Add("Barcode", r.metadata.Barcode); - dataGridViewMetadata.Rows.Add("Release Date", r.metadata.ReleaseDate); dataGridViewMetadata.Rows.Add("Label", r.metadata.Label); - dataGridViewMetadata.Rows.Add("Country", r.metadata.Country); - } + dataGridViewMetadata.Rows.Add("Label#", r.metadata.LabelNo); + dataGridViewMetadata.Rows.Add("Country", r.metadata.Country); + dataGridViewMetadata.Rows.Add("Release Date", r.metadata.ReleaseDate); + dataGridViewMetadata.Rows.Add("Barcode", r.metadata.Barcode); + dataGridViewMetadata.Rows.Add("Comment", r.metadata.Comment); + } else { dataGridViewMetadata.Rows.Clear(); @@ -274,10 +276,12 @@ namespace JDP case 4: te.AutoCompleteCustomSource.Add(r.metadata.DiscNumber); break; case 5: te.AutoCompleteCustomSource.Add(r.metadata.TotalDiscs); break; case 6: te.AutoCompleteCustomSource.Add(r.metadata.DiscName); break; - case 7: te.AutoCompleteCustomSource.Add(r.metadata.Barcode); break; - case 8: te.AutoCompleteCustomSource.Add(r.metadata.ReleaseDate); break; - case 9: te.AutoCompleteCustomSource.Add(r.metadata.Label); break; - case 10: te.AutoCompleteCustomSource.Add(r.metadata.Country); break; + case 7: te.AutoCompleteCustomSource.Add(r.metadata.Label); break; + case 8: te.AutoCompleteCustomSource.Add(r.metadata.LabelNo); break; + case 9: te.AutoCompleteCustomSource.Add(r.metadata.Country); break; + case 10: te.AutoCompleteCustomSource.Add(r.metadata.ReleaseDate); break; + case 11: te.AutoCompleteCustomSource.Add(r.metadata.Barcode); break; + case 12: te.AutoCompleteCustomSource.Add(r.metadata.Comment); break; } } } @@ -304,11 +308,13 @@ namespace JDP case 4: r.metadata.DiscNumber = label; break; case 5: r.metadata.TotalDiscs = label; break; case 6: r.metadata.DiscName = label; break; - case 7: r.metadata.Barcode = label; break; - case 8: r.metadata.ReleaseDate = label; break; - case 9: r.metadata.Label = label; break; - case 10: r.metadata.Country = label; break; - } + case 7: r.metadata.Label = label; break; + case 8: r.metadata.LabelNo = label; break; + case 9: r.metadata.Country = label; break; + case 10: r.metadata.ReleaseDate = label; break; + case 11: r.metadata.Barcode = label; break; + case 12: r.metadata.Comment = label; break; + } item.Text = r.ToString(); } } diff --git a/ThirdParty/taglib-sharp.dll b/ThirdParty/taglib-sharp.dll deleted file mode 100644 index 58b1dba..0000000 Binary files a/ThirdParty/taglib-sharp.dll and /dev/null differ