namespace MPF.Core.Data
{
///
///
public class PICDiscInformationUnit
{
#region Fields
#region Header
///
/// Disc Information Identifier "DI"
/// Emergency Brake Identifier "EB"
///
public string DiscInformationIdentifier { get; set; }
///
/// Disc Information Format
///
public byte DiscInformationFormat { get; set; }
///
/// Number of DI units in each DI block
///
public byte NumberOfUnitsInBlock { get; set; }
///
/// Should be 0x00
///
public byte Reserved0 { get; set; }
///
/// DI unit Sequence Number
///
public byte SequenceNumber { get; set; }
///
/// Number of bytes in use in this DI unit
///
public byte BytesInUse { get; set; }
///
/// Should be 0x00
///
public byte Reserved1 { get; set; }
#endregion
// TODO: Write models for the dependent contents, if possible
#region Body
///
/// Disc Type Identifier
/// = "BDO" for BD-ROM
/// = "BDU" for BD-ROM Ultra
/// = "BDW" for BD-RE
/// = "BDR" for BD-R
///
public string DiscTypeIdentifier { get; set; }
///
/// Disc Size/Class/Version
///
public byte DiscSizeClassVersion { get; set; }
///
/// DI Unit Format dependent contents
///
/// 52 bytes for BD-ROM, 100 bytes for BD-R/RE
public byte[] FormatDependentContents { get; set; }
#endregion
#region Trailer (BD-R/RE only)
///
/// Disc Manufacturer ID
///
/// 6 bytes
public byte[] DiscManufacturerID { get; set; }
///
/// Media Type ID
///
/// 3 bytes
public byte[] MediaTypeID { get; set; }
///
/// Time Stamp
///
public ushort TimeStamp { get; set; }
///
/// Product Revision Number
///
public byte ProductRevisionNumber { get; set; }
#endregion
#endregion
#region Constants
public const string DiscTypeIdentifierROM = "BDO";
public const string DiscTypeIdentifierROMUltra = "BDU";
public const string DiscTypeIdentifierReWritable = "BDW";
public const string DiscTypeIdentifierRecordable = "BDR";
#endregion
}
}