* Better tagging with CTDB metadata

* Removed old LAME encoder from plugins list
* CUERipper: main window resizeable
* taglib-sharp.dll removed, taglib-sharp source code imported
This commit is contained in:
chudov
2012-04-16 07:19:57 +00:00
parent 773efab7eb
commit 3a50c03cef
25 changed files with 1537 additions and 1621 deletions

View File

@@ -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;
}
}

View File

@@ -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<ReadProgressArgs>(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

View File

@@ -122,7 +122,7 @@
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="toolStripStatusLabel1.Size" type="System.Drawing.Size, System.Drawing">
<value>473, 20</value>
<value>487, 20</value>
</data>
<data name="toolStripStatusLabel1.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
@@ -174,10 +174,10 @@
<value>toolStripStatusAr</value>
</data>
<data name="statusStrip1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 469</value>
<value>0, 424</value>
</data>
<data name="statusStrip1.Size" type="System.Drawing.Size, System.Drawing">
<value>650, 25</value>
<value>664, 25</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="statusStrip1.TabIndex" type="System.Int32, mscorlib">
@@ -196,11 +196,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;statusStrip1.ZOrder" xml:space="preserve">
<value>15</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="listTracks.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
<value>1</value>
</data>
<data name="Title.DisplayIndex" type="System.Int32, mscorlib">
<value>1</value>
@@ -238,11 +234,15 @@
<data name="Length.Width" type="System.Int32, mscorlib">
<value>70</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="listTracks.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="listTracks.Location" type="System.Drawing.Point, System.Drawing">
<value>7, 87</value>
<value>0, 0</value>
</data>
<data name="listTracks.Size" type="System.Drawing.Size, System.Drawing">
<value>630, 220</value>
<value>656, 158</value>
</data>
<data name="listTracks.TabIndex" type="System.Int32, mscorlib">
<value>7</value>
@@ -260,10 +260,10 @@
<value>System.Windows.Forms.ListView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;listTracks.Parent" xml:space="preserve">
<value>$this</value>
<value>panel4</value>
</data>
<data name="&gt;&gt;listTracks.ZOrder" xml:space="preserve">
<value>14</value>
<value>0</value>
</data>
<data name="buttonGo.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
@@ -362,7 +362,7 @@
<value>1</value>
</data>
<data name="numericWriteOffset.Location" type="System.Drawing.Point, System.Drawing">
<value>257, 20</value>
<value>271, 20</value>
</data>
<data name="numericWriteOffset.Size" type="System.Drawing.Size, System.Drawing">
<value>54, 20</value>
@@ -392,7 +392,7 @@
<value>NoControl</value>
</data>
<data name="lblWriteOffset.Location" type="System.Drawing.Point, System.Drawing">
<value>189, 22</value>
<value>203, 22</value>
</data>
<data name="lblWriteOffset.Size" type="System.Drawing.Size, System.Drawing">
<value>62, 13</value>
@@ -419,7 +419,7 @@
<value>True</value>
</data>
<data name="checkBoxTestAndCopy.Location" type="System.Drawing.Point, System.Drawing">
<value>192, 48</value>
<value>206, 48</value>
</data>
<data name="checkBoxTestAndCopy.Size" type="System.Drawing.Size, System.Drawing">
<value>83, 17</value>
@@ -452,7 +452,7 @@
<value>6, 19</value>
</data>
<data name="bnComboBoxLosslessOrNot.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 21</value>
<value>82, 21</value>
</data>
<data name="bnComboBoxLosslessOrNot.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
@@ -476,10 +476,10 @@
<value>1217, 56</value>
</metadata>
<data name="bnComboBoxEncoder.Location" type="System.Drawing.Point, System.Drawing">
<value>92, 46</value>
<value>94, 46</value>
</data>
<data name="bnComboBoxEncoder.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 21</value>
<value>101, 21</value>
</data>
<data name="bnComboBoxEncoder.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
@@ -503,7 +503,7 @@
<value>NoControl</value>
</data>
<data name="labelSecureMode.Location" type="System.Drawing.Point, System.Drawing">
<value>195, 103</value>
<value>209, 103</value>
</data>
<data name="labelSecureMode.Size" type="System.Drawing.Size, System.Drawing">
<value>109, 18</value>
@@ -530,10 +530,10 @@
<value>1045, 56</value>
</metadata>
<data name="bnComboBoxFormat.Location" type="System.Drawing.Point, System.Drawing">
<value>92, 19</value>
<value>94, 19</value>
</data>
<data name="bnComboBoxFormat.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 21</value>
<value>101, 21</value>
</data>
<data name="bnComboBoxFormat.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
@@ -599,7 +599,7 @@
<value>6, 46</value>
</data>
<data name="bnComboBoxImage.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 21</value>
<value>82, 21</value>
</data>
<data name="bnComboBoxImage.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
@@ -629,7 +629,7 @@
<value>NoControl</value>
</data>
<data name="labelEncoderMaxMode.Location" type="System.Drawing.Point, System.Drawing">
<value>143, 106</value>
<value>166, 106</value>
</data>
<data name="labelEncoderMaxMode.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
@@ -665,13 +665,13 @@
<value>NoControl</value>
</data>
<data name="labelEncoderMode.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 106</value>
<value>6, 106</value>
</data>
<data name="labelEncoderMode.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="labelEncoderMode.Size" type="System.Drawing.Size, System.Drawing">
<value>167, 15</value>
<value>189, 15</value>
</data>
<data name="labelEncoderMode.TabIndex" type="System.Int32, mscorlib">
<value>31</value>
@@ -704,7 +704,7 @@
<value>0, 0, 0, 0</value>
</data>
<data name="trackBarEncoderMode.Size" type="System.Drawing.Size, System.Drawing">
<value>166, 45</value>
<value>189, 45</value>
</data>
<data name="trackBarEncoderMode.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
@@ -725,7 +725,7 @@
<value>NoControl</value>
</data>
<data name="trackBarSecureMode.Location" type="System.Drawing.Point, System.Drawing">
<value>184, 76</value>
<value>198, 76</value>
</data>
<data name="trackBarSecureMode.Size" type="System.Drawing.Size, System.Drawing">
<value>127, 45</value>
@@ -745,11 +745,14 @@
<data name="&gt;&gt;trackBarSecureMode.ZOrder" xml:space="preserve">
<value>10</value>
</data>
<data name="groupBoxSettings.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Left</value>
</data>
<data name="groupBoxSettings.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 332</value>
<value>0, 0</value>
</data>
<data name="groupBoxSettings.Size" type="System.Drawing.Size, System.Drawing">
<value>320, 134</value>
<value>339, 136</value>
</data>
<data name="groupBoxSettings.TabIndex" type="System.Int32, mscorlib">
<value>11</value>
@@ -761,10 +764,10 @@
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;groupBoxSettings.Parent" xml:space="preserve">
<value>$this</value>
<value>panel2</value>
</data>
<data name="&gt;&gt;groupBoxSettings.ZOrder" xml:space="preserve">
<value>13</value>
<value>2</value>
</data>
<metadata name="drivesBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>882, 56</value>
@@ -777,7 +780,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABy
CQAAAk1TRnQBSQFMAgEBBAEAAYwBAAGMAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
CQAAAk1TRnQBSQFMAgEBBAEAAYwBAQGMAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@@ -851,7 +854,7 @@
<value>progressBarErrors</value>
</data>
<data name="&gt;&gt;progressBarErrors.Type" xml:space="preserve">
<value>ProgressODoom.ProgressBarEx, ProgressODoom, Version=1.0.4313.32741, Culture=neutral, PublicKeyToken=null</value>
<value>ProgressODoom.ProgressBarEx, ProgressODoom, Version=1.0.4486.36018, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;progressBarErrors.Parent" xml:space="preserve">
<value>panel1</value>
@@ -878,7 +881,7 @@
<value>progressBarCD</value>
</data>
<data name="&gt;&gt;progressBarCD.Type" xml:space="preserve">
<value>ProgressODoom.ProgressBarEx, ProgressODoom, Version=1.0.4313.32741, Culture=neutral, PublicKeyToken=null</value>
<value>ProgressODoom.ProgressBarEx, ProgressODoom, Version=1.0.4486.36018, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;progressBarCD.Parent" xml:space="preserve">
<value>panel1</value>
@@ -886,14 +889,14 @@
<data name="&gt;&gt;progressBarCD.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="txtOutputPath.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
<data name="txtOutputPath.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="txtOutputPath.Location" type="System.Drawing.Point, System.Drawing">
<value>5, 312</value>
<value>0, 4</value>
</data>
<data name="txtOutputPath.Size" type="System.Drawing.Size, System.Drawing">
<value>633, 20</value>
<value>656, 20</value>
</data>
<data name="txtOutputPath.TabIndex" type="System.Int32, mscorlib">
<value>10</value>
@@ -908,10 +911,10 @@
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;txtOutputPath.Parent" xml:space="preserve">
<value>$this</value>
<value>panel5</value>
</data>
<data name="&gt;&gt;txtOutputPath.ZOrder" xml:space="preserve">
<value>16</value>
<value>1</value>
</data>
<data name="bnComboBoxRelease.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
@@ -927,7 +930,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADy
EAAAAk1TRnQBSQFMAgEBCgEAAYwBAAGMAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
EAAAAk1TRnQBSQFMAgEBCgEAAYwBAQGMAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAATADAAEBAQABCAYAAQwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@@ -1003,10 +1006,10 @@
</value>
</data>
<data name="bnComboBoxRelease.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 33</value>
<value>0, 28</value>
</data>
<data name="bnComboBoxRelease.Size" type="System.Drawing.Size, System.Drawing">
<value>632, 21</value>
<value>656, 21</value>
</data>
<data name="bnComboBoxRelease.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
@@ -1021,19 +1024,19 @@
<value>CUEControls.ImgComboBox, CUEControls, Version=2.1.4.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;bnComboBoxRelease.Parent" xml:space="preserve">
<value>$this</value>
<value>panel3</value>
</data>
<data name="&gt;&gt;bnComboBoxRelease.ZOrder" xml:space="preserve">
<value>10</value>
<value>1</value>
</data>
<data name="bnComboBoxDrives.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
</data>
<data name="bnComboBoxDrives.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 6</value>
<value>0, 0</value>
</data>
<data name="bnComboBoxDrives.Size" type="System.Drawing.Size, System.Drawing">
<value>632, 21</value>
<value>656, 21</value>
</data>
<data name="bnComboBoxDrives.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
@@ -1048,19 +1051,19 @@
<value>CUEControls.ImgComboBox, CUEControls, Version=2.1.4.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;bnComboBoxDrives.Parent" xml:space="preserve">
<value>$this</value>
<value>panel3</value>
</data>
<data name="&gt;&gt;bnComboBoxDrives.ZOrder" xml:space="preserve">
<value>11</value>
<value>0</value>
</data>
<data name="bnComboBoxOutputFormat.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
<data name="bnComboBoxOutputFormat.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="bnComboBoxOutputFormat.Location" type="System.Drawing.Point, System.Drawing">
<value>5, 312</value>
<value>0, 4</value>
</data>
<data name="bnComboBoxOutputFormat.Size" type="System.Drawing.Size, System.Drawing">
<value>633, 21</value>
<value>656, 21</value>
</data>
<data name="bnComboBoxOutputFormat.TabIndex" type="System.Int32, mscorlib">
<value>9</value>
@@ -1075,13 +1078,10 @@
<value>CUEControls.ImgComboBox, CUEControls, Version=2.1.4.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;bnComboBoxOutputFormat.Parent" xml:space="preserve">
<value>$this</value>
<value>panel5</value>
</data>
<data name="&gt;&gt;bnComboBoxOutputFormat.ZOrder" xml:space="preserve">
<value>12</value>
</data>
<data name="listMetadata.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
<value>0</value>
</data>
<data name="columnHeaderValue.DisplayIndex" type="System.Int32, mscorlib">
<value>1</value>
@@ -1101,11 +1101,14 @@
<data name="columnHeaderName.Width" type="System.Int32, mscorlib">
<value>140</value>
</data>
<data name="listMetadata.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="listMetadata.Location" type="System.Drawing.Point, System.Drawing">
<value>7, 87</value>
<value>0, 0</value>
</data>
<data name="listMetadata.Size" type="System.Drawing.Size, System.Drawing">
<value>630, 220</value>
<value>656, 158</value>
</data>
<data name="listMetadata.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
@@ -1120,10 +1123,10 @@
<value>System.Windows.Forms.ListView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;listMetadata.Parent" xml:space="preserve">
<value>$this</value>
<value>panel4</value>
</data>
<data name="&gt;&gt;listMetadata.ZOrder" xml:space="preserve">
<value>17</value>
<value>1</value>
</data>
<data name="buttonTrackMetadata.FlatStyle" type="System.Windows.Forms.FlatStyle, System.Windows.Forms">
<value>Flat</value>
@@ -1135,7 +1138,7 @@
<value>NoControl</value>
</data>
<data name="buttonTrackMetadata.Location" type="System.Drawing.Point, System.Drawing">
<value>595, 64</value>
<value>594, 61</value>
</data>
<data name="buttonTrackMetadata.Size" type="System.Drawing.Size, System.Drawing">
<value>19, 17</value>
@@ -1153,13 +1156,13 @@
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;buttonTrackMetadata.Parent" xml:space="preserve">
<value>$this</value>
<value>panel3</value>
</data>
<data name="&gt;&gt;buttonTrackMetadata.ZOrder" xml:space="preserve">
<value>8</value>
<value>5</value>
</data>
<data name="buttonMetadata.Location" type="System.Drawing.Point, System.Drawing">
<value>7, 60</value>
<value>6, 57</value>
</data>
<data name="buttonMetadata.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 23</value>
@@ -1180,16 +1183,16 @@
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;buttonMetadata.Parent" xml:space="preserve">
<value>$this</value>
<value>panel3</value>
</data>
<data name="&gt;&gt;buttonMetadata.ZOrder" xml:space="preserve">
<value>6</value>
<value>9</value>
</data>
<data name="buttonVA.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="buttonVA.Location" type="System.Drawing.Point, System.Drawing">
<value>183, 60</value>
<value>182, 57</value>
</data>
<data name="buttonVA.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 23</value>
@@ -1210,16 +1213,16 @@
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;buttonVA.Parent" xml:space="preserve">
<value>$this</value>
<value>panel3</value>
</data>
<data name="&gt;&gt;buttonVA.ZOrder" xml:space="preserve">
<value>9</value>
<value>3</value>
</data>
<data name="buttonReload.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="buttonReload.Location" type="System.Drawing.Point, System.Drawing">
<value>95, 60</value>
<value>94, 57</value>
</data>
<data name="buttonReload.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 23</value>
@@ -1240,7 +1243,7 @@
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;buttonReload.Parent" xml:space="preserve">
<value>$this</value>
<value>panel3</value>
</data>
<data name="&gt;&gt;buttonReload.ZOrder" xml:space="preserve">
<value>7</value>
@@ -1249,7 +1252,7 @@
<value>NoControl</value>
</data>
<data name="buttonEncoding.Location" type="System.Drawing.Point, System.Drawing">
<value>271, 60</value>
<value>270, 57</value>
</data>
<data name="buttonEncoding.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 23</value>
@@ -1270,16 +1273,16 @@
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;buttonEncoding.Parent" xml:space="preserve">
<value>$this</value>
<value>panel3</value>
</data>
<data name="&gt;&gt;buttonEncoding.ZOrder" xml:space="preserve">
<value>5</value>
<value>8</value>
</data>
<data name="buttonTracks.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="buttonTracks.Location" type="System.Drawing.Point, System.Drawing">
<value>7, 60</value>
<value>6, 57</value>
</data>
<data name="buttonTracks.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 23</value>
@@ -1303,16 +1306,16 @@
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;buttonTracks.Parent" xml:space="preserve">
<value>$this</value>
<value>panel3</value>
</data>
<data name="&gt;&gt;buttonTracks.ZOrder" xml:space="preserve">
<value>4</value>
<value>6</value>
</data>
<data name="buttonFreedbSubmit.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="buttonFreedbSubmit.Location" type="System.Drawing.Point, System.Drawing">
<value>357, 60</value>
<value>356, 57</value>
</data>
<data name="buttonFreedbSubmit.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 23</value>
@@ -1333,19 +1336,19 @@
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;buttonFreedbSubmit.Parent" xml:space="preserve">
<value>$this</value>
<value>panel3</value>
</data>
<data name="&gt;&gt;buttonFreedbSubmit.ZOrder" xml:space="preserve">
<value>3</value>
<value>4</value>
</data>
<data name="panel1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Right</value>
<data name="panel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Right</value>
</data>
<data name="panel1.Location" type="System.Drawing.Point, System.Drawing">
<value>462, 339</value>
<value>480, 0</value>
</data>
<data name="panel1.Size" type="System.Drawing.Size, System.Drawing">
<value>176, 125</value>
<value>176, 136</value>
</data>
<data name="panel1.TabIndex" type="System.Int32, mscorlib">
<value>42</value>
@@ -1357,16 +1360,19 @@
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;panel1.Parent" xml:space="preserve">
<value>$this</value>
<value>panel2</value>
</data>
<data name="&gt;&gt;panel1.ZOrder" xml:space="preserve">
<value>2</value>
<value>1</value>
</data>
<data name="pictureBox1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="pictureBox1.Location" type="System.Drawing.Point, System.Drawing">
<value>332, 339</value>
<value>5, 5</value>
</data>
<data name="pictureBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>125, 125</value>
<value>131, 126</value>
</data>
<data name="pictureBox1.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
<value>Zoom</value>
@@ -1381,10 +1387,10 @@
<value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;pictureBox1.Parent" xml:space="preserve">
<value>$this</value>
<value>panel7</value>
</data>
<data name="&gt;&gt;pictureBox1.ZOrder" xml:space="preserve">
<value>1</value>
<value>0</value>
</data>
<metadata name="backgroundWorkerArtwork.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1148, 17</value>
@@ -1393,7 +1399,7 @@
<value>NoControl</value>
</data>
<data name="buttonSettings.Location" type="System.Drawing.Point, System.Drawing">
<value>443, 60</value>
<value>442, 57</value>
</data>
<data name="buttonSettings.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 23</value>
@@ -1414,9 +1420,165 @@
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;buttonSettings.Parent" xml:space="preserve">
<value>$this</value>
<value>panel3</value>
</data>
<data name="&gt;&gt;buttonSettings.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="panel7.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="panel7.Location" type="System.Drawing.Point, System.Drawing">
<value>339, 0</value>
</data>
<data name="panel7.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>5, 5, 5, 5</value>
</data>
<data name="panel7.Size" type="System.Drawing.Size, System.Drawing">
<value>141, 136</value>
</data>
<data name="panel7.TabIndex" type="System.Int32, mscorlib">
<value>44</value>
</data>
<data name="&gt;&gt;panel7.Name" xml:space="preserve">
<value>panel7</value>
</data>
<data name="&gt;&gt;panel7.Type" xml:space="preserve">
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;panel7.Parent" xml:space="preserve">
<value>panel2</value>
</data>
<data name="&gt;&gt;panel7.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="panel2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Bottom</value>
</data>
<data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 284</value>
</data>
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
<value>656, 136</value>
</data>
<data name="panel2.TabIndex" type="System.Int32, mscorlib">
<value>45</value>
</data>
<data name="&gt;&gt;panel2.Name" xml:space="preserve">
<value>panel2</value>
</data>
<data name="&gt;&gt;panel2.Type" xml:space="preserve">
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;panel2.Parent" xml:space="preserve">
<value>panel6</value>
</data>
<data name="&gt;&gt;panel2.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="panel3.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Top</value>
</data>
<data name="panel3.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 4</value>
</data>
<data name="panel3.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="panel3.Size" type="System.Drawing.Size, System.Drawing">
<value>656, 90</value>
</data>
<data name="panel3.TabIndex" type="System.Int32, mscorlib">
<value>46</value>
</data>
<data name="&gt;&gt;panel3.Name" xml:space="preserve">
<value>panel3</value>
</data>
<data name="&gt;&gt;panel3.Type" xml:space="preserve">
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;panel3.Parent" xml:space="preserve">
<value>panel6</value>
</data>
<data name="&gt;&gt;panel3.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="panel4.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="panel4.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 94</value>
</data>
<data name="panel4.Size" type="System.Drawing.Size, System.Drawing">
<value>656, 158</value>
</data>
<data name="panel4.TabIndex" type="System.Int32, mscorlib">
<value>47</value>
</data>
<data name="&gt;&gt;panel4.Name" xml:space="preserve">
<value>panel4</value>
</data>
<data name="&gt;&gt;panel4.Type" xml:space="preserve">
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;panel4.Parent" xml:space="preserve">
<value>panel6</value>
</data>
<data name="&gt;&gt;panel4.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="panel5.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Bottom</value>
</data>
<data name="panel5.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 252</value>
</data>
<data name="panel5.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 4, 0, 0</value>
</data>
<data name="panel5.Size" type="System.Drawing.Size, System.Drawing">
<value>656, 32</value>
</data>
<data name="panel5.TabIndex" type="System.Int32, mscorlib">
<value>48</value>
</data>
<data name="&gt;&gt;panel5.Name" xml:space="preserve">
<value>panel5</value>
</data>
<data name="&gt;&gt;panel5.Type" xml:space="preserve">
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;panel5.Parent" xml:space="preserve">
<value>panel6</value>
</data>
<data name="&gt;&gt;panel5.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="panel6.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="panel6.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="panel6.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data>
<data name="panel6.Size" type="System.Drawing.Size, System.Drawing">
<value>664, 424</value>
</data>
<data name="panel6.TabIndex" type="System.Int32, mscorlib">
<value>49</value>
</data>
<data name="&gt;&gt;panel6.Name" xml:space="preserve">
<value>panel6</value>
</data>
<data name="&gt;&gt;panel6.Type" xml:space="preserve">
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;panel6.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;panel6.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
@@ -1429,7 +1591,7 @@
<value>6, 13</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>650, 494</value>
<value>664, 449</value>
</data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
@@ -1828,6 +1990,9 @@
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAQAAwAMAAPAPAAA=
</value>
</data>
<data name="$this.MinimumSize" type="System.Drawing.Size, System.Drawing">
<value>680, 487</value>
</data>
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
<value>CenterScreen</value>
</data>
@@ -1952,31 +2117,31 @@
<value>plainBackgroundPainter1</value>
</data>
<data name="&gt;&gt;plainBackgroundPainter1.Type" xml:space="preserve">
<value>ProgressODoom.PlainBackgroundPainter, ProgressODoom, Version=1.0.4313.32741, Culture=neutral, PublicKeyToken=null</value>
<value>ProgressODoom.PlainBackgroundPainter, ProgressODoom, Version=1.0.4486.36018, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;styledBorderPainter1.Name" xml:space="preserve">
<value>styledBorderPainter1</value>
</data>
<data name="&gt;&gt;styledBorderPainter1.Type" xml:space="preserve">
<value>ProgressODoom.StyledBorderPainter, ProgressODoom, Version=1.0.4313.32741, Culture=neutral, PublicKeyToken=null</value>
<value>ProgressODoom.StyledBorderPainter, ProgressODoom, Version=1.0.4486.36018, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;plainProgressPainter1.Name" xml:space="preserve">
<value>plainProgressPainter1</value>
</data>
<data name="&gt;&gt;plainProgressPainter1.Type" xml:space="preserve">
<value>ProgressODoom.PlainProgressPainter, ProgressODoom, Version=1.0.4313.32741, Culture=neutral, PublicKeyToken=null</value>
<value>ProgressODoom.PlainProgressPainter, ProgressODoom, Version=1.0.4486.36018, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;gradientGlossPainter1.Name" xml:space="preserve">
<value>gradientGlossPainter1</value>
</data>
<data name="&gt;&gt;gradientGlossPainter1.Type" xml:space="preserve">
<value>ProgressODoom.GradientGlossPainter, ProgressODoom, Version=1.0.4313.32741, Culture=neutral, PublicKeyToken=null</value>
<value>ProgressODoom.GradientGlossPainter, ProgressODoom, Version=1.0.4486.36018, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;plainProgressPainter2.Name" xml:space="preserve">
<value>plainProgressPainter2</value>
</data>
<data name="&gt;&gt;plainProgressPainter2.Type" xml:space="preserve">
<value>ProgressODoom.PlainProgressPainter, ProgressODoom, Version=1.0.4313.32741, Culture=neutral, PublicKeyToken=null</value>
<value>ProgressODoom.PlainProgressPainter, ProgressODoom, Version=1.0.4486.36018, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;toolTip1.Name" xml:space="preserve">
<value>toolTip1</value>

View File

@@ -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; }

