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 +