diff --git a/CUETools.Processor/CUEMetadata.cs b/CUETools.Processor/CUEMetadata.cs index 189ca51..8be378a 100644 --- a/CUETools.Processor/CUEMetadata.cs +++ b/CUETools.Processor/CUEMetadata.cs @@ -240,7 +240,7 @@ namespace CUETools.Processor Country = metadata.Country; Label = metadata.Label; LabelNo = metadata.LabelNo; - AlbumArt = metadata.AlbumArt; + AlbumArt = metadata.AlbumArt.ConvertAll(x => new CTDB.CTDBResponseMetaImage(x)); for (int i = 0; i < Tracks.Count; i++) { Tracks[i].Title = metadata.Tracks[i].Title; diff --git a/CUETools.Processor/CUEMetadataEntry.cs b/CUETools.Processor/CUEMetadataEntry.cs index 668b2e6..ced1736 100644 --- a/CUETools.Processor/CUEMetadataEntry.cs +++ b/CUETools.Processor/CUEMetadataEntry.cs @@ -7,6 +7,7 @@ namespace CUETools.Processor public CUEMetadata metadata { get; set; } public CDImageLayout TOC { get; set; } public string ImageKey { get; set; } + public byte[] cover { get; set; } public CUEMetadataEntry(CUEMetadata metadata, CDImageLayout TOC, string key) { diff --git a/CUETools.Processor/CUESheet.cs b/CUETools.Processor/CUESheet.cs index 27cf3db..532b1a4 100644 --- a/CUETools.Processor/CUESheet.cs +++ b/CUETools.Processor/CUESheet.cs @@ -34,6 +34,7 @@ namespace CUETools.Processor private string _htoaFilename, _singleFilename; private bool _hasHTOAFilename = false, _hasTrackFilenames = false, _hasSingleFilename = false, _appliedWriteOffset; private bool _hasEmbeddedCUESheet; + private bool _hasEmbeddedArtwork; private bool _paddedToFrame, _truncated4608, _usePregapForFirstTrackInSingleFile; private int _writeOffset; private CUEAction _action; @@ -130,9 +131,12 @@ namespace CUETools.Processor { get { - if (AlbumArt == null || AlbumArt.Count == 0) + if (AlbumArt == null) + return null; + var picture = AlbumArt.Find(x => x.Type == TagLib.PictureType.FrontCover) ?? + AlbumArt.Find(x => x.Type != TagLib.PictureType.NotAPicture); + if (picture == null) return null; - TagLib.IPicture picture = AlbumArt[0]; using (MemoryStream imageStream = new MemoryStream(picture.Data.Data, 0, picture.Data.Count)) try { return Image.FromStream(imageStream); } catch { } @@ -551,6 +555,7 @@ namespace CUETools.Processor _minDataTrackLength = null; hdcdDecoder = null; _hasEmbeddedCUESheet = false; + _hasEmbeddedArtwork = false; _isArchive = false; _isCD = false; _useLocalDB = false; @@ -837,8 +842,15 @@ namespace CUETools.Processor dbmeta = myEntry.Metadata; } + byte[] frontCover = null; + { + var picture = AlbumArt.Find(x => x.Type == TagLib.PictureType.FrontCover) ?? + AlbumArt.Find(x => x.Type != TagLib.PictureType.NotAPicture); + if (picture != null) frontCover = picture.Data.Data; + } + if (dbmeta != null) - Releases.Add(new CUEMetadataEntry(dbmeta, TOC, "local")); + Releases.Add(new CUEMetadataEntry(dbmeta, TOC, "local") { cover = frontCover }); //if (useCache) //{ @@ -859,12 +871,12 @@ namespace CUETools.Processor if (dbmeta == null || !dbmeta.Contains(cueMetadata)) { if (cueMetadata.Contains(taglibMetadata) || !taglibMetadata.Contains(cueMetadata)) - Releases.Add(new CUEMetadataEntry(new CUEMetadata(cueMetadata), TOC, "cue")); + Releases.Add(new CUEMetadataEntry(new CUEMetadata(cueMetadata), TOC, "cue") { cover = frontCover }); } if (dbmeta == null || !dbmeta.Contains(taglibMetadata)) { if (!cueMetadata.Contains(taglibMetadata)) - Releases.Add(new CUEMetadataEntry(new CUEMetadata(taglibMetadata), TOC, "tags")); + Releases.Add(new CUEMetadataEntry(new CUEMetadata(taglibMetadata), TOC, "tags") { cover = frontCover }); } } @@ -872,7 +884,7 @@ namespace CUETools.Processor { foreach (var entry in _localDB) if (entry.DiscID == TOC.TOCID && entry.Metadata != null && (dbmeta == null || !dbmeta.Contains(entry.Metadata))) - Releases.Add(new CUEMetadataEntry(entry.Metadata, TOC, "local")); + Releases.Add(new CUEMetadataEntry(entry.Metadata, TOC, "local") { cover = frontCover }); } bool ctdbFound = false; @@ -1737,11 +1749,7 @@ namespace CUETools.Processor } LoadAlbumArt(_tracks[0]._fileInfo ?? _fileInfo); -#if NET47 || NET20 - ResizeAlbumArt(); -#endif - if (_config.embedAlbumArt || _config.CopyAlbumArt) - _albumArt.ForEach(t => _padding += t.Data.Count); + if (_config.embedLog && _eacLog != null) _padding += _eacLog.Length; @@ -1750,6 +1758,63 @@ namespace CUETools.Processor // TODO: It should also be set when assigning a DataTrack!!! } + public void LoadAndResizeAlbumArt() + { + if (Action != CUEAction.Encode) + return; + if (!_hasEmbeddedArtwork) + { + var images = Metadata.AlbumArt; + var primaryImages = images.FindAll(x => x.primary); + if (primaryImages.Count > 0) images = primaryImages; + foreach (var imageMeta in images) + { + // TODO: load secondary album art? + // TODO: load uri150 version first, load full version in background of choice form? + var ms = new MemoryStream(); + if (CTDB.FetchFile(imageMeta.uri, ms)) + { + TagLib.Picture pic = new TagLib.Picture(new TagLib.ByteVector(ms.ToArray())); + pic.Description = imageMeta.uri; + using (MemoryStream imageStream = new MemoryStream(pic.Data.Data, 0, pic.Data.Count)) + try + { +#if NET47 || NET20 + var image = Image.FromStream(ms); + pic.Description += $" ({image.Width}x{image.Height})"; + //if (image.Height > 0 && image.Width > 0 && (image.Height * 1.0 / image.Width) > 0.9 && (image.Width * 1.0 / image.Height) > 0.9) + // isSquare = true; + // pic.MimeType = f(image.RawFormat); +#endif + } + catch { } + + _albumArt.Add(pic); + } + } + CheckStop(); + + if (_albumArt.Count != 1 || _albumArt[0].Type != TagLib.PictureType.FrontCover) + { + if (_albumArt.Count == 0 || CUEToolsSelection == null) + { + _albumArt.Clear(); + } + else + { + CUEToolsSelectionEventArgs e = new CUEToolsSelectionEventArgs(); + e.choices = _albumArt.ToArray(); + CUEToolsSelection(this, e); + TagLib.IPicture selected = e.selection == -1 ? null : _albumArt[e.selection]; + _albumArt.RemoveAll(t => t != selected); + } + } + } +#if NET47 || NET20 + ResizeAlbumArt(); +#endif + } + public void UseCUEToolsDB(string userAgent, string driveName, bool fuzzy, CTDBMetadataSearch metadataSearch) { ShowProgress((string)"Contacting CUETools database...", 0, null, null); @@ -2920,16 +2985,21 @@ namespace CUETools.Processor } } - public void LoadAlbumArt(TagLib.File fileInfo) + private void LoadAlbumArt(TagLib.File fileInfo) { - if ((_config.extractAlbumArt || _config.CopyAlbumArt) && fileInfo != null) - foreach (TagLib.IPicture picture in fileInfo.Tag.Pictures) - if (picture.Type == TagLib.PictureType.FrontCover) - if (picture.MimeType == "image/jpeg") - { - _albumArt.Add(picture); - return; - } + if (_config.extractAlbumArt || _config.CopyAlbumArt) + { + if (fileInfo != null) + foreach (TagLib.IPicture picture in fileInfo.Tag.Pictures) + { + if (picture.Type == TagLib.PictureType.NotAPicture) continue; + // if (picture.MimeType == "image/jpeg" && picture.Type == TagLib.PictureType.FrontCover) + _albumArt.Add(picture); + _hasEmbeddedArtwork = true; + } + } + + if (_hasEmbeddedArtwork) return; bool isValidName = true; if ((_config.extractAlbumArt || _config.embedAlbumArt) && !_isCD) @@ -2969,7 +3039,6 @@ namespace CUETools.Processor if (files.Count > maxChoice) return; } - bool isSquare = false; foreach (string imgPath in files) { TagLib.File.IFileAbstraction file = _isArchive @@ -2980,6 +3049,7 @@ namespace CUETools.Processor pic.Description = imgPath.Substring(_inputDir.Length).Trim(Path.DirectorySeparatorChar); else pic.Description = Path.GetFileName(imgPath); + pic.Type = TagLib.PictureType.Other; using (MemoryStream imageStream = new MemoryStream(pic.Data.Data, 0, pic.Data.Count)) try { @@ -2987,25 +3057,16 @@ namespace CUETools.Processor var image = Image.FromStream(imageStream); pic.Description += $" ({image.Width}x{image.Height})"; if (image.Height > 0 && image.Width > 0 && (image.Height * 1.0 / image.Width) > 0.9 && (image.Width * 1.0 / image.Height) > 0.9) - isSquare = true; + { + if (isValidName) + pic.Type = TagLib.PictureType.FrontCover; + } // pic.MimeType = f(image.RawFormat); #endif } catch { } _albumArt.Add(pic); } - - if (_albumArt.Count == 0 || CUEToolsSelection == null) - return; - - if (_albumArt.Count == 1 && isSquare && isValidName) - return; - - CUEToolsSelectionEventArgs e = new CUEToolsSelectionEventArgs(); - e.choices = _albumArt.ToArray(); - CUEToolsSelection(this, e); - TagLib.IPicture selected = e.selection == -1 ? null : _albumArt[e.selection]; - _albumArt.RemoveAll(t => t != selected); } } @@ -3014,13 +3075,16 @@ namespace CUETools.Processor { if (_albumArt == null) return; + int j = 0; foreach (TagLib.IPicture picture in _albumArt) using (MemoryStream imageStream = new MemoryStream(picture.Data.Data, 0, picture.Data.Count)) try { + CheckStop(); using (Image img = Image.FromStream(imageStream)) if (img.Width > _config.maxAlbumArtSize || img.Height > _config.maxAlbumArtSize) { + ReportProgress("Resizing Album Art", (double)(j++) / _albumArt.Count); using (Bitmap small = resizeImage(img, new Size(_config.maxAlbumArtSize, _config.maxAlbumArtSize))) using (MemoryStream encoded = new MemoryStream()) { @@ -3388,6 +3452,9 @@ namespace CUETools.Processor destBPS = 16; } + if (_config.embedAlbumArt || _config.CopyAlbumArt) + _albumArt.ForEach(t => _padding += t.Data.Count); + if (style == CUEStyle.SingleFile || style == CUEStyle.SingleFileWithCUE) { iDest++; diff --git a/CUETools/frmCUETools.Designer.cs b/CUETools/frmCUETools.Designer.cs index 6c03d2d..bd2aebb 100644 --- a/CUETools/frmCUETools.Designer.cs +++ b/CUETools/frmCUETools.Designer.cs @@ -198,6 +198,7 @@ namespace JDP { // toolStripStatusLabel1 // this.toolStripStatusLabel1.Name = "toolStripStatusLabel1"; + this.toolStripStatusLabel1.Overflow = System.Windows.Forms.ToolStripItemOverflow.Never; resources.ApplyResources(this.toolStripStatusLabel1, "toolStripStatusLabel1"); this.toolStripStatusLabel1.Spring = true; // @@ -208,6 +209,7 @@ namespace JDP { | System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom))); this.toolStripStatusLabelProcessed.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenOuter; this.toolStripStatusLabelProcessed.Name = "toolStripStatusLabelProcessed"; + this.toolStripStatusLabelProcessed.Overflow = System.Windows.Forms.ToolStripItemOverflow.Never; resources.ApplyResources(this.toolStripStatusLabelProcessed, "toolStripStatusLabelProcessed"); // // toolStripStatusLabelCTDB @@ -219,6 +221,7 @@ namespace JDP { resources.ApplyResources(this.toolStripStatusLabelCTDB, "toolStripStatusLabelCTDB"); this.toolStripStatusLabelCTDB.Image = global::JDP.Properties.Resources.cdrepair1; this.toolStripStatusLabelCTDB.Name = "toolStripStatusLabelCTDB"; + this.toolStripStatusLabelCTDB.Overflow = System.Windows.Forms.ToolStripItemOverflow.Never; // // toolStripStatusLabelAR // @@ -229,12 +232,14 @@ namespace JDP { resources.ApplyResources(this.toolStripStatusLabelAR, "toolStripStatusLabelAR"); this.toolStripStatusLabelAR.Image = global::JDP.Properties.Resources.AR; this.toolStripStatusLabelAR.Name = "toolStripStatusLabelAR"; + this.toolStripStatusLabelAR.Overflow = System.Windows.Forms.ToolStripItemOverflow.Never; this.toolStripStatusLabelAR.Padding = new System.Windows.Forms.Padding(0, 0, 5, 0); // // toolStripProgressBar2 // this.toolStripProgressBar2.AutoToolTip = true; this.toolStripProgressBar2.Name = "toolStripProgressBar2"; + this.toolStripProgressBar2.Overflow = System.Windows.Forms.ToolStripItemOverflow.Never; resources.ApplyResources(this.toolStripProgressBar2, "toolStripProgressBar2"); this.toolStripProgressBar2.Style = System.Windows.Forms.ProgressBarStyle.Continuous; // diff --git a/CUETools/frmCUETools.cs b/CUETools/frmCUETools.cs index ed60df2..f88e5fd 100644 --- a/CUETools/frmCUETools.cs +++ b/CUETools/frmCUETools.cs @@ -973,19 +973,6 @@ namespace JDP entry.Metadata.CopyMetadata(dlg.ChosenRelease.metadata); } } - if (dlgRes != DialogResult.Cancel) - { - if (cueSheet.AlbumArt.Count == 0 && cueSheet.Metadata.AlbumArt.Count > 0) - { - var ms = new MemoryStream(); - var image = cueSheet.Metadata.AlbumArt.Find(x => x.primary) ?? cueSheet.Metadata.AlbumArt[0]; - if (cueSheet.CTDB.FetchFile(image.uri, ms)) - { - var blob = new TagLib.ByteVector(ms.ToArray()); - cueSheet.AlbumArt.Add(new TagLib.Picture(new TagLib.ByteVector(blob))); - } - } - } dlg.Close(); } else if (_profile._config.advanced.CacheMetadata) @@ -1006,6 +993,8 @@ namespace JDP if (dlgRes == DialogResult.Cancel) return; + cueSheet.LoadAndResizeAlbumArt(); + cueSheet.GenerateFilenames(audioEncoderType, outputFormat, pathOut); List outputExists = cueSheet.OutputExists(); @@ -1040,6 +1029,10 @@ namespace JDP } if (outputExists.Count == 0) { + this.Invoke((MethodInvoker)delegate () + { + pictureBoxMotd.Image = cueSheet.Cover ?? motdImage; + }); cueSheet.UsePregapForFirstTrackInSingleFile = _usePregapForFirstTrackInSingleFile && !outputAudio; if (script == null || script.name == "default") { @@ -1212,7 +1205,7 @@ namespace JDP { if (e.percent == 0) { - toolStripStatusLabelProcessed.Visible = false; + toolStripStatusLabelProcessed.Text = ""; toolStripProgressBar2.ToolTipText = ""; } else if (e.percent > 0.02) @@ -1227,9 +1220,9 @@ namespace JDP } toolStripProgressBar2.ToolTipText = String.Format("{0}:{1:00}/{2}:{3:00}", (int)span.TotalMinutes, span.Seconds, (int)eta.TotalMinutes, eta.Seconds); toolStripStatusLabelProcessed.Text = String.Format("{0}@{1}", toolStripProgressBar2.ToolTipText, speedStr); - toolStripStatusLabelProcessed.Visible = true; } toolStripStatusLabel1.Text = e.status.Replace("&", "&&"); + toolStripStatusLabel1.ToolTipText = e.status; toolStripProgressBar2.Value = Math.Max(0, Math.Min(100, (int)(e.percent * 100))); toolStripStatusLabelAR.Enabled = e.cueSheet != null && e.cueSheet.ArVerify != null && e.cueSheet.ArVerify.ARStatus == null; @@ -1290,7 +1283,7 @@ namespace JDP { UpdateActions(); pictureBoxMotd.Image = motdImage; - toolStripStatusLabelProcessed.Visible = false; + toolStripStatusLabelProcessed.Text = ""; } //rbGapsLeftOut.Visible = diff --git a/CUETools/frmCUETools.resx b/CUETools/frmCUETools.resx index 6628925..127c5cf 100644 --- a/CUETools/frmCUETools.resx +++ b/CUETools/frmCUETools.resx @@ -126,20 +126,13 @@ - 764, 46 + 654, 46 MiddleLeft - 45, 46 - - - ETA - - - - False + 4, 46 Segoe UI, 9pt @@ -150,6 +143,7 @@ 77 + False @@ -252,24 +246,6 @@ 0 - - Top, Bottom, Left, Right - - - 19 - - - 4, 27 - - - 4, 5, 4, 5 - - - 289, 491 - - - 1 - fileSystemTreeView1 @@ -318,9 +294,1083 @@ 3 + + 3, 17 + + + tableLayoutPanelCUEStyle + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBoxMode + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="rbTracks" Row="2" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="rbEmbedCUE" Row="0" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="rbSingleFile" Row="1" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="checkBoxEditTags" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="checkBoxARVerifyOnEncode" Row="4" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="checkBoxCTDBVerifyOnEncode" Row="4" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Percent,33.33332,Percent,33.33334,Percent,33.33334" /><Rows Styles="Percent,18.18229,Percent,18.18229,Percent,18.18229,Percent,22.72658,Percent,22.72658" /></TableLayoutSettings> + + + toolStripCorrectorFormat + + + System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBoxMode + + + 1 + + + tableLayoutPanelVerifyMode + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBoxMode + + + 2 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="checkBoxSkipRecent" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="checkBoxVerifyUseLocal" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="checkBoxCTDBVerify" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,33.33333,Percent,33.33333,Percent,33.33333,Absolute,30" /><Rows Styles="Percent,32.72727,Percent,67.27273" /></TableLayoutSettings> + + + Fill + + + 259, 163 + + + 4, 5, 4, 5 + + + 4, 5, 4, 5 + + + 227, 211 + + + 12 + + + Mode + + + groupBoxMode + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel2 + + + 0 + + + buttonEncoderSettings + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAudioOutput + + + 0 + + + labelEncoderMaxMode + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAudioOutput + + + 1 + + + labelEncoderMinMode + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAudioOutput + + + 2 + + + labelEncoderMode + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAudioOutput + + + 3 + + + trackBarEncoderMode + + + System.Windows.Forms.TrackBar, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAudioOutput + + + 4 + + + comboBoxEncoder + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAudioOutput + + + 5 + + + radioButtonAudioNone + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAudioOutput + + + 6 + + + radioButtonAudioLossy + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAudioOutput + + + 7 + + + radioButtonAudioLossless + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAudioOutput + + + 8 + + + labelFormat + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAudioOutput + + + 9 + + + comboBoxAudioFormat + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAudioOutput + + + 10 + + + Fill + + + 494, 163 + + + 4, 5, 4, 5 + + + 4, 5, 4, 5 + + + 222, 314 + + + 2 + + + Audio Output + + + grpAudioOutput + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel2 + + + 1 + + + Fill + + + NoControl + + + 4, 384 + + + 4, 5, 4, 5 + + + 247, 144 + + + Zoom + + + 15 + + + pictureBoxMotd + + + System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel2 + + + 2 + + + 2 + + + Fill + + + NoControl + + + 0, 78 + + + 0, 0, 0, 0 + + + 147, 40 + + + 13 + + + Template: + + + MiddleLeft + + + labelOutputTemplate + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelPaths + + + 0 + + + Fill + + + 151, 83 + + + 4, 5, 4, 5 + + + 549, 29 + + + 9 + + + 153, 8 + + + Template for output files (foobar2000 format) + + + comboBoxOutputFormat + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelPaths + + + 1 + + + Fill + + + 151, 5 + + + 4, 5, 4, 5 + + + 549, 27 + + + 0 + + + Input file + + + txtInputPath + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelPaths + + + 2 + + + Fill + + + 151, 44 + + + 4, 5, 4, 5 + + + 549, 27 + + + 0 + + + Output file + + + txtOutputPath + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelPaths + + + 3 + + + 0, 0 + + + Fill + + + 0, 0 + + + 0, 0, 0, 0 + + + 147, 39 + + + 14 + + + toolStripInput + + + toolStripInput + + + System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelPaths + + + 4 + + + 0, 24 + + + Fill + + + 0, 39 + + + 0, 0, 0, 0 + + + 147, 39 + + + 15 + + + toolStripOutput + + + toolStripOutput + + + System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelPaths + + + 5 + + + Fill + + + 4, 25 + + + 0, 0, 0, 0 + + + 3 + + + 704, 118 + + + 14 + + + tableLayoutPanelPaths + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpOutputPathGeneration + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="labelOutputTemplate" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="comboBoxOutputFormat" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="txtInputPath" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="txtOutputPath" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="toolStripInput" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="toolStripOutput" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,20.94017,Percent,79.05983" /><Rows Styles="Percent,33.33333,Percent,33.33333,Percent,33.33333" /></TableLayoutSettings> + + + Fill + + + 4, 5 + + + 4, 5, 4, 5 + + + 4, 5, 4, 5 + + + 712, 148 + + + 1 + + + CUE Paths + + + grpOutputPathGeneration + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel2 + + + 3 + + + comboBoxScript + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAction + + + 0 + + + rbActionCorrectFilenames + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAction + + + 1 + + + rbActionCreateCUESheet + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAction + + + 2 + + + rbActionVerify + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAction + + + 3 + + + rbActionEncode + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAction + + + 4 + + + Fill + + + 4, 163 + + + 4, 5, 4, 5 + + + 4, 5, 4, 5 + + + 247, 211 + + + 4 + + + Action + + + grpAction + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel2 + + + 4 + + + tableLayoutPanel4 + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpExtra + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="labelPregap" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lblWriteOffset" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="txtPreGapLength" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="labelDataTrack" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="txtDataTrackLength" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="textBoxOffset" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Percent,56.75676,Percent,43.24324" /><Rows Styles="Percent,33.33333,Percent,33.33333,Percent,33.33333" /></TableLayoutSettings> + + + Fill + + + 259, 384 + + + 4, 5, 4, 5 + + + 4, 5, 4, 5 + + + 227, 144 + + + 6 + + + Extra + + + grpExtra + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel2 + + + 5 + + + btnConvert + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panelGo + + + 0 + + + btnStop + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panelGo + + + 1 + + + btnResume + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panelGo + + + 2 + + + btnPause + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panelGo + + + 3 + + + Fill + + + 508, 487 + + + 18, 5, 18, 5 + + + 194, 41 + + + 14 + + + panelGo + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel2 + + + 6 + + + Fill + + + 306, 0 + + + 0, 0, 0, 0 + + + 4 + + + 720, 533 + + + 1 + + + tableLayoutPanel2 + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel1 + + + 2 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="groupBoxMode" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="grpAudioOutput" Row="1" RowSpan="2" Column="2" ColumnSpan="1" /><Control Name="pictureBoxMotd" Row="2" RowSpan="2" Column="0" ColumnSpan="1" /><Control Name="grpOutputPathGeneration" Row="0" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="grpAction" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="grpExtra" Row="2" RowSpan="2" Column="1" ColumnSpan="1" /><Control Name="panelGo" Row="3" RowSpan="1" Column="2" ColumnSpan="1" /></Controls><Columns Styles="Percent,35.41667,Percent,32.70833,Percent,31.875" /><Rows Styles="Percent,29.69697,Percent,41.51515,Percent,19.39394,Percent,9.393939" /></TableLayoutSettings> + + + Fill + + + 0, 0 + + + 0, 0, 0, 0 + + + 2 + + + 1026, 728 + + + 17 + + + tableLayoutPanel1 + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripContainer1.ContentPanel + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="textBatchReport" Row="1" RowSpan="1" Column="0" ColumnSpan="2" /><Control Name="grpInput" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="tableLayoutPanel2" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Percent,100,Absolute,720" /><Rows Styles="Absolute,533,Percent,100" /></TableLayoutSettings> + + + 0, 0, 0, 0 + + + 1026, 728 + + + toolStripContainer1.ContentPanel + + + System.Windows.Forms.ToolStripContentPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripContainer1 + + + 0 + + + Fill + + + 48, 0 + + + toolStripContainer1.LeftToolStripPanel + + + System.Windows.Forms.ToolStripPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripContainer1 + + + 1 + + + 0, 0 + + + 4, 5, 4, 5 + + + toolStripContainer1.RightToolStripPanel + + + System.Windows.Forms.ToolStripPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripContainer1 + + + 2 + + + 1026, 811 + + + 17 + + + toolStripContainer1 + + + 0, 0 + + + None + + + 0, 0 + + + 1026, 32 + + + 0 + + + toolStripMenu + + + System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripContainer1.TopToolStripPanel + + + 0 + + + toolStripContainer1.TopToolStripPanel + + + System.Windows.Forms.ToolStripPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripContainer1 + + + 3 + + + toolStripContainer1 + + + System.Windows.Forms.ToolStripContainer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 1 + + + Top, Bottom, Left, Right + + + 19 + + + 4, 27 + + + 4, 5, 4, 5 + + + 289, 491 + + + 1 + + + fileSystemTreeView1 + + + CUEControls.FileSystemTreeView, CUEControls, Version=2.1.7.0, Culture=neutral, PublicKeyToken=null + + + grpInput + + + 0 + 3 + + rbTracks + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelCUEStyle + + + 0 + + + rbEmbedCUE + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelCUEStyle + + + 1 + + + rbSingleFile + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelCUEStyle + + + 2 + + + checkBoxEditTags + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelCUEStyle + + + 3 + + + checkBoxARVerifyOnEncode + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelCUEStyle + + + 4 + + + checkBoxCTDBVerifyOnEncode + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelCUEStyle + + + 5 + + + Fill + + + 4, 25 + + + 0, 0, 0, 0 + + + 5 + + + 219, 181 + + + 11 + + + tableLayoutPanelCUEStyle + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBoxMode + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="rbTracks" Row="2" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="rbEmbedCUE" Row="0" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="rbSingleFile" Row="1" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="checkBoxEditTags" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="checkBoxARVerifyOnEncode" Row="4" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="checkBoxCTDBVerifyOnEncode" Row="4" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Percent,33.33332,Percent,33.33334,Percent,33.33334" /><Rows Styles="Percent,18.18229,Percent,18.18229,Percent,18.18229,Percent,22.72658,Percent,22.72658" /></TableLayoutSettings> + + + 153, 8 + True @@ -345,9 +1395,6 @@ &Tracks - - 153, 8 - File per track. Gap handling can be selected in advanced settings. @@ -558,39 +1605,6 @@ 5 - - Fill - - - 4, 25 - - - 0, 0, 0, 0 - - - 5 - - - 219, 181 - - - 11 - - - tableLayoutPanelCUEStyle - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxMode - - - 0 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="rbTracks" Row="2" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="rbEmbedCUE" Row="0" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="rbSingleFile" Row="1" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="checkBoxEditTags" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="checkBoxARVerifyOnEncode" Row="4" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="checkBoxCTDBVerifyOnEncode" Row="4" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Percent,33.33332,Percent,33.33334,Percent,33.33334" /><Rows Styles="Percent,18.18229,Percent,18.18229,Percent,18.18229,Percent,22.72658,Percent,22.72658" /></TableLayoutSettings> - 3, 17 @@ -600,51 +1614,6 @@ Fill - - Magenta - - - 116, 29 - - - Overwrite - - - 236, 30 - - - Locate files - - - Try to locate missing files automatically - - - 236, 30 - - - Change extension - - - Replace extension for audio files with this: - - - Magenta - - - 117, 29 - - - Locate files - - - Magenta - - - 57, 29 - - - flac - 4, 25 @@ -669,9 +1638,123 @@ 1 + + Magenta + + + 116, 29 + + + Overwrite + + + Magenta + + + 117, 29 + + + Locate files + + + 236, 30 + + + Locate files + + + Try to locate missing files automatically + + + 236, 30 + + + Change extension + + + Replace extension for audio files with this: + + + Magenta + + + 57, 29 + + + flac + 3 + + checkBoxSkipRecent + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelVerifyMode + + + 0 + + + checkBoxVerifyUseLocal + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelVerifyMode + + + 1 + + + checkBoxCTDBVerify + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelVerifyMode + + + 2 + + + Fill + + + 4, 25 + + + 4, 5, 4, 5 + + + 2 + + + 219, 181 + + + 2 + + + tableLayoutPanelVerifyMode + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBoxMode + + + 2 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="checkBoxSkipRecent" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="checkBoxVerifyUseLocal" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="checkBoxCTDBVerify" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,33.33333,Percent,33.33333,Percent,33.33333,Absolute,30" /><Rows Styles="Percent,32.72727,Percent,67.27273" /></TableLayoutSettings> + True @@ -780,72 +1863,6 @@ 2 - - Fill - - - 4, 25 - - - 4, 5, 4, 5 - - - 2 - - - 219, 181 - - - 2 - - - tableLayoutPanelVerifyMode - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxMode - - - 2 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="checkBoxSkipRecent" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="checkBoxVerifyUseLocal" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="checkBoxCTDBVerify" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,33.33333,Percent,33.33333,Percent,33.33333,Absolute,30" /><Rows Styles="Percent,32.72727,Percent,67.27273" /></TableLayoutSettings> - - - Fill - - - 259, 163 - - - 4, 5, 4, 5 - - - 4, 5, 4, 5 - - - 227, 211 - - - 12 - - - Mode - - - groupBoxMode - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel2 - - - 0 - Flat @@ -1224,213 +2241,21 @@ 10 - - Fill - - - 494, 163 - - - 4, 5, 4, 5 - - - 4, 5, 4, 5 - - - 222, 314 - - - 2 - - - Audio Output - - - grpAudioOutput - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel2 - - - 1 - - - Fill - - - NoControl - - - 4, 384 - - - 4, 5, 4, 5 - - - 247, 144 - - - Zoom - - - 15 - - - pictureBoxMotd - - - System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel2 - - - 2 - - - 2 - - - Fill - - - NoControl - - - 0, 78 - - - 0, 0, 0, 0 - - - 147, 40 - - - 13 - - - Template: - - - MiddleLeft - - - labelOutputTemplate - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanelPaths - - - 0 - - - Fill - - - 151, 83 - - - 4, 5, 4, 5 - - - 549, 29 - - - 9 - - - Template for output files (foobar2000 format) - - - comboBoxOutputFormat - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanelPaths - - - 1 - - - Fill - - - 151, 5 - - - 4, 5, 4, 5 - - - 549, 27 - - - 0 - - - Input file - - - txtInputPath - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanelPaths - - - 2 - - - Fill - - - 151, 44 - - - 4, 5, 4, 5 - - - 549, 27 - - - 0 - - - Output file - - - txtOutputPath - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanelPaths - - - 3 - - - 0, 0 - - - Fill - 58, 36 Input: + + Magenta + + + 45, 36 + + + Open/close input browser + 248, 30 @@ -1455,54 +2280,21 @@ Hide browser - - Magenta - - - 45, 36 - - - Open/close input browser - - - 0, 0 - - - 0, 0, 0, 0 - - - 147, 39 - - - 14 - - - toolStripInput - - - toolStripInput - - - System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanelPaths - - - 4 - - - 0, 24 - - - Fill - 73, 39 Output: + + Magenta + + + 45, 36 + + + toolStripSplitButtonOutputBrowser + 200, 30 @@ -1521,108 +2313,6 @@ Use template - - Magenta - - - 45, 36 - - - toolStripSplitButtonOutputBrowser - - - 0, 39 - - - 0, 0, 0, 0 - - - 147, 39 - - - 15 - - - toolStripOutput - - - toolStripOutput - - - System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanelPaths - - - 5 - - - Fill - - - 4, 25 - - - 0, 0, 0, 0 - - - 3 - - - 704, 118 - - - 14 - - - tableLayoutPanelPaths - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpOutputPathGeneration - - - 0 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="labelOutputTemplate" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="comboBoxOutputFormat" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="txtInputPath" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="txtOutputPath" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="toolStripInput" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="toolStripOutput" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,20.94017,Percent,79.05983" /><Rows Styles="Percent,33.33333,Percent,33.33333,Percent,33.33333" /></TableLayoutSettings> - - - Fill - - - 4, 5 - - - 4, 5, 4, 5 - - - 4, 5, 4, 5 - - - 712, 148 - - - 1 - - - CUE Paths - - - grpOutputPathGeneration - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel2 - - - 3 - Top, Left, Right @@ -1797,42 +2487,114 @@ 4 - - Fill - - - 4, 163 - - - 4, 5, 4, 5 - - - 4, 5, 4, 5 - - - 247, 211 - - - 4 - - - Action - - - grpAction - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel2 - - - 4 - 2 + + labelPregap + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel4 + + + 0 + + + lblWriteOffset + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel4 + + + 1 + + + txtPreGapLength + + + System.Windows.Forms.MaskedTextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel4 + + + 2 + + + labelDataTrack + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel4 + + + 3 + + + txtDataTrackLength + + + System.Windows.Forms.MaskedTextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel4 + + + 4 + + + textBoxOffset + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel4 + + + 5 + + + Fill + + + 4, 25 + + + 0, 0, 0, 0 + + + 3 + + + 219, 114 + + + 6 + + + tableLayoutPanel4 + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpExtra + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="labelPregap" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lblWriteOffset" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="txtPreGapLength" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="labelDataTrack" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="txtDataTrackLength" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="textBoxOffset" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Percent,56.75676,Percent,43.24324" /><Rows Styles="Percent,33.33333,Percent,33.33333,Percent,33.33333" /></TableLayoutSettings> + True @@ -2064,72 +2826,6 @@ 5 - - Fill - - - 4, 25 - - - 0, 0, 0, 0 - - - 3 - - - 219, 114 - - - 6 - - - tableLayoutPanel4 - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpExtra - - - 0 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="labelPregap" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lblWriteOffset" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="txtPreGapLength" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="labelDataTrack" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="txtDataTrackLength" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="textBoxOffset" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Percent,56.75676,Percent,43.24324" /><Rows Styles="Percent,33.33333,Percent,33.33333,Percent,33.33333" /></TableLayoutSettings> - - - Fill - - - 259, 384 - - - 4, 5, 4, 5 - - - 4, 5, 4, 5 - - - 227, 144 - - - 6 - - - Extra - - - grpExtra - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel2 - - - 5 - Fill @@ -2268,167 +2964,17 @@ 3 - - Fill + + Magenta - - 508, 487 + + 109, 29 - - 18, 5, 18, 5 + + default - - 194, 41 - - - 14 - - - panelGo - - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel2 - - - 6 - - - Fill - - - 306, 0 - - - 0, 0, 0, 0 - - - 4 - - - 720, 533 - - - 1 - - - tableLayoutPanel2 - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel1 - - - 2 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="groupBoxMode" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="grpAudioOutput" Row="1" RowSpan="2" Column="2" ColumnSpan="1" /><Control Name="pictureBoxMotd" Row="2" RowSpan="2" Column="0" ColumnSpan="1" /><Control Name="grpOutputPathGeneration" Row="0" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="grpAction" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="grpExtra" Row="2" RowSpan="2" Column="1" ColumnSpan="1" /><Control Name="panelGo" Row="3" RowSpan="1" Column="2" ColumnSpan="1" /></Controls><Columns Styles="Percent,35.41667,Percent,32.70833,Percent,31.875" /><Rows Styles="Percent,29.69697,Percent,41.51515,Percent,19.39394,Percent,9.393939" /></TableLayoutSettings> - - - Fill - - - 0, 0 - - - 0, 0, 0, 0 - - - 2 - - - 1026, 728 - - - 17 - - - tableLayoutPanel1 - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripContainer1.ContentPanel - - - 0 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="textBatchReport" Row="1" RowSpan="1" Column="0" ColumnSpan="2" /><Control Name="grpInput" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="tableLayoutPanel2" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Percent,100,Absolute,720" /><Rows Styles="Absolute,533,Percent,100" /></TableLayoutSettings> - - - 0, 0, 0, 0 - - - 1026, 728 - - - toolStripContainer1.ContentPanel - - - System.Windows.Forms.ToolStripContentPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripContainer1 - - - 0 - - - Fill - - - 48, 0 - - - toolStripContainer1.LeftToolStripPanel - - - System.Windows.Forms.ToolStripPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripContainer1 - - - 1 - - - 0, 0 - - - 4, 5, 4, 5 - - - toolStripContainer1.RightToolStripPanel - - - System.Windows.Forms.ToolStripPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripContainer1 - - - 2 - - - 1026, 811 - - - 17 - - - toolStripContainer1 - - - 0, 0 - - - None + + Profile 100, 31 @@ -2454,18 +3000,6 @@ default - - Magenta - - - 109, 29 - - - default - - - Profile - 6, 32 @@ -2508,54 +3042,18 @@ Batch log - - 0, 0 - - - 1026, 32 - - - 0 - - - toolStripMenu - - - System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripContainer1.TopToolStripPanel - - - 0 - - - toolStripContainer1.TopToolStripPanel - - - System.Windows.Forms.ToolStripPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripContainer1 - - - 3 - - - toolStripContainer1 - - - System.Windows.Forms.ToolStripContainer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 1 - 424, 8 + + 311, 250 + + + contextMenuStripFileTree + + + System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + False @@ -2610,15 +3108,6 @@ Locate in explorer - - 311, 250 - - - contextMenuStripFileTree - - - System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - 845, 8 diff --git a/CUETools/frmChoice.cs b/CUETools/frmChoice.cs index 069239c..8e97c34 100644 --- a/CUETools/frmChoice.cs +++ b/CUETools/frmChoice.cs @@ -186,9 +186,6 @@ namespace JDP ri.metadata.Tracks[i].ISRC = CUE.Metadata.Tracks[i].ISRC; } CUE.CopyMetadata(ri.metadata); - - // TODO: copy album art - } private void AutoResizeList(ListView list, int mainCol) @@ -260,11 +257,23 @@ namespace JDP pictureBox1.Image = null; } pictureBox1.ImageLocation = null; - if (r.metadata.AlbumArt.Count > 0) + if (r.metadata.AlbumArt.Count > 0 || r.cover != null) { pictureBox1.Show(); - var image = r.metadata.AlbumArt.Find(x => x.primary) ?? r.metadata.AlbumArt[0]; - pictureBox1.ImageLocation = image.uri150; + if (r.cover != null) + { + using (MemoryStream imageStream = new MemoryStream(r.cover, 0, r.cover.Length)) + try + { + pictureBox1.Image = Image.FromStream(imageStream); + } + catch { } + } + else + { + var image = r.metadata.AlbumArt.Find(x => x.primary) ?? r.metadata.AlbumArt[0]; + pictureBox1.ImageLocation = image.uri150; + } } else { pictureBox1.Hide(); diff --git a/ThirdParty/taglib-sharp b/ThirdParty/taglib-sharp index 2cab612..0443b96 160000 --- a/ThirdParty/taglib-sharp +++ b/ThirdParty/taglib-sharp @@ -1 +1 @@ -Subproject commit 2cab612c54da9159fd05d45e753dee562e947074 +Subproject commit 0443b96585b733017fe6b12a77bd1ec386588474