) 'create cuesheet' now sorts files by tracknumber tag.

) 'create cuesheet' can now create a cue sheet from .m3u file.
) CUERipper: buttons instead of menu
This commit is contained in:
chudov
2010-05-06 01:31:23 +00:00
parent 691cc51ee8
commit 057c892303
18 changed files with 1089 additions and 1232 deletions

View File

@@ -79,12 +79,6 @@
<Compile Include="frmCUERipper.Designer.cs">
<DependentUpon>frmCUERipper.cs</DependentUpon>
</Compile>
<Compile Include="frmProperties.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmProperties.Designer.cs">
<DependentUpon>frmProperties.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="frmCUERipper.de-DE.resx">
@@ -97,10 +91,6 @@
<EmbeddedResource Include="frmCUERipper.ru-RU.resx">
<DependentUpon>frmCUERipper.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmProperties.resx">
<DependentUpon>frmProperties.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
@@ -234,6 +224,11 @@
<Content Include="Plugins\CUETools.Codecs.FlaCuda.dll" />
<Content Include="Plugins\CUETools.Codecs.FLAKE.dll" />
<Content Include="Plugins\CUETools.Ripper.SCSI.dll" />
<None Include="Resources\edit-list-order.png" />
<None Include="Resources\spellcheck.png" />
<None Include="Resources\users--arrow.png" />
<None Include="Resources\arrow-circle-double.png" />
<None Include="Resources\tag-label.png" />
<None Include="Resources\ape.ico" />
<None Include="Resources\ipod_sound.ico" />
<None Include="Resources\mp3.ico" />

View File

