mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Start introducing concept of internal hashes
This commit is contained in:
@@ -5,6 +5,20 @@ namespace SabreTools.FileTypes.CHD
|
||||
{
|
||||
public class CHDFile : BaseFile
|
||||
{
|
||||
#region Fields
|
||||
|
||||
/// <summary>
|
||||
/// Internal MD5 hash of the file
|
||||
/// </summary>
|
||||
public byte[]? InternalMD5 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Internal SHA-1 hash of the file
|
||||
/// </summary>
|
||||
public byte[]? InternalSHA1 { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Private instance variables
|
||||
|
||||
/// <summary>
|
||||
@@ -37,11 +51,38 @@ namespace SabreTools.FileTypes.CHD
|
||||
var header = Serialization.Deserializers.CHD.DeserializeStream(stream);
|
||||
return header switch
|
||||
{
|
||||
HeaderV1 v1 => new CHDFile { _header = header, MD5 = v1.MD5 },
|
||||
HeaderV2 v2 => new CHDFile { _header = header, MD5 = v2.MD5 },
|
||||
HeaderV3 v3 => new CHDFile { _header = header, MD5 = v3.MD5, SHA1 = v3.SHA1 },
|
||||
HeaderV4 v4 => new CHDFile { _header = header, SHA1 = v4.SHA1 },
|
||||
HeaderV5 v5 => new CHDFile { _header = header, SHA1 = v5.SHA1 },
|
||||
HeaderV1 v1 => new CHDFile
|
||||
{
|
||||
_header = header,
|
||||
MD5 = v1.MD5,
|
||||
InternalMD5 = v1.MD5,
|
||||
},
|
||||
HeaderV2 v2 => new CHDFile
|
||||
{
|
||||
_header = header,
|
||||
MD5 = v2.MD5,
|
||||
InternalMD5 = v2.MD5,
|
||||
},
|
||||
HeaderV3 v3 => new CHDFile
|
||||
{
|
||||
_header = header,
|
||||
MD5 = v3.MD5,
|
||||
InternalMD5 = v3.MD5,
|
||||
SHA1 = v3.SHA1,
|
||||
InternalSHA1 = v3.SHA1,
|
||||
},
|
||||
HeaderV4 v4 => new CHDFile
|
||||
{
|
||||
_header = header,
|
||||
SHA1 = v4.SHA1,
|
||||
InternalSHA1 = v4.SHA1,
|
||||
},
|
||||
HeaderV5 v5 => new CHDFile
|
||||
{
|
||||
_header = header,
|
||||
SHA1 = v5.SHA1,
|
||||
InternalSHA1 = v5.SHA1,
|
||||
},
|
||||
_ => null,
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user