mirror of
https://github.com/aaru-dps/Aaru.Server.git
synced 2025-12-16 19:24:27 +00:00
REFACTOR: All refactor in DiscImageChef.Decoders.
This commit is contained in:
@@ -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();
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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 =
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user