REFACTOR: All refactor in DiscImageChef.Decoders.

This commit is contained in:
2017-12-22 02:04:18 +00:00
parent 7f829422a8
commit 49144eeb01
148 changed files with 2606 additions and 1939 deletions

View File

@@ -31,6 +31,7 @@
// ****************************************************************************/
using System;
using System.Diagnostics.CodeAnalysis;
using System.Text;
using DiscImageChef.Console;
@@ -51,6 +52,10 @@ namespace DiscImageChef.Decoders.CD
/// T10/1675-D revision 4
/// T10/1836-D revision 2g
/// </summary>
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
[SuppressMessage("ReSharper", "MemberCanBePrivate.Global")]
[SuppressMessage("ReSharper", "NotAccessedField.Global")]
public static class ATIP
{
public struct CDATIP
@@ -292,8 +297,7 @@ namespace DiscImageChef.Decoders.CD
if(response.DDCD)
{
sb.AppendFormat("Indicative Target Writing Power: 0x{0:X2}", response.ITWP).AppendLine();
if(response.DiscType) sb.AppendLine("Disc is DDCD-RW");
else sb.AppendLine("Disc is DDCD-R");
sb.AppendLine(response.DiscType ? "Disc is DDCD-RW" : "Disc is DDCD-R");
switch(response.ReferenceSpeed)
{
case 2:
@@ -398,8 +402,7 @@ namespace DiscImageChef.Decoders.CD
}
}
if(response.URU) sb.AppendLine("Disc use is unrestricted");
else sb.AppendLine("Disc use is restricted");
sb.AppendLine(response.URU ? "Disc use is unrestricted" : "Disc use is restricted");
sb.AppendFormat("ATIP Start time of Lead-in: {0}:{1:D2}:{2:D2}", response.LeadInStartMin,
response.LeadInStartSec, response.LeadInStartFrame).AppendLine();
@@ -428,16 +431,16 @@ namespace DiscImageChef.Decoders.CD
int type = response.LeadInStartFrame % 10;
int frm = response.LeadInStartFrame - type;
string manufacturer;
if(response.DiscType) sb.AppendLine("Disc uses phase change");
else
{
if(type < 5) sb.AppendLine("Disc uses long strategy type dye (Cyanine, AZO, etc...)");
else sb.AppendLine("Disc uses short strategy type dye (Phthalocyanine, etc...)");
sb.AppendLine(type < 5
? "Disc uses long strategy type dye (Cyanine, AZO, etc...)"
: "Disc uses short strategy type dye (Phthalocyanine, etc...)");
}
manufacturer = ManufacturerFromATIP(response.LeadInStartSec, frm);
string manufacturer = ManufacturerFromATIP(response.LeadInStartSec, frm);
if(manufacturer != "") sb.AppendFormat("Disc manufactured by: {0}", manufacturer).AppendLine();

View File

@@ -31,6 +31,7 @@
// ****************************************************************************/
using System;
using System.Diagnostics.CodeAnalysis;
using System.Text;
using DiscImageChef.Console;
@@ -51,6 +52,10 @@ namespace DiscImageChef.Decoders.CD
/// T10/1675-D revision 4
/// T10/1836-D revision 2g
/// </summary>
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
[SuppressMessage("ReSharper", "MemberCanBePrivate.Global")]
[SuppressMessage("ReSharper", "NotAccessedField.Global")]
public static class CDTextOnLeadIn
{
public enum PackTypeIndicator : byte

View File

@@ -30,9 +30,12 @@
// Copyright © 2011-2018 Natalia Portillo
// ****************************************************************************/
using System.Diagnostics.CodeAnalysis;
namespace DiscImageChef.Decoders.CD
{
public enum TOC_ADR : byte
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
public enum TocAdr : byte
{
/// <summary>
/// Q Sub-channel mode information not supplied
@@ -60,7 +63,7 @@ namespace DiscImageChef.Decoders.CD
VideoTrackPointer = 0x04
}
public enum TOC_CONTROL : byte
public enum TocControl : byte
{
/// <summary>
/// Stereo audio, no pre-emphasis

View File

@@ -31,6 +31,7 @@
// ****************************************************************************/
using System;
using System.Diagnostics.CodeAnalysis;
using System.Text;
using DiscImageChef.Console;
@@ -53,6 +54,9 @@ namespace DiscImageChef.Decoders.CD
/// ISO/IEC 61104: Compact disc video system - 12 cm CD-V
/// ISO/IEC 60908: Audio recording - Compact disc digital audio system
/// </summary>
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
[SuppressMessage("ReSharper", "MemberCanBePrivate.Global")]
public static class FullTOC
{
const string StereoNoPre = "Stereo audio track with no pre-emphasis";
@@ -270,24 +274,24 @@ namespace DiscImageChef.Decoders.CD
else
{
sb.AppendFormat("First track number: {0} (", descriptor.PMIN);
switch((TOC_CONTROL)(descriptor.CONTROL & 0x0D))
switch((TocControl)(descriptor.CONTROL & 0x0D))
{
case TOC_CONTROL.TwoChanNoPreEmph:
case TocControl.TwoChanNoPreEmph:
sb.Append(StereoNoPre);
break;
case TOC_CONTROL.TwoChanPreEmph:
case TocControl.TwoChanPreEmph:
sb.Append(StereoPreEm);
break;
case TOC_CONTROL.FourChanNoPreEmph:
case TocControl.FourChanNoPreEmph:
sb.Append(QuadNoPreEm);
break;
case TOC_CONTROL.FourChanPreEmph:
case TocControl.FourChanPreEmph:
sb.Append(QuadPreEmph);
break;
case TOC_CONTROL.DataTrack:
case TocControl.DataTrack:
sb.Append(DataUnintrp);
break;
case TOC_CONTROL.DataTrackIncremental:
case TocControl.DataTrackIncremental:
sb.Append(DataIncrtly);
break;
}
@@ -306,24 +310,24 @@ namespace DiscImageChef.Decoders.CD
else
{
sb.AppendFormat("Last track number: {0} (", descriptor.PMIN);
switch((TOC_CONTROL)(descriptor.CONTROL & 0x0D))
switch((TocControl)(descriptor.CONTROL & 0x0D))
{
case TOC_CONTROL.TwoChanNoPreEmph:
case TocControl.TwoChanNoPreEmph:
sb.Append(StereoNoPre);
break;
case TOC_CONTROL.TwoChanPreEmph:
case TocControl.TwoChanPreEmph:
sb.Append(StereoPreEm);
break;
case TOC_CONTROL.FourChanNoPreEmph:
case TocControl.FourChanNoPreEmph:
sb.Append(QuadNoPreEm);
break;
case TOC_CONTROL.FourChanPreEmph:
case TocControl.FourChanPreEmph:
sb.Append(QuadPreEmph);
break;
case TOC_CONTROL.DataTrack:
case TocControl.DataTrack:
sb.Append(DataUnintrp);
break;
case TOC_CONTROL.DataTrackIncremental:
case TocControl.DataTrackIncremental:
sb.Append(DataIncrtly);
break;
}
@@ -345,16 +349,16 @@ namespace DiscImageChef.Decoders.CD
.AppendLine();
//sb.AppendFormat("Absolute time: {3:D2}:{0:D2}:{1:D2}:{2:D2}", descriptor.Min, descriptor.Sec, descriptor.Frame, descriptor.HOUR).AppendLine();
switch((TOC_CONTROL)(descriptor.CONTROL & 0x0D))
switch((TocControl)(descriptor.CONTROL & 0x0D))
{
case TOC_CONTROL.TwoChanNoPreEmph:
case TOC_CONTROL.TwoChanPreEmph:
case TOC_CONTROL.FourChanNoPreEmph:
case TOC_CONTROL.FourChanPreEmph:
case TocControl.TwoChanNoPreEmph:
case TocControl.TwoChanPreEmph:
case TocControl.FourChanNoPreEmph:
case TocControl.FourChanPreEmph:
sb.AppendLine("Lead-out is audio type");
break;
case TOC_CONTROL.DataTrack:
case TOC_CONTROL.DataTrackIncremental:
case TocControl.DataTrack:
case TocControl.DataTrackIncremental:
sb.AppendLine("Lead-out is data type");
break;
}
@@ -385,9 +389,9 @@ namespace DiscImageChef.Decoders.CD
{
string type = "Audio";
if((TOC_CONTROL)(descriptor.CONTROL & 0x0D) == TOC_CONTROL.DataTrack ||
(TOC_CONTROL)(descriptor.CONTROL & 0x0D) ==
TOC_CONTROL.DataTrackIncremental) type = "Data";
if((TocControl)(descriptor.CONTROL & 0x0D) == TocControl.DataTrack ||
(TocControl)(descriptor.CONTROL & 0x0D) ==
TocControl.DataTrackIncremental) type = "Data";
if(descriptor.PHOUR > 0)
sb.AppendFormat("{5} track {3} starts at: {4:D2}:{0:D2}:{1:D2}:{2:D2} (",
@@ -398,24 +402,24 @@ namespace DiscImageChef.Decoders.CD
descriptor.PMIN, descriptor.PSEC, descriptor.PFRAME,
descriptor.POINT, type);
switch((TOC_CONTROL)(descriptor.CONTROL & 0x0D))
switch((TocControl)(descriptor.CONTROL & 0x0D))
{
case TOC_CONTROL.TwoChanNoPreEmph:
case TocControl.TwoChanNoPreEmph:
sb.Append(StereoNoPre);
break;
case TOC_CONTROL.TwoChanPreEmph:
case TocControl.TwoChanPreEmph:
sb.Append(StereoPreEm);
break;
case TOC_CONTROL.FourChanNoPreEmph:
case TocControl.FourChanNoPreEmph:
sb.Append(QuadNoPreEm);
break;
case TOC_CONTROL.FourChanPreEmph:
case TocControl.FourChanPreEmph:
sb.Append(QuadPreEmph);
break;
case TOC_CONTROL.DataTrack:
case TocControl.DataTrack:
sb.Append(DataUnintrp);
break;
case TOC_CONTROL.DataTrackIncremental:
case TocControl.DataTrackIncremental:
sb.Append(DataIncrtly);
break;
}

View File

@@ -31,6 +31,7 @@
// ****************************************************************************/
using System;
using System.Diagnostics.CodeAnalysis;
using System.Text;
using DiscImageChef.Console;
@@ -51,6 +52,9 @@ namespace DiscImageChef.Decoders.CD
/// T10/1675-D revision 4
/// T10/1836-D revision 2g
/// </summary>
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
[SuppressMessage("ReSharper", "MemberCanBePrivate.Global")]
public static class PMA
{
public struct CDPMA
@@ -198,24 +202,24 @@ namespace DiscImageChef.Decoders.CD
if(descriptor.POINT > 0)
{
sb.AppendFormat("Track {0}", descriptor.POINT);
switch((TOC_CONTROL)(descriptor.CONTROL & 0x0D))
switch((TocControl)(descriptor.CONTROL & 0x0D))
{
case TOC_CONTROL.TwoChanNoPreEmph:
case TocControl.TwoChanNoPreEmph:
sb.Append(" (Stereo audio track with no pre-emphasis)");
break;
case TOC_CONTROL.TwoChanPreEmph:
case TocControl.TwoChanPreEmph:
sb.Append(" (Stereo audio track with 50/15 μs pre-emphasis)");
break;
case TOC_CONTROL.FourChanNoPreEmph:
case TocControl.FourChanNoPreEmph:
sb.Append(" (Quadraphonic audio track with no pre-emphasis)");
break;
case TOC_CONTROL.FourChanPreEmph:
case TocControl.FourChanPreEmph:
sb.Append(" (Quadraphonic audio track with 50/15 μs pre-emphasis)");
break;
case TOC_CONTROL.DataTrack:
case TocControl.DataTrack:
sb.Append(" (Data track, recorded uninterrupted)");
break;
case TOC_CONTROL.DataTrackIncremental:
case TocControl.DataTrackIncremental:
sb.Append(" (Data track, recorded incrementally)");
break;
}

View File

@@ -31,10 +31,14 @@
// ****************************************************************************/
using System;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
namespace DiscImageChef.Decoders.CD
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
[SuppressMessage("ReSharper", "MemberCanBePrivate.Global")]
public static class Sector
{
public static readonly byte[] ScrambleTable =

View File

@@ -31,6 +31,7 @@
// ****************************************************************************/
using System;
using System.Diagnostics.CodeAnalysis;
using System.Text;
using DiscImageChef.Console;
@@ -51,6 +52,9 @@ namespace DiscImageChef.Decoders.CD
/// T10/1675-D revision 4
/// T10/1836-D revision 2g
/// </summary>
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
[SuppressMessage("ReSharper", "MemberCanBePrivate.Global")]
public static class Session
{
public struct CDSessionInfo
@@ -161,51 +165,52 @@ namespace DiscImageChef.Decoders.CD
(descriptor.TrackStartAddress & 0x00FF0000) >> 16,
(descriptor.TrackStartAddress & 0xFF000000) >> 24).AppendLine();
switch((TOC_ADR)descriptor.ADR)
switch((TocAdr)descriptor.ADR)
{
case TOC_ADR.NoInformation:
case TocAdr.NoInformation:
sb.AppendLine("Q subchannel mode not given");
break;
case TOC_ADR.CurrentPosition:
case TocAdr.CurrentPosition:
sb.AppendLine("Q subchannel stores current position");
break;
case TOC_ADR.ISRC:
case TocAdr.ISRC:
sb.AppendLine("Q subchannel stores ISRC");
break;
case TOC_ADR.MediaCatalogNumber:
case TocAdr.MediaCatalogNumber:
sb.AppendLine("Q subchannel stores media catalog number");
break;
}
if((descriptor.CONTROL & (byte)TOC_CONTROL.ReservedMask) == (byte)TOC_CONTROL.ReservedMask)
if((descriptor.CONTROL & (byte)TocControl.ReservedMask) == (byte)TocControl.ReservedMask)
sb.AppendFormat("Reserved flags 0x{0:X2} set", descriptor.CONTROL).AppendLine();
else
{
switch((TOC_CONTROL)(descriptor.CONTROL & 0x0D))
switch((TocControl)(descriptor.CONTROL & 0x0D))
{
case TOC_CONTROL.TwoChanNoPreEmph:
case TocControl.TwoChanNoPreEmph:
sb.AppendLine("Stereo audio track with no pre-emphasis");
break;
case TOC_CONTROL.TwoChanPreEmph:
case TocControl.TwoChanPreEmph:
sb.AppendLine("Stereo audio track with 50/15 μs pre-emphasis");
break;
case TOC_CONTROL.FourChanNoPreEmph:
case TocControl.FourChanNoPreEmph:
sb.AppendLine("Quadraphonic audio track with no pre-emphasis");
break;
case TOC_CONTROL.FourChanPreEmph:
case TocControl.FourChanPreEmph:
sb.AppendLine("Stereo audio track with 50/15 μs pre-emphasis");
break;
case TOC_CONTROL.DataTrack:
case TocControl.DataTrack:
sb.AppendLine("Data track, recorded uninterrupted");
break;
case TOC_CONTROL.DataTrackIncremental:
case TocControl.DataTrackIncremental:
sb.AppendLine("Data track, recorded incrementally");
break;
}
if((descriptor.CONTROL & (byte)TOC_CONTROL.CopyPermissionMask) ==
(byte)TOC_CONTROL.CopyPermissionMask) sb.AppendLine("Digital copy of track is permitted");
else sb.AppendLine("Digital copy of track is prohibited");
sb.AppendLine((descriptor.CONTROL & (byte)TocControl.CopyPermissionMask) ==
(byte)TocControl.CopyPermissionMask
? "Digital copy of track is permitted"
: "Digital copy of track is prohibited");
#if DEBUG
if(descriptor.Reserved1 != 0)

View File

@@ -31,6 +31,7 @@
// ****************************************************************************/
using System;
using System.Diagnostics.CodeAnalysis;
using System.Text;
using DiscImageChef.Console;
@@ -53,6 +54,9 @@ namespace DiscImageChef.Decoders.CD
/// ISO/IEC 61104: Compact disc video system - 12 cm CD-V
/// ISO/IEC 60908: Audio recording - Compact disc digital audio system
/// </summary>
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
[SuppressMessage("ReSharper", "MemberCanBePrivate.Global")]
public static class TOC
{
public struct CDTOC
@@ -163,21 +167,21 @@ namespace DiscImageChef.Decoders.CD
(descriptor.TrackStartAddress & 0x00FF0000) >> 16,
(descriptor.TrackStartAddress & 0xFF000000) >> 24).AppendLine();
switch((TOC_ADR)descriptor.ADR)
switch((TocAdr)descriptor.ADR)
{
case TOC_ADR.NoInformation:
case TocAdr.NoInformation:
sb.AppendLine("Q subchannel mode not given");
break;
case TOC_ADR.TrackPointer:
case TocAdr.TrackPointer:
sb.AppendLine("Q subchannel stores track pointer");
break;
case TOC_ADR.VideoTrackPointer:
case TocAdr.VideoTrackPointer:
sb.AppendLine("Q subchannel stores video track pointer");
break;
case TOC_ADR.ISRC:
case TocAdr.ISRC:
sb.AppendLine("Q subchannel stores ISRC");
break;
case TOC_ADR.MediaCatalogNumber:
case TocAdr.MediaCatalogNumber:
sb.AppendLine("Q subchannel stores media catalog number");
break;
default:
@@ -185,35 +189,36 @@ namespace DiscImageChef.Decoders.CD
break;
}
if((descriptor.CONTROL & (byte)TOC_CONTROL.ReservedMask) == (byte)TOC_CONTROL.ReservedMask)
if((descriptor.CONTROL & (byte)TocControl.ReservedMask) == (byte)TocControl.ReservedMask)
sb.AppendFormat("Reserved flags 0x{0:X2} set", descriptor.CONTROL).AppendLine();
else
{
switch((TOC_CONTROL)(descriptor.CONTROL & 0x0D))
switch((TocControl)(descriptor.CONTROL & 0x0D))
{
case TOC_CONTROL.TwoChanNoPreEmph:
case TocControl.TwoChanNoPreEmph:
sb.AppendLine("Stereo audio track with no pre-emphasis");
break;
case TOC_CONTROL.TwoChanPreEmph:
case TocControl.TwoChanPreEmph:
sb.AppendLine("Stereo audio track with 50/15 μs pre-emphasis");
break;
case TOC_CONTROL.FourChanNoPreEmph:
case TocControl.FourChanNoPreEmph:
sb.AppendLine("Quadraphonic audio track with no pre-emphasis");
break;
case TOC_CONTROL.FourChanPreEmph:
case TocControl.FourChanPreEmph:
sb.AppendLine("Quadraphonic audio track with 50/15 μs pre-emphasis");
break;
case TOC_CONTROL.DataTrack:
case TocControl.DataTrack:
sb.AppendLine("Data track, recorded uninterrupted");
break;
case TOC_CONTROL.DataTrackIncremental:
case TocControl.DataTrackIncremental:
sb.AppendLine("Data track, recorded incrementally");
break;
}
if((descriptor.CONTROL & (byte)TOC_CONTROL.CopyPermissionMask) ==
(byte)TOC_CONTROL.CopyPermissionMask) sb.AppendLine("Digital copy of track is permitted");
else sb.AppendLine("Digital copy of track is prohibited");
sb.AppendLine((descriptor.CONTROL & (byte)TocControl.CopyPermissionMask) ==
(byte)TocControl.CopyPermissionMask
? "Digital copy of track is permitted"
: "Digital copy of track is prohibited");
#if DEBUG
if(descriptor.Reserved1 != 0)