mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
Refactor full CD TOC decoder.
This commit is contained in:
@@ -204,8 +204,10 @@ namespace DiscImageChef.Decoders.CD
|
||||
sb.AppendFormat("First complete session number: {0}", response.FirstCompleteSession).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");
|
||||
@@ -238,9 +240,7 @@ namespace DiscImageChef.Decoders.CD
|
||||
{
|
||||
switch(descriptor.POINT)
|
||||
{
|
||||
case 0xA0:
|
||||
{
|
||||
if(descriptor.ADR == 4)
|
||||
case 0xA0 when descriptor.ADR == 4:
|
||||
{
|
||||
sb.AppendFormat("First video track number: {0}", descriptor.PMIN).AppendLine();
|
||||
switch(descriptor.PSEC)
|
||||
@@ -270,8 +270,10 @@ namespace DiscImageChef.Decoders.CD
|
||||
sb.AppendLine("CD-V disc in PAL format with digital bilingual sound");
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
else
|
||||
case 0xA0 when descriptor.ADR == 1:
|
||||
{
|
||||
sb.AppendFormat("First track number: {0} (", descriptor.PMIN);
|
||||
switch((TocControl)(descriptor.CONTROL & 0x0D))
|
||||
@@ -299,15 +301,12 @@ namespace DiscImageChef.Decoders.CD
|
||||
sb.AppendLine(")");
|
||||
sb.AppendFormat("Disc type: {0}", descriptor.PSEC).AppendLine();
|
||||
//sb.AppendFormat("Absolute time: {3:D2}:{0:D2}:{1:D2}:{2:D2}", descriptor.Min, descriptor.Sec, descriptor.Frame, descriptor.HOUR).AppendLine();
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case 0xA1:
|
||||
{
|
||||
if(descriptor.ADR == 4)
|
||||
case 0xA1 when descriptor.ADR == 4:
|
||||
sb.AppendFormat("Last video track number: {0}", descriptor.PMIN).AppendLine();
|
||||
else
|
||||
break;
|
||||
case 0xA1 when descriptor.ADR == 1:
|
||||
{
|
||||
sb.AppendFormat("Last track number: {0} (", descriptor.PMIN);
|
||||
switch((TocControl)(descriptor.CONTROL & 0x0D))
|
||||
@@ -333,7 +332,6 @@ namespace DiscImageChef.Decoders.CD
|
||||
}
|
||||
|
||||
sb.AppendLine(")");
|
||||
}
|
||||
//sb.AppendFormat("Absolute time: {3:D2}:{0:D2}:{1:D2}:{2:D2}", descriptor.Min, descriptor.Sec, descriptor.Frame, descriptor.HOUR).AppendLine();
|
||||
break;
|
||||
}
|
||||
@@ -469,13 +467,13 @@ namespace DiscImageChef.Decoders.CD
|
||||
{
|
||||
sb
|
||||
.AppendFormat("Start of next possible program in the recordable area of the disc: {0:D2}:{1:D2}:{2:D2}",
|
||||
descriptor.Min, descriptor.Sec, descriptor.Frame)
|
||||
.AppendLine();
|
||||
descriptor.Min, descriptor.Sec, descriptor.Frame).AppendLine();
|
||||
sb
|
||||
.AppendFormat("Maximum start of outermost Lead-out in the recordable area of the disc: {0:D2}:{1:D2}:{2:D2}",
|
||||
descriptor.PMIN, descriptor.PSEC, descriptor.PFRAME)
|
||||
.AppendLine();
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case 0xB1:
|
||||
@@ -546,9 +544,9 @@ namespace DiscImageChef.Decoders.CD
|
||||
.AppendLine();
|
||||
sb
|
||||
.AppendFormat("Stop position of inner part lead-out area: {0:D2}:{1:D2}:{2:D2}",
|
||||
descriptor.Min, descriptor.Sec, descriptor.Frame)
|
||||
.AppendLine();
|
||||
descriptor.Min, descriptor.Sec, descriptor.Frame).AppendLine();
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
default:
|
||||
@@ -561,8 +559,7 @@ namespace DiscImageChef.Decoders.CD
|
||||
.AppendLine();
|
||||
sb
|
||||
.AppendFormat("Ending time for interval that should be skipped: {0:D2}:{1:D2}:{2:D2}",
|
||||
descriptor.Min, descriptor.Sec, descriptor.Frame)
|
||||
.AppendLine();
|
||||
descriptor.Min, descriptor.Sec, descriptor.Frame).AppendLine();
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -579,6 +576,7 @@ namespace DiscImageChef.Decoders.CD
|
||||
sb.AppendFormat("PSEC = {0}", descriptor.PSEC).AppendLine();
|
||||
sb.AppendFormat("PFRAME = {0}", descriptor.PFRAME).AppendLine();
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user