diff --git a/CUERipper/CUERipper.csproj b/CUERipper/CUERipper.csproj index fa617ee..a0e0284 100644 --- a/CUERipper/CUERipper.csproj +++ b/CUERipper/CUERipper.csproj @@ -156,10 +156,6 @@ {5ADCFD6D-BFEA-4B10-BB45-9083BBB56AF4} Freedb - - {74C2036B-2C9B-4FC8-B7BD-AE81A8DCE533} - MusicBrainz - {8DD1E84B-0B03-4C0B-9B42-1E49F75E7CB1} ProgressODoom diff --git a/CUETools.AccurateRip/AccurateRip.cs b/CUETools.AccurateRip/AccurateRip.cs index 8b948ed..800b2ab 100644 --- a/CUETools.AccurateRip/AccurateRip.cs +++ b/CUETools.AccurateRip/AccurateRip.cs @@ -1315,18 +1315,23 @@ namespace CUETools.AccurateRip break; } if (extra == "") + { + int oiMin = _arOffsetRange; + int oiMax = -_arOffsetRange; for (int oi = -_arOffsetRange; oi <= _arOffsetRange; oi++) if (CRCLOG(iTrack) == CRCWONULL(iTrack, oi)) { - inLog = " W/O NULL "; - if (extra == "") - extra = string.Format(": offset {0}", oi); - else - { - extra = string.Format(": with offset"); - break; - } + oiMin = Math.Min(oiMin, oi); + oiMax = Math.Max(oiMax, oi); } + if (oiMax >= oiMin) + { + inLog = " W/O NULL "; + extra = oiMax == oiMin + ? string.Format(": offset {0}", oiMin) + : string.Format(": offset {0}..{1}", oiMin, oiMax); + } + } } sw.WriteLine(" {0} {5,5:F1} [{1:X8}] [{2:X8}] {3,10}{4}", iTrack == 0 ? "--" : string.Format("{0:00}", iTrack), diff --git a/CUETools.CTDB.EACPlugin/Plugin.cs b/CUETools.CTDB.EACPlugin/Plugin.cs index 041db17..60c3cae 100644 --- a/CUETools.CTDB.EACPlugin/Plugin.cs +++ b/CUETools.CTDB.EACPlugin/Plugin.cs @@ -30,7 +30,9 @@ namespace AudioDataPlugIn bool m_test_mode = false; IMetadataLookup m_data = null; CDImageLayout TOC; +#if USEAR string ArId; +#endif AccurateRipVerify ar; AccurateRipVerify arTest; CUEToolsDB ctdb; @@ -113,11 +115,11 @@ namespace AudioDataPlugIn m_data.GetTrackPreemphasis(i))); } TOC[1][0].Start = 0U; - ArId = AccurateRipVerify.CalculateAccurateRipId(TOC); ar = new AccurateRipVerify(TOC, null); arTest = new AccurateRipVerify(TOC, null); ctdb = new CUEToolsDB(TOC, null); #if USEAR + ArId = AccurateRipVerify.CalculateAccurateRipId(TOC); ar.ContactAccurateRip(ArId); #endif var form = new FormSubmitParity(ctdb, "EAC" + m_data.HostVersion + " CTDB 2.1.2", m_drivename); diff --git a/CUETools.CTDB/CUEToolsDB.cs b/CUETools.CTDB/CUEToolsDB.cs index 7ac68c1..46674a9 100644 --- a/CUETools.CTDB/CUEToolsDB.cs +++ b/CUETools.CTDB/CUEToolsDB.cs @@ -18,7 +18,7 @@ namespace CUETools.CTDB { public class CUEToolsDB { - const string defaultServer = "http://db.cuetools.net"; + const string defaultServer = "db.cuetools.net"; string urlbase; string userAgent; string driveName; @@ -73,6 +73,7 @@ namespace CUETools.CTDB req.UserAgent = this.userAgent; req.Timeout = connectTimeout; req.ReadWriteTimeout = socketTimeout; + req.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip; if (uploadHelper.onProgress != null) uploadHelper.onProgress(this, new UploadProgressEventArgs(req.RequestUri.AbsoluteUri, 0)); diff --git a/CUETools.Processor/CUEMetadata.cs b/CUETools.Processor/CUEMetadata.cs index 387feea..1dadd7c 100644 --- a/CUETools.Processor/CUEMetadata.cs +++ b/CUETools.Processor/CUEMetadata.cs @@ -220,29 +220,6 @@ namespace CUETools.Processor } } - public void FillFromMusicBrainz(MusicBrainz.Release release, int firstAudio) - { - var evs = release.GetEvents(); - if (evs.Count > 0) - { - var ev = evs[0]; - ReleaseDate = ev.Date ?? ""; - Year = (ev.Date ?? "").Substring(0, 4); - Barcode = ev.Barcode ?? ""; - Country = ev.Country; - Label = ((ev.Label == null ? null : ev.Label.GetName()) ?? "") + (ev.Label == null ? "" : " ") + (ev.CatalogNumber ?? ""); - } - Artist = release.GetArtist(); - Title = release.GetTitle(); - // How to get Genre: http://mm.musicbrainz.org/ws/1/release/6fe1e218-2aee-49ac-94f0-7910ba2151df.html?type=xml&inc=tags - for (int i = 0; i < Tracks.Count; i++) - { - MusicBrainz.Track track = release.GetTracks()[i + firstAudio]; // !!!!!! - _toc.FirstAudio? - Tracks[i].Title = track.GetTitle(); - Tracks[i].Artist = track.GetArtist(); - } - } - public void FillFromFreedb(Freedb.CDEntry cdEntry, int firstAudio) { Year = cdEntry.Year; diff --git a/CUETools.Processor/CUETools.Processor.csproj b/CUETools.Processor/CUETools.Processor.csproj index a709ae8..3a40d43 100644 --- a/CUETools.Processor/CUETools.Processor.csproj +++ b/CUETools.Processor/CUETools.Processor.csproj @@ -109,10 +109,6 @@ {8A0426FA-0BC2-4C49-A6E5-1F9A68156F19} CUETools.Codecs.LossyWAV - - {74C2036B-2C9B-4FC8-B7BD-AE81A8DCE533} - MusicBrainz - diff --git a/CUETools.Processor/Processor.cs b/CUETools.Processor/Processor.cs index d50b1b4..0b470b6 100644 --- a/CUETools.Processor/Processor.cs +++ b/CUETools.Processor/Processor.cs @@ -47,7 +47,6 @@ using CUETools.AccurateRip; using CUETools.CTDB; using CUETools.Ripper; using CUETools.Compression; -using MusicBrainz; using Freedb; using CSScriptLibrary; @@ -1146,6 +1145,8 @@ namespace CUETools.Processor public bool CreateTOC { get; set; } [DefaultValue(true), Category("CTDB"), DisplayName("Submit to CTDB")] public bool CTDBSubmit { get; set; } + [DefaultValue(true), Category("CTDB"), DisplayName("Ask before submitting")] + public bool CTDBAsk { get; set; } [DefaultValue("db.cuetools.net"), Category("CTDB"), DisplayName("CTDB Server")] public string CTDBServer { get; set; } @@ -1238,7 +1239,7 @@ namespace CUETools.Processor writeArTagsOnEncode = true; writeArLogOnConvert = true; writeArTagsOnVerify = false; - writeArLogOnVerify = true; + writeArLogOnVerify = false; autoCorrectFilenames = true; preserveHTOA = true; @@ -1547,7 +1548,7 @@ return processor.Go(); writeArTagsOnEncode = sr.LoadBoolean("ArWriteCRC") ?? true; writeArLogOnConvert = sr.LoadBoolean("ArWriteLog") ?? true; writeArTagsOnVerify = sr.LoadBoolean("ArWriteTagsOnVerify") ?? false; - writeArLogOnVerify = sr.LoadBoolean("ArWriteLogOnVerify") ?? true; + writeArLogOnVerify = sr.LoadBoolean("ArWriteLogOnVerify") ?? false; preserveHTOA = sr.LoadBoolean("PreserveHTOA") ?? true; autoCorrectFilenames = sr.LoadBoolean("AutoCorrectFilenames") ?? true; @@ -1860,7 +1861,7 @@ return processor.Go(); public CUEAction _action = CUEAction.Encode; public CUEStyle _CUEStyle = CUEStyle.SingleFileWithCUE; public int _writeOffset = 0; - public bool _useFreeDb = true, _useMusicBrainz = true, _useAccurateRip = true, _useCUEToolsDB = true, _useLocalDB = true, _skipRecent = true; + public bool _useFreeDb = true, _useMusicBrainz = true, _useAccurateRip = true, _useCUEToolsDB = true, _useLocalDB = true, _skipRecent = false; public string _name; } @@ -2206,11 +2207,9 @@ return processor.Go(); _localDB.Save(); } - public List LookupAlbumInfo(bool useFreedb, bool useMusicBrainz, bool useCTDB, bool useCache, bool useCUE) + public List LookupAlbumInfo(bool useFreedb, bool useCTDB, bool useCache, bool useCUE) { List Releases = new List(); - StringCollection DiscIds = new StringCollection(); - DiscIds.Add(_toc.MusicBrainzId); CUEMetadata dbmeta = null; @@ -2304,8 +2303,6 @@ return processor.Go(); CUEMetadata metadata = new CUEMetadata(TOC.TOCID, (int)TOC.AudioTracks); metadata.FillFromFreedb(cdEntry, TOC.FirstAudio - 1); CDImageLayout toc = TocFromCDEntry(cdEntry); - if (!DiscIds.Contains(toc.MusicBrainzId)) - DiscIds.Add(toc.MusicBrainzId); Releases.Add(new CUEMetadataEntry(metadata, toc, "freedb")); } } @@ -2324,8 +2321,6 @@ return processor.Go(); CUEMetadata metadata = new CUEMetadata(TOC.TOCID, (int)TOC.AudioTracks); metadata.FillFromFreedb(cdEntry, TOC.FirstAudio - 1); CDImageLayout toc = TocFromCDEntry(cdEntry); - if (!DiscIds.Contains(toc.MusicBrainzId)) - DiscIds.Add(toc.MusicBrainzId); Releases.Add(new CUEMetadataEntry(metadata, toc,"freedb")); } } @@ -2338,58 +2333,6 @@ return processor.Go(); } } - if (useMusicBrainz && !ctdbFound) - { - ShowProgress("Looking up album via MusicBrainz...", 0.0, null, null); - - //if (_tocFromLog != null && !DiscIds.Contains(_tocFromLog.MusicBrainzId)) - // DiscIds.Add(_tocFromLog.MusicBrainzId); - - MusicBrainzService.XmlRequest += new EventHandler(MusicBrainz_LookupProgress); - MusicBrainzService.Proxy = proxy; - foreach (string DiscId in DiscIds) - { - ReleaseQueryParameters p = new ReleaseQueryParameters(); - p.DiscId = DiscId; - Query results = Release.Query(p); - try - { - foreach (MusicBrainz.Release release in results) - { - release.GetEvents(); - release.GetTracks(); - try - { - foreach (MusicBrainz.Track track in release.GetTracks()) - ; - } - catch { } - try - { - foreach (MusicBrainz.Event ev in release.GetEvents()) - ; - } - catch { } - CUEMetadata metadata = new CUEMetadata(TOC.TOCID, (int)TOC.AudioTracks); - metadata.FillFromMusicBrainz(release, TOC.FirstAudio - 1); - Releases.Add(new CUEMetadataEntry(metadata, TOC, "musicbrainz")); - } - } - catch (Exception ex) - { - System.Diagnostics.Trace.WriteLine(ex.Message); - } - } - MusicBrainzService.Proxy = null; - MusicBrainzService.XmlRequest -= new EventHandler(MusicBrainz_LookupProgress); - //if (release != null) - //{ - // FillFromMusicBrainz(release); - // return; - //} - //if (cdEntry != null) - // FillFromFreedb(cdEntry); - } ShowProgress("", 0, null, null); return Releases; } @@ -3400,18 +3343,6 @@ return processor.Go(); // this.CUEToolsProgress(this, _progress); //} - private void MusicBrainz_LookupProgress(object sender, XmlRequestEventArgs e) - { - if (this.CUEToolsProgress == null) - return; - _progress.percent = (1.0 + _progress.percent) / 2; - _progress.offset = 0; - _progress.input = e.Uri.ToString(); - _progress.output = null; - _progress.status = "Looking up album via MusicBrainz"; - this.CUEToolsProgress(this, _progress); - } - private void unzip_ExtractionProgress(object sender, CompressionExtractionProgressEventArgs e) { CheckStop(); diff --git a/CUETools.Ripper.Console/CUETools.ConsoleRipper.csproj b/CUETools.Ripper.Console/CUETools.ConsoleRipper.csproj index 80b09b3..3da42d6 100644 --- a/CUETools.Ripper.Console/CUETools.ConsoleRipper.csproj +++ b/CUETools.Ripper.Console/CUETools.ConsoleRipper.csproj @@ -2,7 +2,7 @@ Debug AnyCPU - 8.0.50727 + 9.0.30729 2.0 {9253A314-1821-42BF-B02F-2BF986B1765D} Exe @@ -54,6 +54,10 @@ {1DD41038-D885-46C5-8DDE-E0B82F066584} CUETools.CDImage + + {AA2A9A7E-45FB-4632-AD85-85B0E556F818} + CUETools.CTDB + {8CF07381-BEA2-4AFC-B3DD-9B2F21C65A3A} CUETools.Ripper.SCSI @@ -63,10 +67,6 @@ {D2700165-3E77-4B28-928D-551F5FC11954} CUETools.Ripper - - {74C2036B-2C9B-4FC8-B7BD-AE81A8DCE533} - MusicBrainz - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + You are about to submit information about this CD to the CUETools Database. This information will help other users to repair their copy of this CD if it contains errors. + + + Cancel + + + + 131, 17 + + + Remember my choice + + + CTDB submission confirmation + + \ No newline at end of file diff --git a/CUETools/frmSubmit.resx b/CUETools/frmSubmit.resx new file mode 100644 index 0000000..8ac203c --- /dev/null +++ b/CUETools/frmSubmit.resx @@ -0,0 +1,261 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 3 + + + System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + Bottom, Right + + + Cancel + + + 1 + + + $this + + + + 75, 23 + + + 476, 97 + + + CTDB submission confirmation + + + 128, 17 + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + textBox1 + + + + 1 + + + 2 + + + True + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 0 + + + 0 + + + 8, 8, 8, 8 + + + 75, 23 + + + Top + + + 304, 63 + + + $this + + + 385, 63 + + + $this + + + 2 + + + 460, 45 + + + 11, 69 + + + buttonOk + + + Ok + + + You are about to submit information about this CD to the CUETools Database. This information will help other users to repair their copy of this CD if it contains errors. + + + 8, 8 + + + Remember my choice + + + Bottom, Left + + + True + + + checkBoxRemember + + + System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + CenterParent + + + 6, 13 + + + buttonCancel + + + Bottom, Right + + + frmSubmit + + + 1 + + + True + + \ No newline at end of file diff --git a/CUETools/frmSubmit.ru-RU.resx b/CUETools/frmSubmit.ru-RU.resx new file mode 100644 index 0000000..da6a8c3 --- /dev/null +++ b/CUETools/frmSubmit.ru-RU.resx @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Предлагается отправить данные об этом диске в базу данных CUETools (CTDB). Это поможет другим пользователям исправить ошибки в их копиях данного диска. + + + Отмена + + + + 140, 17 + + + Запомнить мой выбор + + + Подтверждение на отправку данных в CTDB + + \ No newline at end of file