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
+