View File

@@ -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; }
}
}

View File

@@ -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)
{

View File

@@ -46,7 +46,7 @@
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>..\bin\Release\plugins\</OutputPath>
<OutputPath>..\bin\Release\plugins %28Win32%29\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>

View File

@@ -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 };

View File

@@ -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;

View File

@@ -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 };

View File

@@ -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;

View File

@@ -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

View File

@@ -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; }
}
}

View File

@@ -16,13 +16,15 @@ namespace CUETools.Processor
TotalDiscs = "";
DiscNumber = "";
DiscName = "";
Year = "";
Comment = "";
Year = "";
Genre = "";
Artist = "";
Title = "";
Barcode = "";
ReleaseDate = "";
Label = "";
LabelNo = "";
Country = "";
AlbumArt = new List<CTDB.CTDBResponseMetaImage>();
Tracks = new List<CUETrackMetadata>();
@@ -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<CUETrackMetadata> 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<string>();
var listLabelNo = new List<string>();
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;
}

View File

@@ -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");

View File

@@ -66,10 +66,6 @@
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="taglib-sharp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=db62eba44689b5b0, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\ThirdParty\taglib-sharp.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="CUESheetLogWriter.cs" />
@@ -148,6 +144,10 @@
<Project>{8A0426FA-0BC2-4C49-A6E5-1F9A68156F19}</Project>
<Name>CUETools.Codecs.LossyWAV</Name>
</ProjectReference>
<ProjectReference Include="..\taglib-sharp\src\taglib-sharp.csproj">
<Project>{6B143A39-C7B2-4743-9917-92262C60E9A6}</Project>
<Name>taglib-sharp</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">

View File

@@ -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 = "";
}
}

View File

@@ -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);
}

View File

@@ -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);
//}
}
}

View File

@@ -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

View File

@@ -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");

View File

@@ -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)

File diff suppressed because it is too large Load Diff

View File

@@ -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();
}
}

Binary file not shown.