@@ -81,6 +81,13 @@ namespace CUERipper.Properties {
}
}
internal static System.Drawing.Bitmap arrow_circle_double {
get {
object obj = ResourceManager.GetObject("arrow-circle-double", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
internal static System.Drawing.Bitmap cddb {
get {
object obj = ResourceManager.GetObject("cddb", resourceCulture);
@@ -131,6 +138,13 @@ namespace CUERipper.Properties {
}
}
internal static System.Drawing.Bitmap edit_list_order {
get {
object obj = ResourceManager.GetObject("edit-list-order", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized string similar to Exception.
/// </summary>
@@ -227,6 +241,20 @@ namespace CUERipper.Properties {
}
}
internal static System.Drawing.Bitmap spellcheck {
get {
object obj = ResourceManager.GetObject("spellcheck", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
internal static System.Drawing.Bitmap tag_label {
get {
object obj = ResourceManager.GetObject("tag-label", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
internal static System.Drawing.Icon tta {
get {
object obj = ResourceManager.GetObject("tta", resourceCulture);
@@ -234,6 +262,13 @@ namespace CUERipper.Properties {
}
}
internal static System.Drawing.Bitmap users__arrow {
get {
object obj = ResourceManager.GetObject("users--arrow", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
internal static System.Drawing.Icon wave {
get {
object obj = ResourceManager.GetObject("wave", resourceCulture);

View File

@@ -117,77 +117,92 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="musicbrainz" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\musicbrainz.ico;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="cddb" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\cddb.ico;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="freedb" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\freedb.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arok" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\arok.ico;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="accuraterip16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\accuraterip_16.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="cdrepair" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\cdrepair.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ape" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ape.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="flac" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\flac.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ipod_sound" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ipod_sound.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="mp3" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\mp3.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ogg" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ogg.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="tta" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\tta.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="wave" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\wave.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="wv" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\wv.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="DoneRipping" xml:space="preserve">
<value>Done ripping</value>
</data>
<data name="DoneRippingErrors" xml:space="preserve">
<value>Rip probably contains errors</value>
</data>
<data name="DoneRippingRepair" xml:space="preserve">
<value>You can try to repair it using CUETools</value>
</data>
<data name="ExceptionMessage" xml:space="preserve">
<value>Exception</value>
</data>
<data name="FailedToLoadRipperModule" xml:space="preserve">
<value>Failed to load ripper module</value>
</data>
<data name="LookingUpVia" xml:space="preserve">
<value>Looking up album via</value>
</data>
<data name="NoDrives" xml:space="preserve">
<value>No CD drives found</value>
</data>
<data name="PausedMessage" xml:space="preserve">
<value>Paused</value>
<data name="FailedToLoadRipperModule" xml:space="preserve">
<value>Failed to load ripper module</value>
</data>
<data name="Retry" xml:space="preserve">
<value>retry</value>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="flac" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\flac.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="DoneRippingErrors" xml:space="preserve">
<value>Rip probably contains errors</value>
</data>
<data name="musicbrainz" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\musicbrainz.ico;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="DoneRipping" xml:space="preserve">
<value>Done ripping</value>
</data>
<data name="DoneRippingRepair" xml:space="preserve">
<value>You can try to repair it using CUETools</value>
</data>
<data name="cdrepair" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\cdrepair.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="users--arrow" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\users--arrow.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="cddb" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\cddb.ico;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ogg" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ogg.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="DetectingDrives" xml:space="preserve">
<value>Detecting drives</value>
</data>
<data name="ape" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ape.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ipod_sound" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ipod_sound.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="wv" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\wv.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="accuraterip16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\accuraterip_16.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="freedb" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\freedb.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="spellcheck" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\spellcheck.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="PausedMessage" xml:space="preserve">
<value>Paused</value>
</data>
<data name="mp3" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\mp3.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arok" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\arok.ico;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="tta" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\tta.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="wave" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\wave.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow-circle-double" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow-circle-double.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Retry" xml:space="preserve">
<value>retry</value>
</data>
<data name="tag-label" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\tag-label.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="edit-list-order" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\edit-list-order.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

Binary file not shown.

After

Width:  |  Height:  |  Size: 836 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 433 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 603 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 690 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 849 B

View File

@@ -52,11 +52,6 @@ namespace CUERipper
this.buttonGo = new System.Windows.Forms.Button();
this.buttonAbort = new System.Windows.Forms.Button();
this.buttonPause = new System.Windows.Forms.Button();
this.contextMenuStripRelease = new System.Windows.Forms.ContextMenuStrip(this.components);
this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.variousToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.fixEncodingToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.reloadToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.numericWriteOffset = new System.Windows.Forms.NumericUpDown();
this.lblWriteOffset = new System.Windows.Forms.Label();
this.checkBoxEACMode = new System.Windows.Forms.CheckBox();
@@ -93,8 +88,16 @@ namespace CUERipper
this.imageListMetadataSource = new System.Windows.Forms.ImageList(this.components);
this.bnComboBoxDrives = new CUEControls.ImgComboBox();
this.bnComboBoxOutputFormat = new CUEControls.ImgComboBox();
this.listMetadata = new System.Windows.Forms.ListView();
this.columnHeaderValue = new System.Windows.Forms.ColumnHeader();
this.columnHeaderName = new System.Windows.Forms.ColumnHeader();
this.buttonTrackMetadata = new System.Windows.Forms.Button();
this.buttonMetadata = new System.Windows.Forms.Button();
this.buttonVA = new System.Windows.Forms.Button();
this.buttonReload = new System.Windows.Forms.Button();
this.buttonEncoding = new System.Windows.Forms.Button();
this.buttonTracks = new System.Windows.Forms.Button();
this.statusStrip1.SuspendLayout();
this.contextMenuStripRelease.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.numericWriteOffset)).BeginInit();
this.groupBoxSettings.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.losslessOrNotBindingSource)).BeginInit();
@@ -233,41 +236,6 @@ namespace CUERipper
this.buttonPause.UseVisualStyleBackColor = true;
this.buttonPause.Click += new System.EventHandler(this.buttonPause_Click);
//
// contextMenuStripRelease
//
this.contextMenuStripRelease.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.editToolStripMenuItem,
this.variousToolStripMenuItem,
this.fixEncodingToolStripMenuItem,
this.reloadToolStripMenuItem});
this.contextMenuStripRelease.Name = "contextMenuStripRelease";
resources.ApplyResources(this.contextMenuStripRelease, "contextMenuStripRelease");
this.contextMenuStripRelease.Opening += new System.ComponentModel.CancelEventHandler(this.contextMenuStripRelease_Opening);
//
// editToolStripMenuItem
//
this.editToolStripMenuItem.Name = "editToolStripMenuItem";
resources.ApplyResources(this.editToolStripMenuItem, "editToolStripMenuItem");
this.editToolStripMenuItem.Click += new System.EventHandler(this.editToolStripMenuItem_Click);
//
// variousToolStripMenuItem
//
this.variousToolStripMenuItem.Name = "variousToolStripMenuItem";
resources.ApplyResources(this.variousToolStripMenuItem, "variousToolStripMenuItem");
this.variousToolStripMenuItem.Click += new System.EventHandler(this.variousToolStripMenuItem_Click);
//
// fixEncodingToolStripMenuItem
//
this.fixEncodingToolStripMenuItem.Name = "fixEncodingToolStripMenuItem";
resources.ApplyResources(this.fixEncodingToolStripMenuItem, "fixEncodingToolStripMenuItem");
this.fixEncodingToolStripMenuItem.Click += new System.EventHandler(this.fixEncodingToolStripMenuItem_Click);
//
// reloadToolStripMenuItem
//
this.reloadToolStripMenuItem.Name = "reloadToolStripMenuItem";
resources.ApplyResources(this.reloadToolStripMenuItem, "reloadToolStripMenuItem");
this.reloadToolStripMenuItem.Click += new System.EventHandler(this.reloadToolStripMenuItem_Click);
//
// numericWriteOffset
//
resources.ApplyResources(this.numericWriteOffset, "numericWriteOffset");
@@ -539,7 +507,6 @@ namespace CUERipper
// bnComboBoxRelease
//
this.bnComboBoxRelease.BackColor = System.Drawing.Color.Transparent;
this.bnComboBoxRelease.ContextMenuStrip = this.contextMenuStripRelease;
this.bnComboBoxRelease.DataSource = this.releasesBindingSource;
this.bnComboBoxRelease.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.bnComboBoxRelease.ForeColor = System.Drawing.SystemColors.ControlText;
@@ -553,7 +520,6 @@ namespace CUERipper
rectRadius5.TopLeft = 2;
rectRadius5.TopRight = 6;
this.bnComboBoxRelease.Radius = rectRadius5;
this.toolTip1.SetToolTip(this.bnComboBoxRelease, resources.GetString("bnComboBoxRelease.ToolTip"));
this.bnComboBoxRelease.SelectedValueChanged += new System.EventHandler(this.bnComboBoxRelease_SelectedValueChanged);
//
// releasesBindingSource
@@ -568,6 +534,11 @@ namespace CUERipper
this.imageListMetadataSource.Images.SetKeyName(0, "musicbrainz");
this.imageListMetadataSource.Images.SetKeyName(1, "freedb");
this.imageListMetadataSource.Images.SetKeyName(2, "local");
this.imageListMetadataSource.Images.SetKeyName(3, "localshadow");
this.imageListMetadataSource.Images.SetKeyName(4, "tracks");
this.imageListMetadataSource.Images.SetKeyName(5, "tracks1");
this.imageListMetadataSource.Images.SetKeyName(6, "album");
this.imageListMetadataSource.Images.SetKeyName(7, "track");
//
// bnComboBoxDrives
//
@@ -605,15 +576,97 @@ namespace CUERipper
this.bnComboBoxOutputFormat.DropDown += new System.EventHandler(this.bnComboBoxOutputFormat_DroppedDown);
this.bnComboBoxOutputFormat.TextChanged += new System.EventHandler(this.bnComboBoxOutputFormat_TextChanged);
//
// listMetadata
//
this.listMetadata.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.columnHeaderValue,
this.columnHeaderName});
this.listMetadata.FullRowSelect = true;
this.listMetadata.GridLines = true;
this.listMetadata.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
this.listMetadata.LabelEdit = true;
resources.ApplyResources(this.listMetadata, "listMetadata");
this.listMetadata.Name = "listMetadata";
this.listMetadata.UseCompatibleStateImageBehavior = false;
this.listMetadata.View = System.Windows.Forms.View.Details;
this.listMetadata.AfterLabelEdit += new System.Windows.Forms.LabelEditEventHandler(this.listMetadata_AfterLabelEdit);
this.listMetadata.Click += new System.EventHandler(this.listMetadata_Click);
//
// columnHeaderValue
//
resources.ApplyResources(this.columnHeaderValue, "columnHeaderValue");
//
// columnHeaderName
//
resources.ApplyResources(this.columnHeaderName, "columnHeaderName");
//
// buttonTrackMetadata
//
this.buttonTrackMetadata.BackColor = System.Drawing.Color.Transparent;
this.buttonTrackMetadata.FlatAppearance.BorderSize = 0;
this.buttonTrackMetadata.FlatAppearance.MouseDownBackColor = System.Drawing.SystemColors.Control;
this.buttonTrackMetadata.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
resources.ApplyResources(this.buttonTrackMetadata, "buttonTrackMetadata");
this.buttonTrackMetadata.ForeColor = System.Drawing.SystemColors.ControlText;
this.buttonTrackMetadata.ImageList = this.imageListChecked;
this.buttonTrackMetadata.Name = "buttonTrackMetadata";
this.buttonTrackMetadata.UseVisualStyleBackColor = false;
//
// buttonMetadata
//
this.buttonMetadata.Image = global::CUERipper.Properties.Resources.tag_label;
resources.ApplyResources(this.buttonMetadata, "buttonMetadata");
this.buttonMetadata.Name = "buttonMetadata";
this.buttonMetadata.UseVisualStyleBackColor = true;
this.buttonMetadata.Click += new System.EventHandler(this.buttonMetadata_Click);
//
// buttonVA
//
this.buttonVA.Image = global::CUERipper.Properties.Resources.users__arrow;
resources.ApplyResources(this.buttonVA, "buttonVA");
this.buttonVA.Name = "buttonVA";
this.buttonVA.UseVisualStyleBackColor = true;
this.buttonVA.Click += new System.EventHandler(this.buttonVA_Click);
//
// buttonReload
//
this.buttonReload.Image = global::CUERipper.Properties.Resources.arrow_circle_double;
resources.ApplyResources(this.buttonReload, "buttonReload");
this.buttonReload.Name = "buttonReload";
this.buttonReload.UseVisualStyleBackColor = true;
this.buttonReload.Click += new System.EventHandler(this.buttonReload_Click);
//
// buttonEncoding
//
this.buttonEncoding.Image = global::CUERipper.Properties.Resources.spellcheck;
resources.ApplyResources(this.buttonEncoding, "buttonEncoding");
this.buttonEncoding.Name = "buttonEncoding";
this.buttonEncoding.UseVisualStyleBackColor = true;
this.buttonEncoding.Click += new System.EventHandler(this.buttonEncoding_Click);
//
// buttonTracks
//
this.buttonTracks.Image = global::CUERipper.Properties.Resources.edit_list_order;
resources.ApplyResources(this.buttonTracks, "buttonTracks");
this.buttonTracks.Name = "buttonTracks";
this.buttonTracks.UseVisualStyleBackColor = true;
this.buttonTracks.Click += new System.EventHandler(this.buttonTracks_Click);
//
// frmCUERipper
//
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.txtOutputPath);
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.txtOutputPath);
this.Controls.Add(this.bnComboBoxDrives);
this.Controls.Add(this.bnComboBoxOutputFormat);
this.Controls.Add(this.progressBarErrors);
this.Controls.Add(this.bnComboBoxOutputFormat);
this.Controls.Add(this.progressBarCD);
this.Controls.Add(this.groupBoxSettings);
this.Controls.Add(this.listTracks);
@@ -621,6 +674,7 @@ namespace CUERipper
this.Controls.Add(this.statusStrip1);
this.Controls.Add(this.buttonAbort);
this.Controls.Add(this.buttonPause);
this.Controls.Add(this.listMetadata);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.KeyPreview = true;
this.MaximizeBox = false;
@@ -631,7 +685,6 @@ namespace CUERipper
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.frmCUERipper_KeyDown);
this.statusStrip1.ResumeLayout(false);
this.statusStrip1.PerformLayout();
this.contextMenuStripRelease.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.numericWriteOffset)).EndInit();
this.groupBoxSettings.ResumeLayout(false);
this.groupBoxSettings.PerformLayout();
@@ -662,8 +715,6 @@ namespace CUERipper
private System.Windows.Forms.Button buttonGo;
private System.Windows.Forms.Button buttonAbort;
private System.Windows.Forms.Button buttonPause;
private System.Windows.Forms.ContextMenuStrip contextMenuStripRelease;
private System.Windows.Forms.ToolStripMenuItem editToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1;
private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel2;
private System.Windows.Forms.ToolStripStatusLabel toolStripStatusAr;
@@ -704,9 +755,15 @@ namespace CUERipper
private System.Windows.Forms.BindingSource losslessOrNotBindingSource;
private CUEControls.ImgComboBox bnComboBoxOutputFormat;
private System.Windows.Forms.ImageList imageListChecked;
private System.Windows.Forms.ToolStripMenuItem variousToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem fixEncodingToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem reloadToolStripMenuItem;
private System.Windows.Forms.ListView listMetadata;
private System.Windows.Forms.ColumnHeader columnHeaderName;
private System.Windows.Forms.ColumnHeader columnHeaderValue;
private System.Windows.Forms.Button buttonTrackMetadata;
private System.Windows.Forms.Button buttonMetadata;
private System.Windows.Forms.Button buttonVA;
private System.Windows.Forms.Button buttonReload;
private System.Windows.Forms.Button buttonEncoding;
private System.Windows.Forms.Button buttonTracks;
}
}

View File

@@ -10,6 +10,7 @@ using System.Text;
using System.Threading;
using System.Windows.Forms;
using System.Configuration;
using System.Drawing.Drawing2D;
using CUETools.AccurateRip;
using CUETools.CTDB;
using CUETools.CDImage;
@@ -28,7 +29,6 @@ namespace CUERipper
private StartStop _startStop;
private CUEConfig _config;
private CUESheet cueSheet;
private CUEMetadataEntry selectedRelease;
private DriveInfo selectedDriveInfo;
private string _pathOut;
string _defaultLosslessFormat, _defaultLossyFormat, _defaultHybridFormat;
@@ -57,8 +57,92 @@ namespace CUERipper
"%music%\\%artist%\\[%year% - ]%album%[ - %edition%]$ifgreater($max(%discnumber%,%totaldiscs%),1, - cd %discnumber%,)[' ('%unique%')']\\%artist% - %album%[ - %edition%].cue"
};
//// Calculate the graphics path that representing the figure in the bitmap
//// excluding the transparent color which is the top left pixel.
//private static GraphicsPath CalculateControlGraphicsPath(Bitmap bitmap, Color colorTransparent)
//{
// // Create GraphicsPath for our bitmap calculation
// GraphicsPath graphicsPath = new GraphicsPath();
// // Use the top left pixel as our transparent color
// colorTransparent = bitmap.GetPixel(0, 0);
// // This is to store the column value where an opaque pixel is first found.
// // This value will determine where we start scanning for trailing
// // opaque pixels.
// int colOpaquePixel = 0;
// // Go through all rows (Y axis)
// for (int row = 0; row < bitmap.Height; row++)
// {
// // Reset value
// colOpaquePixel = 0;
// // Go through all columns (X axis)
// for (int col = 0; col < bitmap.Width; col++)
// {
// // If this is an opaque pixel, mark it and search
// // for anymore trailing behind
// if (bitmap.GetPixel(col, row) != colorTransparent)
// {
// // Opaque pixel found, mark current position
// colOpaquePixel = col;
// // Create another variable to set the current pixel position
// int colNext = col;
// // Starting from current found opaque pixel, search for
// // anymore opaque pixels trailing behind, until a transparent
// // pixel is found or minimum width is reached
// for (colNext = colOpaquePixel; colNext < bitmap.Width; colNext++)
// if (bitmap.GetPixel(colNext, row) == colorTransparent)
// break;
// // Form a rectangle for line of opaque pixels found and
// // add it to our graphics path
// graphicsPath.AddRectangle(new Rectangle(colOpaquePixel,
// row, colNext - colOpaquePixel, 1));
// // No need to scan the line of opaque pixels just found
// col = colNext;
// }
// }
// }
// // Return calculated graphics path
// return graphicsPath;
//}
//private static void CreateControlRegion(Button button, Bitmap bitmap, Color colorTransparent)
//{
// // Return if control and bitmap are null
// if (button == null || bitmap == null)
// return;
// // Set our control's size to be the same as the bitmap
// button.Width = bitmap.Width;
// button.Height = bitmap.Height;
// // Do not show button text
// button.Text = "";
// // Change cursor to hand when over button
// button.Cursor = Cursors.Hand;
// // Set background image of button
// button.BackgroundImage = bitmap;
// // Calculate the graphics path based on the bitmap supplied
// GraphicsPath graphicsPath = CalculateControlGraphicsPath(bitmap, colorTransparent);
// // Apply new region
// button.Region = new Region(graphicsPath);
//}
private void frmCUERipper_Load(object sender, EventArgs e)
{
//buttonTrackMetadata.Parent = listTracks;
//buttonTrackMetadata.ImageList = null;
//CreateControlRegion(buttonTrackMetadata, new Bitmap(imageListChecked.Images[0]), imageListChecked.TransparentColor);
//CreateControlRegion(buttonTrackMetadata, Properties.Resources.cdrepair, Color.White);
SettingsReader sr = new SettingsReader("CUERipper", "settings.txt", Application.ExecutablePath);
_config.Load(sr);
_defaultLosslessFormat = sr.Load("DefaultLosslessFormat") ?? "flac";
@@ -148,6 +232,7 @@ namespace CUERipper
try
{
arName = reader.ARName;
reader.Close();
}
catch
{
@@ -185,7 +270,7 @@ namespace CUERipper
data.Drives.Clear();
listTracks.Items.Clear();
data.Releases.Clear();
selectedRelease = null;
data.selectedRelease = null;
selectedDriveInfo = null;
bnComboBoxRelease.Text = "";
@@ -204,7 +289,7 @@ namespace CUERipper
bool outputFormatVisible = false;
private void SetupControls ()
private void SetupControls()
{
bool running = _workThread != null;
@@ -215,13 +300,23 @@ namespace CUERipper
bnComboBoxDrives.Enabled = !running && data.Drives.Count > 0;
bnComboBoxOutputFormat.Enabled =
listTracks.Enabled =
listMetadata.Enabled =
groupBoxSettings.Enabled = !running;
buttonGo.Enabled = !running && data.selectedRelease != null;
buttonPause.Visible = buttonPause.Enabled = buttonAbort.Visible = buttonAbort.Enabled = running;
buttonGo.Visible = buttonGo.Enabled = !running;
buttonGo.Visible = !running;
toolStripStatusLabel1.Text = String.Empty;
toolStripProgressBar1.Value = 0;
progressBarErrors.Value = 0;
progressBarCD.Value = 0;
buttonTracks.Enabled = data.selectedRelease != null && !running;
buttonMetadata.Enabled = data.selectedRelease != null && !running;
buttonVA.Enabled = data.selectedRelease != null && !running &&
data.selectedRelease.ImageKey == "freedb" && !data.selectedRelease.metadata.IsVarious();
buttonEncoding.Enabled = data.selectedRelease != null && !running &&
data.selectedRelease.ImageKey == "freedb" && (new CUEMetadata(data.selectedRelease.metadata)).FreedbToEncoding();
buttonReload.Enabled = data.selectedRelease != null && !running;
}
private void CheckStop()
@@ -352,7 +447,7 @@ namespace CUERipper
this.BeginInvoke((MethodInvoker)delegate()
{
data.Releases.Clear();
selectedRelease = null;
data.selectedRelease = null;
bnComboBoxRelease.Text = ex.Message;
});
}
@@ -376,9 +471,9 @@ namespace CUERipper
bnComboBoxOutputFormat.Items.RemoveAt(OutputPathUseTemplates.Length + 10);
}
selectedRelease.metadata.Save();
data.selectedRelease.metadata.Save();
cueSheet.CopyMetadata(selectedRelease.metadata);
cueSheet.CopyMetadata(data.selectedRelease.metadata);
cueSheet.OutputStyle = bnComboBoxImage.SelectedIndex == 0 ? CUEStyle.SingleFileWithCUE :
CUEStyle.GapsAppended;
_pathOut = cueSheet.GenerateUniqueOutputPath(bnComboBoxOutputFormat.Text,
@@ -411,21 +506,62 @@ namespace CUERipper
private void UpdateRelease()
{
listTracks.Items.Clear();
selectedRelease = bnComboBoxRelease.SelectedItem as CUEMetadataEntry;
data.selectedRelease = bnComboBoxRelease.SelectedItem as CUEMetadataEntry;
comboBoxOutputFormat_TextUpdate(this, new EventArgs());
if (selectedRelease == null)
return;
listTracks.BeginUpdate();
listMetadata.BeginUpdate();
listTracks.Items.Clear();
listMetadata.Items.Clear();
if (!data.metadataMode)
{
listTracks.Visible = true;
listMetadata.Visible = false;
if (data.selectedRelease != null)
for (int i = 1; i <= selectedDriveInfo.drive.TOC.TrackCount; i++)
{
string title;
if (!selectedDriveInfo.drive.TOC[i].IsAudio)
title = "Data track";
else
title = data.selectedRelease.metadata.Tracks[i - selectedDriveInfo.drive.TOC.FirstAudio].Title;
listTracks.Items.Add(new ListViewItem(new string[] {
selectedDriveInfo.drive.TOC[i].IsAudio ? selectedRelease.metadata.Tracks[i - selectedDriveInfo.drive.TOC.FirstAudio].Title : "Data track",
title,
selectedDriveInfo.drive.TOC[i].Number.ToString(),
selectedDriveInfo.drive.TOC[i].StartMSF,
selectedDriveInfo.drive.TOC[i].LengthMSF }));
}
}
else //if (data.selectedTrack.no == 0)
{
listTracks.Visible = false;
listMetadata.Visible = true;
if (data.selectedRelease != null)
{
PropertyDescriptorCollection props = TypeDescriptor.GetProperties(data.selectedRelease.metadata);
PropertyDescriptorCollection sortedprops = props.Sort(new string[] { "Artist", "Title", "Genre", "Year", "DiscNumber", "TotalDiscs" });
foreach (PropertyDescriptor p in sortedprops)
if (p.Name != "Tracks" && p.Name != "Id" && p.Name != "Catalog")
listMetadata.Items.Add(new ListViewItem(new string[] { p.GetValue(data.selectedRelease.metadata).ToString(), p.Name }));
}
}
//else
//{
// listTracks.Visible = false;
// listMetadata.Visible = true;
// if (data.selectedRelease != null)
// {
// CUETrackMetadata track = data.selectedRelease.metadata.Tracks[data.selectedTrack.no - 1];
// PropertyDescriptorCollection props = TypeDescriptor.GetProperties(track);
// //props = props.Sort(new string[] { "TopLeft", "TopRight", "BottomLeft", "BottomRight" });
// foreach (PropertyDescriptor p in props)
// if (p.Name != "ISRC")
// listMetadata.Items.Add(new ListViewItem(new string[] { p.GetValue(track).ToString(), p.Name }));
// }
//}
listTracks.EndUpdate();
listMetadata.EndUpdate();
SetupControls();
}
private void MusicBrainz_LookupProgress(object sender, XmlRequestEventArgs e)
{
@@ -622,15 +758,15 @@ namespace CUERipper
toolStripStatusLabelMusicBrainz.Enabled = false;
toolStripStatusLabelMusicBrainz.Text = "";
toolStripStatusLabelMusicBrainz.ToolTipText = "";
buttonGo.Enabled = false;
listTracks.Items.Clear();
data.Releases.Clear();
selectedRelease = null;
data.selectedRelease = null;
bnComboBoxRelease.Enabled = false;
bnComboBoxRelease.Text = "";
if (selectedDriveInfo == null || selectedDriveInfo.drive == null)
{
selectedDriveInfo = null;
SetupControls();
return;
}
if (cueSheet != null)
@@ -650,11 +786,13 @@ namespace CUERipper
//selectedDriveInfo.drive.Close();
bnComboBoxRelease.Text = ex.Message;
//bnComboBoxRelease.Enabled = false;
SetupControls();
return;
}
if (selectedDriveInfo.drive.TOC.AudioTracks == 0)
{
bnComboBoxRelease.Text = "No audio tracks";
SetupControls();
return;
}
UpdateRelease();
@@ -694,65 +832,13 @@ namespace CUERipper
private void listTracks_AfterLabelEdit(object sender, LabelEditEventArgs e)
{
if (selectedRelease == null) return;
if (data.selectedRelease == null) return;
if (e.Label != null && selectedDriveInfo.drive.TOC[e.Item + 1].IsAudio)
selectedRelease.metadata.Tracks[e.Item].Title = e.Label;
data.selectedRelease.metadata.Tracks[e.Item].Title = e.Label;
else
e.CancelEdit = true;
}
private void contextMenuStripRelease_Opening(object sender, CancelEventArgs e)
{
if (selectedRelease == null) return;
bool isVarious = false;
for (int i = 0; i < selectedRelease.metadata.Tracks.Count; i++)
if (selectedRelease.metadata.Tracks[i].Artist != selectedRelease.metadata.Artist)
isVarious = true;
variousToolStripMenuItem.Enabled = selectedRelease.ImageKey == "freedb" && !isVarious;
CUEMetadata copy = new CUEMetadata(selectedRelease.metadata);
fixEncodingToolStripMenuItem.Enabled = selectedRelease.ImageKey == "freedb" && copy.FreedbToEncoding();
}
private void editToolStripMenuItem_Click(object sender, EventArgs e)
{
if (selectedRelease == null) return;
frmProperties frm = new frmProperties();
frm.Metadata = selectedRelease.metadata;
frm.ShowDialog();
data.Releases.ResetItem(bnComboBoxRelease.SelectedIndex);
comboBoxOutputFormat_TextUpdate(sender, e);
}
private void variousToolStripMenuItem_Click(object sender, EventArgs e)
{
if (selectedRelease == null) return;
selectedRelease.metadata.FreedbToVarious();
UpdateRelease();
data.Releases.ResetItem(bnComboBoxRelease.SelectedIndex);
}
private void fixEncodingToolStripMenuItem_Click(object sender, EventArgs e)
{
if (selectedRelease == null) return;
selectedRelease.metadata.FreedbToEncoding();
UpdateRelease();
data.Releases.ResetItem(bnComboBoxRelease.SelectedIndex);
comboBoxOutputFormat_TextUpdate(sender, e);
}
private void reloadToolStripMenuItem_Click(object sender, EventArgs e)
{
loadAllMetadata = true;
data.Releases.Clear();
selectedRelease = null;
UpdateRelease();
_workThread = new Thread(Lookup);
_workThread.Priority = ThreadPriority.BelowNormal;
_workThread.IsBackground = true;
SetupControls();
_workThread.Start(selectedDriveInfo.drive);
}
private void frmCUERipper_FormClosed(object sender, FormClosedEventArgs e)
{
SettingsWriter sw = new SettingsWriter("CUERipper", "settings.txt", Application.ExecutablePath);
@@ -903,7 +989,7 @@ namespace CUERipper
private void comboBoxOutputFormat_TextUpdate(object sender, EventArgs e)
{
if (selectedFormat == null) return;
if (selectedRelease == null)
if (data.selectedRelease == null)
{
txtOutputPath.Text = "";
return;
@@ -911,7 +997,7 @@ namespace CUERipper
CUEStyle style = bnComboBoxImage.SelectedIndex == 0 ? CUEStyle.SingleFileWithCUE : CUEStyle.GapsAppended;
CUESheet sheet = new CUESheet(_config);
sheet.TOC = selectedDriveInfo.drive.TOC;
sheet.CopyMetadata(selectedRelease.metadata);
sheet.CopyMetadata(data.selectedRelease.metadata);
txtOutputPath.Text = sheet.GenerateUniqueOutputPath(bnComboBoxOutputFormat.Text,
style == CUEStyle.SingleFileWithCUE ? "." + selectedFormat.ToString() : ".cue", CUEAction.Encode, null);
}
@@ -1055,6 +1141,86 @@ namespace CUERipper
{
bnComboBoxOutputFormat_DroppedDown(sender, e);
}
private void listMetadata_Click(object sender, EventArgs e)
{
listMetadata.FocusedItem.BeginEdit();
}
private void listMetadata_AfterLabelEdit(object sender, LabelEditEventArgs e)
{
if (data.selectedRelease == null || e.Label == null || !data.metadataMode)
{
e.CancelEdit = true;
}
else
{
PropertyDescriptorCollection props = TypeDescriptor.GetProperties(data.selectedRelease.metadata);
PropertyDescriptor prop = props[listMetadata.Items[e.Item].SubItems[1].Text];
if (prop.Name == "Artist")
data.selectedRelease.metadata.UpdateArtist(e.Label);
else
prop.SetValue(data.selectedRelease.metadata, e.Label);
data.Releases.ResetItem(bnComboBoxRelease.SelectedIndex);
}
//else
//{
// CUETrackMetadata track = data.selectedRelease.metadata.Tracks[data.selectedTrack.no - 1];
// PropertyDescriptorCollection props = TypeDescriptor.GetProperties(track);
// props[listMetadata.Items[e.Item].SubItems[1].Text].SetValue(track, e.Label);
// data.Tracks.ResetItem(data.selectedTrack.no + 1);
//}
}
private void buttonMetadata_Click(object sender, EventArgs e)
{
buttonTracks.Visible = true;
buttonTracks.Focus();
buttonMetadata.Visible = false;
data.metadataMode = true;
UpdateRelease();
}
private void buttonTracks_Click(object sender, EventArgs e)
{
buttonMetadata.Visible = true;
buttonMetadata.Focus();
buttonTracks.Visible = false;
data.metadataMode = false;
UpdateRelease();
}
private void buttonReload_Click(object sender, EventArgs e)
{
loadAllMetadata = true;
data.Releases.Clear();
data.selectedRelease = null;
UpdateRelease();
_workThread = new Thread(Lookup);
_workThread.Priority = ThreadPriority.BelowNormal;
_workThread.IsBackground = true;
SetupControls();
_workThread.Start(selectedDriveInfo.drive);
}
private void buttonVA_Click(object sender, EventArgs e)
{
if (data.selectedRelease == null) return;
data.selectedRelease.metadata.FreedbToVarious();
UpdateRelease();
data.Releases.ResetItem(bnComboBoxRelease.SelectedIndex);
SetupControls();
}
private void buttonEncoding_Click(object sender, EventArgs e)
{
if (data.selectedRelease == null) return;
data.selectedRelease.metadata.FreedbToEncoding();
UpdateRelease();
data.Releases.ResetItem(bnComboBoxRelease.SelectedIndex);
comboBoxOutputFormat_TextUpdate(sender, e);
SetupControls();
}
}
public class StartStop
@@ -1166,6 +1332,9 @@ namespace CUERipper
internal class CUERipperData
{
public CUERipperData()
{
}
private BindingList<string> cueStyles = new BindingList<string> { "image", "tracks" };
//private BindingList<string> losslessOrNot = new BindingList<string> { "lossless", "lossy" };
private BindingList<ImgComboBoxItem<AudioEncoderType>> losslessOrNot = new BindingList<ImgComboBoxItem<AudioEncoderType>> {
@@ -1177,6 +1346,9 @@ namespace CUERipper
private BindingList<FormatInfo> formats = new BindingList<FormatInfo>();
private BindingList<CUEToolsUDC> encoders = new BindingList<CUEToolsUDC>();
public CUEMetadataEntry selectedRelease { get; set; }
public bool metadataMode { get; set; }
public BindingList<string> CUEStyles
{
get

View File

@@ -118,7 +118,7 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>0, 456</value>
<value>0, 469</value>
</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">
@@ -175,7 +175,7 @@
<value>toolStripStatusAr</value>
</data>
<data name="statusStrip1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 456</value>
<value>0, 469</value>
</data>
<data name="statusStrip1.Size" type="System.Drawing.Size, System.Drawing">
<value>571, 25</value>
@@ -197,7 +197,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;statusStrip1.ZOrder" xml:space="preserve">
<value>10</value>
<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">
@@ -237,7 +237,7 @@
<value>6, 87</value>
</data>
<data name="listTracks.Size" type="System.Drawing.Size, System.Drawing">
<value>553, 245</value>
<value>553, 221</value>
</data>
<data name="listTracks.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
@@ -258,7 +258,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;listTracks.ZOrder" xml:space="preserve">
<value>8</value>
<value>13</value>
</data>
<data name="buttonGo.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
@@ -288,7 +288,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;buttonGo.ZOrder" xml:space="preserve">
<value>9</value>
<value>14</value>
</data>
<data name="buttonAbort.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
@@ -321,7 +321,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;buttonAbort.ZOrder" xml:space="preserve">
<value>11</value>
<value>16</value>
</data>
<data name="buttonPause.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
@@ -354,43 +354,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;buttonPause.ZOrder" xml:space="preserve">
<value>12</value>
</data>
<metadata name="contextMenuStripRelease.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<data name="editToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>149, 22</value>
</data>
<data name="editToolStripMenuItem.Text" xml:space="preserve">
<value>Edit</value>
</data>
<data name="variousToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>149, 22</value>
</data>
<data name="variousToolStripMenuItem.Text" xml:space="preserve">
<value>Various Artists</value>
</data>
<data name="fixEncodingToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>149, 22</value>
</data>
<data name="fixEncodingToolStripMenuItem.Text" xml:space="preserve">
<value>Fix Encoding</value>
</data>
<data name="reloadToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>149, 22</value>
</data>
<data name="reloadToolStripMenuItem.Text" xml:space="preserve">
<value>Reload</value>
</data>
<data name="contextMenuStripRelease.Size" type="System.Drawing.Size, System.Drawing">
<value>150, 92</value>
</data>
<data name="&gt;&gt;contextMenuStripRelease.Name" xml:space="preserve">
<value>contextMenuStripRelease</value>
</data>
<data name="&gt;&gt;contextMenuStripRelease.Type" xml:space="preserve">
<value>System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>17</value>
</data>
<data name="numericWriteOffset.Location" type="System.Drawing.Point, System.Drawing">
<value>310, 15</value>
@@ -783,7 +747,7 @@
<value>6, 332</value>
</data>
<data name="groupBoxSettings.Size" type="System.Drawing.Size, System.Drawing">
<value>370, 121</value>
<value>370, 134</value>
</data>
<data name="groupBoxSettings.TabIndex" type="System.Int32, mscorlib">
<value>29</value>
@@ -798,7 +762,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;groupBoxSettings.ZOrder" xml:space="preserve">
<value>7</value>
<value>12</value>
</data>
<metadata name="drivesBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>998, 56</value>
@@ -810,7 +774,7 @@
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACK
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABy
CQAAAk1TRnQBSQFMAgEBBAEAAQwBAAEEAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
@@ -841,17 +805,17 @@
AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8A/wD/AP8AyAAB9AHx
BvAB8QH0BgAB9AHxBvAB8QH0BgAB9AHyBvEB8gH0BgAB9AHxBvAB8QH0BgAC8QbzAvEGAALxBvMC8QYA
AfIB9AL/AfQD/wH0AfIGAALxBvMC8QYAAfEB8wHyAfAB6gHwAvIB8wHxBgAB8QHzBvIB8wHxBgAB8QL/
AfQB8QH0A/8B8QYAAfEB8wbyAfMB8QYAAfEB8wHxA20B8QLzAfEGAAHxCPMB8QYAAfEB/wH0A/EB9AL/
AfIB9AIAAfQDAAH0AfIGAALxBvMC8QYAAfEB8wHyAfAB6gHwAvIB8wHxBgAB8QHzBvIB8wHxBgAB8QIA
AfQB8QH0AwAB8QYAAfEB8wbyAfMB8QYAAfEB8wHxA+oB8QLzAfEGAAHxCPMB8QYAAfEBAAH0A/EB9AIA
AfEGAAHxAvMB7ALqAewC8wHxBgAB8QH0AuwB8ALsAfEB9AHxBgAB8QH0BvMB9AHxBgAB8gH0AvIB9ALy
AvQB8gYAAfEB9AHzBOsB8wH0AfEGAAHyAfQB7AHyAfQB8gLsAfQB8gYAAfII9AHyBgAB8gH0AfID9ALy
AfQB8gYAAfIC9ATsAvQB8gYAAfIB/wT0AfMB7QH/AfIGAAHyAf8G9AH/AfIGAAHyAvQD/wH0AfIB9AHy
BgAB8gH/AfQB7wLtAe8B9AH/AfIGAAHyBv8B8gH/AfIGAAHyCP8B8gYAAfIB9AT/A/QB8gYAAfII/wHy
BgAC8wb/AvMGAALzBv8C8wYAAfMI9AHzBgAC8wb/AvMGAAH/AfMG8gHzAf8GAAH/AfMG8gHzAf8GAAH/
AfMG8gHzAf8GAAH/AfMG8gHzAf/DAAFCAU0BPgcAAT4DAAEoAwABQAMAASADAAEBAQABAQYAAQEWAAP/
gQAY/wHgAQcB4AEHAeABBwHgAQcB4AEHAeABBwHgAQcB4AEHAeABBwHgAQcB4AEHAeABBwHgAQcB4AEH
AeABBwHgAQcB4AEHAeABBwHgAQcB4AEHAeABBwHgAQcB4AEHAeABBwHgAQcB4AEHAeABBwHgAQcB4AEH
AeABBwHgAQcB4AEHAeABBwHgAQcB4AEHAeABBwHgAQcB4AEHAeABBwHgAQcY/ws=
AfQB8gYAAfIC9ATsAvQB8gYAAfIBAAT0AfMB7QEAAfIGAAHyAQAG9AEAAfIGAAHyAvQDAAH0AfIB9AHy
BgAB8gEAAfQB7wLtAe8B9AEAAfIGAAHyBgAB8gEAAfIGAAHyCAAB8gYAAfIB9AQAA/QB8gYAAfIIAAHy
BgAC8wYAAvMGAALzBgAC8wYAAfMI9AHzBgAC8wYAAvMHAAHzBvIB8wgAAfMG8gHzCAAB8wbyAfMIAAHz
BvIB88QAAUIBTQE+BwABPgMAASgDAAFAAwABIAMAAQEBAAEBBgABARYAA/+BABj/AeABBwHgAQcB4AEH
AeABBwHgAQcB4AEHAeYB5wHgAQcB4AEHAeABBwHsAXcB4AEHAeABBwHgAQcB6AE3AeABBwHgAQcB4AEH
AeABBwHgAQcB4AEHAeABBwHgAQcB4AEHAegBFwHoARcB4wGHAegBFwHvAdcB7wH3AecBhwHvAfcE5wHg
AQcC5wHwAQ8B8AEPAfABDwHwAQ8Y/ws=
</value>
</data>
<data name="toolStripMenuItem1.Size" type="System.Drawing.Size, System.Drawing">
@@ -891,7 +855,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;progressBarErrors.ZOrder" xml:space="preserve">
<value>5</value>
<value>9</value>
</data>
<data name="progressBarCD.Location" type="System.Drawing.Point, System.Drawing">
<value>382, 392</value>
@@ -918,10 +882,10 @@
<value>$this</value>
</data>
<data name="&gt;&gt;progressBarCD.ZOrder" xml:space="preserve">
<value>6</value>
<value>11</value>
</data>
<data name="txtOutputPath.Location" type="System.Drawing.Point, System.Drawing">
<value>7, 61</value>
<value>6, 314</value>
</data>
<data name="txtOutputPath.Size" type="System.Drawing.Size, System.Drawing">
<value>552, 20</value>
@@ -942,7 +906,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;txtOutputPath.ZOrder" xml:space="preserve">
<value>1</value>
<value>7</value>
</data>
<metadata name="releasesBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>708, 56</value>
@@ -954,9 +918,9 @@
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAS
CgAAAk1TRnQBSQFMAgEBAwEAAQQBAAEEAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABa
DgAAAk1TRnQBSQFMAgEBCAEAAQwBAAEEAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAATADAAEBAQABCAYAAQwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
@@ -983,22 +947,40 @@
AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/wIAAXoCUQt6AQAB7Q8K
IAABUQEAAREBEwEAAQ8KegG1BAQD8wEEA/MCBAFfAQohAAG8A/8BEwEPCXoBtQMEAfQCBAH0AQQB9AIE
AfQCBAEKAfEC7gHyAQAB8gTuAfIBAAHyAu4B8REAAbwE/wEACXoBtQGiAgQB/wIEAf8BBAH/AgQB/wIE
AQoBvAH1AfQDBwT0AwcB9AH1AbwQAAFRAQ8B6wIHAbwBAAERBAABEQN6AbUBogMEA/8BBAP/AwQBCgHw
AfQC8wH0BvMB9ALzAfQB8BAAAXoBUQEPAgAB/wEAAQ8B9wL/AZICEQJ6AbUBogUEAf8BBAH/BQQBCgHw
AfQM8wH0AfAQAAR6AQAB/wEAAREE/wG8AQACegG1AaIFBAH/AQQB/wUEAQoB8AH0DPMB9AHwEAAErgEA
Af8CAAETAbwD/wEAAq4BtQGiDQQBCgHxAfUF9AEAAXMB7gT0AfUB8RAABK4BAAH/AQABEgEPAwAB/wEA
Aq4N/wH0AfMB7AHyAfUF9AEcAcMBUQEIA/QB9QHyEAAErgEAAf8BDwEAARECEgEAAf8BAAKuAf8BogL/
AQQD/wIEA/8CBAHsAfIG9QEbAVgBegFRAQgD9QHyEAAErgEAAv8BkgERAQABDwEAAf8BAAKuAf8BogL/
AQQC/wEEBP8BBAH0AfMB7AHyAf8G9QEaAVgBegFRARoB9QH/AfIQAASuAQABBwP/AbwB6gEAAf8BAAKu
Af8BogL/AQQC/wQEAf8DBAEKAfII/wEaAVgBegFRARoB/wHyEAAErgERARMBBwb/AQACrgH/AaIBBAH/
AQQC/wEEAv8BBAH/AQQB9AHzAQoB8gn/ARsBWAF6Ae0B8AHyEAAFrgERAQABEQGSBP8BAAKuAf8BhgL/
AgQC/wIEA/8CBAHsAfMK8gHwAe8B9AHtAbwQAAeuAREBAAEPAesBvAH/AQACrgH/AYYL/wH0AfMB7AwA
AfQB7gEWAW8RAAmuAQ8BAAETAREBrgEAAv8BtQv/AfQBBw0AAfQBFgHzEAABQgFNAT4HAAE+AwABKAMA
AUADAAEQAwABAQEAAQEFAAGAFwAD/wEAAYABAQIAAv8GAAL/BgABCAEQXgAB/wHwAgABgAEBAgAB/wH4
AgAL
AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8A/wD/AP8ARgABmQZ5
AfMIAAH3AW0BvC0AAZkFoAJ5AfQIAAHwAW0CAAGSAeoCEgEUARUBQwERAewDAAGZCHkB8wYAAZkIeQHz
BQABmQWgAXkBmgFRAnkBmQQAAfMBbQHzAgAB6gFtARICFAESAW0B6wERAwABmQegAnkB9AUAAZkHoAJ5
AfQEAAGZBaADeQFYAaABmQQAAe8C7AIAAfcBbQPqAhIBFAHsAwABmQegAXkBmgF5AfQEAAGZB6ABeQGa
AXkB9AMAAZkIoAFYAaABUQF5AZkTAAGZB6ADeQGZBAABmQegA3kBmQMAAZkIoAFYAaABWAGgAZkCAALr
AW0OAAGZCqABmQQAAZkKoAGZAwABmQigAVgBoAFYAaABmQIAAfQB7QH/AgAB9wVtAuoBkgMAAZkKoAGZ
BAABmQqgAZkDAAGZAcMHoAFYAaABWAGgAZkDAAH0Ae0CAAJtARIBEwEUARIBbQHrAeoDAAGZCqABmQQA
AZkKoAGZAwABGgHDB6ABWAGgAVgBoAGZAgAB7wHsAe8CAAHvAesGbQH3AwABmQqgAZkEAAGZCaABkQGY
AwABGgPDBaABWAGgAVgBoAGZEwABmQHDCaABmQQAAZkBwwigAosB8gIAARsBGgh5AaABWAGgAZkCAAPs
DgABmQHDCaABmQQAAZkBwwSgAZEEswHaAbQB8gMAARoDwwWgAVgBoAGZAwAB7AMAAe8B7ATrAm0B9wMA
ARoBwwmgARoEAAEaAcMEoAGzAdwF2wG0AwABGwEaCHkBoAEaAwAB7AMAAewBbQISAhMBEgJtAwABGgTD
BqABGgQAARoEwwGgAbsEtAHcAbQB8gUAARoDwwWgARoCAAHvAewDAAHvBOwD6wHvAwABGwoaARsEAAEb
CRoCtAHzBgABGwgaARstAAEJAfMDAAF6AlELegEAAe0PCiAAAVEBAAERARMBAAEPCnoBtQQEA/MBBAPz
AgQBXwEKEAAQ/wEAAbwD/wETAQ8JegG1AwQB9AIEAfQBBAH0AgQB9AIEAQoB8QK8AfIBAAHyBLwB8gEA
AfICvAHxAfACvAHwAf8B8AS8AfAB/wHwArwB8AEAAbwE/wEACXoBtQGiAgQB/wIEAf8BBAH/AgQB/wIE
AQoBvAH/AfQDBwT0AwcB9AH/ArwB/wH0AwcE9AMHAfQB/wG8AVEBDwHrAgcBvAEAAREEAAERA3oBtQGi
AwQD/wEEA/8DBAEKAfAB9ALzAfQG8wH0AvMB9ALwAfQC8wH0BvMB9ALzAfQB8AF6AVEBDwIAAf8BAAEP
AfcC/wGSAhECegG1AaIFBAH/AQQB/wUEAQoB8AH0DPMB9ALwAfQM8wH0AfAEegEAAf8BAAERBP8BvAEA
AnoBtQGiBQQB/wEEAf8FBAEKAfAB9AzzAfQC8AH0DPMB9AHwBK4BAAH/AgABEwG8A/8BAAKuAbUBog0E
AQoB8QH/BfQBAAFzAbwE9AH/AvEB/wX0AQABcwG8BPQB/wHxBK4BAAH/AQABEgEPAwAB/wEAAq4N/wH0
AfMB7AHyAf8F9AEcAcMBUQEIA/QB/wLyAf8F9AEcAcMBUQEIA/QB/wHyBK4BAAH/AQ8BAAERAhIBAAH/
AQACrgH/AaIC/wEEA/8CBAP/AgQB7AHyBv8BGwFYAXoBUQEIA/8C8gb/ARsBWAF6AVEBCAP/AfIErgEA
Av8BkgERAQABDwEAAf8BAAKuAf8BogL/AQQC/wEEBP8BBAH0AfMB7AHyB/8BGgFYAXoBUQEaAv8C8gf/
ARoBWAF6AVEBGgL/AfIErgEAAQcD/wG8AeoBAAH/AQACrgH/AaIC/wEEAv8EBAH/AwQBCgHyCP8BGgFY
AXoBUQEaAf8C8gj/ARoBWAF6AVEBGgH/AfIErgERARMBBwb/AQACrgH/AaIBBAH/AQQC/wEEAv8BBAH/
AQQB9AHzAQoB8gn/ARsBWAF6Ae0B8ALyCf8BGwFYAXoB7QHwAfIFrgERAQABEQGSBP8BAAKuAf8BhgL/
AgQC/wIEA/8CBAHsAfMK8gHwAe8B9AHtAbwB8wryAfAB7wH0Ae0BvAeuAREBAAEPAesBvAH/AQACrgH/
AYYL/wH0AfMB7AwAAfQBvAEWAW8MAAH0AbwBFgFvAQAJrgEPAQABEwERAa4BAAL/AbUL/wH0AQcNAAH0
ARYB8w0AAfQBFgHzAUIBTQE+BwABPgMAASgDAAFAAwABMAMAAQEBAAEBBQABgAEBFgAD/4EACP8BgAF/
AY8F/wGAAT8BzAEBAcABDwHAAQ8BgAEHAYwBAQHAAQcBwAEHAYABBwGMAQEBwAEDAcABAwGAAQEC/wHA
AQMBwAEDAYABAQGPAf8BwAEDAcABAwGAAQEBjAEBAcABAwHAAQMBgAEBAcwBAQHAAQMBwAEDAYABAQGM
AQEBwAEDAcABAwGAAQEC/wHAAQMBwAEBAYABAQGPAf8BwAEDAcABAAHgAQEB3AEBAcABAwHAAQAB4AEB
AdwBAQHAAQMBwAEAAfgBAQGcAQEBwAEDAcABAQH4AQEF/wHzAYABAQIABP8EAAL/BgABCAEQXgAB/wHw
Af8B8AGAAQECAAH/AfgB/wH4Cw==
</value>
</data>
<data name="bnComboBoxRelease.Location" type="System.Drawing.Point, System.Drawing">
@@ -1013,9 +995,6 @@
<data name="bnComboBoxRelease.Text" xml:space="preserve">
<value>Releases</value>
</data>
<data name="bnComboBoxRelease.ToolTip" xml:space="preserve">
<value>Right-lick to edit release info</value>
</data>
<data name="&gt;&gt;bnComboBoxRelease.Name" xml:space="preserve">
<value>bnComboBoxRelease</value>
</data>
@@ -1026,8 +1005,11 @@
<value>$this</value>
</data>
<data name="&gt;&gt;bnComboBoxRelease.ZOrder" xml:space="preserve">
<value>2</value>
<value>6</value>
</data>
<metadata name="tracksBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>116, 469</value>
</metadata>
<data name="bnComboBoxDrives.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 6</value>
</data>
@@ -1050,10 +1032,10 @@
<value>$this</value>
</data>
<data name="&gt;&gt;bnComboBoxDrives.ZOrder" xml:space="preserve">
<value>3</value>
<value>8</value>
</data>
<data name="bnComboBoxOutputFormat.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 60</value>
<value>5, 313</value>
</data>
<data name="bnComboBoxOutputFormat.Size" type="System.Drawing.Size, System.Drawing">
<value>552, 21</value>
@@ -1071,19 +1053,244 @@
<value>$this</value>
</data>
<data name="&gt;&gt;bnComboBoxOutputFormat.ZOrder" xml:space="preserve">
<value>10</value>
</data>
<data name="columnHeaderValue.DisplayIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="columnHeaderValue.Text" xml:space="preserve">
<value>Value</value>
</data>
<data name="columnHeaderValue.Width" type="System.Int32, mscorlib">
<value>400</value>
</data>
<data name="columnHeaderName.DisplayIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="columnHeaderName.Text" xml:space="preserve">
<value>Name</value>
</data>
<data name="columnHeaderName.Width" type="System.Int32, mscorlib">
<value>120</value>
</data>
<data name="listMetadata.Location" type="System.Drawing.Point, System.Drawing">
<value>7, 87</value>
</data>
<data name="listMetadata.Size" type="System.Drawing.Size, System.Drawing">
<value>550, 220</value>
</data>
<data name="listMetadata.TabIndex" type="System.Int32, mscorlib">
<value>39</value>
</data>
<data name="listMetadata.Visible" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="&gt;&gt;listMetadata.Name" xml:space="preserve">
<value>listMetadata</value>
</data>
<data name="&gt;&gt;listMetadata.Type" xml:space="preserve">
<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>
</data>
<data name="&gt;&gt;listMetadata.ZOrder" xml:space="preserve">
<value>18</value>
</data>
<data name="buttonTrackMetadata.FlatStyle" type="System.Windows.Forms.FlatStyle, System.Windows.Forms">
<value>Flat</value>
</data>
<data name="buttonTrackMetadata.ImageIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="buttonTrackMetadata.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="buttonTrackMetadata.Location" type="System.Drawing.Point, System.Drawing">
<value>373, 112</value>
</data>
<data name="buttonTrackMetadata.Size" type="System.Drawing.Size, System.Drawing">
<value>19, 17</value>
</data>
<data name="buttonTrackMetadata.TabIndex" type="System.Int32, mscorlib">
<value>40</value>
</data>
<data name="buttonTrackMetadata.Visible" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="&gt;&gt;buttonTrackMetadata.Name" xml:space="preserve">
<value>buttonTrackMetadata</value>
</data>
<data name="&gt;&gt;buttonTrackMetadata.Type" xml:space="preserve">
<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>
</data>
<data name="&gt;&gt;buttonTrackMetadata.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="buttonMetadata.Location" type="System.Drawing.Point, System.Drawing">
<value>7, 60</value>
</data>
<data name="buttonMetadata.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 23</value>
</data>
<data name="buttonMetadata.TabIndex" type="System.Int32, mscorlib">
<value>41</value>
</data>
<data name="buttonMetadata.Text" xml:space="preserve">
<value>Meta</value>
</data>
<data name="buttonMetadata.TextImageRelation" type="System.Windows.Forms.TextImageRelation, System.Windows.Forms">
<value>ImageBeforeText</value>
</data>
<data name="&gt;&gt;buttonMetadata.Name" xml:space="preserve">
<value>buttonMetadata</value>
</data>
<data name="&gt;&gt;buttonMetadata.Type" xml:space="preserve">
<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>
</data>
<data name="&gt;&gt;buttonMetadata.ZOrder" xml:space="preserve">
<value>2</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>
</data>
<data name="buttonVA.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 23</value>
</data>
<data name="buttonVA.TabIndex" type="System.Int32, mscorlib">
<value>42</value>
</data>
<data name="buttonVA.Text" xml:space="preserve">
<value>V/A</value>
</data>
<data name="buttonVA.TextImageRelation" type="System.Windows.Forms.TextImageRelation, System.Windows.Forms">
<value>ImageBeforeText</value>
</data>
<data name="&gt;&gt;buttonVA.Name" xml:space="preserve">
<value>buttonVA</value>
</data>
<data name="&gt;&gt;buttonVA.Type" xml:space="preserve">
<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>
</data>
<data name="&gt;&gt;buttonVA.ZOrder" xml:space="preserve">
<value>5</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>
</data>
<data name="buttonReload.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 23</value>
</data>
<data name="buttonReload.TabIndex" type="System.Int32, mscorlib">
<value>43</value>
</data>
<data name="buttonReload.Text" xml:space="preserve">
<value>Reload</value>
</data>
<data name="buttonReload.TextImageRelation" type="System.Windows.Forms.TextImageRelation, System.Windows.Forms">
<value>ImageBeforeText</value>
</data>
<data name="&gt;&gt;buttonReload.Name" xml:space="preserve">
<value>buttonReload</value>
</data>
<data name="&gt;&gt;buttonReload.Type" xml:space="preserve">
<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>
</data>
<data name="&gt;&gt;buttonReload.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="buttonEncoding.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="buttonEncoding.Location" type="System.Drawing.Point, System.Drawing">
<value>271, 60</value>
</data>
<data name="buttonEncoding.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 23</value>
</data>
<data name="buttonEncoding.TabIndex" type="System.Int32, mscorlib">
<value>44</value>
</data>
<data name="buttonEncoding.Text" xml:space="preserve">
<value>Codepage</value>
</data>
<data name="buttonEncoding.TextImageRelation" type="System.Windows.Forms.TextImageRelation, System.Windows.Forms">
<value>ImageBeforeText</value>
</data>
<data name="&gt;&gt;buttonEncoding.Name" xml:space="preserve">
<value>buttonEncoding</value>
</data>
<data name="&gt;&gt;buttonEncoding.Type" xml:space="preserve">
<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>
</data>
<data name="&gt;&gt;buttonEncoding.ZOrder" xml:space="preserve">
<value>1</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>
</data>
<data name="buttonTracks.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 23</value>
</data>
<data name="buttonTracks.TabIndex" type="System.Int32, mscorlib">
<value>45</value>
</data>
<data name="buttonTracks.Text" xml:space="preserve">
<value>Tracks</value>
</data>
<data name="buttonTracks.TextImageRelation" type="System.Windows.Forms.TextImageRelation, System.Windows.Forms">
<value>ImageBeforeText</value>
</data>
<data name="buttonTracks.Visible" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="&gt;&gt;buttonTracks.Name" xml:space="preserve">
<value>buttonTracks</value>
</data>
<data name="&gt;&gt;buttonTracks.Type" xml:space="preserve">
<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>
</data>
<data name="&gt;&gt;buttonTracks.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>50</value>
</metadata>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>6, 13</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>571, 481</value>
<value>571, 494</value>
</data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
@@ -1548,30 +1755,6 @@
<data name="&gt;&gt;Length.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;editToolStripMenuItem.Name" xml:space="preserve">
<value>editToolStripMenuItem</value>
</data>
<data name="&gt;&gt;editToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;variousToolStripMenuItem.Name" xml:space="preserve">
<value>variousToolStripMenuItem</value>
</data>
<data name="&gt;&gt;variousToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;fixEncodingToolStripMenuItem.Name" xml:space="preserve">
<value>fixEncodingToolStripMenuItem</value>
</data>
<data name="&gt;&gt;fixEncodingToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;reloadToolStripMenuItem.Name" xml:space="preserve">
<value>reloadToolStripMenuItem</value>
</data>
<data name="&gt;&gt;reloadToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;losslessOrNotBindingSource.Name" xml:space="preserve">
<value>losslessOrNotBindingSource</value>
</data>
@@ -1668,6 +1851,24 @@
<data name="&gt;&gt;imageListMetadataSource.Type" xml:space="preserve">
<value>System.Windows.Forms.ImageList, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tracksBindingSource.Name" xml:space="preserve">
<value>tracksBindingSource</value>
</data>
<data name="&gt;&gt;tracksBindingSource.Type" xml:space="preserve">
<value>System.Windows.Forms.BindingSource, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;columnHeaderValue.Name" xml:space="preserve">
<value>columnHeaderValue</value>
</data>
<data name="&gt;&gt;columnHeaderValue.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;columnHeaderName.Name" xml:space="preserve">
<value>columnHeaderName</value>
</data>
<data name="&gt;&gt;columnHeaderName.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>frmCUERipper</value>
</data>

View File

@@ -1,184 +0,0 @@
namespace CUETools.Processor
{
partial class frmProperties
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmProperties));
this.textArtist = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.textTitle = new System.Windows.Forms.TextBox();
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.label3 = new System.Windows.Forms.Label();
this.textYear = new System.Windows.Forms.TextBox();
this.textGenre = new System.Windows.Forms.TextBox();
this.textCatalog = new System.Windows.Forms.TextBox();
this.label4 = new System.Windows.Forms.Label();
this.label5 = new System.Windows.Forms.Label();
this.labelCD = new System.Windows.Forms.Label();
this.textBoxDiscNumber = new System.Windows.Forms.TextBox();
this.textBoxTotalDiscs = new System.Windows.Forms.TextBox();
this.labelSlash = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// textArtist
//
resources.ApplyResources(this.textArtist, "textArtist");
this.textArtist.Name = "textArtist";
//
// label1
//
resources.ApplyResources(this.label1, "label1");
this.label1.Name = "label1";
//
// label2
//
resources.ApplyResources(this.label2, "label2");
this.label2.Name = "label2";
//
// textTitle
//
resources.ApplyResources(this.textTitle, "textTitle");
this.textTitle.Name = "textTitle";
//
// button1
//
this.button1.DialogResult = System.Windows.Forms.DialogResult.OK;
resources.ApplyResources(this.button1, "button1");
this.button1.Name = "button1";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// button2
//
this.button2.DialogResult = System.Windows.Forms.DialogResult.Cancel;
resources.ApplyResources(this.button2, "button2");
this.button2.Name = "button2";
this.button2.UseVisualStyleBackColor = true;
//
// label3
//
resources.ApplyResources(this.label3, "label3");
this.label3.Name = "label3";
//
// textYear
//
resources.ApplyResources(this.textYear, "textYear");
this.textYear.Name = "textYear";
//
// textGenre
//
resources.ApplyResources(this.textGenre, "textGenre");
this.textGenre.Name = "textGenre";
//
// textCatalog
//
resources.ApplyResources(this.textCatalog, "textCatalog");
this.textCatalog.Name = "textCatalog";
//
// label4
//
resources.ApplyResources(this.label4, "label4");
this.label4.Name = "label4";
//
// label5
//
resources.ApplyResources(this.label5, "label5");
this.label5.Name = "label5";
//
// labelCD
//
resources.ApplyResources(this.labelCD, "labelCD");
this.labelCD.Name = "labelCD";
//
// textBoxDiscNumber
//
resources.ApplyResources(this.textBoxDiscNumber, "textBoxDiscNumber");
this.textBoxDiscNumber.Name = "textBoxDiscNumber";
//
// textBoxTotalDiscs
//
resources.ApplyResources(this.textBoxTotalDiscs, "textBoxTotalDiscs");
this.textBoxTotalDiscs.Name = "textBoxTotalDiscs";
//
// labelSlash
//
resources.ApplyResources(this.labelSlash, "labelSlash");
this.labelSlash.Name = "labelSlash";
//
// frmProperties
//
this.AcceptButton = this.button1;
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = this.button2;
this.Controls.Add(this.labelSlash);
this.Controls.Add(this.textBoxTotalDiscs);
this.Controls.Add(this.textBoxDiscNumber);
this.Controls.Add(this.labelCD);
this.Controls.Add(this.label5);
this.Controls.Add(this.label4);
this.Controls.Add(this.textCatalog);
this.Controls.Add(this.textGenre);
this.Controls.Add(this.textYear);
this.Controls.Add(this.label3);
this.Controls.Add(this.button2);
this.Controls.Add(this.button1);
this.Controls.Add(this.label2);
this.Controls.Add(this.textTitle);
this.Controls.Add(this.label1);
this.Controls.Add(this.textArtist);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
this.Name = "frmProperties";
this.Load += new System.EventHandler(this.frmProperties_Load);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.TextBox textArtist;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.TextBox textTitle;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.TextBox textYear;
private System.Windows.Forms.TextBox textGenre;
private System.Windows.Forms.TextBox textCatalog;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.Label labelCD;
private System.Windows.Forms.TextBox textBoxDiscNumber;
private System.Windows.Forms.TextBox textBoxTotalDiscs;
private System.Windows.Forms.Label labelSlash;
}
}

View File

@@ -1,44 +0,0 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using CUETools.Processor;
namespace CUETools.Processor
{
public partial class frmProperties : Form
{
public frmProperties()
{
InitializeComponent();
}
private void frmProperties_Load(object sender, EventArgs e)
{
textArtist.Text = Metadata.Artist;
textTitle.Text = Metadata.Title;
textYear.Text = Metadata.Year;
textGenre.Text = Metadata.Genre;
textCatalog.Text = Metadata.Catalog;
textBoxDiscNumber.Text = Metadata.DiscNumber;
textBoxTotalDiscs.Text = Metadata.TotalDiscs;
}
public CUEMetadata Metadata { get; set; }
private void button1_Click(object sender, EventArgs e)
{
Metadata.Tracks.ForEach(track => track.Artist = track.Artist == Metadata.Artist ? textArtist.Text : track.Artist);
Metadata.Artist = textArtist.Text;
Metadata.Title = textTitle.Text;
Metadata.Year = textYear.Text;
Metadata.Genre = textGenre.Text;
Metadata.Catalog = textCatalog.Text;
Metadata.DiscNumber = textBoxDiscNumber.Text;
Metadata.TotalDiscs = textBoxTotalDiscs.Text;
}
}
}

View File

@@ -1,150 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="label1.Text" xml:space="preserve">
<value>Interpret</value>
</data>
<data name="label2.Text" xml:space="preserve">
<value>Titel</value>
</data>
<data name="button1.Text" xml:space="preserve">
<value>OK</value>
</data>
<data name="button2.Text" xml:space="preserve">
<value>Abbrechen</value>
</data>
<data name="label3.Text" xml:space="preserve">
<value>Jahr</value>
</data>
<data name="label4.Text" xml:space="preserve">
<value>Genre</value>
</data>
<data name="label5.Text" xml:space="preserve">
<value>Katalog</value>
</data>
<data name="labelCD.Text" xml:space="preserve">
<value>CD</value>
</data>
<data name="labelSlash.Text" xml:space="preserve">
<value>/</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>CD-Informationen</value>
</data>
</root>

View File

@@ -1,537 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="textArtist.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="textArtist.Location" type="System.Drawing.Point, System.Drawing">
<value>48, 12</value>
</data>
<data name="textArtist.Size" type="System.Drawing.Size, System.Drawing">
<value>375, 20</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="textArtist.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;textArtist.Name" xml:space="preserve">
<value>textArtist</value>
</data>
<data name="&gt;&gt;textArtist.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;textArtist.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;textArtist.ZOrder" xml:space="preserve">
<value>15</value>
</data>
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 15</value>
</data>
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
<value>30, 13</value>
</data>
<data name="label1.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="label1.Text" xml:space="preserve">
<value>Artist</value>
</data>
<data name="&gt;&gt;label1.Name" xml:space="preserve">
<value>label1</value>
</data>
<data name="&gt;&gt;label1.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;label1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;label1.ZOrder" xml:space="preserve">
<value>14</value>
</data>
<data name="label2.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="label2.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 41</value>
</data>
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
<value>27, 13</value>
</data>
<data name="label2.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="label2.Text" xml:space="preserve">
<value>Title</value>
</data>
<data name="&gt;&gt;label2.Name" xml:space="preserve">
<value>label2</value>
</data>
<data name="&gt;&gt;label2.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;label2.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;label2.ZOrder" xml:space="preserve">
<value>12</value>
</data>
<data name="textTitle.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
</data>
<data name="textTitle.Location" type="System.Drawing.Point, System.Drawing">
<value>48, 38</value>
</data>
<data name="textTitle.Size" type="System.Drawing.Size, System.Drawing">
<value>375, 20</value>
</data>
<data name="textTitle.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="&gt;&gt;textTitle.Name" xml:space="preserve">
<value>textTitle</value>
</data>
<data name="&gt;&gt;textTitle.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;textTitle.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;textTitle.ZOrder" xml:space="preserve">
<value>13</value>
</data>
<data name="button1.Location" type="System.Drawing.Point, System.Drawing">
<value>347, 90</value>
</data>
<data name="button1.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 23</value>
</data>
<data name="button1.TabIndex" type="System.Int32, mscorlib">
<value>14</value>
</data>
<data name="button1.Text" xml:space="preserve">
<value>Ok</value>
</data>
<data name="&gt;&gt;button1.Name" xml:space="preserve">
<value>button1</value>
</data>
<data name="&gt;&gt;button1.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;button1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;button1.ZOrder" xml:space="preserve">
<value>11</value>
</data>
<data name="button2.Location" type="System.Drawing.Point, System.Drawing">
<value>266, 90</value>
</data>
<data name="button2.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 23</value>
</data>
<data name="button2.TabIndex" type="System.Int32, mscorlib">
<value>15</value>
</data>
<data name="button2.Text" xml:space="preserve">
<value>Cancel</value>
</data>
<data name="&gt;&gt;button2.Name" xml:space="preserve">
<value>button2</value>
</data>
<data name="&gt;&gt;button2.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;button2.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;button2.ZOrder" xml:space="preserve">
<value>10</value>
</data>
<data name="label3.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 67</value>
</data>
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
<value>29, 13</value>
</data>
<data name="label3.TabIndex" type="System.Int32, mscorlib">
<value>6</value>
</data>
<data name="label3.Text" xml:space="preserve">
<value>Year</value>
</data>
<data name="&gt;&gt;label3.Name" xml:space="preserve">
<value>label3</value>
</data>
<data name="&gt;&gt;label3.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;label3.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;label3.ZOrder" xml:space="preserve">
<value>9</value>
</data>
<data name="textYear.Location" type="System.Drawing.Point, System.Drawing">
<value>48, 64</value>
</data>
<data name="textYear.Size" type="System.Drawing.Size, System.Drawing">
<value>67, 20</value>
</data>
<data name="textYear.TabIndex" type="System.Int32, mscorlib">
<value>7</value>
</data>
<data name="&gt;&gt;textYear.Name" xml:space="preserve">
<value>textYear</value>
</data>
<data name="&gt;&gt;textYear.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;textYear.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;textYear.ZOrder" xml:space="preserve">
<value>8</value>
</data>
<data name="textGenre.Location" type="System.Drawing.Point, System.Drawing">
<value>163, 64</value>
</data>
<data name="textGenre.Size" type="System.Drawing.Size, System.Drawing">
<value>100, 20</value>
</data>
<data name="textGenre.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
</data>
<data name="&gt;&gt;textGenre.Name" xml:space="preserve">
<value>textGenre</value>
</data>
<data name="&gt;&gt;textGenre.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;textGenre.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;textGenre.ZOrder" xml:space="preserve">
<value>7</value>
</data>
<data name="textCatalog.Location" type="System.Drawing.Point, System.Drawing">
<value>318, 64</value>
</data>
<data name="textCatalog.Size" type="System.Drawing.Size, System.Drawing">
<value>104, 20</value>
</data>
<data name="textCatalog.TabIndex" type="System.Int32, mscorlib">
<value>9</value>
</data>
<data name="&gt;&gt;textCatalog.Name" xml:space="preserve">
<value>textCatalog</value>
</data>
<data name="&gt;&gt;textCatalog.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;textCatalog.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;textCatalog.ZOrder" xml:space="preserve">
<value>6</value>
</data>
<data name="label4.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="label4.Location" type="System.Drawing.Point, System.Drawing">
<value>121, 67</value>
</data>
<data name="label4.Size" type="System.Drawing.Size, System.Drawing">
<value>36, 13</value>
</data>
<data name="label4.TabIndex" type="System.Int32, mscorlib">
<value>10</value>
</data>
<data name="label4.Text" xml:space="preserve">
<value>Genre</value>
</data>
<data name="&gt;&gt;label4.Name" xml:space="preserve">
<value>label4</value>
</data>
<data name="&gt;&gt;label4.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;label4.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;label4.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="label5.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="label5.Location" type="System.Drawing.Point, System.Drawing">
<value>269, 67</value>
</data>
<data name="label5.Size" type="System.Drawing.Size, System.Drawing">
<value>43, 13</value>
</data>
<data name="label5.TabIndex" type="System.Int32, mscorlib">
<value>11</value>
</data>
<data name="label5.Text" xml:space="preserve">
<value>Catalog</value>
</data>
<data name="&gt;&gt;label5.Name" xml:space="preserve">
<value>label5</value>
</data>
<data name="&gt;&gt;label5.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;label5.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;label5.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="labelCD.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="labelCD.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 95</value>
</data>
<data name="labelCD.Size" type="System.Drawing.Size, System.Drawing">
<value>22, 13</value>
</data>
<data name="labelCD.TabIndex" type="System.Int32, mscorlib">
<value>16</value>
</data>
<data name="labelCD.Text" xml:space="preserve">
<value>CD</value>
</data>
<data name="&gt;&gt;labelCD.Name" xml:space="preserve">
<value>labelCD</value>
</data>
<data name="&gt;&gt;labelCD.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;labelCD.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;labelCD.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="textBoxDiscNumber.Location" type="System.Drawing.Point, System.Drawing">
<value>48, 92</value>
</data>
<data name="textBoxDiscNumber.Size" type="System.Drawing.Size, System.Drawing">
<value>50, 20</value>
</data>
<data name="textBoxDiscNumber.TabIndex" type="System.Int32, mscorlib">
<value>17</value>
</data>
<data name="&gt;&gt;textBoxDiscNumber.Name" xml:space="preserve">
<value>textBoxDiscNumber</value>
</data>
<data name="&gt;&gt;textBoxDiscNumber.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;textBoxDiscNumber.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;textBoxDiscNumber.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="textBoxTotalDiscs.Location" type="System.Drawing.Point, System.Drawing">
<value>125, 92</value>
</data>
<data name="textBoxTotalDiscs.Size" type="System.Drawing.Size, System.Drawing">
<value>50, 20</value>
</data>
<data name="textBoxTotalDiscs.TabIndex" type="System.Int32, mscorlib">
<value>18</value>
</data>
<data name="&gt;&gt;textBoxTotalDiscs.Name" xml:space="preserve">
<value>textBoxTotalDiscs</value>
</data>
<data name="&gt;&gt;textBoxTotalDiscs.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;textBoxTotalDiscs.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;textBoxTotalDiscs.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="labelSlash.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="labelSlash.Location" type="System.Drawing.Point, System.Drawing">
<value>107, 95</value>
</data>
<data name="labelSlash.Size" type="System.Drawing.Size, System.Drawing">
<value>12, 13</value>
</data>
<data name="labelSlash.TabIndex" type="System.Int32, mscorlib">
<value>19</value>
</data>
<data name="labelSlash.Text" xml:space="preserve">
<value>/</value>
</data>
<data name="&gt;&gt;labelSlash.Name" xml:space="preserve">
<value>labelSlash</value>
</data>
<data name="&gt;&gt;labelSlash.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;labelSlash.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;labelSlash.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">
<value>True</value>
</metadata>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>6, 13</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>435, 127</value>
</data>
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
<value>CenterParent</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Release information</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>frmProperties</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
</root>

View File

@@ -0,0 +1,242 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Text;
using System.Xml.Serialization;
using CUETools.CDImage;
namespace CUETools.Processor
{
[Serializable]
public class CUEMetadata
{
public CUEMetadata()
{
TotalDiscs = "";
DiscNumber = "";
Year = "";
Genre = "";
Artist = "";
Title = "";
Catalog = "";
Tracks = new List<CUETrackMetadata>();
}
public CUEMetadata(CUEMetadata src)
: this(src.Id, src.Tracks.Count)
{
CopyMetadata(src);
}
public CUEMetadata(string id, int AudioTracks)
: this()
{
Id = id;
for (int i = 0; i < AudioTracks; i++)
Tracks.Add(new CUETrackMetadata());
}
private static XmlSerializer serializer = new XmlSerializer(typeof(CUEMetadata));
public static string MetadataPath
{
get
{
string cache = System.IO.Path.Combine(System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "CUE Tools"), "MetadataCache");
if (!Directory.Exists(cache))
Directory.CreateDirectory(cache);
return cache;
}
}
public string Id { get; set; }
[DefaultValue("")]
public string TotalDiscs { get; set; }
[DefaultValue("")]
public string DiscNumber { get; set; }
[DefaultValue("")]
public string Year { get; set; }
[DefaultValue("")]
public string Genre { get; set; }
[DefaultValue("")]
public string Artist { get; set; }
[DefaultValue("")]
public string Title { get; set; }
[DefaultValue("")]
public string Catalog { get; set; }
public List<CUETrackMetadata> Tracks { get; set; }
public void Save()
{
TextWriter writer = new StreamWriter(Path.Combine(MetadataPath, Id + ".xml"));
serializer.Serialize(writer, this);
writer.Close();
}
public static CUEMetadata Load(string Id)
{
//serializer.UnknownNode += new XmlNodeEventHandler(serializer_UnknownNode);
//serializer.UnknownAttribute += new XmlAttributeEventHandler(serializer_UnknownAttribute);
using (FileStream fs = new FileStream(Path.Combine(MetadataPath, Id + ".xml"), FileMode.Open))
return serializer.Deserialize(fs) as CUEMetadata;
}
public void CopyMetadata(CUEMetadata metadata)
{
// if (metadata.Tracks.Count != Tracks.Count) throw;
// Tracks.Count = metadata.Tracks.Count;
TotalDiscs = metadata.TotalDiscs;
DiscNumber = metadata.DiscNumber;
Year = metadata.Year;
Genre = metadata.Genre;
Artist = metadata.Artist;
Title = metadata.Title;
Catalog = metadata.Catalog;
for (int i = 0; i < Tracks.Count; i++)
{
Tracks[i].Title = metadata.Tracks[i].Title;
Tracks[i].Artist = metadata.Tracks[i].Artist;
Tracks[i].ISRC = metadata.Tracks[i].ISRC;
}
}
public void FillFromMusicBrainz(MusicBrainz.Release release, int firstAudio)
{
string date = release.GetEvents().Count > 0 ? release.GetEvents()[0].Date : null;
Year = date == null ? "" : date.Substring(0, 4);
Artist = release.GetArtist();
Title = release.GetTitle();
// How to get Genre: http://mm.musicbrainz.org/ws/1/release/6fe1e218-2aee-49ac-94f0-7910ba2151df.html?type=xml&inc=tags
//Catalog = release.GetEvents().Count > 0 ? release.GetEvents()[0].Barcode : "";
for (int i = 0; i < Tracks.Count; i++)
{
MusicBrainz.Track track = release.GetTracks()[i + firstAudio]; // !!!!!! - _toc.FirstAudio?
Tracks[i].Title = track.GetTitle();
Tracks[i].Artist = track.GetArtist();
}
}
public void FillFromFreedb(Freedb.CDEntry cdEntry, int firstAudio)
{
Year = cdEntry.Year;
Genre = cdEntry.Genre;
Artist = cdEntry.Artist;
Title = cdEntry.Title;
for (int i = 0; i < Tracks.Count; i++)
{
Tracks[i].Title = cdEntry.Tracks[i + firstAudio].Title;
Tracks[i].Artist = cdEntry.Artist;
}
}
private static string FreedbToEncoding(Encoding iso, Encoding def, ref bool changed, ref bool error, string s)
{
try
{
string res = def.GetString(iso.GetBytes(s));
changed |= res != s;
return res;
}
catch // EncoderFallbackException, DecoderFallbackException
{
error = true;
}
return s;
}
public bool FreedbToEncoding()
{
Encoding iso = Encoding.GetEncoding("iso-8859-1", new EncoderExceptionFallback(), new DecoderExceptionFallback());
Encoding def = Encoding.GetEncoding(Encoding.Default.CodePage, new EncoderExceptionFallback(), new DecoderExceptionFallback());
bool different = false;
bool error = false;
Artist = FreedbToEncoding(iso, def, ref different, ref error, Artist);
Title = FreedbToEncoding(iso, def, ref different, ref error, Title);
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);
}
return different && !error;
}
public void FreedbToVarious()
{
for (int i = 0; i < Tracks.Count; i++)
{
string title = Tracks[i].Title;
int idx = title.IndexOf(" / ");
if (idx < 0) idx = title.IndexOf(" - ");
if (idx >= 0)
{
Tracks[i].Title = title.Substring(idx + 3);
Tracks[i].Artist = title.Substring(0, idx);
}
else
{
Tracks[i].Artist = title;
}
}
}
public void UpdateArtist(string artist)
{
for (int i = 0; i < Tracks.Count; i++)
if (Tracks[i].Artist == Artist)
Tracks[i].Artist = artist;
Artist = artist;
}
public bool IsVarious()
{
bool isVarious = false;
for (int i = 0; i < Tracks.Count; i++)
if (Tracks[i].Artist != Artist)
isVarious = true;
return isVarious;
}
}
public class CUETrackMetadata
{
public CUETrackMetadata()
{
Artist = "";
Title = "";
ISRC = "";
}
[DefaultValue("")]
public string Artist { get; set; }
[DefaultValue("")]
public string Title { get; set; }
[DefaultValue("")]
public string ISRC { get; set; }
}
public class CUEMetadataEntry
{
public CUEMetadata metadata { get; set; }
public CDImageLayout TOC { get; set; }
public string ImageKey { get; set; }
public CUEMetadataEntry(CUEMetadata metadata, CDImageLayout TOC, string key)
{
this.metadata = metadata;
this.TOC = TOC;
this.ImageKey = key;
}
public CUEMetadataEntry(CDImageLayout TOC, string key)
: this(new CUEMetadata(TOC.TOCID, (int)TOC.AudioTracks), TOC, key)
{
}
public override string ToString()
{
return string.Format("{0}{1} - {2}", metadata.Year != "" ? metadata.Year + ": " : "",
metadata.Artist == "" ? "Unknown Artist" : metadata.Artist,
metadata.Title == "" ? "Unknown Title" : metadata.Title);
}
}
}

View File

@@ -2237,6 +2237,16 @@ string status = processor.Go();
try { _logFiles.Add(new CUEToolsSourceFile(logPath, new StreamReader(logPath, CUESheet.Encoding))); }
catch { }
}
else if (Path.GetExtension(pathIn).ToLower() == ".m3u")
{
string cueSheet = CUESheet.CreateDummyCUESheet(_config, pathIn);
sr = new StringReader(cueSheet);
_logFiles = new List<CUEToolsSourceFile>();
_defaultLog = Path.GetFileNameWithoutExtension(pathIn);
foreach (string logPath in Directory.GetFiles(_inputDir, "*.log"))
try { _logFiles.Add(new CUEToolsSourceFile(logPath, new StreamReader(logPath, CUESheet.Encoding))); }
catch { }
}
else
{
string extension = Path.GetExtension(pathIn).ToLower();
@@ -2606,6 +2616,8 @@ string status = processor.Go();
_tracks[i].Artist = taglibMetadata.Tracks[i].Artist;
if ((_config.overwriteCUEData || _tracks[i].Title == "") && taglibMetadata.Tracks[i].Title != "")
_tracks[i].Title = taglibMetadata.Tracks[i].Title;
if (_tracks[i].Title == "" && _hasTrackFilenames)
_tracks[i].Title = Path.GetFileNameWithoutExtension(_trackFilenames[i]).TrimStart(" .-_0123456789".ToCharArray());
}
}
@@ -4778,7 +4790,8 @@ string status = processor.Go();
pathIn = Path.GetFullPath(pathIn);
List<FileGroupInfo> fileGroups = CUESheet.ScanFolder(_config, Path.GetDirectoryName(pathIn));
FileGroupInfo fileGroup = fileGroups.Find(f => f.type == FileGroupInfoType.TrackFiles && f.Contains(pathIn)) ??
fileGroups.Find(f => f.type == FileGroupInfoType.FileWithCUE && f.Contains(pathIn));
fileGroups.Find(f => f.type == FileGroupInfoType.FileWithCUE && f.Contains(pathIn)) ??
fileGroups.Find(f => f.type == FileGroupInfoType.M3UFile && f.Contains(pathIn));
return fileGroup == null ? null : CreateDummyCUESheet(_config, fileGroup);
}
@@ -5481,6 +5494,30 @@ string status = processor.Go();
fileGroups.Add(new FileGroupInfo(file, FileGroupInfoType.CUESheetFile));
continue;
}
if (ext == ".m3u")
{
FileGroupInfo m3uGroup = new FileGroupInfo(file, FileGroupInfoType.M3UFile);
using (StreamReader m3u = new StreamReader(file.FullName))
{
do
{
string line = m3u.ReadLine();
if (line == null) break;
if (line[0] == '#') continue;
line = Path.Combine(Path.GetDirectoryName(file.FullName), line);
if (File.Exists(line))
m3uGroup.files.Add(new FileInfo(line));
else
{
m3uGroup = null;
break;
}
} while (true);
};
if (m3uGroup != null)
fileGroups.Add(m3uGroup);
continue;
}
if (ext == ".zip")
{
fileGroups.Add(new FileGroupInfo(file, FileGroupInfoType.Archive));
@@ -5514,6 +5551,7 @@ string status = processor.Go();
if (ext.StartsWith(".") && _config.formats.TryGetValue(ext.Substring(1), out fmt) && fmt.allowLossless)
{
uint disc = 0;
uint number = 0;
string album = null;
bool cueFound = false;
TagLib.UserDefined.AdditionalFileTypes.Config = _config;
@@ -5523,6 +5561,7 @@ string status = processor.Go();
TagLib.File fileInfo = TagLib.File.Create(fileAbsraction);
disc = fileInfo.Tag.Disc;
album = fileInfo.Tag.Album;
number = fileInfo.Tag.Track;
cueFound = fmt.allowEmbed && Tagging.Analyze(fileInfo).Get("CUESHEET") != null;
}
catch { }
@@ -5547,6 +5586,7 @@ string status = processor.Go();
if (groupFound != null)
{
groupFound.files.Add(file);
if (number > 0) groupFound.numbers.Add(file, number);
}
else
{
@@ -5555,11 +5595,18 @@ string status = processor.Go();
groupFound.album = album;
groupFound.files.Add(file);
fileGroups.Add(groupFound);
// TODO: tracks must be sorted according to tracknumer (or filename if missing)
if (number > 0) groupFound.numbers.Add(file, number);
}
}
}
fileGroups.RemoveAll(new Predicate<FileGroupInfo>(FileGroupInfo.IsExcessive));
fileGroups.RemoveAll(group => group.type == FileGroupInfoType.TrackFiles && group.files.Count < 2);
// tracks must be sorted according to tracknumer (or filename if missing)
foreach (FileGroupInfo group in fileGroups)
if (group.type == FileGroupInfoType.TrackFiles)
{
group.files.Sort(group.CompareNumbers);
group.numbers = null;
}
return fileGroups;
}
@@ -5718,6 +5765,7 @@ string status = processor.Go();
Folder,
Archive,
CUESheetFile,
M3UFile,
FileWithCUE,
TrackFiles
}
@@ -5725,6 +5773,7 @@ string status = processor.Go();
public class FileGroupInfo
{
public List<FileSystemInfo> files;
public Dictionary<FileSystemInfo, uint> numbers;
public FileSystemInfo main;
public FileGroupInfoType type;
public uint discNo;
@@ -5735,11 +5784,16 @@ string status = processor.Go();
main = _main;
type = _type;
files = new List<FileSystemInfo>();
numbers = new Dictionary<FileSystemInfo, uint>();
}
public static bool IsExcessive(FileGroupInfo group)
public int CompareNumbers(FileSystemInfo a, FileSystemInfo b)
{
return group.type == FileGroupInfoType.TrackFiles && group.files.Count < 2;
if (numbers.ContainsKey(a) && numbers.ContainsKey(b))
return Comparer<uint>.Default.Compare(numbers[a], numbers[b]);
if (!numbers.ContainsKey(a) && !numbers.ContainsKey(b))
return Comparer<string>.Default.Compare(a.FullName, b.FullName);
return Comparer<bool>.Default.Compare(numbers.ContainsKey(a), numbers.ContainsKey(b));
}
public bool Contains(string pathIn)

