From bc3c8a1074ca9104f1babdf1e46a7c6bf4fcc13f Mon Sep 17 00:00:00 2001 From: chudov Date: Tue, 17 Jan 2012 08:04:16 +0000 Subject: [PATCH] CTDB2.0: coverart search --- .../CUETools.CTDB.EACPlugin.csproj | 13 + .../FormMetadata.Designer.cs | 244 +++++++------ CUETools.CTDB.EACPlugin/FormMetadata.cs | 338 +++++++++++++----- CUETools.CTDB.EACPlugin/FormMetadata.resx | 10 +- .../FormSubmitParity.Designer.cs | 86 +++-- CUETools.CTDB.EACPlugin/FormSubmitParity.cs | 1 + .../ImagePreview.Designer.cs | 105 ++++++ CUETools.CTDB.EACPlugin/ImagePreview.cs | 199 +++++++++++ CUETools.CTDB.EACPlugin/ImagePreview.resx | 135 +++++++ CUETools.CTDB.EACPlugin/InternetImage.cs | 53 +++ CUETools.CTDB.EACPlugin/Metadata.cs | 327 +++++++++-------- CUETools.CTDB.EACPlugin/Plugin.cs | 22 ++ .../Properties/Resources.Designer.cs | 7 + .../Properties/Resources.resx | 6 +- .../Resources/document-save_12.png | Bin 0 -> 3270 bytes CUETools.CTDB/CTDBResponse.cs | 2 +- CUETools.CTDB/CTDBResponseMeta.cs | 4 +- CUETools.CTDB/CTDBResponseMetaImage.cs | 20 ++ CUETools.CTDB/CUETools.CTDB.csproj | 1 + CUETools.CTDB/CUEToolsDB.cs | 9 +- 20 files changed, 1178 insertions(+), 404 deletions(-) create mode 100644 CUETools.CTDB.EACPlugin/ImagePreview.Designer.cs create mode 100644 CUETools.CTDB.EACPlugin/ImagePreview.cs create mode 100644 CUETools.CTDB.EACPlugin/ImagePreview.resx create mode 100644 CUETools.CTDB.EACPlugin/InternetImage.cs create mode 100644 CUETools.CTDB.EACPlugin/Resources/document-save_12.png create mode 100644 CUETools.CTDB/CTDBResponseMetaImage.cs diff --git a/CUETools.CTDB.EACPlugin/CUETools.CTDB.EACPlugin.csproj b/CUETools.CTDB.EACPlugin/CUETools.CTDB.EACPlugin.csproj index d961e5f..4841539 100644 --- a/CUETools.CTDB.EACPlugin/CUETools.CTDB.EACPlugin.csproj +++ b/CUETools.CTDB.EACPlugin/CUETools.CTDB.EACPlugin.csproj @@ -76,6 +76,13 @@ FormMetadata.cs + + Component + + + ImagePreview.cs + + @@ -98,6 +105,9 @@ FormMetadata.cs + + ImagePreview.cs + Options.cs @@ -150,6 +160,9 @@ true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 276, 17 + + + 161, 17 + + + 17, 17 + + + 390, 17 + + + False + + \ No newline at end of file diff --git a/CUETools.CTDB.EACPlugin/InternetImage.cs b/CUETools.CTDB.EACPlugin/InternetImage.cs new file mode 100644 index 0000000..2f73229 --- /dev/null +++ b/CUETools.CTDB.EACPlugin/InternetImage.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using System.IO; + +namespace CUETools.CTDB.EACPlugin +{ + public class InternetImage + { + protected string m_URL = null; + protected Bitmap m_bitmap = null; + protected byte[] m_data = null; + + public string URL + { + get + { + return m_URL; + } + set + { + m_URL = value; + } + } + + + public byte[] Data + { + get + { + return m_data; + } + set + { + m_data = value; + } + } + + + public Bitmap Image + { + get + { + return m_bitmap; + } + set + { + m_bitmap = value; + } + } + } +} diff --git a/CUETools.CTDB.EACPlugin/Metadata.cs b/CUETools.CTDB.EACPlugin/Metadata.cs index c6c75da..253b800 100644 --- a/CUETools.CTDB.EACPlugin/Metadata.cs +++ b/CUETools.CTDB.EACPlugin/Metadata.cs @@ -15,177 +15,192 @@ using System.Drawing.Imaging; namespace MetadataPlugIn { - [Guid("8271734A-126F-44e9-AC9C-836449B39E51"), + [Guid("8271734A-126F-44e9-AC9C-836449B39E51"), ClassInterface(ClassInterfaceType.None), - ComSourceInterfaces(typeof(IMetadataRetriever)), + ComSourceInterfaces(typeof(IMetadataRetriever)), ] - public class MetadataRetriever : IMetadataRetriever - { - public bool GetCDInformation(CCDMetadata data, bool cdinfo, bool cover, bool lyrics) - { - if (!cdinfo) - return false; + public class MetadataRetriever : IMetadataRetriever + { + public bool GetCDInformation(CCDMetadata data, bool cdinfo, bool cover, bool lyrics) + { + if (!cdinfo && !cover) + return false; - var TOC = new CDImageLayout(); - for (int i = 0; i < data.NumberOfTracks; i++) - { - uint start = data.GetTrackStartPosition(i); - uint next = data.GetTrackEndPosition(i); - TOC.AddTrack(new CDTrack( - (uint)i + 1, - start, - next - start, - !data.GetTrackDataTrack(i), - data.GetTrackPreemphasis(i))); - } - TOC[1][0].Start = 0U; + var TOC = new CDImageLayout(); + for (int i = 0; i < data.NumberOfTracks; i++) + { + uint start = data.GetTrackStartPosition(i); + uint next = data.GetTrackEndPosition(i); + TOC.AddTrack(new CDTrack( + (uint)i + 1, + start, + next - start, + !data.GetTrackDataTrack(i), + data.GetTrackPreemphasis(i))); + } + TOC[1][0].Start = 0U; - var ctdb = new CUEToolsDB(TOC, null); - var form = new CUETools.CTDB.EACPlugin.FormMetadata(ctdb, "EAC" + data.HostVersion + " CTDB 2.1.4"); - form.ShowDialog(); - var meta = form.Meta; - if (meta == null) - return false; + var ctdb = new CUEToolsDB(TOC, null); + var form = new CUETools.CTDB.EACPlugin.FormMetadata(ctdb, "EAC" + data.HostVersion + " CTDB 2.1.4", cdinfo, cover); + form.ShowDialog(); + var meta = form.Meta; + if (meta == null) + return false; - int year, disccount, discnumber; - string extra = meta.extra ?? ""; - if (!string.IsNullOrEmpty(meta.discname)) - extra += "Disc name: " + meta.discname + "\r\n"; - if (!string.IsNullOrEmpty(meta.infourl)) - extra += "Info URL: " + meta.infourl + "\r\n"; - if (!string.IsNullOrEmpty(meta.barcode)) - extra += "Barcode: " + meta.barcode + "\r\n"; - if (!string.IsNullOrEmpty(meta.releasedate)) - extra += "Release date: " + meta.releasedate + "\r\n"; - if (!string.IsNullOrEmpty(meta.country)) - extra += "Release country: " + meta.country + "\r\n"; - if (meta.label != null) - foreach (var label in meta.label) - { - if (!string.IsNullOrEmpty(label.name)) - extra += "Release label: " + label.name + "\r\n"; - if (!string.IsNullOrEmpty(label.catno)) - extra += "Release catalog#: " + label.catno + "\r\n"; - } - data.Year = meta.year != null && int.TryParse(meta.year, out year) ? year : -1; - data.TotalNumberOfCDs = meta.disccount != null && int.TryParse(meta.disccount, out disccount) ? disccount : 1; - data.CDNumber = meta.discnumber != null && int.TryParse(meta.discnumber, out discnumber) ? discnumber : 1; - data.FirstTrackNumber = 1; - data.AlbumTitle = meta.album ?? ""; - data.AlbumArtist = meta.artist ?? ""; - data.MP3V2Type = meta.genre ?? ""; - data.CDDBMusicType = GetFreeDBMusicType(meta); - data.MP3Type = GetMP3MusicType(data.CDDBMusicType); - data.ExtendedDiscInformation = extra; - data.Revision = -1; // TODO: meta.id? rock/ffffffff/16? - if (meta.track != null) - for (int track = 0; track < data.NumberOfTracks; track++) - { - if (track < 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 ?? ""); - } - else - { - data.SetTrackTitle(track, ""); - data.SetTrackArtist(track, meta.artist ?? ""); - data.SetExtendedTrackInformation(track, ""); - } - data.SetTrackComposer(track, ""); - } - return true; - } + if (cdinfo) + { + int year, disccount, discnumber; + string extra = meta.extra ?? ""; + if (!string.IsNullOrEmpty(meta.discname)) + extra += "Disc name: " + meta.discname + "\r\n"; + if (!string.IsNullOrEmpty(meta.infourl)) + extra += "Info URL: " + meta.infourl + "\r\n"; + if (!string.IsNullOrEmpty(meta.barcode)) + extra += "Barcode: " + meta.barcode + "\r\n"; + if (!string.IsNullOrEmpty(meta.releasedate)) + extra += "Release date: " + meta.releasedate + "\r\n"; + if (!string.IsNullOrEmpty(meta.country)) + extra += "Release country: " + meta.country + "\r\n"; + if (meta.label != null) + foreach (var label in meta.label) + { + if (!string.IsNullOrEmpty(label.name)) + extra += "Release label: " + label.name + "\r\n"; + if (!string.IsNullOrEmpty(label.catno)) + extra += "Release catalog#: " + label.catno + "\r\n"; + } + data.Year = meta.year != null && int.TryParse(meta.year, out year) ? year : -1; + data.TotalNumberOfCDs = meta.disccount != null && int.TryParse(meta.disccount, out disccount) ? disccount : 1; + data.CDNumber = meta.discnumber != null && int.TryParse(meta.discnumber, out discnumber) ? discnumber : 1; + data.FirstTrackNumber = 1; + data.AlbumTitle = meta.album ?? ""; + data.AlbumArtist = meta.artist ?? ""; + data.MP3V2Type = meta.genre ?? ""; + data.CDDBMusicType = GetFreeDBMusicType(meta); + data.MP3Type = GetMP3MusicType(data.CDDBMusicType); + data.ExtendedDiscInformation = extra; + data.Revision = -1; // TODO: meta.id? rock/ffffffff/16? + if (meta.track != null) + for (int track = 0; track < data.NumberOfTracks; track++) + { + if (track < 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 ?? ""); + } + else + { + data.SetTrackTitle(track, ""); + data.SetTrackArtist(track, meta.artist ?? ""); + data.SetExtendedTrackInformation(track, ""); + } + data.SetTrackComposer(track, ""); + } + } - public int GetMP3MusicType(int freedbtype) - { - int[] list = { 17, 29, 34, 95, 53, 77, 90, 113, 117, 129, 95 }; - return (freedbtype <= 0 || freedbtype >= list.Length) ? -1 : list[freedbtype]; - } + if (cover) + { + data.CoverImage = null; + data.CoverImageURL = ""; + if (form.Image != null) + { + data.CoverImage = form.Image.Data; + data.CoverImageURL = form.Image.URL; + } + } - public int GetFreeDBMusicType(CTDBResponseMeta meta) - { - int pos = meta.id.IndexOf('/'); - if (meta.source != "freedb" || pos < 0) - return -1; - string freedbtype = meta.id.Substring(0, pos); - switch (freedbtype.ToUpper()) - { - case "BLUES": - return 0; - case "CLASSICAL": - return 1; - case "COUNTRY": - return 2; - case "DATA": - return 3; - case "FOLK": - return 4; - case "JAZZ": - return 5; - case "NEWAGE": - return 6; - case "REGGAE": - return 7; - case "ROCK": - return 8; - case "SOUNDTRACK": - return 9; - case "MISC": - return 10; - default: - return -1; - } - } + return true; + } - public string GetPluginGuid() - { - return ((GuidAttribute)Attribute.GetCustomAttribute(GetType(), typeof(GuidAttribute))).Value; - } + public int GetMP3MusicType(int freedbtype) + { + int[] list = { 17, 29, 34, 95, 53, 77, 90, 113, 117, 129, 95 }; + return (freedbtype <= 0 || freedbtype >= list.Length) ? -1 : list[freedbtype]; + } - public Array GetPluginLogo() - { - MemoryStream ms = new MemoryStream(); - Resources.ctdb64.Save(ms, ImageFormat.Png); - return ms.ToArray(); - } + public int GetFreeDBMusicType(CTDBResponseMeta meta) + { + int pos = meta.id.IndexOf('/'); + if (meta.source != "freedb" || pos < 0) + return -1; + string freedbtype = meta.id.Substring(0, pos); + switch (freedbtype.ToUpper()) + { + case "BLUES": + return 0; + case "CLASSICAL": + return 1; + case "COUNTRY": + return 2; + case "DATA": + return 3; + case "FOLK": + return 4; + case "JAZZ": + return 5; + case "NEWAGE": + return 6; + case "REGGAE": + return 7; + case "ROCK": + return 8; + case "SOUNDTRACK": + return 9; + case "MISC": + return 10; + default: + return -1; + } + } - public string GetPluginName() - { - return "CUETools DB Metadata Plugin V2.1.4"; - } + public string GetPluginGuid() + { + return ((GuidAttribute)Attribute.GetCustomAttribute(GetType(), typeof(GuidAttribute))).Value; + } - public void ShowOptions() - { - AudioDataPlugIn.Options opt = new AudioDataPlugIn.Options(); - opt.ShowDialog(); - } + public Array GetPluginLogo() + { + MemoryStream ms = new MemoryStream(); + Resources.ctdb64.Save(ms, ImageFormat.Png); + return ms.ToArray(); + } - public bool SubmitCDInformation(IMetadataLookup data) - { - throw new NotSupportedException(); - } + public string GetPluginName() + { + return "CUETools DB Metadata Plugin V2.1.4"; + } - public bool SupportsCoverRetrieval() - { - return false; - } + public void ShowOptions() + { + AudioDataPlugIn.Options opt = new AudioDataPlugIn.Options(); + opt.ShowDialog(); + } - public bool SupportsLyricsRetrieval() - { - return false; - } + public bool SubmitCDInformation(IMetadataLookup data) + { + throw new NotSupportedException(); + } - public bool SupportsMetadataRetrieval() - { - return true; - } + public bool SupportsCoverRetrieval() + { + return true; + } - public bool SupportsMetadataSubmission() - { - return false; - } - } + public bool SupportsLyricsRetrieval() + { + return false; + } + + public bool SupportsMetadataRetrieval() + { + return true; + } + + public bool SupportsMetadataSubmission() + { + return false; + } + } } diff --git a/CUETools.CTDB.EACPlugin/Plugin.cs b/CUETools.CTDB.EACPlugin/Plugin.cs index a5e7e40..0eccd58 100644 --- a/CUETools.CTDB.EACPlugin/Plugin.cs +++ b/CUETools.CTDB.EACPlugin/Plugin.cs @@ -302,4 +302,26 @@ namespace AudioDataPlugIn return sw.ToString(); } } + + //private NativeWindow GetWindowFromHost(int hwnd) + //{ + // IntPtr handle = new IntPtr(hwnd); + // NativeWindow nativeWindow = new NativeWindow(); + // nativeWindow.AssignHandle(handle); + // return window; + //} + //NativeWindow parentWindow = GetWindowFromHwnd(hwnd); + //try + //{ + // launchTarget.ShowDialog(parentWindow); + //} + //finally + //{ + // parentWindow.ReleaseHandle(); + //} + //internal class WindowWrapper : System.Windows.Forms.IWin32Window + //{ + // public IntPtr Handle { get; private set; } + // public WindowWrapper(IntPtr hwnd) { Handle = hwnd; } + //} } diff --git a/CUETools.CTDB.EACPlugin/Properties/Resources.Designer.cs b/CUETools.CTDB.EACPlugin/Properties/Resources.Designer.cs index 59bdb00..540c0f4 100644 --- a/CUETools.CTDB.EACPlugin/Properties/Resources.Designer.cs +++ b/CUETools.CTDB.EACPlugin/Properties/Resources.Designer.cs @@ -73,5 +73,12 @@ namespace CUETools.CTDB.EACPlugin.Properties { return ((System.Drawing.Bitmap)(obj)); } } + + internal static System.Drawing.Bitmap document_save_12 { + get { + object obj = ResourceManager.GetObject("document_save_12", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } } } diff --git a/CUETools.CTDB.EACPlugin/Properties/Resources.resx b/CUETools.CTDB.EACPlugin/Properties/Resources.resx index 6469b64..4801895 100644 --- a/CUETools.CTDB.EACPlugin/Properties/Resources.resx +++ b/CUETools.CTDB.EACPlugin/Properties/Resources.resx @@ -117,11 +117,15 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + ..\Resources\favicon.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\ctdb64.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\document-save_12.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/CUETools.CTDB.EACPlugin/Resources/document-save_12.png b/CUETools.CTDB.EACPlugin/Resources/document-save_12.png new file mode 100644 index 0000000000000000000000000000000000000000..b5e29de5ae6e2269c389cc6a739609cd7f850303 GIT binary patch literal 3270 zcmeAS@N?(olHy`uVBq!ia0y~yVBi5^4mJh`hOp9@=L`%CoCO|{#S9GG!XV7ZFl&wk z0|S?Trn7TEKt_H^esM;Afr6*AvqC{pep+TuDg#5st+~PJA;B-jY`@?8;^f`YFvUAR zNR&e%$f>(QWTKjuBBy{?hvLGUqJakmU0qqEPb}zQ?(1vl5e?Mg>EgP<{zP$6U-ROQ zu2a7sRxi%Jw&(k^v;VeUw|lQz`~GlIyvbvLx3(rf_nY4%M1;3f6T0AWQd-kD9X5C zB7=f(YKIF$hBd>Q^I=`C3=swlB5B@7EE#U-G8lMT#JFBV&*2Bohp{DjnN#sh3w(sdU6`)JjJy| z%o3RrXF2E{s+=il)M�PV*|l=S%D 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 + diff --git a/CUETools.CTDB/CUEToolsDB.cs b/CUETools.CTDB/CUEToolsDB.cs index 62b5d01..1b5ad8d 100644 --- a/CUETools.CTDB/CUEToolsDB.cs +++ b/CUETools.CTDB/CUEToolsDB.cs @@ -65,8 +65,9 @@ namespace CUETools.CTDB HttpWebRequest req = (HttpWebRequest)WebRequest.Create(urlbase + "/lookup2.php" - + "?ctdb=" + (ctdb ? "2" : "0") - + "&fuzzy=" + (fuzzy ? 1 : 0) + + "?version=2" + + "&ctdb=" + (ctdb ? 1 : 0) + + "&fuzzy=" + (fuzzy ? 1 : 0) + "&metadata=" + (metadataSearch == CTDBMetadataSearch.None ? "none" : metadataSearch == CTDBMetadataSearch.Fast ? "fast" : metadataSearch == CTDBMetadataSearch.Default ? "default" : "extensive") + "&toc=" + toc.ToString()); req.Method = "GET"; @@ -102,8 +103,8 @@ namespace CUETools.CTDB var entry = new DBEntry(ctdbRespEntry); entries.Add(entry); } - if (ctdbResp.musicbrainz != null && ctdbResp.musicbrainz.Length != 0) - metadata.AddRange(ctdbResp.musicbrainz); + if (ctdbResp.metadata != null && ctdbResp.metadata.Length != 0) + metadata.AddRange(ctdbResp.metadata); } if (entries.Count == 0) this.QueryResponseStatus = HttpStatusCode.NotFound;