mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
Code cleanup.
This commit is contained in:
@@ -238,32 +238,32 @@ namespace DiscImageChef.Decoders.CD
|
||||
return null;
|
||||
}
|
||||
|
||||
decoded.DataLength = BigEndianBitConverter.ToUInt16(CDATIPResponse, 0);
|
||||
decoded.Reserved1 = CDATIPResponse[2];
|
||||
decoded.Reserved2 = CDATIPResponse[3];
|
||||
decoded.ITWP = (byte)((CDATIPResponse[4] & 0xF0) >> 4);
|
||||
decoded.DDCD = Convert.ToBoolean(CDATIPResponse[4] & 0x08);
|
||||
decoded.DataLength = BigEndianBitConverter.ToUInt16(CDATIPResponse, 0);
|
||||
decoded.Reserved1 = CDATIPResponse[2];
|
||||
decoded.Reserved2 = CDATIPResponse[3];
|
||||
decoded.ITWP = (byte)((CDATIPResponse[4] & 0xF0) >> 4);
|
||||
decoded.DDCD = Convert.ToBoolean(CDATIPResponse[4] & 0x08);
|
||||
decoded.ReferenceSpeed = (byte)(CDATIPResponse[4] & 0x07);
|
||||
decoded.AlwaysZero = Convert.ToBoolean(CDATIPResponse[5] & 0x80);
|
||||
decoded.URU = Convert.ToBoolean(CDATIPResponse[5] & 0x40);
|
||||
decoded.Reserved3 = (byte)(CDATIPResponse[5] & 0x3F);
|
||||
decoded.AlwaysZero = Convert.ToBoolean(CDATIPResponse[5] & 0x80);
|
||||
decoded.URU = Convert.ToBoolean(CDATIPResponse[5] & 0x40);
|
||||
decoded.Reserved3 = (byte)(CDATIPResponse[5] & 0x3F);
|
||||
|
||||
decoded.AlwaysOne = Convert.ToBoolean(CDATIPResponse[6] & 0x80);
|
||||
decoded.DiscType = Convert.ToBoolean(CDATIPResponse[6] & 0x40);
|
||||
decoded.AlwaysOne = Convert.ToBoolean(CDATIPResponse[6] & 0x80);
|
||||
decoded.DiscType = Convert.ToBoolean(CDATIPResponse[6] & 0x40);
|
||||
decoded.DiscSubType = (byte)((CDATIPResponse[6] & 0x38) >> 3);
|
||||
decoded.A1Valid = Convert.ToBoolean(CDATIPResponse[6] & 0x04);
|
||||
decoded.A2Valid = Convert.ToBoolean(CDATIPResponse[6] & 0x02);
|
||||
decoded.A3Valid = Convert.ToBoolean(CDATIPResponse[6] & 0x01);
|
||||
decoded.A1Valid = Convert.ToBoolean(CDATIPResponse[6] & 0x04);
|
||||
decoded.A2Valid = Convert.ToBoolean(CDATIPResponse[6] & 0x02);
|
||||
decoded.A3Valid = Convert.ToBoolean(CDATIPResponse[6] & 0x01);
|
||||
|
||||
decoded.Reserved4 = CDATIPResponse[7];
|
||||
decoded.LeadInStartMin = CDATIPResponse[8];
|
||||
decoded.LeadInStartSec = CDATIPResponse[9];
|
||||
decoded.LeadInStartFrame = CDATIPResponse[10];
|
||||
decoded.Reserved5 = CDATIPResponse[11];
|
||||
decoded.LeadOutStartMin = CDATIPResponse[12];
|
||||
decoded.LeadOutStartSec = CDATIPResponse[13];
|
||||
decoded.Reserved4 = CDATIPResponse[7];
|
||||
decoded.LeadInStartMin = CDATIPResponse[8];
|
||||
decoded.LeadInStartSec = CDATIPResponse[9];
|
||||
decoded.LeadInStartFrame = CDATIPResponse[10];
|
||||
decoded.Reserved5 = CDATIPResponse[11];
|
||||
decoded.LeadOutStartMin = CDATIPResponse[12];
|
||||
decoded.LeadOutStartSec = CDATIPResponse[13];
|
||||
decoded.LeadOutStartFrame = CDATIPResponse[14];
|
||||
decoded.Reserved6 = CDATIPResponse[15];
|
||||
decoded.Reserved6 = CDATIPResponse[15];
|
||||
|
||||
decoded.A1Values = new byte[3];
|
||||
decoded.A2Values = new byte[3];
|
||||
@@ -356,6 +356,7 @@ namespace DiscImageChef.Decoders.CD
|
||||
sb.AppendFormat("Unknown CD-RW disc subtype: {0}", response.DiscSubType).AppendLine();
|
||||
break;
|
||||
}
|
||||
|
||||
switch(response.ReferenceSpeed)
|
||||
{
|
||||
case 1:
|
||||
@@ -430,7 +431,7 @@ namespace DiscImageChef.Decoders.CD
|
||||
if(response.LeadInStartMin != 97) return sb.ToString();
|
||||
|
||||
int type = response.LeadInStartFrame % 10;
|
||||
int frm = response.LeadInStartFrame - type;
|
||||
int frm = response.LeadInStartFrame - type;
|
||||
|
||||
if(response.DiscType) sb.AppendLine("Disc uses phase change");
|
||||
else
|
||||
|
||||
@@ -199,9 +199,9 @@ namespace DiscImageChef.Decoders.CD
|
||||
BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian;
|
||||
|
||||
decoded.DataLength = BigEndianBitConverter.ToUInt16(CDTextResponse, 0);
|
||||
decoded.Reserved1 = CDTextResponse[2];
|
||||
decoded.Reserved2 = CDTextResponse[3];
|
||||
decoded.DataPacks = new CDTextPack[(decoded.DataLength - 2) / 18];
|
||||
decoded.Reserved1 = CDTextResponse[2];
|
||||
decoded.Reserved2 = CDTextResponse[3];
|
||||
decoded.DataPacks = new CDTextPack[(decoded.DataLength - 2) / 18];
|
||||
|
||||
if(decoded.DataLength == 2) return null;
|
||||
|
||||
@@ -215,13 +215,13 @@ namespace DiscImageChef.Decoders.CD
|
||||
|
||||
for(int i = 0; i < (decoded.DataLength - 2) / 18; i++)
|
||||
{
|
||||
decoded.DataPacks[i].HeaderID1 = CDTextResponse[0 + i * 18 + 4];
|
||||
decoded.DataPacks[i].HeaderID2 = CDTextResponse[1 + i * 18 + 4];
|
||||
decoded.DataPacks[i].HeaderID3 = CDTextResponse[2 + i * 18 + 4];
|
||||
decoded.DataPacks[i].DBCC = Convert.ToBoolean(CDTextResponse[3 + i * 18 + 4] & 0x80);
|
||||
decoded.DataPacks[i].BlockNumber = (byte)((CDTextResponse[3 + i * 18 + 4] & 0x70) >> 4);
|
||||
decoded.DataPacks[i].HeaderID1 = CDTextResponse[0 + i * 18 + 4];
|
||||
decoded.DataPacks[i].HeaderID2 = CDTextResponse[1 + i * 18 + 4];
|
||||
decoded.DataPacks[i].HeaderID3 = CDTextResponse[2 + i * 18 + 4];
|
||||
decoded.DataPacks[i].DBCC = Convert.ToBoolean(CDTextResponse[3 + i * 18 + 4] & 0x80);
|
||||
decoded.DataPacks[i].BlockNumber = (byte)((CDTextResponse[3 + i * 18 + 4] & 0x70) >> 4);
|
||||
decoded.DataPacks[i].CharacterPosition = (byte)(CDTextResponse[3 + i * 18 + 4] & 0x0F);
|
||||
decoded.DataPacks[i].TextDataField = new byte[12];
|
||||
decoded.DataPacks[i].TextDataField = new byte[12];
|
||||
Array.Copy(CDTextResponse, 4 + i * 18 + 4, decoded.DataPacks[i].TextDataField, 0, 12);
|
||||
decoded.DataPacks[i].CRC = BigEndianBitConverter.ToUInt16(CDTextResponse, 16 + i * 18 + 4);
|
||||
}
|
||||
@@ -233,13 +233,13 @@ namespace DiscImageChef.Decoders.CD
|
||||
{
|
||||
if(CDTextResponse == null) return null;
|
||||
|
||||
CDText response = CDTextResponse.Value;
|
||||
StringBuilder sb = new StringBuilder();
|
||||
CDText response = CDTextResponse.Value;
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
#if DEBUG
|
||||
#if DEBUG
|
||||
if(response.Reserved1 != 0) sb.AppendFormat("Reserved1 = 0x{0:X2}", response.Reserved1).AppendLine();
|
||||
if(response.Reserved2 != 0) sb.AppendFormat("Reserved2 = 0x{0:X2}", response.Reserved2).AppendLine();
|
||||
#endif
|
||||
#endif
|
||||
|
||||
foreach(CDTextPack descriptor in response.DataPacks)
|
||||
if((descriptor.HeaderID1 & 0x80) != 0x80)
|
||||
|
||||
@@ -172,20 +172,20 @@ namespace DiscImageChef.Decoders.CD
|
||||
|
||||
for(int i = 0; i < (decoded.DataLength - 2) / 11; i++)
|
||||
{
|
||||
decoded.TrackDescriptors[i].SessionNumber = CDFullTOCResponse[0 + i * 11 + 4];
|
||||
decoded.TrackDescriptors[i].SessionNumber = CDFullTOCResponse[0 + i * 11 + 4];
|
||||
decoded.TrackDescriptors[i].ADR = (byte)((CDFullTOCResponse[1 + i * 11 + 4] & 0xF0) >> 4);
|
||||
decoded.TrackDescriptors[i].CONTROL = (byte)(CDFullTOCResponse[1 + i * 11 + 4] & 0x0F);
|
||||
decoded.TrackDescriptors[i].TNO = CDFullTOCResponse[2 + i * 11 + 4];
|
||||
decoded.TrackDescriptors[i].POINT = CDFullTOCResponse[3 + i * 11 + 4];
|
||||
decoded.TrackDescriptors[i].Min = CDFullTOCResponse[4 + i * 11 + 4];
|
||||
decoded.TrackDescriptors[i].Sec = CDFullTOCResponse[5 + i * 11 + 4];
|
||||
decoded.TrackDescriptors[i].Frame = CDFullTOCResponse[6 + i * 11 + 4];
|
||||
decoded.TrackDescriptors[i].Zero = CDFullTOCResponse[7 + i * 11 + 4];
|
||||
decoded.TrackDescriptors[i].CONTROL = (byte)(CDFullTOCResponse[1 + i * 11 + 4] & 0x0F);
|
||||
decoded.TrackDescriptors[i].TNO = CDFullTOCResponse[2 + i * 11 + 4];
|
||||
decoded.TrackDescriptors[i].POINT = CDFullTOCResponse[3 + i * 11 + 4];
|
||||
decoded.TrackDescriptors[i].Min = CDFullTOCResponse[4 + i * 11 + 4];
|
||||
decoded.TrackDescriptors[i].Sec = CDFullTOCResponse[5 + i * 11 + 4];
|
||||
decoded.TrackDescriptors[i].Frame = CDFullTOCResponse[6 + i * 11 + 4];
|
||||
decoded.TrackDescriptors[i].Zero = CDFullTOCResponse[7 + i * 11 + 4];
|
||||
decoded.TrackDescriptors[i].HOUR = (byte)((CDFullTOCResponse[7 + i * 11 + 4] & 0xF0) >> 4);
|
||||
decoded.TrackDescriptors[i].PHOUR = (byte)(CDFullTOCResponse[7 + i * 11 + 4] & 0x0F);
|
||||
decoded.TrackDescriptors[i].PMIN = CDFullTOCResponse[8 + i * 11 + 4];
|
||||
decoded.TrackDescriptors[i].PSEC = CDFullTOCResponse[9 + i * 11 + 4];
|
||||
decoded.TrackDescriptors[i].PFRAME = CDFullTOCResponse[10 + i * 11 + 4];
|
||||
decoded.TrackDescriptors[i].PHOUR = (byte)(CDFullTOCResponse[7 + i * 11 + 4] & 0x0F);
|
||||
decoded.TrackDescriptors[i].PMIN = CDFullTOCResponse[8 + i * 11 + 4];
|
||||
decoded.TrackDescriptors[i].PSEC = CDFullTOCResponse[9 + i * 11 + 4];
|
||||
decoded.TrackDescriptors[i].PFRAME = CDFullTOCResponse[10 + i * 11 + 4];
|
||||
}
|
||||
|
||||
return decoded;
|
||||
@@ -202,28 +202,26 @@ namespace DiscImageChef.Decoders.CD
|
||||
int lastSession = 0;
|
||||
|
||||
sb.AppendFormat("First complete session number: {0}", response.FirstCompleteSession).AppendLine();
|
||||
sb.AppendFormat("Last complete session number: {0}", response.LastCompleteSession).AppendLine();
|
||||
sb.AppendFormat("Last complete session number: {0}", response.LastCompleteSession).AppendLine();
|
||||
foreach(TrackDataDescriptor descriptor in response.TrackDescriptors)
|
||||
if((descriptor.CONTROL & 0x08) ==
|
||||
0x08 ||
|
||||
descriptor.ADR != 1 && descriptor.ADR != 5 && descriptor.ADR != 4 &&
|
||||
descriptor.ADR != 6 ||
|
||||
if((descriptor.CONTROL & 0x08) == 0x08 ||
|
||||
descriptor.ADR != 1 && descriptor.ADR != 5 && descriptor.ADR != 4 && descriptor.ADR != 6 ||
|
||||
descriptor.TNO != 0)
|
||||
{
|
||||
sb.AppendLine("Unknown TOC entry format, printing values as-is");
|
||||
sb.AppendFormat("SessionNumber = {0}", descriptor.SessionNumber).AppendLine();
|
||||
sb.AppendFormat("ADR = {0}", descriptor.ADR).AppendLine();
|
||||
sb.AppendFormat("CONTROL = {0}", descriptor.CONTROL).AppendLine();
|
||||
sb.AppendFormat("TNO = {0}", descriptor.TNO).AppendLine();
|
||||
sb.AppendFormat("POINT = {0}", descriptor.POINT).AppendLine();
|
||||
sb.AppendFormat("Min = {0}", descriptor.Min).AppendLine();
|
||||
sb.AppendFormat("Sec = {0}", descriptor.Sec).AppendLine();
|
||||
sb.AppendFormat("Frame = {0}", descriptor.Frame).AppendLine();
|
||||
sb.AppendFormat("HOUR = {0}", descriptor.HOUR).AppendLine();
|
||||
sb.AppendFormat("PHOUR = {0}", descriptor.PHOUR).AppendLine();
|
||||
sb.AppendFormat("PMIN = {0}", descriptor.PMIN).AppendLine();
|
||||
sb.AppendFormat("PSEC = {0}", descriptor.PSEC).AppendLine();
|
||||
sb.AppendFormat("PFRAME = {0}", descriptor.PFRAME).AppendLine();
|
||||
sb.AppendFormat("ADR = {0}", descriptor.ADR).AppendLine();
|
||||
sb.AppendFormat("CONTROL = {0}", descriptor.CONTROL).AppendLine();
|
||||
sb.AppendFormat("TNO = {0}", descriptor.TNO).AppendLine();
|
||||
sb.AppendFormat("POINT = {0}", descriptor.POINT).AppendLine();
|
||||
sb.AppendFormat("Min = {0}", descriptor.Min).AppendLine();
|
||||
sb.AppendFormat("Sec = {0}", descriptor.Sec).AppendLine();
|
||||
sb.AppendFormat("Frame = {0}", descriptor.Frame).AppendLine();
|
||||
sb.AppendFormat("HOUR = {0}", descriptor.HOUR).AppendLine();
|
||||
sb.AppendFormat("PHOUR = {0}", descriptor.PHOUR).AppendLine();
|
||||
sb.AppendFormat("PMIN = {0}", descriptor.PMIN).AppendLine();
|
||||
sb.AppendFormat("PSEC = {0}", descriptor.PSEC).AppendLine();
|
||||
sb.AppendFormat("PFRAME = {0}", descriptor.PFRAME).AppendLine();
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -378,7 +376,7 @@ namespace DiscImageChef.Decoders.CD
|
||||
}
|
||||
default:
|
||||
{
|
||||
if(descriptor.POINT >= 0x01 && descriptor.POINT <= 0x63)
|
||||
if(descriptor.POINT >= 0x01 && descriptor.POINT <= 0x63)
|
||||
if(descriptor.ADR == 4)
|
||||
sb.AppendFormat("Video track {3} starts at: {0:D2}:{1:D2}:{2:D2}",
|
||||
descriptor.PMIN, descriptor.PSEC, descriptor.PFRAME,
|
||||
@@ -426,18 +424,18 @@ namespace DiscImageChef.Decoders.CD
|
||||
}
|
||||
else
|
||||
{
|
||||
sb.AppendFormat("ADR = {0}", descriptor.ADR).AppendLine();
|
||||
sb.AppendFormat("ADR = {0}", descriptor.ADR).AppendLine();
|
||||
sb.AppendFormat("CONTROL = {0}", descriptor.CONTROL).AppendLine();
|
||||
sb.AppendFormat("TNO = {0}", descriptor.TNO).AppendLine();
|
||||
sb.AppendFormat("POINT = {0}", descriptor.POINT).AppendLine();
|
||||
sb.AppendFormat("Min = {0}", descriptor.Min).AppendLine();
|
||||
sb.AppendFormat("Sec = {0}", descriptor.Sec).AppendLine();
|
||||
sb.AppendFormat("Frame = {0}", descriptor.Frame).AppendLine();
|
||||
sb.AppendFormat("HOUR = {0}", descriptor.HOUR).AppendLine();
|
||||
sb.AppendFormat("PHOUR = {0}", descriptor.PHOUR).AppendLine();
|
||||
sb.AppendFormat("PMIN = {0}", descriptor.PMIN).AppendLine();
|
||||
sb.AppendFormat("PSEC = {0}", descriptor.PSEC).AppendLine();
|
||||
sb.AppendFormat("PFRAME = {0}", descriptor.PFRAME).AppendLine();
|
||||
sb.AppendFormat("TNO = {0}", descriptor.TNO).AppendLine();
|
||||
sb.AppendFormat("POINT = {0}", descriptor.POINT).AppendLine();
|
||||
sb.AppendFormat("Min = {0}", descriptor.Min).AppendLine();
|
||||
sb.AppendFormat("Sec = {0}", descriptor.Sec).AppendLine();
|
||||
sb.AppendFormat("Frame = {0}", descriptor.Frame).AppendLine();
|
||||
sb.AppendFormat("HOUR = {0}", descriptor.HOUR).AppendLine();
|
||||
sb.AppendFormat("PHOUR = {0}", descriptor.PHOUR).AppendLine();
|
||||
sb.AppendFormat("PMIN = {0}", descriptor.PMIN).AppendLine();
|
||||
sb.AppendFormat("PSEC = {0}", descriptor.PSEC).AppendLine();
|
||||
sb.AppendFormat("PFRAME = {0}", descriptor.PFRAME).AppendLine();
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -514,12 +512,12 @@ namespace DiscImageChef.Decoders.CD
|
||||
case 0xC1:
|
||||
{
|
||||
sb.AppendFormat("Copy of information of A1 from ATIP found");
|
||||
sb.AppendFormat("Min = {0}", descriptor.Min).AppendLine();
|
||||
sb.AppendFormat("Sec = {0}", descriptor.Sec).AppendLine();
|
||||
sb.AppendFormat("Frame = {0}", descriptor.Frame).AppendLine();
|
||||
sb.AppendFormat("Zero = {0}", descriptor.Zero).AppendLine();
|
||||
sb.AppendFormat("PMIN = {0}", descriptor.PMIN).AppendLine();
|
||||
sb.AppendFormat("PSEC = {0}", descriptor.PSEC).AppendLine();
|
||||
sb.AppendFormat("Min = {0}", descriptor.Min).AppendLine();
|
||||
sb.AppendFormat("Sec = {0}", descriptor.Sec).AppendLine();
|
||||
sb.AppendFormat("Frame = {0}", descriptor.Frame).AppendLine();
|
||||
sb.AppendFormat("Zero = {0}", descriptor.Zero).AppendLine();
|
||||
sb.AppendFormat("PMIN = {0}", descriptor.PMIN).AppendLine();
|
||||
sb.AppendFormat("PSEC = {0}", descriptor.PSEC).AppendLine();
|
||||
sb.AppendFormat("PFRAME = {0}", descriptor.PFRAME).AppendLine();
|
||||
break;
|
||||
}
|
||||
@@ -563,18 +561,18 @@ namespace DiscImageChef.Decoders.CD
|
||||
}
|
||||
else
|
||||
{
|
||||
sb.AppendFormat("ADR = {0}", descriptor.ADR).AppendLine();
|
||||
sb.AppendFormat("ADR = {0}", descriptor.ADR).AppendLine();
|
||||
sb.AppendFormat("CONTROL = {0}", descriptor.CONTROL).AppendLine();
|
||||
sb.AppendFormat("TNO = {0}", descriptor.TNO).AppendLine();
|
||||
sb.AppendFormat("POINT = {0}", descriptor.POINT).AppendLine();
|
||||
sb.AppendFormat("Min = {0}", descriptor.Min).AppendLine();
|
||||
sb.AppendFormat("Sec = {0}", descriptor.Sec).AppendLine();
|
||||
sb.AppendFormat("Frame = {0}", descriptor.Frame).AppendLine();
|
||||
sb.AppendFormat("HOUR = {0}", descriptor.HOUR).AppendLine();
|
||||
sb.AppendFormat("PHOUR = {0}", descriptor.PHOUR).AppendLine();
|
||||
sb.AppendFormat("PMIN = {0}", descriptor.PMIN).AppendLine();
|
||||
sb.AppendFormat("PSEC = {0}", descriptor.PSEC).AppendLine();
|
||||
sb.AppendFormat("PFRAME = {0}", descriptor.PFRAME).AppendLine();
|
||||
sb.AppendFormat("TNO = {0}", descriptor.TNO).AppendLine();
|
||||
sb.AppendFormat("POINT = {0}", descriptor.POINT).AppendLine();
|
||||
sb.AppendFormat("Min = {0}", descriptor.Min).AppendLine();
|
||||
sb.AppendFormat("Sec = {0}", descriptor.Sec).AppendLine();
|
||||
sb.AppendFormat("Frame = {0}", descriptor.Frame).AppendLine();
|
||||
sb.AppendFormat("HOUR = {0}", descriptor.HOUR).AppendLine();
|
||||
sb.AppendFormat("PHOUR = {0}", descriptor.PHOUR).AppendLine();
|
||||
sb.AppendFormat("PMIN = {0}", descriptor.PMIN).AppendLine();
|
||||
sb.AppendFormat("PSEC = {0}", descriptor.PSEC).AppendLine();
|
||||
sb.AppendFormat("PFRAME = {0}", descriptor.PFRAME).AppendLine();
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
@@ -144,9 +144,9 @@ namespace DiscImageChef.Decoders.CD
|
||||
|
||||
BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian;
|
||||
|
||||
decoded.DataLength = BigEndianBitConverter.ToUInt16(CDPMAResponse, 0);
|
||||
decoded.Reserved1 = CDPMAResponse[2];
|
||||
decoded.Reserved2 = CDPMAResponse[3];
|
||||
decoded.DataLength = BigEndianBitConverter.ToUInt16(CDPMAResponse, 0);
|
||||
decoded.Reserved1 = CDPMAResponse[2];
|
||||
decoded.Reserved2 = CDPMAResponse[3];
|
||||
decoded.PMADescriptors = new CDPMADescriptors[(decoded.DataLength - 2) / 11];
|
||||
|
||||
if(decoded.DataLength + 2 != CDPMAResponse.Length)
|
||||
@@ -160,18 +160,18 @@ namespace DiscImageChef.Decoders.CD
|
||||
for(int i = 0; i < (decoded.DataLength - 2) / 11; i++)
|
||||
{
|
||||
decoded.PMADescriptors[i].Reserved = CDPMAResponse[0 + i * 11 + 4];
|
||||
decoded.PMADescriptors[i].ADR = (byte)((CDPMAResponse[1 + i * 11 + 4] & 0xF0) >> 4);
|
||||
decoded.PMADescriptors[i].CONTROL = (byte)(CDPMAResponse[1 + i * 11 + 4] & 0x0F);
|
||||
decoded.PMADescriptors[i].TNO = CDPMAResponse[2 + i * 11 + 4];
|
||||
decoded.PMADescriptors[i].POINT = CDPMAResponse[3 + i * 11 + 4];
|
||||
decoded.PMADescriptors[i].Min = CDPMAResponse[4 + i * 11 + 4];
|
||||
decoded.PMADescriptors[i].Sec = CDPMAResponse[5 + i * 11 + 4];
|
||||
decoded.PMADescriptors[i].Frame = CDPMAResponse[6 + i * 11 + 4];
|
||||
decoded.PMADescriptors[i].HOUR = (byte)((CDPMAResponse[7 + i * 11 + 4] & 0xF0) >> 4);
|
||||
decoded.PMADescriptors[i].PHOUR = (byte)(CDPMAResponse[7 + i * 11 + 4] & 0x0F);
|
||||
decoded.PMADescriptors[i].PMIN = CDPMAResponse[8 + i * 11 + 4];
|
||||
decoded.PMADescriptors[i].PSEC = CDPMAResponse[9 + i * 11 + 4];
|
||||
decoded.PMADescriptors[i].PFRAME = CDPMAResponse[10 + i * 11 + 4];
|
||||
decoded.PMADescriptors[i].ADR = (byte)((CDPMAResponse[1 + i * 11 + 4] & 0xF0) >> 4);
|
||||
decoded.PMADescriptors[i].CONTROL = (byte)(CDPMAResponse[1 + i * 11 + 4] & 0x0F);
|
||||
decoded.PMADescriptors[i].TNO = CDPMAResponse[2 + i * 11 + 4];
|
||||
decoded.PMADescriptors[i].POINT = CDPMAResponse[3 + i * 11 + 4];
|
||||
decoded.PMADescriptors[i].Min = CDPMAResponse[4 + i * 11 + 4];
|
||||
decoded.PMADescriptors[i].Sec = CDPMAResponse[5 + i * 11 + 4];
|
||||
decoded.PMADescriptors[i].Frame = CDPMAResponse[6 + i * 11 + 4];
|
||||
decoded.PMADescriptors[i].HOUR = (byte)((CDPMAResponse[7 + i * 11 + 4] & 0xF0) >> 4);
|
||||
decoded.PMADescriptors[i].PHOUR = (byte)(CDPMAResponse[7 + i * 11 + 4] & 0x0F);
|
||||
decoded.PMADescriptors[i].PMIN = CDPMAResponse[8 + i * 11 + 4];
|
||||
decoded.PMADescriptors[i].PSEC = CDPMAResponse[9 + i * 11 + 4];
|
||||
decoded.PMADescriptors[i].PFRAME = CDPMAResponse[10 + i * 11 + 4];
|
||||
}
|
||||
|
||||
return decoded;
|
||||
@@ -185,16 +185,16 @@ namespace DiscImageChef.Decoders.CD
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
#if DEBUG
|
||||
#if DEBUG
|
||||
if(response.Reserved1 != 0) sb.AppendFormat("Reserved1 = 0x{0:X2}", response.Reserved1).AppendLine();
|
||||
if(response.Reserved2 != 0) sb.AppendFormat("Reserved2 = 0x{0:X2}", response.Reserved2).AppendLine();
|
||||
#endif
|
||||
#endif
|
||||
|
||||
foreach(CDPMADescriptors descriptor in response.PMADescriptors)
|
||||
{
|
||||
#if DEBUG
|
||||
#if DEBUG
|
||||
if(descriptor.Reserved != 0) sb.AppendFormat("Reserved = 0x{0:X2}", descriptor.Reserved).AppendLine();
|
||||
#endif
|
||||
#endif
|
||||
|
||||
switch(descriptor.ADR)
|
||||
{
|
||||
@@ -248,21 +248,21 @@ namespace DiscImageChef.Decoders.CD
|
||||
break;
|
||||
case 3:
|
||||
sb.AppendFormat("Skip track assignment {0} says that tracks ", descriptor.POINT);
|
||||
if(descriptor.Min > 0) sb.AppendFormat("{0} ", descriptor.Min);
|
||||
if(descriptor.Sec > 0) sb.AppendFormat("{0} ", descriptor.Sec);
|
||||
if(descriptor.Frame > 0) sb.AppendFormat("{0} ", descriptor.Frame);
|
||||
if(descriptor.PMIN > 0) sb.AppendFormat("{0} ", descriptor.PMIN);
|
||||
if(descriptor.PSEC > 0) sb.AppendFormat("{0} ", descriptor.PSEC);
|
||||
if(descriptor.Min > 0) sb.AppendFormat("{0} ", descriptor.Min);
|
||||
if(descriptor.Sec > 0) sb.AppendFormat("{0} ", descriptor.Sec);
|
||||
if(descriptor.Frame > 0) sb.AppendFormat("{0} ", descriptor.Frame);
|
||||
if(descriptor.PMIN > 0) sb.AppendFormat("{0} ", descriptor.PMIN);
|
||||
if(descriptor.PSEC > 0) sb.AppendFormat("{0} ", descriptor.PSEC);
|
||||
if(descriptor.PFRAME > 0) sb.AppendFormat("{0} ", descriptor.PFRAME);
|
||||
sb.AppendLine("should be skipped");
|
||||
break;
|
||||
case 4:
|
||||
sb.AppendFormat("Unskip track assignment {0} says that tracks ", descriptor.POINT);
|
||||
if(descriptor.Min > 0) sb.AppendFormat("{0} ", descriptor.Min);
|
||||
if(descriptor.Sec > 0) sb.AppendFormat("{0} ", descriptor.Sec);
|
||||
if(descriptor.Frame > 0) sb.AppendFormat("{0} ", descriptor.Frame);
|
||||
if(descriptor.PMIN > 0) sb.AppendFormat("{0} ", descriptor.PMIN);
|
||||
if(descriptor.PSEC > 0) sb.AppendFormat("{0} ", descriptor.PSEC);
|
||||
if(descriptor.Min > 0) sb.AppendFormat("{0} ", descriptor.Min);
|
||||
if(descriptor.Sec > 0) sb.AppendFormat("{0} ", descriptor.Sec);
|
||||
if(descriptor.Frame > 0) sb.AppendFormat("{0} ", descriptor.Frame);
|
||||
if(descriptor.PMIN > 0) sb.AppendFormat("{0} ", descriptor.PMIN);
|
||||
if(descriptor.PSEC > 0) sb.AppendFormat("{0} ", descriptor.PSEC);
|
||||
if(descriptor.PFRAME > 0) sb.AppendFormat("{0} ", descriptor.PFRAME);
|
||||
sb.AppendLine("should not be skipped");
|
||||
break;
|
||||
|
||||
@@ -188,7 +188,7 @@ namespace DiscImageChef.Decoders.CD
|
||||
|
||||
if(!SyncMark.SequenceEqual(sync)) return sector;
|
||||
|
||||
byte[] scrambled = new byte[sector.Length];
|
||||
byte[] scrambled = new byte[sector.Length];
|
||||
for(int i = 0; i < 2352; i++) scrambled[i] = (byte)(sector[i] ^ ScrambleTable[i]);
|
||||
|
||||
if(sector.Length <= 2352) return scrambled;
|
||||
|
||||
@@ -119,10 +119,10 @@ namespace DiscImageChef.Decoders.CD
|
||||
|
||||
BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian;
|
||||
|
||||
decoded.DataLength = BigEndianBitConverter.ToUInt16(CDSessionInfoResponse, 0);
|
||||
decoded.DataLength = BigEndianBitConverter.ToUInt16(CDSessionInfoResponse, 0);
|
||||
decoded.FirstCompleteSession = CDSessionInfoResponse[2];
|
||||
decoded.LastCompleteSession = CDSessionInfoResponse[3];
|
||||
decoded.TrackDescriptors = new TrackDataDescriptor[(decoded.DataLength - 2) / 8];
|
||||
decoded.LastCompleteSession = CDSessionInfoResponse[3];
|
||||
decoded.TrackDescriptors = new TrackDataDescriptor[(decoded.DataLength - 2) / 8];
|
||||
|
||||
if(decoded.DataLength + 2 != CDSessionInfoResponse.Length)
|
||||
{
|
||||
@@ -134,11 +134,11 @@ namespace DiscImageChef.Decoders.CD
|
||||
|
||||
for(int i = 0; i < (decoded.DataLength - 2) / 8; i++)
|
||||
{
|
||||
decoded.TrackDescriptors[i].Reserved1 = CDSessionInfoResponse[0 + i * 8 + 4];
|
||||
decoded.TrackDescriptors[i].ADR = (byte)((CDSessionInfoResponse[1 + i * 8 + 4] & 0xF0) >> 4);
|
||||
decoded.TrackDescriptors[i].CONTROL = (byte)(CDSessionInfoResponse[1 + i * 8 + 4] & 0x0F);
|
||||
decoded.TrackDescriptors[i].Reserved1 = CDSessionInfoResponse[0 + i * 8 + 4];
|
||||
decoded.TrackDescriptors[i].ADR = (byte)((CDSessionInfoResponse[1 + i * 8 + 4] & 0xF0) >> 4);
|
||||
decoded.TrackDescriptors[i].CONTROL = (byte)(CDSessionInfoResponse[1 + i * 8 + 4] & 0x0F);
|
||||
decoded.TrackDescriptors[i].TrackNumber = CDSessionInfoResponse[2 + i * 8 + 4];
|
||||
decoded.TrackDescriptors[i].Reserved2 = CDSessionInfoResponse[3 + i * 8 + 4];
|
||||
decoded.TrackDescriptors[i].Reserved2 = CDSessionInfoResponse[3 + i * 8 + 4];
|
||||
decoded.TrackDescriptors[i].TrackStartAddress =
|
||||
BigEndianBitConverter.ToUInt32(CDSessionInfoResponse, 4 + i * 8 + 4);
|
||||
}
|
||||
@@ -212,12 +212,12 @@ namespace DiscImageChef.Decoders.CD
|
||||
? "Digital copy of track is permitted"
|
||||
: "Digital copy of track is prohibited");
|
||||
|
||||
#if DEBUG
|
||||
#if DEBUG
|
||||
if(descriptor.Reserved1 != 0)
|
||||
sb.AppendFormat("Reserved1 = 0x{0:X2}", descriptor.Reserved1).AppendLine();
|
||||
if(descriptor.Reserved2 != 0)
|
||||
sb.AppendFormat("Reserved2 = 0x{0:X2}", descriptor.Reserved2).AppendLine();
|
||||
#endif
|
||||
#endif
|
||||
|
||||
sb.AppendLine();
|
||||
}
|
||||
|
||||
@@ -121,9 +121,9 @@ namespace DiscImageChef.Decoders.CD
|
||||
|
||||
BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian;
|
||||
|
||||
decoded.DataLength = BigEndianBitConverter.ToUInt16(CDTOCResponse, 0);
|
||||
decoded.FirstTrack = CDTOCResponse[2];
|
||||
decoded.LastTrack = CDTOCResponse[3];
|
||||
decoded.DataLength = BigEndianBitConverter.ToUInt16(CDTOCResponse, 0);
|
||||
decoded.FirstTrack = CDTOCResponse[2];
|
||||
decoded.LastTrack = CDTOCResponse[3];
|
||||
decoded.TrackDescriptors = new CDTOCTrackDataDescriptor[(decoded.DataLength - 2) / 8];
|
||||
|
||||
if(decoded.DataLength + 2 != CDTOCResponse.Length)
|
||||
@@ -136,11 +136,11 @@ namespace DiscImageChef.Decoders.CD
|
||||
|
||||
for(int i = 0; i < (decoded.DataLength - 2) / 8; i++)
|
||||
{
|
||||
decoded.TrackDescriptors[i].Reserved1 = CDTOCResponse[0 + i * 8 + 4];
|
||||
decoded.TrackDescriptors[i].ADR = (byte)((CDTOCResponse[1 + i * 8 + 4] & 0xF0) >> 4);
|
||||
decoded.TrackDescriptors[i].CONTROL = (byte)(CDTOCResponse[1 + i * 8 + 4] & 0x0F);
|
||||
decoded.TrackDescriptors[i].Reserved1 = CDTOCResponse[0 + i * 8 + 4];
|
||||
decoded.TrackDescriptors[i].ADR = (byte)((CDTOCResponse[1 + i * 8 + 4] & 0xF0) >> 4);
|
||||
decoded.TrackDescriptors[i].CONTROL = (byte)(CDTOCResponse[1 + i * 8 + 4] & 0x0F);
|
||||
decoded.TrackDescriptors[i].TrackNumber = CDTOCResponse[2 + i * 8 + 4];
|
||||
decoded.TrackDescriptors[i].Reserved2 = CDTOCResponse[3 + i * 8 + 4];
|
||||
decoded.TrackDescriptors[i].Reserved2 = CDTOCResponse[3 + i * 8 + 4];
|
||||
decoded.TrackDescriptors[i].TrackStartAddress =
|
||||
BigEndianBitConverter.ToUInt32(CDTOCResponse, 4 + i * 8 + 4);
|
||||
}
|
||||
@@ -220,12 +220,12 @@ namespace DiscImageChef.Decoders.CD
|
||||
? "Digital copy of track is permitted"
|
||||
: "Digital copy of track is prohibited");
|
||||
|
||||
#if DEBUG
|
||||
#if DEBUG
|
||||
if(descriptor.Reserved1 != 0)
|
||||
sb.AppendFormat("Reserved1 = 0x{0:X2}", descriptor.Reserved1).AppendLine();
|
||||
if(descriptor.Reserved2 != 0)
|
||||
sb.AppendFormat("Reserved2 = 0x{0:X2}", descriptor.Reserved2).AppendLine();
|
||||
#endif
|
||||
#endif
|
||||
|
||||
sb.AppendLine();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user