internal AdditionalWhitePointDescriptor(EDID edid, BitAwareReader reader, int offset, int internalOffset) : base(edid, reader, offset) { if (internalOffset == 0) { IsValid = Reader.ReadBytes(Offset, 5).SequenceEqual(FixedHeader); if (IsValid) { NextDescriptor = new AdditionalWhitePointDescriptor(edid, reader, offset, internalOffset + 5); } } else { IsValid = true; _internalOffset = internalOffset + 5; } }
internal StringDescriptor(EDID edid, BitAwareReader reader, int offset) : base(edid, reader, offset) { IsValid = true; if (Reader.ReadBytes(Offset, 5).SequenceEqual(MonitorNameHeader)) { Type = StringDescriptorType.MonitorName; } else if (Reader.ReadBytes(Offset, 5).SequenceEqual(MonitorSerialHeader)) { Type = StringDescriptorType.MonitorSerialNumber; } else if (Reader.ReadBytes(Offset, 5).SequenceEqual(UnspecifiedStringHeader)) { Type = StringDescriptorType.UnspecifiedText; } else { IsValid = false; } }
internal AdditionalWhitePointDescriptor(EDID edid, BitAwareReader reader, int offset) : this(edid, reader, offset, 0) { }
internal DetailedTimingDescriptor(EDID edid, BitAwareReader reader, int offset) : base(edid, reader, offset) { IsValid = Reader.ReadInt(Offset, 0, 2 * 8) != 0; }
internal BlockMapExtension(EDID edid, BitAwareReader reader, int offset) : base(edid, reader, offset) { IsValid = Type == ExtensionType.BlockMap; }
internal MonitorRangeLimitsDescriptor(EDID edid, BitAwareReader reader, int offset) : base(edid, reader, offset) { IsValid = Reader.ReadBytes(Offset, 5).SequenceEqual(FixedHeader); }
internal AdditionalStandardTimingDescriptor(EDID edid, BitAwareReader reader, int offset) : base(edid, reader, offset) { IsValid = Reader.ReadBytes(Offset, 5).SequenceEqual(FixedHeader); }
internal UnknownExtension(EDID edid, BitAwareReader reader, int offset) : base(edid, reader, offset) { }
internal ManufacturerDescriptor(EDID edid, BitAwareReader reader, int offset) : base(edid, reader, offset) { IsValid = Reader.ReadBytes(Offset, 3).Any(b => b == 0) && (Reader.ReadByte(Offset + 3) < 16) && (Reader.ReadByte(Offset + 4) == 0); }