diff --git a/CUEControls/Properties/AssemblyInfo.cs b/CUEControls/Properties/AssemblyInfo.cs index b34e46e..8dbe681 100644 --- a/CUEControls/Properties/AssemblyInfo.cs +++ b/CUEControls/Properties/AssemblyInfo.cs @@ -10,7 +10,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("CUEControls")] -[assembly: AssemblyCopyright("Copyright © 2008-2010 Gregory S. Chudov")] +[assembly: AssemblyCopyright("Copyright © 2008-2010 Grigory Chudov")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/CUEPlayer/Properties/AssemblyInfo.cs b/CUEPlayer/Properties/AssemblyInfo.cs index 07ed9d6..2e275ed 100644 --- a/CUEPlayer/Properties/AssemblyInfo.cs +++ b/CUEPlayer/Properties/AssemblyInfo.cs @@ -10,7 +10,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("CUETools")] [assembly: AssemblyProduct("CUEPlayer")] -[assembly: AssemblyCopyright("Copyright © Gregory S. Chudov 2010")] +[assembly: AssemblyCopyright("Copyright © Grigory Chudov 2010")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/CUERipper/Options.cs b/CUERipper/Options.cs index 5daa3b6..54b70b1 100644 --- a/CUERipper/Options.cs +++ b/CUERipper/Options.cs @@ -58,6 +58,9 @@ namespace CUERipper [DefaultValue(true), Category("Extraction"), DisplayName("Preserve HTOA")] public bool preserveHTOA { get { return config.preserveHTOA; } set { config.preserveHTOA = value; } } + [DefaultValue(true), Category("Extraction"), DisplayName("Detect Indexes")] + public bool detectGaps { get { return config.detectGaps; } set { config.detectGaps = value; } } + [DefaultValue(true), Category("Extraction"), DisplayName("EAC log style")] public bool createEACLOG { get { return config.createEACLOG; } set { config.createEACLOG = value; } } diff --git a/CUERipper/frmCUERipper.cs b/CUERipper/frmCUERipper.cs index 0d87e9c..1600c4e 100644 --- a/CUERipper/frmCUERipper.cs +++ b/CUERipper/frmCUERipper.cs @@ -382,7 +382,7 @@ namespace CUERipper cueSheet.ArTestVerify = null; cueSheet.Go(); - cueSheet.CTDB.Submit( + cueSheet.CTDB.Submit( (int)cueSheet.ArVerify.WorstConfidence() + 1, audioSource.CorrectionQuality == 0 ? 0 : 100 - (int)(7 * Math.Log(audioSource.ErrorsCount + 1)), // ErrorsCount==1 ~= 95, ErrorsCount==max ~= 5; @@ -658,7 +658,7 @@ namespace CUERipper cueSheet.UseAccurateRip(); General.SetCUELine(cueSheet.Attributes, "REM", "DISCID", AccurateRipVerify.CalculateCDDBId(audioSource.TOC), false); - General.SetCUELine(cueSheet.Attributes, "REM", "COMMENT", _config.createEACLOG ? "ExactAudioCopy v0.99pb4" : audioSource.RipperVersion, true); + General.SetCUELine(cueSheet.Attributes, "REM", "COMMENT", audioSource.RipperVersion, true); try { @@ -1304,7 +1304,7 @@ namespace CUERipper int track = lvItem.Index + 1 - selectedDriveInfo.drive.TOC.FirstAudio; if (a == lvItem.SubItems[0]) lvItem.BeginEdit(); - else if (/*a == lvItem.SubItems[2] &&*/ track >= 0) + else if (/*a == lvItem.SubItems[2] &&*/ track >= 0 && track < selectedDriveInfo.drive.TOC.AudioTracks) { buttonTracks.Visible = true; buttonTracks.Focus(); @@ -1327,6 +1327,22 @@ namespace CUERipper entry.Year = data.selectedRelease.metadata.Year; entry.Genre = data.selectedRelease.metadata.Genre; int i = 1; + for (i = 1; i <= selectedDriveInfo.drive.TOC.TrackCount; i++) + { + Freedb.Track tt = new Freedb.Track(); + if (i >= selectedDriveInfo.drive.TOC.FirstAudio && i < selectedDriveInfo.drive.TOC.FirstAudio + selectedDriveInfo.drive.TOC.AudioTracks) + { + CUETrackMetadata t = data.selectedRelease.metadata.Tracks[i - selectedDriveInfo.drive.TOC.FirstAudio]; + if (t.Artist != "" && t.Artist != entry.Artist) + tt.Title = t.Artist + " / " + t.Title; + else + tt.Title = t.Title; + } else + tt.Title = "Data track"; + tt.FrameOffset = 150 + (int)selectedDriveInfo.drive.TOC[i].Start; + entry.Tracks.Add(tt); + } + /* foreach (CUETrackMetadata t in data.selectedRelease.metadata.Tracks) { Freedb.Track tt = new Freedb.Track(); @@ -1336,7 +1352,7 @@ namespace CUERipper tt.Title = t.Title; tt.FrameOffset = 150 + (int)selectedDriveInfo.drive.TOC[i++].Start; entry.Tracks.Add(tt); - } + }*/ FreedbHelper m_freedb = new FreedbHelper(); diff --git a/CUETools.ALACEnc/Program.cs b/CUETools.ALACEnc/Program.cs index 381212f..dbb4bdd 100644 --- a/CUETools.ALACEnc/Program.cs +++ b/CUETools.ALACEnc/Program.cs @@ -133,7 +133,7 @@ namespace CUETools.ALACEnc if (!quiet) { - Console.WriteLine("CUETools.ALACEnc, Copyright (C) 2009 Gregory S. Chudov."); + Console.WriteLine("CUETools.ALACEnc, Copyright (C) 2009 Grigory Chudov."); Console.WriteLine("Based on ffdshow ALAC audio encoder"); Console.WriteLine("Copyright (c) 2008 Jaikrishnan Menon, "); Console.WriteLine("This is free software under the GNU GPLv3+ license; There is NO WARRANTY, to"); diff --git a/CUETools.ARCUE/Properties/AssemblyInfo.cs b/CUETools.ARCUE/Properties/AssemblyInfo.cs index b6979a4..0002854 100644 --- a/CUETools.ARCUE/Properties/AssemblyInfo.cs +++ b/CUETools.ARCUE/Properties/AssemblyInfo.cs @@ -10,7 +10,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("CUETools.ARCUE")] -[assembly: AssemblyCopyright("Copyright © 2008-2010 Gregory S. Chudov")] +[assembly: AssemblyCopyright("Copyright © 2008-2010 Grigory Chudov")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/CUETools.AccurateRip/Properties/AssemblyInfo.cs b/CUETools.AccurateRip/Properties/AssemblyInfo.cs index 71e21c2..6829d6e 100644 --- a/CUETools.AccurateRip/Properties/AssemblyInfo.cs +++ b/CUETools.AccurateRip/Properties/AssemblyInfo.cs @@ -10,7 +10,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("CUETools.AccurateRip")] -[assembly: AssemblyCopyright("Copyright © 2008-2010 Gregory S. Chudov")] +[assembly: AssemblyCopyright("Copyright © 2008-2010 Grigory Chudov")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/CUETools.CDImage/Properties/AssemblyInfo.cs b/CUETools.CDImage/Properties/AssemblyInfo.cs index eb0081a..75ff131 100644 --- a/CUETools.CDImage/Properties/AssemblyInfo.cs +++ b/CUETools.CDImage/Properties/AssemblyInfo.cs @@ -10,7 +10,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("CUETools.CDImage")] -[assembly: AssemblyCopyright("Copyright © 2008-2010 Gregory S. Chudov")] +[assembly: AssemblyCopyright("Copyright © 2008-2010 Grigory Chudov")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/CUETools.CTDB.EACPlugin/FormMetadata.cs b/CUETools.CTDB.EACPlugin/FormMetadata.cs index bb3abbb..327b960 100644 --- a/CUETools.CTDB.EACPlugin/FormMetadata.cs +++ b/CUETools.CTDB.EACPlugin/FormMetadata.cs @@ -227,6 +227,77 @@ namespace CUETools.CTDB.EACPlugin } } + private void AddMeta(CTDBResponseMeta metadata) + { + uint td = 0, dn = 0; + var disccount = metadata.disccount ?? "1"; + var discnumber = metadata.discnumber ?? "1"; + var discnumber01 = (uint.TryParse(disccount, out td) && uint.TryParse(discnumber, out dn) && td > 9 && dn > 0) ? + string.Format("{0:00}", dn) : discnumber; + var discnumberandtotal = disccount != "1" ? discnumber01 + "/" + disccount : (discnumber != "1" ? discnumber01 : ""); + var label = metadata.country ?? ""; + if (metadata.label != null) + foreach (var l in metadata.label) + label = (label == "" ? "" : label + ": ") + (l.name ?? "") + (l.name != null && l.catno != null ? " " : "") + (l.catno ?? ""); + if (metadata.releasedate != null) + label = (label == "" ? "" : label + ": ") + metadata.releasedate; + var text = string.Format("{0}{1} - {2}{3}{4}", metadata.year != null ? metadata.year + ": " : "", + metadata.artist == null ? "Unknown Artist" : metadata.artist, + metadata.album == "" ? "Unknown Title" : metadata.album, + discnumberandtotal != "" ? " (disc " + discnumberandtotal + (metadata.discname != null ? ": " + metadata.discname : "") + ")" : "", + label == "" ? "" : " (" + label + ")"); + var tip = new StringBuilder(); + var i = 0; + if (metadata.track != null) + { + foreach (var tr in metadata.track) + tip.AppendFormat("{0}. {2}{1}\n", ++i, tr.name, ((tr.artist ?? metadata.artist) == metadata.artist) ? "" : tr.artist + " / "); + } + listView1.Items.Add(new ListViewItem(text) { Tag = metadata, ImageKey = metadata.source, ToolTipText = tip.ToString() }); + this.listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); + } + + private static string FreedbToEncoding(Encoding iso, Encoding def, ref bool changed, ref bool error, string s) + { + if (s == null) + return null; + try + { + string res = def.GetString(iso.GetBytes(s)); + changed |= res != s; + return res; + } + catch // EncoderFallbackException, DecoderFallbackException + { + error = true; + } + return s; + } + + private CTDBResponseMeta FreedbToEncoding(CTDBResponseMeta src) + { + if (src.source != "freedb") + return null; + 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; + var metadata = new CTDBResponseMeta(src); + metadata.artist = FreedbToEncoding(iso, def, ref different, ref error, metadata.artist); + metadata.album = FreedbToEncoding(iso, def, ref different, ref error, metadata.album); + metadata.extra = FreedbToEncoding(iso, def, ref different, ref error, metadata.extra); + if (metadata.track != null) + { + for (int i = 0; i < metadata.track.Length; i++) + { + metadata.track[i].name = FreedbToEncoding(iso, def, ref different, ref error, metadata.track[i].name); + metadata.track[i].artist = FreedbToEncoding(iso, def, ref different, ref error, metadata.track[i].artist); + metadata.track[i].extra = FreedbToEncoding(iso, def, ref different, ref error, metadata.track[i].extra); + } + } + return different && !error ? metadata : null; + } + private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e) { if (e.UserState is InternetImage) @@ -240,32 +311,9 @@ namespace CUETools.CTDB.EACPlugin if (e.UserState is CTDBResponseMeta) { var metadata = e.UserState as CTDBResponseMeta; - uint td = 0, dn = 0; - var disccount = metadata.disccount ?? "1"; - var discnumber = metadata.discnumber ?? "1"; - var discnumber01 = (uint.TryParse(disccount, out td) && uint.TryParse(discnumber, out dn) && td > 9 && dn > 0) ? - string.Format("{0:00}", dn) : discnumber; - var discnumberandtotal = disccount != "1" ? discnumber01 + "/" + disccount : (discnumber != "1" ? discnumber01 : ""); - var label = metadata.country ?? ""; - if (metadata.label != null) - foreach (var l in metadata.label) - label = (label == "" ? "" : label + ": ") + (l.name ?? "") + (l.name != null && l.catno != null ? " " : "") + (l.catno ?? ""); - if (metadata.releasedate != null) - label = (label == "" ? "" : label + ": ") + metadata.releasedate; - var text = string.Format("{0}{1} - {2}{3}{4}", metadata.year != null ? metadata.year + ": " : "", - metadata.artist == null ? "Unknown Artist" : metadata.artist, - metadata.album == "" ? "Unknown Title" : metadata.album, - discnumberandtotal != "" ? " (disc " + discnumberandtotal + (metadata.discname != null ? ": " + metadata.discname : "") + ")" : "", - label == "" ? "" : " (" + label + ")"); - var tip = new StringBuilder(); - var i = 0; - if (metadata.track != null) - { - foreach (var tr in metadata.track) - tip.AppendFormat("{0}. {2}{1}\n", ++i, tr.name, ((tr.artist ?? metadata.artist) == metadata.artist) ? "" : tr.artist + " / "); - } - listView1.Items.Add(new ListViewItem(text) { Tag = metadata, ImageKey = metadata.source, ToolTipText = tip.ToString() }); - this.listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); + var freedbenc = FreedbToEncoding(metadata); + AddMeta(metadata); + if (freedbenc != null) AddMeta(freedbenc); } } diff --git a/CUETools.CTDB.EACPlugin/Metadata.cs b/CUETools.CTDB.EACPlugin/Metadata.cs index d9f93c8..0f6733e 100644 --- a/CUETools.CTDB.EACPlugin/Metadata.cs +++ b/CUETools.CTDB.EACPlugin/Metadata.cs @@ -86,13 +86,21 @@ namespace MetadataPlugIn data.ExtendedDiscInformation = extra; data.Revision = -1; // TODO: meta.id? rock/ffffffff/16? if (meta.track != null) + { + int firstAudio = meta.track.Length == TOC.AudioTracks ? TOC.FirstAudio - 1 : 0; for (int track = 0; track < data.NumberOfTracks; track++) { - if (track < meta.track.Length) + if (track - firstAudio >= 0 && track - firstAudio < meta.track.Length) { - data.SetTrackTitle(track, meta.track[track].name ?? ""); - data.SetTrackArtist(track, meta.track[track].artist ?? meta.artist ?? ""); - data.SetExtendedTrackInformation(track, meta.track[track].extra ?? ""); + data.SetTrackTitle(track, meta.track[track - firstAudio].name ?? ""); + data.SetTrackArtist(track, meta.track[track - firstAudio].artist ?? meta.artist ?? ""); + data.SetExtendedTrackInformation(track, meta.track[track - firstAudio].extra ?? ""); + } + else if (!TOC[track + 1].IsAudio) + { + data.SetTrackTitle(track, "[data track]"); + data.SetTrackArtist(track, meta.artist ?? ""); + data.SetExtendedTrackInformation(track, ""); } else { @@ -102,6 +110,7 @@ namespace MetadataPlugIn } data.SetTrackComposer(track, ""); } + } } if (cover) diff --git a/CUETools.CTDB.EACPlugin/Options.Designer.cs b/CUETools.CTDB.EACPlugin/Options.Designer.cs index f9574d8..1b06beb 100644 --- a/CUETools.CTDB.EACPlugin/Options.Designer.cs +++ b/CUETools.CTDB.EACPlugin/Options.Designer.cs @@ -63,7 +63,7 @@ namespace AudioDataPlugIn this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(230, 34); this.label2.TabIndex = 1; - this.label2.Text = "Copyright (c) 2011-12 Gregory S. Chudov"; + this.label2.Text = "Copyright (c) 2011-12 Grigory Chudov"; // // linkLabel1 // diff --git a/CUETools.CTDB.EACPlugin/Properties/AssemblyInfo.cs b/CUETools.CTDB.EACPlugin/Properties/AssemblyInfo.cs index 2ec5fcb..3de34a0 100644 --- a/CUETools.CTDB.EACPlugin/Properties/AssemblyInfo.cs +++ b/CUETools.CTDB.EACPlugin/Properties/AssemblyInfo.cs @@ -10,7 +10,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("CUETools.CTDB.EACPlugin")] -[assembly: AssemblyCopyright("Copyright © Gregory S. Chudov 2012")] +[assembly: AssemblyCopyright("Copyright © Grigory Chudov 2012")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/CUETools.CTDB/CTDBResponseMeta.cs b/CUETools.CTDB/CTDBResponseMeta.cs index ff80707..888555b 100644 --- a/CUETools.CTDB/CTDBResponseMeta.cs +++ b/CUETools.CTDB/CTDBResponseMeta.cs @@ -6,6 +6,48 @@ namespace CUETools.CTDB [Serializable] public class CTDBResponseMeta { + public CTDBResponseMeta() + { + } + + public CTDBResponseMeta(CTDBResponseMeta src) + { + this.source = src.source; + this.id = src.id; + this.artist = src.artist; + this.album = src.album; + this.year = src.year; + this.genre = src.genre; + this.extra = src.extra; + this.country = src.country; + this.releasedate = src.releasedate; + this.discnumber = src.discnumber; + this.disccount = src.disccount; + this.discname = src.discname; + this.infourl = src.infourl; + this.barcode = src.barcode; + if (src.coverart != null) + { + this.coverart = new CTDBResponseMetaImage[src.coverart.Length]; + for (int i = 0; i < src.coverart.Length; i++) + this.coverart[i] = new CTDBResponseMetaImage(src.coverart[i]); + } + + if (src.track != null) + { + this.track = new CTDBResponseMetaTrack[src.track.Length]; + for (int i = 0; i < src.track.Length; i++) + this.track[i] = new CTDBResponseMetaTrack(src.track[i]); + } + + if (src.label != null) + { + this.label = new CTDBResponseMetaLabel[src.label.Length]; + for (int i = 0; i < src.label.Length; i++) + this.label[i] = new CTDBResponseMetaLabel(src.label[i]); + } + } + [XmlAttribute] public string source { get; set; } [XmlAttribute] diff --git a/CUETools.CTDB/CTDBResponseMetaImage.cs b/CUETools.CTDB/CTDBResponseMetaImage.cs index 277f60a..16d874f 100644 --- a/CUETools.CTDB/CTDBResponseMetaImage.cs +++ b/CUETools.CTDB/CTDBResponseMetaImage.cs @@ -6,6 +6,19 @@ namespace CUETools.CTDB [Serializable] public class CTDBResponseMetaImage { + public CTDBResponseMetaImage() + { + } + + public CTDBResponseMetaImage(CTDBResponseMetaImage src) + { + this.uri = src.uri; + this.uri150 = src.uri150; + this.height = src.height; + this.width = src.width; + this.primary = src.primary; + } + [XmlAttribute] public string uri { get; set; } [XmlAttribute] diff --git a/CUETools.CTDB/CTDBResponseMetaLabel.cs b/CUETools.CTDB/CTDBResponseMetaLabel.cs index 77b8927..b78b157 100644 --- a/CUETools.CTDB/CTDBResponseMetaLabel.cs +++ b/CUETools.CTDB/CTDBResponseMetaLabel.cs @@ -6,6 +6,16 @@ namespace CUETools.CTDB [Serializable] public class CTDBResponseMetaLabel { + public CTDBResponseMetaLabel() + { + } + + public CTDBResponseMetaLabel(CTDBResponseMetaLabel src) + { + this.name = src.name; + this.catno = src.catno; + } + [XmlAttribute] public string name { get; set; } [XmlAttribute] diff --git a/CUETools.CTDB/CTDBResponseMetaTrack.cs b/CUETools.CTDB/CTDBResponseMetaTrack.cs index 024402c..a9f55b9 100644 --- a/CUETools.CTDB/CTDBResponseMetaTrack.cs +++ b/CUETools.CTDB/CTDBResponseMetaTrack.cs @@ -6,6 +6,17 @@ namespace CUETools.CTDB [Serializable] public class CTDBResponseMetaTrack { + public CTDBResponseMetaTrack() + { + } + + public CTDBResponseMetaTrack(CTDBResponseMetaTrack src) + { + this.name = src.name; + this.artist = src.artist; + this.extra = src.extra; + } + [XmlAttribute] public string name { get; set; } [XmlAttribute] diff --git a/CUETools.CTDB/CUEToolsDB.cs b/CUETools.CTDB/CUEToolsDB.cs index e8fa87c..d469169 100644 --- a/CUETools.CTDB/CUEToolsDB.cs +++ b/CUETools.CTDB/CUEToolsDB.cs @@ -56,6 +56,11 @@ namespace CUETools.CTDB } } + public void ContactDB(bool ctdb, bool fuzzy, CTDBMetadataSearch metadataSearch) + { + this.ContactDB(this.urlbase.Substring(7), this.userAgent, this.driveName, ctdb, fuzzy, metadataSearch); + } + public void ContactDB(string server, string userAgent, string driveName, bool ctdb, bool fuzzy, CTDBMetadataSearch metadataSearch) { this.driveName = driveName; @@ -80,6 +85,8 @@ namespace CUETools.CTDB if (uploadHelper.onProgress != null) uploadHelper.onProgress(this, new UploadProgressEventArgs(req.RequestUri.AbsoluteUri, 0)); + this.entries = new List(); + this.metadata = new List(); currentReq = req; try { diff --git a/CUETools.Codecs.ALAC/ALACDotNet.cs b/CUETools.Codecs.ALAC/ALACDotNet.cs index fb82c91..35f7879 100644 --- a/CUETools.Codecs.ALAC/ALACDotNet.cs +++ b/CUETools.Codecs.ALAC/ALACDotNet.cs @@ -5,7 +5,7 @@ using System.Collections.Generic; using System.Collections.Specialized; using CUETools.Codecs; -//Copyright (c) 2008 Gregory S. Chudov. +//Copyright (c) 2008 Grigory Chudov. //This library is based on ALAC decoder by David Hammerton. //See http://crazney.net/programs/itunes/alac.html for details. //Copyright (c) 2004 David Hammerton. diff --git a/CUETools.Codecs.ALAC/ALACWriter.cs b/CUETools.Codecs.ALAC/ALACWriter.cs index ebcfa11..aaadc78 100644 --- a/CUETools.Codecs.ALAC/ALACWriter.cs +++ b/CUETools.Codecs.ALAC/ALACWriter.cs @@ -1,6 +1,6 @@ /** * CUETools.Codecs.ALAC: pure managed ALAC audio encoder - * Copyright (c) 2009 Gregory S. Chudov + * Copyright (c) 2009 Grigory Chudov * Based on ffdshow ALAC audio encoder * Copyright (c) 2008 Jaikrishnan Menon, realityman@gmx.net * diff --git a/CUETools.Codecs.ALAC/Alac.cs b/CUETools.Codecs.ALAC/Alac.cs index 9f3a1bd..07b63ad 100644 --- a/CUETools.Codecs.ALAC/Alac.cs +++ b/CUETools.Codecs.ALAC/Alac.cs @@ -1,6 +1,6 @@ /** * CUETools.Codecs.ALAC: pure managed ALAC audio encoder - * Copyright (c) 2009 Gregory S. Chudov + * Copyright (c) 2009 Grigory Chudov * Based on ffdshow ALAC audio encoder * Copyright (c) 2008 Jaikrishnan Menon, realityman@gmx.net * diff --git a/CUETools.Codecs.ALAC/Properties/AssemblyInfo.cs b/CUETools.Codecs.ALAC/Properties/AssemblyInfo.cs index a41f142..37b0cb5 100644 --- a/CUETools.Codecs.ALAC/Properties/AssemblyInfo.cs +++ b/CUETools.Codecs.ALAC/Properties/AssemblyInfo.cs @@ -10,7 +10,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("CUETools.Codecs.ALAC")] -[assembly: AssemblyCopyright("Copyright © 2008-2010 Gregory S. Chudov")] +[assembly: AssemblyCopyright("Copyright © 2008-2010 Grigory Chudov")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/CUETools.Codecs.FLACCL/FLACCLWriter.cs b/CUETools.Codecs.FLACCL/FLACCLWriter.cs index da64337..b705b31 100644 --- a/CUETools.Codecs.FLACCL/FLACCLWriter.cs +++ b/CUETools.Codecs.FLACCL/FLACCLWriter.cs @@ -1,6 +1,6 @@ /** * CUETools.FLACCL: FLAC audio encoder using CUDA - * Copyright (c) 2009 Gregory S. Chudov + * Copyright (c) 2009 Grigory Chudov * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/CUETools.Codecs.FLACCL/Properties/AssemblyInfo.cs b/CUETools.Codecs.FLACCL/Properties/AssemblyInfo.cs index cc2080b..1c6965c 100644 --- a/CUETools.Codecs.FLACCL/Properties/AssemblyInfo.cs +++ b/CUETools.Codecs.FLACCL/Properties/AssemblyInfo.cs @@ -10,7 +10,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("CUETools.Codecs.FLACCL")] -[assembly: AssemblyCopyright("Copyright © 2009-2010 Gregory S. Chudov")] +[assembly: AssemblyCopyright("Copyright © 2009-2010 Grigory Chudov")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/CUETools.Codecs.FLAKE/Flake.cs b/CUETools.Codecs.FLAKE/Flake.cs index 8b8522f..c34163e 100644 --- a/CUETools.Codecs.FLAKE/Flake.cs +++ b/CUETools.Codecs.FLAKE/Flake.cs @@ -1,6 +1,6 @@ /** * CUETools.Flake: pure managed FLAC audio encoder - * Copyright (c) 2009 Gregory S. Chudov + * Copyright (c) 2009 Grigory Chudov * Based on Flake encoder, http://flake-enc.sourceforge.net/ * Copyright (c) 2006-2009 Justin Ruggles * diff --git a/CUETools.Codecs.FLAKE/FlakeReader.cs b/CUETools.Codecs.FLAKE/FlakeReader.cs index b5cfcfd..acb1b92 100644 --- a/CUETools.Codecs.FLAKE/FlakeReader.cs +++ b/CUETools.Codecs.FLAKE/FlakeReader.cs @@ -1,6 +1,6 @@ /** * CUETools.Flake: pure managed FLAC audio encoder - * Copyright (c) 2009 Gregory S. Chudov + * Copyright (c) 2009 Grigory Chudov * Based on Flake encoder, http://flake-enc.sourceforge.net/ * Copyright (c) 2006-2009 Justin Ruggles * diff --git a/CUETools.Codecs.FLAKE/FlakeWriter.cs b/CUETools.Codecs.FLAKE/FlakeWriter.cs index 9cbc6a4..5f012f8 100644 --- a/CUETools.Codecs.FLAKE/FlakeWriter.cs +++ b/CUETools.Codecs.FLAKE/FlakeWriter.cs @@ -1,6 +1,6 @@ /** * CUETools.Flake: pure managed FLAC audio encoder - * Copyright (c) 2009 Gregory S. Chudov + * Copyright (c) 2009 Grigory Chudov * Based on Flake encoder, http://flake-enc.sourceforge.net/ * Copyright (c) 2006-2009 Justin Ruggles * diff --git a/CUETools.Codecs.FLAKE/Properties/AssemblyInfo.cs b/CUETools.Codecs.FLAKE/Properties/AssemblyInfo.cs index 5ffd7f3..649e92d 100644 --- a/CUETools.Codecs.FLAKE/Properties/AssemblyInfo.cs +++ b/CUETools.Codecs.FLAKE/Properties/AssemblyInfo.cs @@ -10,7 +10,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("CUETools.Codecs.FLAKE")] -[assembly: AssemblyCopyright("Copyright © 2008-2010 Gregory S. Chudov")] +[assembly: AssemblyCopyright("Copyright © 2008-2010 Grigory Chudov")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/CUETools.Codecs.FlaCuda/FlaCudaWriter.cs b/CUETools.Codecs.FlaCuda/FlaCudaWriter.cs index c38ff72..b2cd032 100644 --- a/CUETools.Codecs.FlaCuda/FlaCudaWriter.cs +++ b/CUETools.Codecs.FlaCuda/FlaCudaWriter.cs @@ -1,6 +1,6 @@ /** * CUETools.FlaCuda: FLAC audio encoder using CUDA - * Copyright (c) 2009 Gregory S. Chudov + * Copyright (c) 2009 Grigory Chudov * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/CUETools.Codecs.FlaCuda/Properties/AssemblyInfo.cs b/CUETools.Codecs.FlaCuda/Properties/AssemblyInfo.cs index 6649ed1..6f2e4ce 100644 --- a/CUETools.Codecs.FlaCuda/Properties/AssemblyInfo.cs +++ b/CUETools.Codecs.FlaCuda/Properties/AssemblyInfo.cs @@ -10,7 +10,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("CUETools.Codecs.FlaCuda")] -[assembly: AssemblyCopyright("Copyright © 2009-2010 Gregory S. Chudov")] +[assembly: AssemblyCopyright("Copyright © 2009-2010 Grigory Chudov")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/CUETools.Codecs/Properties/AssemblyInfo.cs b/CUETools.Codecs/Properties/AssemblyInfo.cs index 4752765..80f317e 100644 --- a/CUETools.Codecs/Properties/AssemblyInfo.cs +++ b/CUETools.Codecs/Properties/AssemblyInfo.cs @@ -10,7 +10,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("CUETools.Codecs")] -[assembly: AssemblyCopyright("Copyright © 2008-2010 Gregory S. Chudov")] +[assembly: AssemblyCopyright("Copyright © 2008-2010 Grigory Chudov")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/CUETools.Compression.Rar/Properties/AssemblyInfo.cs b/CUETools.Compression.Rar/Properties/AssemblyInfo.cs index 361190a..3c28c91 100644 --- a/CUETools.Compression.Rar/Properties/AssemblyInfo.cs +++ b/CUETools.Compression.Rar/Properties/AssemblyInfo.cs @@ -10,7 +10,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("CUETools.Compression.Rar")] -[assembly: AssemblyCopyright("Copyright © Gregory S. Chudov, Michael A. McCloskey")] +[assembly: AssemblyCopyright("Copyright © Grigory Chudov, Michael A. McCloskey")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/CUETools.Compression.Rar/RarStream.cs b/CUETools.Compression.Rar/RarStream.cs index 8433aeb..092d120 100644 --- a/CUETools.Compression.Rar/RarStream.cs +++ b/CUETools.Compression.Rar/RarStream.cs @@ -6,7 +6,7 @@ using System.Threading; using CUETools.Compression; -/* Author: Gregory S. Chudov +/* Author: Grigory Chudov * */ diff --git a/CUETools.Compression.Zip/Properties/AssemblyInfo.cs b/CUETools.Compression.Zip/Properties/AssemblyInfo.cs index aa7a394..ae91f4c 100644 --- a/CUETools.Compression.Zip/Properties/AssemblyInfo.cs +++ b/CUETools.Compression.Zip/Properties/AssemblyInfo.cs @@ -10,7 +10,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("CUETools.Compression.Zip")] -[assembly: AssemblyCopyright("Copyright © 2008-2010 Gregory S. Chudov")] +[assembly: AssemblyCopyright("Copyright © 2008-2010 Grigory Chudov")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/CUETools.Compression/Properties/AssemblyInfo.cs b/CUETools.Compression/Properties/AssemblyInfo.cs index 28775ea..8c20ca4 100644 --- a/CUETools.Compression/Properties/AssemblyInfo.cs +++ b/CUETools.Compression/Properties/AssemblyInfo.cs @@ -10,7 +10,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("CUETools.Compression")] -[assembly: AssemblyCopyright("Copyright © 2008-2010 Gregory S. Chudov")] +[assembly: AssemblyCopyright("Copyright © 2008-2010 Grigory Chudov")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/CUETools.Converter/Program.cs b/CUETools.Converter/Program.cs index e665efe..a136c60 100644 --- a/CUETools.Converter/Program.cs +++ b/CUETools.Converter/Program.cs @@ -20,7 +20,7 @@ namespace CUETools.Converter { TextWriter stdout = Console.Out; Console.SetOut(Console.Error); - Console.WriteLine("CUETools.Converter, Copyright (C) 2009 Gregory S. Chudov."); + Console.WriteLine("CUETools.Converter, Copyright (C) 2009 Grigory Chudov."); Console.WriteLine("This is free software under the GNU GPLv3+ license; There is NO WARRANTY, to"); Console.WriteLine("the extent permitted by law. for details."); if (args.Length < 2) diff --git a/CUETools.FLACCL.cmd/Program.cs b/CUETools.FLACCL.cmd/Program.cs index 6a3eb10..7d5fdb5 100644 --- a/CUETools.FLACCL.cmd/Program.cs +++ b/CUETools.FLACCL.cmd/Program.cs @@ -1,6 +1,6 @@ /** * CUETools.FLACCL: FLAC audio encoder using CUDA - * Copyright (c) 2009 Gregory S. Chudov + * Copyright (c) 2009 Grigory Chudov * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -198,7 +198,7 @@ namespace CUETools.FLACCL.cmd } if (!quiet) { - Console.WriteLine("{0}, Copyright (C) 2010 Gregory S. Chudov.", FLACCLWriter.vendor_string); + Console.WriteLine("{0}, Copyright (C) 2010 Grigory Chudov.", FLACCLWriter.vendor_string); Console.WriteLine("This is free software under the GNU GPLv3+ license; There is NO WARRANTY, to"); Console.WriteLine("the extent permitted by law. for details."); } diff --git a/CUETools.FLACCL.cmd/Properties/AssemblyInfo.cs b/CUETools.FLACCL.cmd/Properties/AssemblyInfo.cs index 0797832..c76582b 100644 --- a/CUETools.FLACCL.cmd/Properties/AssemblyInfo.cs +++ b/CUETools.FLACCL.cmd/Properties/AssemblyInfo.cs @@ -10,7 +10,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("CUETools.FLACCL.cmd")] -[assembly: AssemblyCopyright("Copyright © 2008-2010 Gregory S. Chudov")] +[assembly: AssemblyCopyright("Copyright © 2008-2010 Grigory Chudov")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/CUETools.FlaCudaExe/Program.cs b/CUETools.FlaCudaExe/Program.cs index da0898f..24c85c2 100644 --- a/CUETools.FlaCudaExe/Program.cs +++ b/CUETools.FlaCudaExe/Program.cs @@ -1,6 +1,6 @@ /** * CUETools.FlaCuda: FLAC audio encoder using CUDA - * Copyright (c) 2009 Gregory S. Chudov + * Copyright (c) 2009 Grigory Chudov * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -159,7 +159,7 @@ namespace CUETools.FlaCudaExe } if (!quiet) { - Console.WriteLine("{0}, Copyright (C) 2009 Gregory S. Chudov.", FlaCudaWriter.vendor_string); + Console.WriteLine("{0}, Copyright (C) 2009 Grigory Chudov.", FlaCudaWriter.vendor_string); Console.WriteLine("This is free software under the GNU GPLv3+ license; There is NO WARRANTY, to"); Console.WriteLine("the extent permitted by law. for details."); } diff --git a/CUETools.FlaCudaExe/Properties/AssemblyInfo.cs b/CUETools.FlaCudaExe/Properties/AssemblyInfo.cs index 52df6f3..c75fbc0 100644 --- a/CUETools.FlaCudaExe/Properties/AssemblyInfo.cs +++ b/CUETools.FlaCudaExe/Properties/AssemblyInfo.cs @@ -10,7 +10,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("CUETools.FlaCudaExe")] -[assembly: AssemblyCopyright("Copyright © 2008-2010 Gregory S. Chudov")] +[assembly: AssemblyCopyright("Copyright © 2008-2010 Grigory Chudov")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/CUETools.Flake/Program.cs b/CUETools.Flake/Program.cs index 1f4df89..e30f34d 100644 --- a/CUETools.Flake/Program.cs +++ b/CUETools.Flake/Program.cs @@ -154,7 +154,7 @@ namespace CUETools.FlakeExe if (!quiet) { - Console.WriteLine("CUETools.Flake, Copyright (C) 2009 Gregory S. Chudov."); + Console.WriteLine("CUETools.Flake, Copyright (C) 2009 Grigory Chudov."); Console.WriteLine("Based on Flake encoder by Justin Ruggles, ."); Console.WriteLine("This is free software under the GNU GPLv3+ license; There is NO WARRANTY, to"); Console.WriteLine("the extent permitted by law. for details."); diff --git a/CUETools.LossyWAV/Program.cs b/CUETools.LossyWAV/Program.cs index 20f9f31..3074193 100644 --- a/CUETools.LossyWAV/Program.cs +++ b/CUETools.LossyWAV/Program.cs @@ -40,7 +40,7 @@ namespace LossyWAVSharp { Console.SetOut(Console.Error); Console.WriteLine("LossyWAV {0}, Copyright (C) 2007,2008 Nick Currie, Copyleft.", LossyWAVWriter.version_string); - Console.WriteLine("C# port Copyright (C) 2008 Gregory S. Chudov."); + Console.WriteLine("C# port Copyright (C) 2008 Grigory Chudov."); Console.WriteLine("This is free software under the GNU GPLv3+ license; There is NO WARRANTY, to"); Console.WriteLine("the extent permitted by law. for details."); if (args.Length < 1 || (args[0].StartsWith("-") && args[0] != "-")) diff --git a/CUETools.Processor/CUEConfig.cs b/CUETools.Processor/CUEConfig.cs index dce7648..1ece8a8 100644 --- a/CUETools.Processor/CUEConfig.cs +++ b/CUETools.Processor/CUEConfig.cs @@ -28,6 +28,7 @@ namespace CUETools.Processor public bool fixOffset; public bool noUnverifiedOutput; public bool autoCorrectFilenames; + public bool detectGaps; public bool preserveHTOA; public bool keepOriginalFilenames; public string trackFilenameFormat; @@ -97,6 +98,7 @@ namespace CUETools.Processor autoCorrectFilenames = true; preserveHTOA = true; + detectGaps = true; keepOriginalFilenames = false; trackFilenameFormat = "%tracknumber%. %title%"; singleFilenameFormat = "%filename%"; @@ -262,6 +264,7 @@ return processor.Go(); sw.Save("ArWriteLogOnVerify", writeArLogOnVerify); sw.Save("PreserveHTOA", preserveHTOA); + sw.Save("DetectGaps", detectGaps); sw.Save("AutoCorrectFilenames", autoCorrectFilenames); sw.Save("KeepOriginalFilenames", keepOriginalFilenames); sw.Save("SingleFilenameFormat", singleFilenameFormat); @@ -405,6 +408,7 @@ return processor.Go(); writeArLogOnVerify = sr.LoadBoolean("ArWriteLogOnVerify") ?? false; preserveHTOA = sr.LoadBoolean("PreserveHTOA") ?? true; + detectGaps = sr.LoadBoolean("DetectGaps") ?? true; autoCorrectFilenames = sr.LoadBoolean("AutoCorrectFilenames") ?? true; keepOriginalFilenames = sr.LoadBoolean("KeepOriginalFilenames") ?? false; singleFilenameFormat = sr.Load("SingleFilenameFormat") ?? singleFilenameFormat; diff --git a/CUETools.Processor/CUEMetadata.cs b/CUETools.Processor/CUEMetadata.cs index 0231ba4..90708ca 100644 --- a/CUETools.Processor/CUEMetadata.cs +++ b/CUETools.Processor/CUEMetadata.cs @@ -260,10 +260,12 @@ namespace CUETools.Processor this.AlbumArt.AddRange(cdEntry.coverart); if (cdEntry.track != null && cdEntry.track.Length >= this.Tracks.Count) { + if (cdEntry.track.Length - this.Tracks.Count != firstAudio) + firstAudio = 0; for (int i = 0; i < this.Tracks.Count; i++) { - this.Tracks[i].Title = cdEntry.track[i].name ?? ""; - this.Tracks[i].Artist = cdEntry.track[i].artist ?? cdEntry.artist ?? ""; + this.Tracks[i].Title = cdEntry.track[i + firstAudio].name ?? ""; + this.Tracks[i].Artist = cdEntry.track[i + firstAudio].artist ?? cdEntry.artist ?? ""; } } } diff --git a/CUETools.Processor/CUESheet.cs b/CUETools.Processor/CUESheet.cs index bfdcbd1..3bb107f 100644 --- a/CUETools.Processor/CUESheet.cs +++ b/CUETools.Processor/CUESheet.cs @@ -611,8 +611,88 @@ namespace CUETools.Processor ShowProgress(status, percent, null, null); } + public bool IsInLocalDB(string folder) + { + string norm = CUEToolsLocalDBEntry.NormalizePath(folder); + if (norm.Length != 0 && norm[norm.Length - 1] != System.IO.Path.DirectorySeparatorChar) norm = norm + System.IO.Path.DirectorySeparatorChar; + return _localDB.Find(item => item.InputPaths != null && item.InputPaths.Find(i => i.StartsWith(norm)) != null) != null; + } + public void ScanLocalDB(string folder) { + // Delete missing files + string norm = CUEToolsLocalDBEntry.NormalizePath(folder); + if (norm.Length != 0 && norm[norm.Length - 1] != System.IO.Path.DirectorySeparatorChar) norm = norm + System.IO.Path.DirectorySeparatorChar; + + ReportProgress("Checking known files", 0.0); + int oldi = 0, oldn = _localDB.Count; + foreach (var item in _localDB.ToArray()) + { + bool matches = false; + oldi++; + if (item.AudioPaths != null) + { + foreach (var f in item.AudioPaths) + if (f.StartsWith(norm)) + { + matches = true; + CheckStop(); + if (!File.Exists(f)) + { + _localDB.Remove(item); + _localDB.Dirty = true; + continue; + } + } + } + + if (item.InputPaths != null) + { + foreach (var f in item.InputPaths.ToArray()) + if (f.StartsWith(norm)) + { + CheckStop(); + ReportProgress("Checking " + f, (double)oldi / oldn); + matches = true; + if (!File.Exists(f)) + { + item.InputPaths.Remove(f); + _localDB.Dirty = true; + } + else + { + var cueSheet = new CUESheet(_config); + cueSheet.UseLocalDB(_localDB); + try + { + cueSheet.Open(f); + List fullAudioPaths = cueSheet._sourcePaths == null ? null : cueSheet._sourcePaths.ConvertAll(p => CUEToolsLocalDBEntry.NormalizePath(p)); + if (!item.Equals(cueSheet._toc, fullAudioPaths)) + { + item.InputPaths.Remove(f); + _localDB.Dirty = true; + } + } + catch (Exception) + { + item.InputPaths.Remove(f); + _localDB.Dirty = true; + } + cueSheet.Close(); + } + } + + if (matches && item.InputPaths.Count == 0) + { + _localDB.Remove(item); + _localDB.Dirty = true; + continue; + } + } + } + + // Add new files + ReportProgress("Scanning for new files", 0.0); var results = new List(); int n = 2, j = 0; @@ -636,6 +716,7 @@ namespace CUETools.Processor results.AddRange(Directory.GetFiles(folder, "*." + fmt.Key, SearchOption.AllDirectories)); } + ReportProgress("Checking new files", 0.0); int i = 0; foreach (var result in results) { @@ -1353,7 +1434,7 @@ namespace CUETools.Processor "Range.wav"; _hasHTOAFilename = (_sourcePaths.Count == (TrackCount + 1)); - _htoaFilename = _hasHTOAFilename ? Path.GetFileName(_sourcePaths[0]) : "01.00.wav"; + _htoaFilename = _hasHTOAFilename ? Path.GetFileName(_sourcePaths[0]) : "00.wav"; _hasTrackFilenames = !_hasEmbeddedCUESheet && !_hasSingleFilename && (_sourcePaths.Count == TrackCount || _hasHTOAFilename); for (i = 0; i < TrackCount; i++) @@ -1981,7 +2062,7 @@ namespace CUETools.Processor } else { - string trackStr = htoa ? "01.00" : String.Format("{0:00}", iTrack + 1); + string trackStr = htoa ? "00" : String.Format("{0:00}", iTrack + 1); string artist = Metadata.Tracks[htoa ? 0 : iTrack].Artist; string title = htoa ? "(HTOA)" : Metadata.Tracks[iTrack].Title; @@ -2455,7 +2536,10 @@ namespace CUETools.Processor WriteAudioFilesPass(OutputDir, OutputStyle, destLengths, htoaToFile, _action == CUEAction.Verify); if (isUsingCUEToolsDB && !isUsingCUEToolsDBFix) + { + if (_isCD) _CUEToolsDB.ContactDB(true, true, CTDBMetadataSearch.None); _CUEToolsDB.DoVerify(); + } _processed = true; @@ -3394,11 +3478,14 @@ namespace CUETools.Processor if (!_isCD) throw new Exception("not a CD"); - try { _ripper.DetectGaps(); } - catch (Exception ex) + if (_config.detectGaps) { - if (ex is StopException) - throw ex; + try { _ripper.DetectGaps(); } + catch (Exception ex) + { + if (ex is StopException) + throw ex; + } } if (!_ripper.GapsDetected) diff --git a/CUETools.Processor/Properties/AssemblyInfo.cs b/CUETools.Processor/Properties/AssemblyInfo.cs index 4e0a4b8..5c9ce2e 100644 --- a/CUETools.Processor/Properties/AssemblyInfo.cs +++ b/CUETools.Processor/Properties/AssemblyInfo.cs @@ -10,7 +10,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("CUETools.Processor")] -[assembly: AssemblyCopyright("Copyright © 2006-2007 Moitah, 2008-2010 Gregory S. Chudov")] +[assembly: AssemblyCopyright("Copyright © 2006-2007 Moitah, 2008-2010 Grigory Chudov")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/CUETools.Ripper.Console/Program.cs b/CUETools.Ripper.Console/Program.cs index 3279f50..b701f44 100644 --- a/CUETools.Ripper.Console/Program.cs +++ b/CUETools.Ripper.Console/Program.cs @@ -1,7 +1,7 @@ // **************************************************************************** // // CUERipper -// Copyright (C) 2008 Gregory S. Chudov (gchudov@gmail.com) +// Copyright (C) 2008 Grigory Chudov (gchudov@gmail.com) // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -89,7 +89,7 @@ namespace CUETools.ConsoleRipper static void Main(string[] args) { Console.SetOut(Console.Error); - Console.WriteLine("CUERipper v2.1.4 Copyright (C) 2008-10 Gregory S. Chudov"); + Console.WriteLine("CUERipper v2.1.4 Copyright (C) 2008-10 Grigory Chudov"); Console.WriteLine("This is free software under the GNU GPLv3+ license; There is NO WARRANTY, to"); Console.WriteLine("the extent permitted by law. for details."); diff --git a/CUETools.Ripper.Console/Properties/AssemblyInfo.cs b/CUETools.Ripper.Console/Properties/AssemblyInfo.cs index d843b17..416a1cb 100644 --- a/CUETools.Ripper.Console/Properties/AssemblyInfo.cs +++ b/CUETools.Ripper.Console/Properties/AssemblyInfo.cs @@ -10,7 +10,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("Microsoft")] [assembly: AssemblyProduct("CUETools.ConsoleRipper")] -[assembly: AssemblyCopyright("Copyright © Gregory S. Chudov 2008")] +[assembly: AssemblyCopyright("Copyright © Grigory Chudov 2008")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/CUETools.Ripper.SCSI/Properties/AssemblyInfo.cs b/CUETools.Ripper.SCSI/Properties/AssemblyInfo.cs index 82c0722..2bbcece 100644 --- a/CUETools.Ripper.SCSI/Properties/AssemblyInfo.cs +++ b/CUETools.Ripper.SCSI/Properties/AssemblyInfo.cs @@ -10,7 +10,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("CUETools.Ripper.SCSI")] -[assembly: AssemblyCopyright("Copyright © 2008-2010 Gregory S. Chudov")] +[assembly: AssemblyCopyright("Copyright © 2008-2010 Grigory Chudov")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/CUETools.Ripper.SCSI/SCSIDrive.cs b/CUETools.Ripper.SCSI/SCSIDrive.cs index 1a7dacd..3f33623 100644 --- a/CUETools.Ripper.SCSI/SCSIDrive.cs +++ b/CUETools.Ripper.SCSI/SCSIDrive.cs @@ -1,7 +1,7 @@ // **************************************************************************** // // CUERipper -// Copyright (C) 2008 Gregory S. Chudov (gchudov@gmail.com) +// Copyright (C) 2008 Grigory Chudov (gchudov@gmail.com) // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -282,8 +282,8 @@ namespace CUETools.Ripper.SCSI } else throw new ReadCDException(Resource1.NoAudio); - UserData = new long[MSECTORS, 2, 4 * 588]; - C2Count = new byte[MSECTORS, 294]; + UserData = new long[MSECTORS, 2, 4 * 588]; + C2Count = new byte[MSECTORS, 294]; return true; } @@ -711,7 +711,7 @@ namespace CUETools.Ripper.SCSI StringBuilder barcode = new StringBuilder(); for (int i = 1; i < 8; i++) barcode.AppendFormat("{0:x2}", _subchannelBuffer[offs + i]); - if (barcode.ToString() != "0000000000000") + if (barcode.ToString(0, 13) != "0000000000000") _toc2.Barcode = barcode.ToString(0, 13); } } @@ -1211,7 +1211,7 @@ namespace CUETools.Ripper.SCSI { get { - return "CUERipper v2.1.4 Copyright (C) 2008-10 Gregory S. Chudov"; + return "CUERipper v2.1.4 Copyright (C) 2008-12 Grigory Chudov"; // ripper.GetName().Name + " " + ripper.GetName().Version; } } diff --git a/CUETools.Ripper/Properties/AssemblyInfo.cs b/CUETools.Ripper/Properties/AssemblyInfo.cs index c8c8ba0..43c52af 100644 --- a/CUETools.Ripper/Properties/AssemblyInfo.cs +++ b/CUETools.Ripper/Properties/AssemblyInfo.cs @@ -10,7 +10,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("CUETools.Ripper")] -[assembly: AssemblyCopyright("Copyright © 2008-2010 Gregory S. Chudov")] +[assembly: AssemblyCopyright("Copyright © 2008-2010 Grigory Chudov")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/CUETools/CUETools.sln b/CUETools/CUETools.sln index 458fc3d..91fb9f3 100644 --- a/CUETools/CUETools.sln +++ b/CUETools/CUETools.sln @@ -170,6 +170,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CUETools.CLParity", "..\CUE EndProject Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "CUETools.CTDB.EACPlugin.Installer", "..\CUETools.CTDB.EACPlugin.Installer\CUETools.CTDB.EACPlugin.Installer.vdproj", "{0AC7691C-562A-4879-8A11-6C7890BF659B}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CUETools.CTDB.Converter", "..\CUETools.CTDB.Converter\CUETools.CTDB.Converter.csproj", "{F8C29953-A697-4462-82DC-DA7146654A64}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CUETools.AVX", "..\CUETools.AVX\CUETools.AVX.vcxproj", "{CC022842-F2E9-4016-82B8-65A264B642D5}" +EndProject Global GlobalSection(TestCaseManagementSettings) = postSolution CategoryFile = CUETools1.vsmdi @@ -381,6 +385,7 @@ Global {8427CAA5-80B8-4952-9A68-5F3DFCFBDF40}.Debug|x64.ActiveCfg = Debug|Any CPU {8427CAA5-80B8-4952-9A68-5F3DFCFBDF40}.Debug|x86.ActiveCfg = Debug|Any CPU {8427CAA5-80B8-4952-9A68-5F3DFCFBDF40}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8427CAA5-80B8-4952-9A68-5F3DFCFBDF40}.Release|Any CPU.Build.0 = Release|Any CPU {8427CAA5-80B8-4952-9A68-5F3DFCFBDF40}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {8427CAA5-80B8-4952-9A68-5F3DFCFBDF40}.Release|Mixed Platforms.Build.0 = Release|Any CPU {8427CAA5-80B8-4952-9A68-5F3DFCFBDF40}.Release|Win32.ActiveCfg = Release|Any CPU @@ -1050,6 +1055,34 @@ Global {0AC7691C-562A-4879-8A11-6C7890BF659B}.Release|Win32.ActiveCfg = Release {0AC7691C-562A-4879-8A11-6C7890BF659B}.Release|x64.ActiveCfg = Release {0AC7691C-562A-4879-8A11-6C7890BF659B}.Release|x86.ActiveCfg = Release + {F8C29953-A697-4462-82DC-DA7146654A64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F8C29953-A697-4462-82DC-DA7146654A64}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F8C29953-A697-4462-82DC-DA7146654A64}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {F8C29953-A697-4462-82DC-DA7146654A64}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {F8C29953-A697-4462-82DC-DA7146654A64}.Debug|Win32.ActiveCfg = Debug|Any CPU + {F8C29953-A697-4462-82DC-DA7146654A64}.Debug|x64.ActiveCfg = Debug|Any CPU + {F8C29953-A697-4462-82DC-DA7146654A64}.Debug|x86.ActiveCfg = Debug|Any CPU + {F8C29953-A697-4462-82DC-DA7146654A64}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F8C29953-A697-4462-82DC-DA7146654A64}.Release|Any CPU.Build.0 = Release|Any CPU + {F8C29953-A697-4462-82DC-DA7146654A64}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {F8C29953-A697-4462-82DC-DA7146654A64}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {F8C29953-A697-4462-82DC-DA7146654A64}.Release|Win32.ActiveCfg = Release|Any CPU + {F8C29953-A697-4462-82DC-DA7146654A64}.Release|x64.ActiveCfg = Release|Any CPU + {F8C29953-A697-4462-82DC-DA7146654A64}.Release|x86.ActiveCfg = Release|Any CPU + {CC022842-F2E9-4016-82B8-65A264B642D5}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {CC022842-F2E9-4016-82B8-65A264B642D5}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 + {CC022842-F2E9-4016-82B8-65A264B642D5}.Debug|Mixed Platforms.Build.0 = Debug|Win32 + {CC022842-F2E9-4016-82B8-65A264B642D5}.Debug|Win32.ActiveCfg = Debug|Win32 + {CC022842-F2E9-4016-82B8-65A264B642D5}.Debug|Win32.Build.0 = Debug|Win32 + {CC022842-F2E9-4016-82B8-65A264B642D5}.Debug|x64.ActiveCfg = Debug|Win32 + {CC022842-F2E9-4016-82B8-65A264B642D5}.Debug|x86.ActiveCfg = Debug|Win32 + {CC022842-F2E9-4016-82B8-65A264B642D5}.Release|Any CPU.ActiveCfg = Release|x64 + {CC022842-F2E9-4016-82B8-65A264B642D5}.Release|Mixed Platforms.ActiveCfg = Release|Win32 + {CC022842-F2E9-4016-82B8-65A264B642D5}.Release|Mixed Platforms.Build.0 = Release|Win32 + {CC022842-F2E9-4016-82B8-65A264B642D5}.Release|Win32.ActiveCfg = Release|Win32 + {CC022842-F2E9-4016-82B8-65A264B642D5}.Release|Win32.Build.0 = Release|Win32 + {CC022842-F2E9-4016-82B8-65A264B642D5}.Release|x64.ActiveCfg = Release|x64 + {CC022842-F2E9-4016-82B8-65A264B642D5}.Release|x86.ActiveCfg = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -1073,6 +1106,7 @@ Global {1FCA8834-34E6-47CF-B53F-D8DF49F0819E} = {4B59E09C-A51F-4B80-91BE-987904DCEF7D} {FC4BCF9B-F4C7-41AD-8A16-2A90A082954A} = {4B59E09C-A51F-4B80-91BE-987904DCEF7D} {1FCA8834-34E6-47CF-B53F-D8DF35345363} = {4B59E09C-A51F-4B80-91BE-987904DCEF7D} + {F8C29953-A697-4462-82DC-DA7146654A64} = {4B59E09C-A51F-4B80-91BE-987904DCEF7D} {8B179853-B7D6-479C-B8B2-6CBCE835D040} = {39A17A65-E893-44B8-A312-DDCDD990D9D1} {E70FA90A-7012-4A52-86B5-362B699D1540} = {39A17A65-E893-44B8-A312-DDCDD990D9D1} {9AE965C4-301E-4C01-B90F-297AF341ACC6} = {39A17A65-E893-44B8-A312-DDCDD990D9D1} diff --git a/CUETools/TreeNodes/FileSystemTreeNodeLocalDB.cs b/CUETools/TreeNodes/FileSystemTreeNodeLocalDB.cs index 6e1dd3d..6417545 100644 --- a/CUETools/TreeNodes/FileSystemTreeNodeLocalDB.cs +++ b/CUETools/TreeNodes/FileSystemTreeNodeLocalDB.cs @@ -107,6 +107,34 @@ namespace JDP i.ARConfidence < 100 ? "< 100" : ">=100", null)); + + this.Nodes.Add(new FileSystemTreeNodeLocalDBCategory( + icon_mgr, this.Group, true, true, icon_mgr.GetIconIndex(".#ctdb"), "By CTDB Confidence", + i => + i.CTDBVerificationDate == DateTime.MinValue ? "00" : + i.CTDBConfidence == 0 ? "01" : + i.CTDBConfidence == 1 ? "02" : + i.CTDBConfidence == 2 ? "03" : + i.CTDBConfidence == 3 ? "04" : + i.CTDBConfidence < 5 ? "05" : + i.CTDBConfidence < 10 ? "06" : + i.CTDBConfidence < 20 ? "07" : + i.CTDBConfidence < 50 ? "08" : + i.CTDBConfidence < 100 ? "09" : + "10", + i => + i.CTDBVerificationDate == DateTime.MinValue ? "?" : + i.CTDBConfidence == 0 ? "0" : + i.CTDBConfidence == 1 ? "1" : + i.CTDBConfidence == 2 ? "2" : + i.CTDBConfidence == 3 ? "3" : + i.CTDBConfidence < 5 ? "< 5" : + i.CTDBConfidence < 10 ? "< 10" : + i.CTDBConfidence < 20 ? "< 20" : + i.CTDBConfidence < 50 ? "< 50" : + i.CTDBConfidence < 100 ? "< 100" : + ">=100", + null)); } } } diff --git a/CUETools/frmAbout.resx b/CUETools/frmAbout.resx index 06b8831..318af71 100644 --- a/CUETools/frmAbout.resx +++ b/CUETools/frmAbout.resx @@ -270,7 +270,7 @@ hdcd.dll (c) Christopher Key 6 - Copyright 2008-2012 Gregory S. Chudov, gchudov@gmail.com + Copyright 2008-2012 Grigory Chudov, gchudov@gmail.com MiddleCenter diff --git a/CUETools/frmCUETools.Designer.cs b/CUETools/frmCUETools.Designer.cs index c0d4746..789c57e 100644 --- a/CUETools/frmCUETools.Designer.cs +++ b/CUETools/frmCUETools.Designer.cs @@ -127,6 +127,8 @@ namespace JDP { this.addFolderToLocalDatabaseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.removeItemFromDatabaseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.backgroundWorkerAddToLocalDB = new System.ComponentModel.BackgroundWorker(); + this.updateLocalDatabaseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.locateInExplorerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripContainer1.BottomToolStripPanel.SuspendLayout(); this.toolStripContainer1.ContentPanel.SuspendLayout(); this.toolStripContainer1.TopToolStripPanel.SuspendLayout(); @@ -997,7 +999,9 @@ namespace JDP { this.resetToOriginalLocationToolStripMenuItem, this.editMetadataToolStripMenuItem, this.addFolderToLocalDatabaseToolStripMenuItem, - this.removeItemFromDatabaseToolStripMenuItem}); + this.removeItemFromDatabaseToolStripMenuItem, + this.updateLocalDatabaseToolStripMenuItem, + this.locateInExplorerToolStripMenuItem}); this.contextMenuStripFileTree.Name = "contextMenuStripFileTree"; resources.ApplyResources(this.contextMenuStripFileTree, "contextMenuStripFileTree"); // @@ -1046,6 +1050,18 @@ namespace JDP { this.backgroundWorkerAddToLocalDB.DoWork += new System.ComponentModel.DoWorkEventHandler(this.backgroundWorkerAddToLocalDB_DoWork); this.backgroundWorkerAddToLocalDB.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.backgroundWorkerAddToLocalDB_RunWorkerCompleted); // + // updateLocalDatabaseToolStripMenuItem + // + this.updateLocalDatabaseToolStripMenuItem.Name = "updateLocalDatabaseToolStripMenuItem"; + resources.ApplyResources(this.updateLocalDatabaseToolStripMenuItem, "updateLocalDatabaseToolStripMenuItem"); + this.updateLocalDatabaseToolStripMenuItem.Click += new System.EventHandler(this.updateLocalDatabaseToolStripMenuItem_Click); + // + // locateInExplorerToolStripMenuItem + // + this.locateInExplorerToolStripMenuItem.Name = "locateInExplorerToolStripMenuItem"; + resources.ApplyResources(this.locateInExplorerToolStripMenuItem, "locateInExplorerToolStripMenuItem"); + this.locateInExplorerToolStripMenuItem.Click += new System.EventHandler(this.locateInExplorerToolStripMenuItem_Click); + // // frmCUETools // resources.ApplyResources(this, "$this"); @@ -1203,6 +1219,8 @@ namespace JDP { private System.Windows.Forms.ToolStripMenuItem addFolderToLocalDatabaseToolStripMenuItem; private System.ComponentModel.BackgroundWorker backgroundWorkerAddToLocalDB; private System.Windows.Forms.ToolStripMenuItem removeItemFromDatabaseToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem updateLocalDatabaseToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem locateInExplorerToolStripMenuItem; } } diff --git a/CUETools/frmCUETools.cs b/CUETools/frmCUETools.cs index d255cb7..589b531 100644 --- a/CUETools/frmCUETools.cs +++ b/CUETools/frmCUETools.cs @@ -68,6 +68,7 @@ namespace JDP m_icon_mgr.SetExtensionIcon(".#alarm_clock", global::JDP.Properties.Resources.alarm_clock); m_icon_mgr.SetExtensionIcon(".#calendar", global::JDP.Properties.Resources.calendar); m_icon_mgr.SetExtensionIcon(".#ar", global::JDP.Properties.Resources.AR); + m_icon_mgr.SetExtensionIcon(".#ctdb", global::JDP.Properties.Resources.cdrepair); m_icon_mgr.SetExtensionIcon(".#images", global::JDP.Properties.Resources.images); m_icon_mgr.SetExtensionIcon(".#images_question", global::JDP.Properties.Resources.images_question); m_icon_mgr.SetExtensionIcon(".#pictures", global::JDP.Properties.Resources.pictures); @@ -1183,11 +1184,12 @@ namespace JDP public void SetStatus(object sender, CUEToolsProgressEventArgs e) { + if (e.percent == 0) + _startedAt = DateTime.Now; this.BeginInvoke((MethodInvoker)delegate() { if (e.percent == 0) { - _startedAt = DateTime.Now; toolStripStatusLabelProcessed.Visible = false; toolStripProgressBar2.ToolTipText = ""; } @@ -2118,6 +2120,27 @@ namespace JDP return true; } + private void locateInExplorerToolStripMenuItem_Click(object sender, EventArgs e) + { + var node = contextMenuStripFileTree.Tag as CUEControls.FileSystemTreeNode; + if (node is FileSystemTreeNodeLocalDBFolder) + { + foreach (var entry in (node as FileSystemTreeNodeLocalDBFolder).Group) + if (entry.InputPaths != null && entry.InputPaths.Count > 0 && File.Exists(entry.InputPaths[0])) + { + System.Diagnostics.Process.Start("explorer.exe", "/select,\"" + entry.InputPaths[0] + "\""); + } + } + if (node is FileSystemTreeNodeLocalDBEntry) + { + var entry = (node as FileSystemTreeNodeLocalDBEntry).Item; + if (entry.InputPaths != null && entry.InputPaths.Count > 0 && File.Exists(entry.InputPaths[0])) + { + System.Diagnostics.Process.Start("explorer.exe", "/select,\"" + entry.InputPaths[0] + "\""); + } + } + } + private void setAsMyMusicFolderToolStripMenuItem_Click(object sender, EventArgs e) { var node = (contextMenuStripFileTree.Tag as CUEControls.FileSystemTreeNode); @@ -2162,6 +2185,15 @@ namespace JDP backgroundWorkerAddToLocalDB.RunWorkerAsync(node.Path); } + private void updateLocalDatabaseToolStripMenuItem_Click(object sender, EventArgs e) + { + var node = contextMenuStripFileTree.Tag as CUEControls.FileSystemTreeNode; + if (node == null || node.Path == null) + return; + SetupControls(true); + backgroundWorkerAddToLocalDB.RunWorkerAsync(node.Path); + } + private void SaveDatabase() { SetStatus(this, new CUEToolsProgressEventArgs() { status = "Saving local database..." }); @@ -2251,12 +2283,19 @@ namespace JDP setAsMyMusicFolderToolStripMenuItem.Visible = false; editMetadataToolStripMenuItem.Visible = false; addFolderToLocalDatabaseToolStripMenuItem.Visible = false; + updateLocalDatabaseToolStripMenuItem.Visible = false; removeItemFromDatabaseToolStripMenuItem.Visible = false; + locateInExplorerToolStripMenuItem.Visible = false; if (info.Node is CUEControls.FileSystemTreeNodeFileSystemInfo && (info.Node as CUEControls.FileSystemTreeNodeFileSystemInfo).File is DirectoryInfo) { setAsMyMusicFolderToolStripMenuItem.Visible = true; setAsMyMusicFolderToolStripMenuItem.Image = m_icon_mgr.ImageList.Images[m_icon_mgr.GetIconIndex(CUEControls.ExtraSpecialFolder.MyMusic, true)]; - addFolderToLocalDatabaseToolStripMenuItem.Visible = true; + + string norm = CUEToolsLocalDBEntry.NormalizePath(((info.Node as CUEControls.FileSystemTreeNodeFileSystemInfo).File as DirectoryInfo).FullName); + if (norm.Length != 0 && norm[norm.Length - 1] != System.IO.Path.DirectorySeparatorChar) norm = norm + System.IO.Path.DirectorySeparatorChar; + bool hasPath = _localDB.Find(item => item.InputPaths != null && item.InputPaths.Find(i => i.StartsWith(norm)) != null) != null; + addFolderToLocalDatabaseToolStripMenuItem.Visible = !hasPath; + updateLocalDatabaseToolStripMenuItem.Visible = hasPath; } else if (info.Node is CUEControls.FileSystemTreeNodeSpecialFolder && (info.Node as CUEControls.FileSystemTreeNodeSpecialFolder).Folder == CUEControls.ExtraSpecialFolder.MyMusic) { @@ -2264,10 +2303,12 @@ namespace JDP } else if (info.Node is FileSystemTreeNodeLocalDBCollision) { + locateInExplorerToolStripMenuItem.Visible = true; editMetadataToolStripMenuItem.Visible = true; } else if (info.Node as FileSystemTreeNodeLocalDBEntry != null) { + locateInExplorerToolStripMenuItem.Visible = true; editMetadataToolStripMenuItem.Visible = true; } diff --git a/CUETools/frmCUETools.resx b/CUETools/frmCUETools.resx index a1f96c5..82fea9c 100644 --- a/CUETools/frmCUETools.resx +++ b/CUETools/frmCUETools.resx @@ -252,21 +252,6 @@ 0 - - Top, Bottom, Left, Right - - - 19 - - - 3, 17 - - - 192, 304 - - - 1 - fileSystemTreeView1 @@ -312,9 +297,993 @@ 3 + + 3, 17 + + + tableLayoutPanelVerifyMode + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBoxMode + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="checkBoxSkipRecent" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="checkBoxVerifyUseLocal" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="checkBoxVerifyUseCDRepair" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,33.33333,Percent,33.33333,Percent,33.33333,Absolute,20" /><Rows Styles="Percent,32.72727,Percent,67.27273" /></TableLayoutSettings> + + + tableLayoutPanelCUEStyle + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBoxMode + + + 1 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="checkBoxUseAccurateRip" Row="4" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="checkBoxUseFreeDb" Row="4" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="rbTracks" Row="2" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="rbEmbedCUE" Row="0" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="rbSingleFile" Row="1" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="checkBoxUseMusicBrainz" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,33.33332,Percent,33.33334,Percent,33.33334" /><Rows Styles="Percent,18.18229,Percent,18.18229,Percent,18.18229,Percent,22.72658,Percent,22.72658" /></TableLayoutSettings> + + + toolStripCorrectorFormat + + + System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBoxMode + + + 2 + + + Fill + + + 173, 101 + + + 150, 130 + + + 12 + + + Mode + + + groupBoxMode + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel2 + + + 0 + + + labelEncoderMaxMode + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAudioOutput + + + 0 + + + labelEncoderMinMode + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAudioOutput + + + 1 + + + labelEncoderMode + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAudioOutput + + + 2 + + + trackBarEncoderMode + + + System.Windows.Forms.TrackBar, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAudioOutput + + + 3 + + + comboBoxEncoder + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAudioOutput + + + 4 + + + radioButtonAudioNone + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAudioOutput + + + 5 + + + radioButtonAudioLossy + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAudioOutput + + + 6 + + + radioButtonAudioHybrid + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAudioOutput + + + 7 + + + radioButtonAudioLossless + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAudioOutput + + + 8 + + + labelFormat + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAudioOutput + + + 9 + + + comboBoxAudioFormat + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAudioOutput + + + 10 + + + Fill + + + 329, 101 + + + 148, 194 + + + 2 + + + Audio Output + + + grpAudioOutput + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel2 + + + 1 + + + Fill + + + NoControl + + + 3, 237 + + + 164, 90 + + + Zoom + + + 15 + + + pictureBoxMotd + + + System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel2 + + + 2 + + + 2 + + + Fill + + + NoControl + + + 0, 48 + + + 0, 0, 0, 0 + + + 97, 24 + + + 13 + + + Template: + + + MiddleLeft + + + labelOutputTemplate + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelPaths + + + 0 + + + Fill + + + 100, 51 + + + 365, 21 + + + 9 + + + 153, 8 + + + Template for output files (foobar2000 format) + + + comboBoxOutputFormat + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelPaths + + + 1 + + + Fill + + + 100, 3 + + + 365, 21 + + + 0 + + + Input file + + + txtInputPath + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelPaths + + + 2 + + + Fill + + + 100, 27 + + + 365, 21 + + + 0 + + + Output file + + + txtOutputPath + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelPaths + + + 3 + + + 0, 0 + + + Fill + + + 0, 0 + + + 0, 0, 0, 0 + + + 97, 24 + + + 14 + + + toolStripInput + + + toolStripInput + + + System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelPaths + + + 4 + + + 0, 24 + + + Fill + + + 0, 24 + + + 0, 0, 0, 0 + + + 97, 24 + + + 15 + + + toolStripOutput + + + toolStripOutput + + + System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelPaths + + + 5 + + + Fill + + + 3, 17 + + + 0, 0, 0, 0 + + + 3 + + + 468, 72 + + + 14 + + + tableLayoutPanelPaths + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpOutputPathGeneration + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="labelOutputTemplate" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="comboBoxOutputFormat" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="txtInputPath" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="txtOutputPath" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="toolStripInput" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="toolStripOutput" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,20.94017,Percent,79.05983" /><Rows Styles="Percent,33.33333,Percent,33.33333,Percent,33.33333" /></TableLayoutSettings> + + + Fill + + + 3, 3 + + + 474, 92 + + + 1 + + + CUE Paths + + + grpOutputPathGeneration + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel2 + + + 3 + + + comboBoxScript + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAction + + + 0 + + + rbActionCorrectFilenames + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAction + + + 1 + + + rbActionCreateCUESheet + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAction + + + 2 + + + rbActionVerify + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAction + + + 3 + + + rbActionEncode + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpAction + + + 4 + + + Fill + + + 3, 101 + + + 164, 130 + + + 4 + + + Action + + + grpAction + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel2 + + + 4 + + + tableLayoutPanel4 + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpExtra + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="labelPregap" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lblWriteOffset" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="numericWriteOffset" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="txtPreGapLength" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="labelDataTrack" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="txtDataTrackLength" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Percent,56.75676,Percent,43.24324" /><Rows Styles="Percent,33.33333,Percent,33.33333,Percent,33.33333" /></TableLayoutSettings> + + + Fill + + + 173, 237 + + + 150, 90 + + + 6 + + + Extra + + + grpExtra + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel2 + + + 5 + + + btnConvert + + + System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panelGo + + + 0 + + + btnStop + + + System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panelGo + + + 1 + + + btnResume + + + System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panelGo + + + 2 + + + btnPause + + + System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panelGo + + + 3 + + + Fill + + + 338, 301 + + + 12, 3, 12, 3 + + + 130, 26 + + + 14 + + + panelGo + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel2 + + + 6 + + + Fill + + + 204, 0 + + + 0, 0, 0, 0 + + + 4 + + + 480, 330 + + + 1 + + + tableLayoutPanel2 + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel1 + + + 2 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="groupBoxMode" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="grpAudioOutput" Row="1" RowSpan="2" Column="2" ColumnSpan="1" /><Control Name="pictureBoxMotd" Row="2" RowSpan="2" Column="0" ColumnSpan="1" /><Control Name="grpOutputPathGeneration" Row="0" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="grpAction" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="grpExtra" Row="2" RowSpan="2" Column="1" ColumnSpan="1" /><Control Name="panelGo" Row="3" RowSpan="1" Column="2" ColumnSpan="1" /></Controls><Columns Styles="Percent,35.41667,Percent,32.70833,Percent,31.875" /><Rows Styles="Percent,29.69697,Percent,41.51515,Percent,19.39394,Percent,9.393939" /></TableLayoutSettings> + + + Fill + + + 0, 0 + + + 0, 0, 0, 0 + + + 2 + + + 684, 448 + + + 17 + + + tableLayoutPanel1 + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripContainer1.ContentPanel + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="textBatchReport" Row="1" RowSpan="1" Column="0" ColumnSpan="2" /><Control Name="grpInput" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="tableLayoutPanel2" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Percent,100,Absolute,480" /><Rows Styles="Absolute,330,Percent,100" /></TableLayoutSettings> + + + 0, 0, 0, 0 + + + 684, 448 + + + toolStripContainer1.ContentPanel + + + System.Windows.Forms.ToolStripContentPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripContainer1 + + + 0 + + + Fill + + + toolStripContainer1.LeftToolStripPanel + + + System.Windows.Forms.ToolStripPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripContainer1 + + + 1 + + + 0, 0 + + + toolStripContainer1.RightToolStripPanel + + + System.Windows.Forms.ToolStripPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripContainer1 + + + 2 + + + 684, 502 + + + 17 + + + toolStripContainer1 + + + 0, 0 + + + None + + + 0, 0 + + + 684, 25 + + + 0 + + + toolStripMenu + + + System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripContainer1.TopToolStripPanel + + + 0 + + + toolStripContainer1.TopToolStripPanel + + + System.Windows.Forms.ToolStripPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripContainer1 + + + 3 + + + toolStripContainer1 + + + System.Windows.Forms.ToolStripContainer, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 1 + + + Top, Bottom, Left, Right + + + 19 + + + 3, 17 + + + 192, 304 + + + 1 + + + fileSystemTreeView1 + + + CUEControls.FileSystemTreeView, CUEControls, Version=2.1.4.0, Culture=neutral, PublicKeyToken=null + + + grpInput + + + 0 + 3 + + checkBoxSkipRecent + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelVerifyMode + + + 0 + + + checkBoxVerifyUseLocal + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelVerifyMode + + + 1 + + + checkBoxVerifyUseCDRepair + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelVerifyMode + + + 2 + + + Fill + + + 3, 17 + + + 2 + + + 144, 110 + + + 2 + + + tableLayoutPanelVerifyMode + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBoxMode + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="checkBoxSkipRecent" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="checkBoxVerifyUseLocal" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="checkBoxVerifyUseCDRepair" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,33.33333,Percent,33.33333,Percent,33.33333,Absolute,20" /><Rows Styles="Percent,32.72727,Percent,67.27273" /></TableLayoutSettings> + + + 153, 8 + True @@ -333,9 +1302,6 @@ 2 - - 153, 8 - Skip recently verified @@ -417,39 +1383,114 @@ 2 - - Fill - - - 3, 17 - - - 2 - - - 144, 110 - - - 2 - - - tableLayoutPanelVerifyMode - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxMode - - - 0 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="checkBoxSkipRecent" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="checkBoxVerifyUseLocal" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="checkBoxVerifyUseCDRepair" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,33.33333,Percent,33.33333,Percent,33.33333,Absolute,20" /><Rows Styles="Percent,32.72727,Percent,67.27273" /></TableLayoutSettings> - 3 + + checkBoxUseAccurateRip + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelCUEStyle + + + 0 + + + checkBoxUseFreeDb + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelCUEStyle + + + 1 + + + rbTracks + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelCUEStyle + + + 2 + + + rbEmbedCUE + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelCUEStyle + + + 3 + + + rbSingleFile + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelCUEStyle + + + 4 + + + checkBoxUseMusicBrainz + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanelCUEStyle + + + 5 + + + Fill + + + 3, 17 + + + 0, 0, 0, 0 + + + 5 + + + 144, 110 + + + 11 + + + tableLayoutPanelCUEStyle + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBoxMode + + + 1 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="checkBoxUseAccurateRip" Row="4" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="checkBoxUseFreeDb" Row="4" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="rbTracks" Row="2" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="rbEmbedCUE" Row="0" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="rbSingleFile" Row="1" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="checkBoxUseMusicBrainz" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,33.33332,Percent,33.33334,Percent,33.33334" /><Rows Styles="Percent,18.18229,Percent,18.18229,Percent,18.18229,Percent,22.72658,Percent,22.72658" /></TableLayoutSettings> + True @@ -675,39 +1716,6 @@ 5 - - Fill - - - 3, 17 - - - 0, 0, 0, 0 - - - 5 - - - 144, 110 - - - 11 - - - tableLayoutPanelCUEStyle - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBoxMode - - - 1 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="checkBoxUseAccurateRip" Row="4" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="checkBoxUseFreeDb" Row="4" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="rbTracks" Row="2" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="rbEmbedCUE" Row="0" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="rbSingleFile" Row="1" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="checkBoxUseMusicBrainz" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,33.33332,Percent,33.33334,Percent,33.33334" /><Rows Styles="Percent,18.18229,Percent,18.18229,Percent,18.18229,Percent,22.72658,Percent,22.72658" /></TableLayoutSettings> - 3, 17 @@ -717,51 +1725,6 @@ Fill - - Magenta - - - 78, 20 - - - Overwrite - - - 168, 22 - - - Locate files - - - Try to locate missing files automatically - - - 168, 22 - - - Change extension - - - Replace extension for audio files with this: - - - Magenta - - - 79, 19 - - - Locate files - - - Magenta - - - 39, 19 - - - flac - 3, 17 @@ -786,32 +1749,50 @@ 2 - - Fill + + Magenta - - 173, 101 + + 78, 20 - - 150, 130 + + Overwrite - - 12 + + Magenta - - Mode + + 79, 19 - - groupBoxMode + + Locate files - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 168, 22 - - tableLayoutPanel2 + + Locate files - - 0 + + Try to locate missing files automatically + + + 168, 22 + + + Change extension + + + Replace extension for audio files with this: + + + Magenta + + + 39, 19 + + + flac False @@ -1173,195 +2154,21 @@ 10 - - Fill - - - 329, 101 - - - 148, 194 - - - 2 - - - Audio Output - - - grpAudioOutput - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel2 - - - 1 - - - Fill - - - NoControl - - - 3, 237 - - - 164, 90 - - - Zoom - - - 15 - - - pictureBoxMotd - - - System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel2 - - - 2 - - - 2 - - - Fill - - - NoControl - - - 0, 48 - - - 0, 0, 0, 0 - - - 97, 24 - - - 13 - - - Template: - - - MiddleLeft - - - labelOutputTemplate - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanelPaths - - - 0 - - - Fill - - - 100, 51 - - - 365, 21 - - - 9 - - - Template for output files (foobar2000 format) - - - comboBoxOutputFormat - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanelPaths - - - 1 - - - Fill - - - 100, 3 - - - 365, 21 - - - 0 - - - Input file - - - txtInputPath - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanelPaths - - - 2 - - - Fill - - - 100, 27 - - - 365, 21 - - - 0 - - - Output file - - - txtOutputPath - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanelPaths - - - 3 - - - 0, 0 - - - Fill - 38, 21 Input: + + Magenta + + + 32, 21 + + + Open/close input browser + 177, 22 @@ -1386,54 +2193,21 @@ Hide browser - - Magenta - - - 32, 21 - - - Open/close input browser - - - 0, 0 - - - 0, 0, 0, 0 - - - 97, 24 - - - 14 - - - toolStripInput - - - toolStripInput - - - System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanelPaths - - - 4 - - - 0, 24 - - - Fill - 48, 24 Output: + + Magenta + + + 32, 21 + + + toolStripSplitButtonOutputBrowser + 143, 22 @@ -1452,102 +2226,6 @@ Use template - - Magenta - - - 32, 21 - - - toolStripSplitButtonOutputBrowser - - - 0, 24 - - - 0, 0, 0, 0 - - - 97, 24 - - - 15 - - - toolStripOutput - - - toolStripOutput - - - System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanelPaths - - - 5 - - - Fill - - - 3, 17 - - - 0, 0, 0, 0 - - - 3 - - - 468, 72 - - - 14 - - - tableLayoutPanelPaths - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpOutputPathGeneration - - - 0 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="labelOutputTemplate" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="comboBoxOutputFormat" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="txtInputPath" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="txtOutputPath" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="toolStripInput" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="toolStripOutput" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,20.94017,Percent,79.05983" /><Rows Styles="Percent,33.33333,Percent,33.33333,Percent,33.33333" /></TableLayoutSettings> - - - Fill - - - 3, 3 - - - 474, 92 - - - 1 - - - CUE Paths - - - grpOutputPathGeneration - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel2 - - - 3 - Top, Left, Right @@ -1707,36 +2385,114 @@ 4 - - Fill - - - 3, 101 - - - 164, 130 - - - 4 - - - Action - - - grpAction - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel2 - - - 4 - 2 + + labelPregap + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel4 + + + 0 + + + lblWriteOffset + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel4 + + + 1 + + + numericWriteOffset + + + System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel4 + + + 2 + + + txtPreGapLength + + + System.Windows.Forms.MaskedTextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel4 + + + 3 + + + labelDataTrack + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel4 + + + 4 + + + txtDataTrackLength + + + System.Windows.Forms.MaskedTextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel4 + + + 5 + + + Fill + + + 3, 17 + + + 0, 0, 0, 0 + + + 3 + + + 144, 70 + + + 6 + + + tableLayoutPanel4 + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpExtra + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="labelPregap" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lblWriteOffset" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="numericWriteOffset" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="txtPreGapLength" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="labelDataTrack" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="txtDataTrackLength" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Percent,56.75676,Percent,43.24324" /><Rows Styles="Percent,33.33333,Percent,33.33333,Percent,33.33333" /></TableLayoutSettings> + True @@ -1941,66 +2697,6 @@ 5 - - Fill - - - 3, 17 - - - 0, 0, 0, 0 - - - 3 - - - 144, 70 - - - 6 - - - tableLayoutPanel4 - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpExtra - - - 0 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="labelPregap" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lblWriteOffset" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="numericWriteOffset" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="txtPreGapLength" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="labelDataTrack" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="txtDataTrackLength" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Percent,56.75676,Percent,43.24324" /><Rows Styles="Percent,33.33333,Percent,33.33333,Percent,33.33333" /></TableLayoutSettings> - - - Fill - - - 173, 237 - - - 150, 90 - - - 6 - - - Extra - - - grpExtra - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel2 - - - 5 - Fill @@ -2139,161 +2835,17 @@ 3 - - Fill + + Magenta - - 338, 301 + + 73, 22 - - 12, 3, 12, 3 + + default - - 130, 26 - - - 14 - - - panelGo - - - System.Windows.Forms.Panel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel2 - - - 6 - - - Fill - - - 204, 0 - - - 0, 0, 0, 0 - - - 4 - - - 480, 330 - - - 1 - - - tableLayoutPanel2 - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tableLayoutPanel1 - - - 2 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="groupBoxMode" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="grpAudioOutput" Row="1" RowSpan="2" Column="2" ColumnSpan="1" /><Control Name="pictureBoxMotd" Row="2" RowSpan="2" Column="0" ColumnSpan="1" /><Control Name="grpOutputPathGeneration" Row="0" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="grpAction" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="grpExtra" Row="2" RowSpan="2" Column="1" ColumnSpan="1" /><Control Name="panelGo" Row="3" RowSpan="1" Column="2" ColumnSpan="1" /></Controls><Columns Styles="Percent,35.41667,Percent,32.70833,Percent,31.875" /><Rows Styles="Percent,29.69697,Percent,41.51515,Percent,19.39394,Percent,9.393939" /></TableLayoutSettings> - - - Fill - - - 0, 0 - - - 0, 0, 0, 0 - - - 2 - - - 684, 448 - - - 17 - - - tableLayoutPanel1 - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripContainer1.ContentPanel - - - 0 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="textBatchReport" Row="1" RowSpan="1" Column="0" ColumnSpan="2" /><Control Name="grpInput" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="tableLayoutPanel2" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Percent,100,Absolute,480" /><Rows Styles="Absolute,330,Percent,100" /></TableLayoutSettings> - - - 0, 0, 0, 0 - - - 684, 448 - - - toolStripContainer1.ContentPanel - - - System.Windows.Forms.ToolStripContentPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripContainer1 - - - 0 - - - Fill - - - toolStripContainer1.LeftToolStripPanel - - - System.Windows.Forms.ToolStripPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripContainer1 - - - 1 - - - 0, 0 - - - toolStripContainer1.RightToolStripPanel - - - System.Windows.Forms.ToolStripPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripContainer1 - - - 2 - - - 684, 502 - - - 17 - - - toolStripContainer1 - - - 0, 0 - - - None + + Profile 100, 23 @@ -2319,18 +2871,6 @@ default - - Magenta - - - 73, 22 - - - default - - - Profile - 6, 25 @@ -2373,51 +2913,6 @@ Batch log - - 0, 0 - - - 684, 25 - - - 0 - - - toolStripMenu - - - System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripContainer1.TopToolStripPanel - - - 0 - - - toolStripContainer1.TopToolStripPanel - - - System.Windows.Forms.ToolStripPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripContainer1 - - - 3 - - - toolStripContainer1 - - - System.Windows.Forms.ToolStripContainer, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 1 - 424, 8 @@ -2425,46 +2920,58 @@ False - 269, 24 + 224, 22 Selected file - 266, 6 + 221, 6 - 269, 24 + 224, 22 Set as My Music folder - 269, 24 + 224, 22 Reset to original location - 269, 24 + 224, 22 Edit metadata - 269, 24 + 224, 22 Add folder to local database - 269, 24 + 224, 22 Remove from local database + + 224, 22 + + + Update local database + + + 224, 22 + + + Locate in explorer + - 270, 154 + 225, 208 contextMenuStripFileTree @@ -3133,6 +3640,18 @@ System.ComponentModel.BackgroundWorker, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + updateLocalDatabaseToolStripMenuItem + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + locateInExplorerToolStripMenuItem + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + frmCUETools