View File

@@ -585,7 +585,7 @@ namespace JDP {
if (fileGroup.type == FileGroupInfoType.CUESheetFile)
throw new Exception("already contains a cue sheet");
foreach (FileGroupInfo fileGroup in fileGroups)
if (fileGroup.type == FileGroupInfoType.TrackFiles || fileGroup.type == FileGroupInfoType.FileWithCUE)
if (fileGroup.type == FileGroupInfoType.TrackFiles || fileGroup.type == FileGroupInfoType.FileWithCUE || fileGroup.type == FileGroupInfoType.M3UFile)
_batchPaths.Insert(directoriesFound + (++cueSheetsFound), fileGroup.main.FullName);
}
else if (File.Exists(pathIn))
@@ -593,7 +593,8 @@ namespace JDP {
pathIn = Path.GetFullPath(pathIn);
List<FileGroupInfo> fileGroups = CUESheet.ScanFolder(_profile._config, Path.GetDirectoryName(pathIn));
FileGroupInfo fileGroup = fileGroups.Find(f => f.type == FileGroupInfoType.TrackFiles && f.Contains(pathIn)) ??
fileGroups.Find(f => f.type == FileGroupInfoType.FileWithCUE && f.Contains(pathIn));
fileGroups.Find(f => f.type == FileGroupInfoType.FileWithCUE && f.Contains(pathIn)) ??
fileGroups.Find(f => f.type == FileGroupInfoType.M3UFile && f.Contains(pathIn));
if (fileGroup == null)
throw new Exception("doesn't seem to be part of an album");
string cueSheetContents;