// /***************************************************************************
// The Disc Image Chef
// ----------------------------------------------------------------------------
//
// Filename : PFI.cs
// Version : 1.0
// Author(s) : Natalia Portillo
//
// Component : Component
//
// Revision : $Revision$
// Last change by : $Author$
// Date : $Date$
//
// --[ Description ] ----------------------------------------------------------
//
// Description
//
// --[ License ] --------------------------------------------------------------
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
//
// ----------------------------------------------------------------------------
// Copyright (C) 2011-2015 Claunia.com
// ****************************************************************************/
// //$Id$
using System;
namespace DiscImageChef.Decoders.DVD
{
///
/// Information from the following standards:
/// ANSI X3.304-1997
/// T10/1048-D revision 9.0
/// T10/1048-D revision 10a
/// T10/1228-D revision 7.0c
/// T10/1228-D revision 11a
/// T10/1363-D revision 10g
/// T10/1545-D revision 1d
/// T10/1545-D revision 5
/// T10/1545-D revision 5a
/// T10/1675-D revision 2c
/// T10/1675-D revision 4
/// T10/1836-D revision 2g
/// ECMA 267: 120 mm DVD - Read-Only Disk
/// ECMA 268: 80 mm DVD - Read-Only Disk
/// ECMA 272: 120 mm DVD Rewritable Disk (DVD-RAM)
/// ECMA 274: Data Interchange on 120 mm Optical Disk using +RW Format - Capacity: 3,0 Gbytes and 6,0 Gbytes
/// ECMA 279: 80 mm (1,23 Gbytes per side) and 120 mm (3,95 Gbytes per side) DVD-Recordable Disk (DVD-R)
/// ECMA 330: 120 mm (4,7 Gbytes per side) and 80 mm (1,46 Gbytes per side) DVD Rewritable Disk (DVD-RAM)
/// ECMA 337: Data Interchange on 120 mm and 80 mm Optical Disk using +RW Format - Capacity: 4,7 and 1,46 Gbytes per Side
/// ECMA 338: 80 mm (1,46 Gbytes per side) and 120 mm (4,70 Gbytes per side) DVD Re-recordable Disk (DVD-RW)
/// ECMA 349: Data Interchange on 120 mm and 80 mm Optical Disk using +R Format - Capacity: 4,7 and 1,46 Gbytes per Side
/// ECMA 359: 80 mm (1,46 Gbytes per side) and 120 mm (4,70 Gbytes per side) DVD Recordable Disk (DVD-R)
/// ECMA 364: Data Interchange on 120 mm and 80 mm Optical Disk using +R DL Format - Capacity 8,55 and 2,66 Gbytes per Side
/// ECMA 365: Data Interchange on 60 mm Read-Only ODC - Capacity: 1,8 Gbytes (UMD™)
/// ECMA 371: Data Interchange on 120 mm and 80 mm Optical Disk using +RW HS Format - Capacity 4,7 and 1,46 Gbytes per side
/// ECMA 374: Data Interchange on 120 mm and 80 mm Optical Disk using +RW DL Format - Capacity 8,55 and 2,66 Gbytes per side
/// ECMA 382: 120 mm (8,54 Gbytes per side) and 80 mm (2,66 Gbytes per side) DVD Recordable Disk for Dual Layer (DVD-R for DL)
/// ECMA 384: 120 mm (8,54 Gbytes per side) and 80 mm (2,66 Gbytes per side) DVD Re-recordable Disk for Dual Layer (DVD-RW for DL)
///
public static class PFI
{
public struct PhysicalFormatInformation
{
///
/// Bytes 0 to 1
/// Data length
///
public UInt16 DataLength;
///
/// Byte 2
/// Reserved
///
public byte Reserved1;
///
/// Byte 3
/// Reserved
///
public byte Reserved2;
#region PFI common to all
///
/// Byte 4, bits 7 to 4
/// Disk category field
///
public DVDCategory DiskCategory;
///
/// Byte 4, bits 3 to 0
/// Media version
///
public byte PartVersion;
///
/// Byte 5, bits 7 to 4
/// 120mm if 0, 80mm if 1. If UMD (60mm) 0 also. Reserved rest of values
///
public DVDSize DiscSize;
///
/// Byte 5, bits 3 to 0
/// Maximum data rate
///
public DVDMaxTransfer MaximumRate;
///
/// Byte 6, bit 7
/// Reserved
///
public bool Reserved3;
///
/// Byte 6, bits 6 to 5
/// Number of layers
///
public byte Layers;
///
/// Byte 6, bit 4
/// Track path
///
public bool TrackPath;
///
/// Byte 6, bits 3 to 0
/// Layer type
///
public DVDLayerTypes LayerType;
///
/// Byte 7, bits 7 to 4
/// Linear density field
///
public DVDLinearDensity LinearDensity;
///
/// Byte 7, bits 3 to 0
/// Track density field
///
public DVDTrackDensity TrackDensity;
///
/// Bytes 8 to 11
/// PSN where Data Area starts
///
public UInt32 DataAreaStartPSN;
///
/// Bytes 12 to 15
/// PSN where Data Area ends
///
public UInt32 DataAreaEndPSN;
///
/// Bytes 16 to 19
/// PSN where Data Area ends in Layer 0
///
public UInt32 Layer0EndPSN;
///
/// Byte 20, bit 7
/// True if BCA exists. GC/Wii discs do not have this bit set, but there is a BCA, making it unreadable in normal DVD drives
///
public bool BCA;
///
/// Byte 20, bits 6 to 0
/// Reserved
///
public byte Reserved4;
#endregion PFI common to all
#region UMD PFI
///
/// Bytes 21 to 22
/// UMD only, media attribute, application-defined, part of media specific in rest of discs
///
public UInt16 MediaAttribute;
#endregion UMD PFI
#region DVD-RAM PFI
///
/// Byte 36
/// Disc type, respecting case recordability
///
public DVDRAMDiscType DiscType;
#region DVD-RAM PFI
#region DVD-RAM PFI, Version 0001b
///
/// Byte 52
/// Byte 504 in Version 0110b
/// Linear velocity, in tenths of m/s
///
public byte Velocity;
///
/// Byte 53
/// Byte 505 in Version 0110b
/// Read power on disk surface, tenths of mW
///
public byte ReadPower;
///
/// Byte 54
/// Byte 507 in Version 0110b
/// Peak power on disk surface for recording land tracks
///
public byte PeakPower;
///
/// Byte 55
/// Bias power on disk surface for recording land tracks
///
public byte BiasPower;
///
/// Byte 56
/// First pulse starting time for recording on land tracks, ns
///
public byte FirstPulseStart;
///
/// Byte 57
/// Byte 515 in Version 0110b
/// First pulse ending time for recording on land tracks
///
public byte FirstPulseEnd;
///
/// Byte 58
/// Byte 518 in Version 0110b
/// Multiple-pulse duration time for recording on land tracks
///
public byte MultiplePulseDuration;
///
/// Byte 59
/// Byte 519 in Version 0110b
/// Last pulse starting time for recording on land tracks
///
public byte LastPulseStart;
///
/// Byte 60
/// Las pulse ending time for recording on land tracks
///
public byte LastPulseEnd;
///
/// Byte 61
/// Bias power duration for recording on land tracks
///
public byte BiasPowerDuration;
///
/// Byte 62
/// Byte 511 on Version 0110b
/// Peak power for recording on groove tracks
///
public byte PeakPowerGroove;
///
/// Byte 63
/// Bias power for recording on groove tracks
///
public byte BiasPowerGroove;
///
/// Byte 64
/// First pulse starting time on groove tracks
///
public byte FirstPulseStartGroove;
///
/// Byte 65
/// First pulse ending time on groove tracks
///
public byte FirstPulseEndGroove;
///
/// Byte 66
/// Multiple-pulse duration time on groove tracks
///
public byte MultiplePulseDurationGroove;
///
/// Byte 67
/// Last pulse starting time on groove tracks
///
public byte LastPulseStartGroove;
///
/// Byte 68
/// Last pulse ending time on groove tracks
///
public byte LastPulseEndGroove;
///
/// Byte 69
/// Bias power duration for recording on groove tracks
///
public byte BiasPowerDurationGroove;
#endregion DVD-RAM PFI, Version 0001b
#region DVD-R PFI, DVD-RW PFI
///
/// Bytes 36 to 39
/// Sector number of the first sector of the current Border Out
///
public UInt32 CurrentBorderOutSector;
///
/// Bytes 40 to 43
/// Sector number of the first sector of the next Border In
///
public UInt32 NextBorderInSector;
#endregion DVD-R PFI, DVD-RW PFI
#region DVD+RW PFI
///
/// Byte 36
/// Linear velocities
/// 0 = CLV from 4,90 m/s to 6,25 m/s
/// 1 = CAV from 3,02 m/s to 7,35 m/s
///
public UInt32 RecordingVelocity;
///
/// Byte 37
/// Maximum read power in milliwatts at maximum velocity
/// mW = 20 * (value - 1)
///
public UInt32 ReadPowerMaxVelocity;
///
/// Byte 38
/// Indicative value of Ptarget in mW at maximum velocity
///
public UInt32 PIndMaxVelocity;
///
/// Byte 39
/// Peak power multiplication factor at maximum velocity
///
public UInt32 PMaxVelocity;
///
/// Byte 40
/// Bias1/write power ration at maximum velocity
///
public UInt32 E1MaxVelocity;
///
/// Byte 41
/// Bias2/write power ration at maximum velocity
///
public UInt32 E2MaxVelocity;
///
/// Byte 42
/// Target value for γ, γtarget at the maximum velocity
///
public UInt32 YTargetMaxVelocity;
///
/// Byte 43
/// Maximum read power in milliwatts at reference velocity (4,90 m/s)
/// mW = 20 * (value - 1)
///
public UInt32 ReadPowerRefVelocity;
///
/// Byte 44
/// Indicative value of Ptarget in mW at reference velocity (4,90 m/s)
///
public UInt32 PIndRefVelocity;
///
/// Byte 45
/// Peak power multiplication factor at reference velocity (4,90 m/s)
///
public UInt32 PRefVelocity;
///
/// Byte 46
/// Bias1/write power ration at reference velocity (4,90 m/s)
///
public UInt32 E1RefVelocity;
///
/// Byte 47
/// Bias2/write power ration at reference velocity (4,90 m/s)
///
public UInt32 E2RefVelocity;
///
/// Byte 48
/// Target value for γ, γtarget at the reference velocity (4,90 m/s)
///
public UInt32 YTargetRefVelocity;
///
/// Byte 49
/// Maximum read power in milliwatts at minimum velocity
/// mW = 20 * (value - 1)
///
public UInt32 ReadPowerMinVelocity;
///
/// Byte 50
/// Indicative value of Ptarget in mW at minimum velocity
///
public UInt32 PIndMinVelocity;
///
/// Byte 51
/// Peak power multiplication factor at minimum velocity
///
public UInt32 PMinVelocity;
///
/// Byte 52
/// Bias1/write power ration at minimum velocity
///
public UInt32 E1MinVelocity;
///
/// Byte 53
/// Bias2/write power ration at minimum velocity
///
public UInt32 E2MinVelocity;
///
/// Byte 54
/// Target value for γ, γtarget at the minimum velocity
///
public UInt32 YTargetMinVelocity;
#endregion DVD+RW PFI
#region DVD-RAM PFI, version 0110b
///
/// Byte 506, bit 7
/// Mode of adaptative write pulse control
///
public bool AdaptativeWritePulseControlFlag;
///
/// Byte 508
/// Bias power 1 on disk surface for recording land tracks
///
public byte BiasPower1;
///
/// Byte 509
/// Bias power 2 on disk surface for recording land tracks
///
public byte BiasPower2;
///
/// Byte 510
/// Bias power 3 on disk surface for recording land tracks
///
public byte BiasPower3;
///
/// Byte 512
/// Bias power 1 on disk surface for recording groove tracks
///
public byte BiasPower1Groove;
///
/// Byte 513
/// Bias power 2 on disk surface for recording groove tracks
///
public byte BiasPower2Groove;
///
/// Byte 514
/// Bias power 3 on disk surface for recording groove tracks
///
public byte BiasPower3Groove;
///
/// Byte 516
/// First pulse duration
///
public byte FirstPulseDuration;
///
/// Byte 520
/// Bias power 2 duration on land tracks at Velocity 1
///
public byte BiasPower2Duration;
///
/// Byte 521
/// First pulse start time, at Mark 3T and Leading Space 3T
///
public byte FirstPulseStart3TSpace3T;
///
/// Byte 522
/// First pulse start time, at Mark 4T and Leading Space 3T
///
public byte FirstPulseStart4TSpace3T;
///
/// Byte 523
/// First pulse start time, at Mark 5T and Leading Space 3T
///
public byte FirstPulseStart5TSpace3T;
///
/// Byte 524
/// First pulse start time, at Mark >5T and Leading Space 3T
///
public byte FirstPulseStartSpace3T;
///
/// Byte 525
/// First pulse start time, at Mark 3T and Leading Space 4T
///
public byte FirstPulseStart3TSpace4T;
///
/// Byte 526
/// First pulse start time, at Mark 4T and Leading Space 4T
///
public byte FirstPulseStart4TSpace4T;
///
/// Byte 527
/// First pulse start time, at Mark 5T and Leading Space 4T
///
public byte FirstPulseStart5TSpace4T;
///
/// Byte 528
/// First pulse start time, at Mark >5T and Leading Space 4T
///
public byte FirstPulseStartSpace4T;
///
/// Byte 529
/// First pulse start time, at Mark 3T and Leading Space 5T
///
public byte FirstPulseStart3TSpace5T;
///
/// Byte 530
/// First pulse start time, at Mark 4T and Leading Space 5T
///
public byte FirstPulseStart4TSpace5T;
///
/// Byte 531
/// First pulse start time, at Mark 5T and Leading Space 5T
///
public byte FirstPulseStart5TSpace5T;
///
/// Byte 532
/// First pulse start time, at Mark >5T and Leading Space 5T
///
public byte FirstPulseStartSpace5T;
///
/// Byte 533
/// First pulse start time, at Mark 3T and Leading Space >5T
///
public byte FirstPulseStart3TSpace;
///
/// Byte 534
/// First pulse start time, at Mark 4T and Leading Space >5T
///
public byte FirstPulseStart4TSpace;
///
/// Byte 535
/// First pulse start time, at Mark 5T and Leading Space >5T
///
public byte FirstPulseStart5TSpace;
///
/// Byte 536
/// First pulse start time, at Mark >5T and Leading Space >5T
///
public byte FirstPulseStartSpace;
///
/// Byte 537
/// First pulse start time, at Mark 3T and Trailing Space 3T
///
public byte FirstPulse3TStartTSpace3T;
///
/// Byte 538
/// First pulse start time, at Mark 4T and Trailing Space 3T
///
public byte FirstPulse4TStartTSpace3T;
///
/// Byte 539
/// First pulse start time, at Mark 5T and Trailing Space 3T
///
public byte FirstPulse5TStartTSpace3T;
///
/// Byte 540
/// First pulse start time, at Mark >5T and Trailing Space 3T
///
public byte FirstPulseStartTSpace3T;
///
/// Byte 541
/// First pulse start time, at Mark 3T and Trailing Space 4T
///
public byte FirstPulse3TStartTSpace4T;
///
/// Byte 542
/// First pulse start time, at Mark 4T and Trailing Space 4T
///
public byte FirstPulse4TStartTSpace4T;
///
/// Byte 543
/// First pulse start time, at Mark 5T and Trailing Space 4T
///
public byte FirstPulse5TStartTSpace4T;
///
/// Byte 544
/// First pulse start time, at Mark >5T and Trailing Space 4T
///
public byte FirstPulseStartTSpace4T;
///
/// Byte 545
/// First pulse start time, at Mark 3T and Trailing Space 5T
///
public byte FirstPulse3TStartTSpace5T;
///
/// Byte 546
/// First pulse start time, at Mark 4T and Trailing Space 5T
///
public byte FirstPulse4TStartTSpace5T;
///
/// Byte 547
/// First pulse start time, at Mark 5T and Trailing Space 5T
///
public byte FirstPulse5TStartTSpace5T;
///
/// Byte 548
/// First pulse start time, at Mark >5T and Trailing Space 5T
///
public byte FirstPulseStartTSpace5T;
///
/// Byte 549
/// First pulse start time, at Mark 3T and Trailing Space >5T
///
public byte FirstPulse3TStartTSpace;
///
/// Byte 550
/// First pulse start time, at Mark 4T and Trailing Space >5T
///
public byte FirstPulse4TStartTSpace;
///
/// Byte 551
/// First pulse start time, at Mark 5T and Trailing Space >5T
///
public byte FirstPulse5TStartTSpace;
///
/// Byte 552
/// First pulse start time, at Mark >5T and Trailing Space >5T
///
public byte FirstPulseStartTSpace;
///
/// Bytes 553 to 600
/// Disk manufacturer's name, space-padded
///
public string DiskManufacturer;
///
/// Bytes 601 to 616
/// Disk manufacturer's supplementary information
///
public string DiskManufacturerSupplementary;
///
/// Bytes 617 to 627
/// Write power control parameters
///
public byte[] WritePowerControlParams;
///
/// Byte 619
/// Ratio of peak power for land tracks to threshold peak power for land tracks
///
public byte PowerRatioLandThreshold;
///
/// Byte 620
/// Target asymmetry
///
public byte TargetAsymmetry;
///
/// Byte 621
/// Temporary peak power
///
public byte TemporaryPeakPower;
///
/// Byte 622
/// Temporary bias power 1
///
public byte TemporaryBiasPower1;
///
/// Byte 623
/// Temporary bias power 2
///
public byte TemporaryBiasPower2;
///
/// Byte 624
/// Temporary bias power 3
///
public byte TemporaryBiasPower3;
///
/// Byte 625
/// Ratio of peak power for groove tracks to threshold peak power for groove tracks
///
public byte PowerRatioGrooveThreshold;
///
/// Byte 626
/// Ratio of peak power for land tracks to threshold 6T peak power for land tracks
///
public byte PowerRatioLandThreshold6T;
///
/// Byte 627
/// Ratio of peak power for groove tracks to threshold 6T peak power for groove tracks
///
public byte PowerRatioGrooveThreshold6T;
#endregion DVD-RAM PFI, version 0110b
#region DVD+RW PFI and DVD+R PFI
///
/// Byte 20, bit 6
/// If set indicates data zone contains extended information for VCPS
///
public bool VCPS;
///
/// Byte 21
/// Indicates restricted usage disk
///
public byte ApplicationCode;
///
/// Byte 22
/// Bitmap of extended information block presence
///
public byte ExtendedInformation;
///
/// Bytes 23 to 30
/// Disk manufacturer ID, null-padded
///
public string DiskManufacturerID;
///
/// Bytes 31 to 33
/// Media type ID, null-padded
///
public string MediaTypeID;
///
/// Byte 34
/// Product revision number
///
public byte ProductRevision;
///
/// Byte 35
/// Indicates how many bytes, up to 63, are used in ADIP's PFI
///
public byte PFIUsedInADIP;
#region DVD+RW PFI and DVD+R PFI
#region DVD+RW PFI, version 0010b
///
/// Byte 55
/// Ttop first pulse duration
///
public byte FirstPulseDuration;
///
/// Byte 56
/// Tmp multi pulse duration
///
public byte MultiPulseDuration;
///
/// Byte 57
/// dTtop first pulse lead time
///
public byte FirstPulseLeadTime;
///
/// Byte 58
/// dTera erase lead time at reference velocity
///
public byte EraseLeadTimeRefVelocity;
///
/// Byte 59
/// dTera erase lead time at upper velocity
///
public byte EraseLeadTimeUppVelocity;
#endregion DVD+RW PFI, version 0010b
#region DVD+R PFI version 0001b and DVD+R DL PFI version 0001b
///
/// Byte 36
/// Primary recording velocity for the basic write strategy
///
public byte PrimaryVelocity;
///
/// Byte 37
/// Upper recording velocity for the basic write strategy
///
public byte UpperVelocity;
///
/// Byte 38
/// Wavelength λIND
///
public byte Wavelength;
///
/// Byte 39
/// Normalized write power dependency on wavelength (dP/dλ)/(PIND/λIND)
///
public byte NormalizedPowerDependency;
///
/// Byte 40
/// Maximum read power at primary velocity
///
public byte MaximumPowerAtPrimaryVelocity;
///
/// Byte 41
/// Pind at primary velocity
///
public byte PindAtPrimaryVelocity;
///
/// Byte 42
/// βtarget at primary velocity
///
public byte BtargetAtPrimaryVelocity;
///
/// Byte 43
/// Maximum read power at upper velocity
///
public byte MaximumPowerAtUpperVelocity;
///
/// Byte 44
/// Pind at primary velocity
///
public byte PindAtUpperVelocity;
///
/// Byte 45
/// βtarget at upper velocity
///
public byte BtargetAtUpperVelocity;
///
/// Byte 46
/// Ttop (≥4T) first pulse duration for cm∗ ≥4T at Primary velocity
///
public byte FirstPulseDuration4TPrimaryVelocity;
///
/// Byte 47
/// Ttop (=3T) first pulse duration for cm∗ =3T at Primary velocity
///
public byte FirstPulseDuration3TPrimaryVelocity;
///
/// Byte 48
/// Tmp multi pulse duration at Primary velocity
///
public byte MultiPulseDurationPrimaryVelocity;
///
/// Byte 49
/// Tlp last pulse duration at Primary velocity
///
public byte LastPulseDurationPrimaryVelocity;
///
/// Byte 50
/// dTtop (≥4T) first pulse lead time for cm∗ ≥4T at Primary velocity
///
public byte FirstPulseLeadTime4TPrimaryVelocity;
///
/// Byte 51
/// dTtop (=3T) first pulse lead time for cm∗ =3T at Primary velocity
///
public byte FirstPulseLeadTime3TPrimaryVelocity;
///
/// Byte 52
/// dTle first pulse leading edge shift for ps∗ =3T at Primary velocity
///
public byte FirstPulseLeadingEdgePrimaryVelocity;
///
/// Byte 53
/// Ttop (≥4T) first pulse duration for cm∗ ≥4T at Upper velocity
///
public byte FirstPulseDuration4TUpperVelocity;
///
/// Byte 54
/// Ttop (=3T) first pulse duration for cm∗ =3T at Upper velocity
///
public byte FirstPulseDuration3TUpperVelocity;
///
/// Byte 55
/// Tmp multi pulse duration at Upper velocity
///
public byte MultiPulseDurationUpperVelocity;
///
/// Byte 56
/// Tlp last pulse duration at Upper velocity
///
public byte LastPulseDurationUpperVelocity;
///
/// Byte 57
/// dTtop (≥4T) first pulse lead time for cm∗ ≥4T at Upper velocity
///
public byte FirstPulseLeadTime4TUpperVelocity;
///
/// Byte 58
/// dTtop (=3T) first pulse lead time for cm∗ =3T at Upper velocity
///
public byte FirstPulseLeadTime3TUpperVelocity;
///
/// Byte 59
/// dTle first pulse leading edge shift for ps∗ =3T at Upper velocity
///
public byte FirstPulseLeadingEdgeUpperVelocity;
#endregion DVD+R PFI version 0001b and DVD+R DL PFI version 0001b
#region DVD+R DL PFI version 0001b
///
/// Byte 34, bits 7 to 6
///
public DVDLayerStructure LayerStructure;
#endregion DVD+R DL PFI version 0001b
#region DVD+RW DL PFI
///
/// Byte 36
/// Primary recording velocity for the basic write strategy
///
public byte PrimaryVelocity;
///
/// Byte 37
/// Maximum read power at Primary velocity
///
public byte MaxReadPowerPrimaryVelocity;
///
/// Byte 38
/// PIND at Primary velocity
///
public byte PindPrimaryVelocity;
///
/// Byte 39
/// ρ at Primary velocity
///
public byte PPrimaryVelocity;
///
/// Byte 40
/// ε1 at Primary velocity
///
public byte E1PrimaryVelocity;
///
/// Byte 41
/// ε2 at Primary velocity
///
public byte E2PrimaryVelocity;
///
/// Byte 42
/// γtarget at Primary velocity
///
public byte YtargetPrimaryVelocity;
///
/// Byte 43
/// β optimum at Primary velocity
///
public byte BOptimumPrimaryVelocity;
///
/// Byte 46
/// Ttop first pulse duration
///
public byte TFirstPulseDuration;
///
/// Byte 47
/// Tmp multi pulse duration
///
public byte TMultiPulseDuration;
///
/// Byte 48
/// dTtop first pulse lead/lag time for any runlength ≥ 4T
///
public byte FirstPulseLeadTimeAnyRun;
///
/// Byte 49
/// dTtop,3 first pulse lead/lag time for runlengths = 3T
///
public byte FirstPulseLeadTimeRun3T;
///
/// Byte 50
/// dTlp last pulse lead/lag time for any runlength ≥ 5T
///
public byte LastPulseLeadTimeAnyRun;
///
/// Byte 51
/// dTlp,3 last pulse lead/lag time for runlengths = 3T
///
public byte LastPulseLeadTime3T;
///
/// Byte 52
/// dTlp,4 last pulse lead/lag time for runlengths = 4T
///
public byte LastPulseLeadTime4T;
///
/// Byte 53
/// dTera erase lead/lag time when preceding mark length ≥ 5T
///
public byte ErasePulseLeadTimeAny;
///
/// Byte 54
/// dTera,3 erase lead/lag time when preceding mark length = 3T
///
public byte ErasePulseLeadTime3T;
///
/// Byte 55
/// dTera,4 erase lead/lag time when preceding mark length = 4T
///
public byte ErasePulseLeadTime4T;
#endregion DVD+RW DL PFI
#region DVD-R DL PFI and DVD-RW DL PFI
///
/// Byte 21
/// Maximum recording speed
///
public DVDRecordingSpeed MaxRecordingSpeed;
///
/// Byte 22
/// Minimum recording speed
///
public DVDRecordingSpeed MinRecordingSpeed;
///
/// Byte 23
/// Another recording speed
///
public DVDRecordingSpeed RecordingSpeed1;
///
/// Byte 24
/// Another recording speed
///
public DVDRecordingSpeed RecordingSpeed2;
///
/// Byte 25
/// Another recording speed
///
public DVDRecordingSpeed RecordingSpeed3;
///
/// Byte 26
/// Another recording speed
///
public DVDRecordingSpeed RecordingSpeed4;
///
/// Byte 27
/// Another recording speed
///
public DVDRecordingSpeed RecordingSpeed5;
///
/// Byte 28
/// Another recording speed
///
public DVDRecordingSpeed RecordingSpeed6;
///
/// Byte 29
/// Another recording speed
///
public DVDRecordingSpeed RecordingSpeed7;
///
/// Byte 30
/// Class
///
public byte Class;
///
/// Byte 31
/// Extended version. 0x30 = ECMA-382, 0x20 = ECMA-384
///
public byte ExtendedVersion;
///
/// Byte 36
/// Start sector number of current RMD in Extra Border Zone
///
public UInt32 CurrentRMDExtraBorderPSN;
///
/// Byte 40
/// Start sector number of Physical Format Information blocks in Extra Border Zone
///
public UInt32 PFIExtraBorderPSN;
///
/// Byte 44, bit 0
/// If NOT set, Control Data Zone is pre-recorded
///
public bool PreRecordedControlDataInv;
///
/// Byte 44 bit 1
/// Lead-in Zone is pre-recorded
///
public bool PreRecordedLeadIn;
///
/// Byte 44 bit 3
/// Lead-out Zone is pre-recorded
///
public bool PreRecordedLeadOut;
///
/// Byte 45 bits 0 to 3
/// AR characteristic of LPP on Layer 1
///
public byte ARCharLayer1;
///
/// Byte 45 bits 4 to 7
/// Tracking polarity on Layer 1
///
public byte TrackPolarityLayer1;
#endregion DVD-R DL PFI and DVD-RW DL PFI
}
}
public enum DVDCategory
{
///
/// DVD-ROM. Version 1 is ECMA-267 and ECMA-268.
///
DVDROM = 0,
///
/// DVD-RAM. Version 1 is ECMA-272. Version 6 is ECMA-330.
///
DVDRAM = 1,
///
/// DVD-R. Version 1 is ECMA-279. Version 5 is ECMA-359. Version 6 is ECMA-832.
///
DVDR = 2,
///
/// DVD-RW. Version 2 is ECMA-338. Version 3 is ECMA-384.
///
DVDRW = 3,
///
/// UMD. Version 0 is ECMA-365.
///
UMD = 8,
///
/// DVD+RW. Version 1 is ECMA-274. Version 2 is ECMA-337. Version 3 is ECMA-371.
///
DVDPRW = 9,
///
/// DVD+R. Version 1 is ECMA-349.
///
DVDPR = 10,
///
/// DVD+RW DL. Version 1 is ECMA-374.
///
DVDPRWDL = 13,
///
/// DVD+R DL. Version 1 is ECMA-364.
///
DVDPRDL = 14
}
public enum DVDSize
{
///
/// 120 mm
///
OneTwenty = 0,
///
/// 80 mm
///
Eighty = 1
}
public enum DVDMaxTransfer
{
///
/// 2,52 Mbit/s
///
Two = 0,
///
/// 5,04 Mbit/s
///
Five = 1,
///
/// 10,08 Mbit/s
///
Ten = 2,
///
/// No maximum transfer rate
///
Unspecified = 15
}
public enum DVDLayerTypes
{
ReadOnly = 1,
Recordable = 2,
Rewritable = 4
}
public enum DVDLinearDensity
{
///
/// 0,133 μm
///
One33 = 0,
///
/// 0,147 μm
///
One47 = 1,
///
/// 0,205 μm to 0,218 μm
///
Twenty5 = 2,
///
/// 0,140 μm to 0,148 μm
///
One40 = 4,
///
/// 0,176 μm
///
One76 = 8
}
public enum DVDTrackDensity
{
///
/// 0,74 μm
///
Seven4 = 0,
///
/// 0,80 μm
///
Eighty = 1,
///
/// 0,615 μm
///
Six15 = 2,
}
public enum DVDRAMDiscType
{
///
/// Shall not be recorded without a case
///
Cased = 0,
///
/// May be recorded without a case or within one
///
Uncased = 1
}
public enum DVDLayerStructure
{
Unspecified = 0,
InvertedStack = 1,
TwoP = 2,
Reserved = 3
}
public enum DVDRecordingSpeed
{
None = 0
Two = 0,
Four = 0x10,
Six = 0x20,
Eight = 0x30,
Ten = 0x40,
Twelve = 0x50
}
}