From c289ecce0b99984da2b7466f67b768ba45707ef4 Mon Sep 17 00:00:00 2001 From: chudov Date: Sun, 30 Nov 2008 03:04:05 +0000 Subject: [PATCH] MusicBrainz support --- CUETools.CDImage/CDImage.cs | 17 +- CUETools.Ripper.Console/CUERipper.csproj | 4 + CUETools.Ripper.Console/Program.cs | 51 +- CUETools/CUETools.sln | 14 + MusicBrainz/AUTHORS | 3 + MusicBrainz/COPYING | 17 + MusicBrainz/ChangeLog | 503 ++++++++++++++++++ MusicBrainz/HACKING | 7 + MusicBrainz/MAINTAINERS | 3 + MusicBrainz/Makefile.am | 38 ++ MusicBrainz/MusicBrainz.csproj | 79 +++ MusicBrainz/MusicBrainz/Artist.cs | 276 ++++++++++ MusicBrainz/MusicBrainz/Disc.cs | 55 ++ MusicBrainz/MusicBrainz/Event.cs | 76 +++ MusicBrainz/MusicBrainz/Label.cs | 137 +++++ MusicBrainz/MusicBrainz/MusicBrainzEntity.cs | 162 ++++++ .../MusicBrainz/MusicBrainzException.cs | 50 ++ MusicBrainz/MusicBrainz/MusicBrainzItem.cs | 187 +++++++ MusicBrainz/MusicBrainz/MusicBrainzObject.cs | 485 +++++++++++++++++ MusicBrainz/MusicBrainz/MusicBrainzService.cs | 53 ++ MusicBrainz/MusicBrainz/Query.cs | 197 +++++++ MusicBrainz/MusicBrainz/Relation.cs | 104 ++++ MusicBrainz/MusicBrainz/Release.cs | 395 ++++++++++++++ MusicBrainz/MusicBrainz/Track.cs | 276 ++++++++++ MusicBrainz/MusicBrainz/Utils.cs | 76 +++ .../MusicBrainz/XmlRequestEventArgs.cs | 38 ++ 26 files changed, 3292 insertions(+), 11 deletions(-) create mode 100644 MusicBrainz/AUTHORS create mode 100644 MusicBrainz/COPYING create mode 100644 MusicBrainz/ChangeLog create mode 100644 MusicBrainz/HACKING create mode 100644 MusicBrainz/MAINTAINERS create mode 100644 MusicBrainz/Makefile.am create mode 100644 MusicBrainz/MusicBrainz.csproj create mode 100644 MusicBrainz/MusicBrainz/Artist.cs create mode 100644 MusicBrainz/MusicBrainz/Disc.cs create mode 100644 MusicBrainz/MusicBrainz/Event.cs create mode 100644 MusicBrainz/MusicBrainz/Label.cs create mode 100644 MusicBrainz/MusicBrainz/MusicBrainzEntity.cs create mode 100644 MusicBrainz/MusicBrainz/MusicBrainzException.cs create mode 100644 MusicBrainz/MusicBrainz/MusicBrainzItem.cs create mode 100644 MusicBrainz/MusicBrainz/MusicBrainzObject.cs create mode 100644 MusicBrainz/MusicBrainz/MusicBrainzService.cs create mode 100644 MusicBrainz/MusicBrainz/Query.cs create mode 100644 MusicBrainz/MusicBrainz/Relation.cs create mode 100644 MusicBrainz/MusicBrainz/Release.cs create mode 100644 MusicBrainz/MusicBrainz/Track.cs create mode 100644 MusicBrainz/MusicBrainz/Utils.cs create mode 100644 MusicBrainz/MusicBrainz/XmlRequestEventArgs.cs diff --git a/CUETools.CDImage/CDImage.cs b/CUETools.CDImage/CDImage.cs index 5d19236..d1d6c7d 100644 --- a/CUETools.CDImage/CDImage.cs +++ b/CUETools.CDImage/CDImage.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Security.Cryptography; using System.Text; namespace CUETools.CDImage @@ -283,7 +284,7 @@ namespace CUETools.CDImage } } - public String Catalog + public string Catalog { get { @@ -295,6 +296,20 @@ namespace CUETools.CDImage } } + public string MusicBrainzId + { + get + { + StringBuilder mbSB = new StringBuilder(); + mbSB.AppendFormat("{0:X2}{1:X2}{2:X8}", 1, AudioTracks, _tracks[(int)AudioTracks-1].End + 1 + 150); + for (int iTrack = 0; iTrack < AudioTracks; iTrack++) + mbSB.AppendFormat("{0:X8}", _tracks[iTrack].Start + 150); + mbSB.Append(new string('0', (99 - (int)AudioTracks) * 8)); + byte[] hashBytes = (new SHA1CryptoServiceProvider()).ComputeHash(Encoding.ASCII.GetBytes(mbSB.ToString())); + return Convert.ToBase64String(hashBytes).Replace('+', '.').Replace('/', '_').Replace('=', '-'); + } + } + public void AddTrack(CDTrack track) { _tracks.Add(track); diff --git a/CUETools.Ripper.Console/CUERipper.csproj b/CUETools.Ripper.Console/CUERipper.csproj index 06b0976..c3da207 100644 --- a/CUETools.Ripper.Console/CUERipper.csproj +++ b/CUETools.Ripper.Console/CUERipper.csproj @@ -97,6 +97,10 @@ {8CF07381-BEA2-4AFC-B3DD-9B2F21C65A3A} CUETools.Ripper.SCSI + + {74C2036B-2C9B-4FC8-B7BD-AE81A8DCE533} + MusicBrainz +