From 5089719204d980363bedb0a97068435db6ddd308 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Mon, 25 Aug 2014 19:13:25 +0100 Subject: [PATCH] Implement standard CD subchannel packets. --- DiscImageChef/Checksums/CDChecksums.cs | 29 ++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/DiscImageChef/Checksums/CDChecksums.cs b/DiscImageChef/Checksums/CDChecksums.cs index dae65e81..44980736 100644 --- a/DiscImageChef/Checksums/CDChecksums.cs +++ b/DiscImageChef/Checksums/CDChecksums.cs @@ -340,6 +340,10 @@ namespace DiscImageChef.Checksums byte[] CDTextPack2 = new byte[18]; byte[] CDTextPack3 = new byte[18]; byte[] CDTextPack4 = new byte[18]; + byte[] CDSubRWPack1 = new byte[24]; + byte[] CDSubRWPack2 = new byte[24]; + byte[] CDSubRWPack3 = new byte[24]; + byte[] CDSubRWPack4 = new byte[24]; int i = 0; for (int j = 0; j < 12; j++) @@ -351,6 +355,13 @@ namespace DiscImageChef.Checksums CDTextPack3[j] = 0; CDTextPack4[j] = 0; } + for (int j = 0; j < 24; j++) + { + CDSubRWPack1[j] = 0; + CDSubRWPack2[j] = 0; + CDSubRWPack3[j] = 0; + CDSubRWPack4[j] = 0; + } for (int j = 0; j < 12; j++) { @@ -426,6 +437,24 @@ namespace DiscImageChef.Checksums CDTextPack4[j] = (byte)(CDTextPack4[j] | (subchannel[i++] & 0x3F)); } + i = 0; + for (int j = 0; j < 24; j++) + { + CDSubRWPack1[j] = (byte)(subchannel[i++] & 0x3F); + } + for (int j = 0; j < 24; j++) + { + CDSubRWPack2[j] = (byte)(subchannel[i++] & 0x3F); + } + for (int j = 0; j < 24; j++) + { + CDSubRWPack3[j] = (byte)(subchannel[i++] & 0x3F); + } + for (int j = 0; j < 24; j++) + { + CDSubRWPack4[j] = (byte)(subchannel[i++] & 0x3F); + } + BigEndianBitConverter.IsLittleEndian = true; UInt16 QSubChannelCRC = BigEndianBitConverter.ToUInt16(QSubChannel, 10);