Пример #1
0
 /// <summary>
 /// Populates the property collection for this section.
 /// </summary>
 /// <param name="properties">Collection of properties of this section.</param>
 protected override void PopulateProperties(SectionPropertiesTable properties)
 {
     properties.Add(EedidProperty.Edid.ColorCharacteristics.Blue, Color(ColorManagementDataDescriptor.KnownColor.Blue));
     properties.Add(EedidProperty.Edid.ColorCharacteristics.Green, Color(ColorManagementDataDescriptor.KnownColor.Green));
     properties.Add(EedidProperty.Edid.ColorCharacteristics.Red, Color(ColorManagementDataDescriptor.KnownColor.Red));
     properties.Add(EedidProperty.Edid.ColorCharacteristics.White, Color(ColorManagementDataDescriptor.KnownColor.White));
 }
Пример #2
0
 /// <summary>
 /// Populates the property collection for this section.
 /// </summary>
 /// <param name="properties">Collection of properties of this section.</param>
 protected override void PopulateProperties(SectionPropertiesTable properties)
 {
     properties.Add(EedidProperty.Edid.DataBlock.Definition.ColorManagementData.VersionNumber, VersionNumber);
     properties.Add(EedidProperty.Edid.DataBlock.Definition.ColorManagementData.Red, Color(KnownColor.Red));
     properties.Add(EedidProperty.Edid.DataBlock.Definition.ColorManagementData.Green, Color(KnownColor.Green));
     properties.Add(EedidProperty.Edid.DataBlock.Definition.ColorManagementData.Blue, Color(KnownColor.Blue));
 }
Пример #3
0
        /// <summary>
        /// Populates the property collection for this section.
        /// </summary>
        /// <param name="properties">Collection of properties of this section.</param>
        protected override void PopulateProperties(SectionPropertiesTable properties)
        {
            ExtendedTag extendedTag = (ExtendedTag)RawData[0x01];

            switch (extendedTag)
            {
            case ExtendedTag.Colorimetry:
                ColorimetryDataBlock colorimetryDataBlock = new ColorimetryDataBlock(RawData);
                properties.Add(EedidProperty.Cea.DataBlock.Extended.Colorimetry.AdobeRGB, colorimetryDataBlock.AdobeRGB);
                properties.Add(EedidProperty.Cea.DataBlock.Extended.Colorimetry.AdobeYCC601, colorimetryDataBlock.AdobeYCC601);
                properties.Add(EedidProperty.Cea.DataBlock.Extended.Colorimetry.sYCC601, colorimetryDataBlock.SYCC601);
                properties.Add(EedidProperty.Cea.DataBlock.Extended.Colorimetry.xvYCC709, colorimetryDataBlock.XVYCC709);
                properties.Add(EedidProperty.Cea.DataBlock.Extended.Colorimetry.xvYCC601, colorimetryDataBlock.XVYCC601);
                break;

            case ExtendedTag.MiscellaneousAudioFields:
                break;

            case ExtendedTag.VendorSpecificAudio:
                break;

            case ExtendedTag.VendorSpecificVideo:
                break;

            case ExtendedTag.VideoCapability:
                VideoCapabilityDataBlock videoCapabilityDataBlock = new VideoCapabilityDataBlock(RawData);
                properties.Add(EedidProperty.Cea.DataBlock.Extended.VideoCapability.CEOverscan, GetCEOverUnderscan(videoCapabilityDataBlock.CEOverscan));
                properties.Add(EedidProperty.Cea.DataBlock.Extended.VideoCapability.ITOverscan, GetITOverUnderscan(videoCapabilityDataBlock.ITOverscan));
                properties.Add(EedidProperty.Cea.DataBlock.Extended.VideoCapability.PTOverscan, GetPTOverUnderscan(videoCapabilityDataBlock.PTOverscan));
                properties.Add(EedidProperty.Cea.DataBlock.Extended.VideoCapability.QuantizationRangeRGB, videoCapabilityDataBlock.QuantizationRangeRGB ? "Selectable" : "No Data");
                properties.Add(EedidProperty.Cea.DataBlock.Extended.VideoCapability.QuantizationRangeYCC, videoCapabilityDataBlock.QuantizationRangeYCC ? "Selectable" : "No Data");
                break;
            }
        }
Пример #4
0
        /// <summary>
        /// Populates the property collection for this section.
        /// </summary>
        /// <param name="properties">Collection of properties of this section.</param>
        protected override void PopulateProperties(SectionPropertiesTable properties)
        {
            properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.ProductIdentification.Manufacturer,
                           Version >= 0x20
                    ? Operations.GetManufacturer(RawData.ToArray().Extract(0x03, 0x03))
                    : $"{RawData[0x03]}{RawData[0x04]}{RawData[0x05]}");

            properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.ProductIdentification.ProductIdCode, ProductIdCode);
            properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.ProductIdentification.SerialNumber, SerialNumber);
            properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.ProductIdentification.WeekOfManufactureOrModelTag, WeekOfManufactureOrModelTag);
            properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.ProductIdentification.YearOfManufactureOrModelYear, YearOfManufactureOrModelYear);

            var modelYearStrategy = WeekOfManufactureOrModelTag == 0xff || WeekOfManufactureOrModelTag == 0x00 ? KnownModelYearStrategy.ModelYear : KnownModelYearStrategy.YearOfManufacture;

            properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.ProductIdentification.ModelYearStrategy, modelYearStrategy);

            if (modelYearStrategy == KnownModelYearStrategy.ModelYear)
            {
                properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.ProductIdentification.ManufactureDate, 2000 + YearOfManufactureOrModelYear);
            }
            else
            {
                properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.ProductIdentification.ManufactureDate, $"week {WeekOfManufactureOrModelTag} of {2000 + YearOfManufactureOrModelYear}");
            }

            if (ProductNameSize == 0x00)
            {
                return;
            }

            if (ProductNameSize > 0x01 && ProductNameSize <= 0xec)
            {
                properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.ProductIdentification.ProductName, Encoding.Default.GetString(ProductNameData));
            }
        }
Пример #5
0
 /// <summary>
 /// Populates the property collection for this section.
 /// </summary>
 /// <param name="properties">Collection of properties of this section.</param>
 protected override void PopulateProperties(SectionPropertiesTable properties)
 {
     properties.Add(EedidProperty.DisplayID.General.Version, Version);
     properties.Add(EedidProperty.DisplayID.General.Revision, Revision);
     properties.Add(EedidProperty.DisplayID.General.ExtensionCount, ExtensionCount);
     properties.Add(EedidProperty.DisplayID.General.DisplayProduct, GetDisplayProduct(DisplayProductType, Version));
 }
Пример #6
0
        /// <summary>
        /// Populates the property collection for this section.
        /// </summary>
        /// <param name="properties">Collection of properties of this section.</param>
        protected override void PopulateProperties(SectionPropertiesTable properties)
        {
            properties.Add(EedidProperty.Edid.Vendor.IdManufacturerName, IdManufacturerName);
            properties.Add(EedidProperty.Edid.Vendor.IdProductCode, IdProductCode);

            var idSerialNumber = IdSerialNumber;

            if (idSerialNumber != 0x0000)
            {
                properties.Add(EedidProperty.Edid.Vendor.IdSerialNumber, (int?)IdSerialNumber);
            }

            properties.Add(EedidProperty.Edid.Vendor.WeekOfManufactureOrModelYear, WeekOfManufactureOrModelYearFlag);
            properties.Add(EedidProperty.Edid.Vendor.YearOfManufactureOrModelYear, YearOfManufactureOrModelYear);
            var modelYearStrategy = WeekOfManufactureOrModelYearFlag == 0xff || WeekOfManufactureOrModelYearFlag == 0x00 ? KnownModelYearStrategy.ModelYear : KnownModelYearStrategy.YearOfManufacture;

            properties.Add(EedidProperty.Edid.Vendor.ModelYearStrategy, modelYearStrategy);

            if (modelYearStrategy == KnownModelYearStrategy.ModelYear)
            {
                properties.Add(EedidProperty.Edid.Vendor.ManufactureDate, 1990 + YearOfManufactureOrModelYear);
            }
            else
            {
                properties.Add(EedidProperty.Edid.Vendor.ManufactureDate, $"week {WeekOfManufactureOrModelYearFlag} of {1990 + YearOfManufactureOrModelYear}");
            }
        }
Пример #7
0
 /// <summary>
 /// Populates the property collection for this section.
 /// </summary>
 /// <param name="properties">Collection of properties of this section.</param>
 protected override void PopulateProperties(SectionPropertiesTable properties)
 {
     properties.Add(EedidProperty.Cea.MonitorSupport.IsDvtUnderscan, IsDvtUnderscan);
     properties.Add(EedidProperty.Cea.MonitorSupport.BasicAudioSupported, BasicAudioSupported);
     properties.Add(EedidProperty.Cea.MonitorSupport.YCbCr444Supported, YCbCr444Supported);
     properties.Add(EedidProperty.Cea.MonitorSupport.YCbCr422Supported, YCbCr422Supported);
 }
Пример #8
0
        /// <summary>
        /// Populates the property collection for this section.
        /// </summary>
        /// <param name="properties">Collection of properties of this section.</param>
        protected override void PopulateProperties(SectionPropertiesTable properties)
        {
            var audioAllocationDataBlock = GetAudioAllocationDataBlocks(RawData);

            var i = 0;
            var audioDescriptors = new List <SectionPropertiesTable>();

            foreach (var allocationDataBlock in audioAllocationDataBlock)
            {
                var descriptor = new SectionPropertiesTable
                {
                    { EedidProperty.Cea.DataBlock.Audio.Descriptor, (byte)i },
                    { EedidProperty.Cea.DataBlock.Audio.BitDepth, allocationDataBlock.BitDepth.ToList().AsReadOnly() },
                    { EedidProperty.Cea.DataBlock.Audio.Channels, allocationDataBlock.Channels },
                    { EedidProperty.Cea.DataBlock.Audio.Format, allocationDataBlock.Format },
                };

                if (allocationDataBlock.MaxBitrate != -1)
                {
                    descriptor.Add(EedidProperty.Cea.DataBlock.Audio.MaxBitrate, allocationDataBlock.MaxBitrate);
                }

                if (allocationDataBlock.SamplingFrequencies.Length > 0)
                {
                    descriptor.Add(EedidProperty.Cea.DataBlock.Audio.SamplingFrequencies, allocationDataBlock.SamplingFrequencies.ToList().AsReadOnly());
                }

                audioDescriptors.Add(descriptor);
                i++;
            }

            properties.Add(EedidProperty.Cea.DataBlock.Tags.Audio, audioDescriptors);
        }
Пример #9
0
 /// <summary>
 /// Populates the property collection for this section.
 /// </summary>
 /// <param name="properties">Collection of properties of this section.</param>
 protected override void PopulateProperties(SectionPropertiesTable properties)
 {
     properties.Add(EedidProperty.DI.DisplayCapabilitiesAndFeatureSupportSet.LegacyModes, GetLegacyModes(LegacyModes));
     properties.Add(EedidProperty.DI.DisplayCapabilitiesAndFeatureSupportSet.StereoVideo, GetStereoVideo(StereoVideo));
     properties.Add(EedidProperty.DI.DisplayCapabilitiesAndFeatureSupportSet.ScalerOnBoard, ScalerOnBoard);
     properties.Add(EedidProperty.DI.DisplayCapabilitiesAndFeatureSupportSet.ImageCentering, ImageCentering);
     properties.Add(EedidProperty.DI.DisplayCapabilitiesAndFeatureSupportSet.ConditionalUpdate, ConditionalUpdate);
     properties.Add(EedidProperty.DI.DisplayCapabilitiesAndFeatureSupportSet.InterlacedVideo, InterlacedVideo);
     properties.Add(EedidProperty.DI.DisplayCapabilitiesAndFeatureSupportSet.FrameLock, FrameLock);
     properties.Add(EedidProperty.DI.DisplayCapabilitiesAndFeatureSupportSet.FrameRateConversion, GetFrameRateConversion(FrameRateConversion));
     properties.Add(EedidProperty.DI.DisplayCapabilitiesAndFeatureSupportSet.VerticalFrequency, VerticalFrequency);
     properties.Add(EedidProperty.DI.DisplayCapabilitiesAndFeatureSupportSet.HorizontalFrequency, HorizontalFrequency);
     properties.Add(EedidProperty.DI.DisplayCapabilitiesAndFeatureSupportSet.DisplayScanOrientationType, GetDisplayScanOrientationType(DisplayScanOrientationType));
     properties.Add(EedidProperty.DI.DisplayCapabilitiesAndFeatureSupportSet.ScreenOrientation, GetScreenOrientation(ScreenOrientation));
     properties.Add(EedidProperty.DI.DisplayCapabilitiesAndFeatureSupportSet.ZeroPixelLocation, GetZeroPixelLocation(ZeroPixelLocation));
     properties.Add(EedidProperty.DI.DisplayCapabilitiesAndFeatureSupportSet.ScanDirection, GetScanDirection(ScanDirection));
     properties.Add(EedidProperty.DI.DisplayCapabilitiesAndFeatureSupportSet.StandaloneProjector, StandaloneProjector);
     properties.Add(EedidProperty.DI.DisplayCapabilitiesAndFeatureSupportSet.DefaultColorLuminanceDecoding, GetDefaultColorLuminanceDecoding(DefaultColorLuminanceDecoding));
     properties.Add(EedidProperty.DI.DisplayCapabilitiesAndFeatureSupportSet.PreferredColorLuminanceDecoder, GetPreferredColorLuminanceDecoder(PreferredColorLuminanceDecoder));
     properties.Add(EedidProperty.DI.DisplayCapabilitiesAndFeatureSupportSet.ColorLuminanceDecodingCapabilities, GetColorLuminanceDecodingCapabilities(ColorLuminanceDecodingCapabilities));
     properties.Add(EedidProperty.DI.DisplayCapabilitiesAndFeatureSupportSet.Dithering, Dithering);
     properties.Add(EedidProperty.DI.DisplayCapabilitiesAndFeatureSupportSet.SupportedColorBitDepthSubChannel0Blue, SupportedColorBitDepthSubChannel0Blue);
     properties.Add(EedidProperty.DI.DisplayCapabilitiesAndFeatureSupportSet.SupportedColorBitDepthSubChannel1Green, SupportedColorBitDepthSubChannel1Green);
     properties.Add(EedidProperty.DI.DisplayCapabilitiesAndFeatureSupportSet.SupportedColorBitDepthSubChannel2Red, SupportedColorBitDepthSubChannel2Red);
     properties.Add(EedidProperty.DI.DisplayCapabilitiesAndFeatureSupportSet.SupportedColorBitDepthSubChannel0CbPb, SupportedColorBitDepthSubChannel0CbPb);
     properties.Add(EedidProperty.DI.DisplayCapabilitiesAndFeatureSupportSet.SupportedColorBitDepthSubChannel1Y, SupportedColorBitDepthSubChannel1Y);
     properties.Add(EedidProperty.DI.DisplayCapabilitiesAndFeatureSupportSet.SupportedColorBitDepthSubChannel2CrPr, SupportedColorBitDepthSubChannel2CrPr);
     properties.Add(EedidProperty.DI.DisplayCapabilitiesAndFeatureSupportSet.AspectRatioConversionModes, GetAspectRatioConversionModes(AspectRatioConversionModes));
     properties.Add(EedidProperty.DI.DisplayCapabilitiesAndFeatureSupportSet.PacketizedDigitalVideoSupportInformation, PacketizedDigitalVideoSupportInformation);
 }
Пример #10
0
 /// <summary>
 /// Populates the property collection for this section.
 /// </summary>
 /// <param name="properties">Collection of properties of this section.</param>
 protected override void PopulateProperties(SectionPropertiesTable properties)
 {
     properties.Add(EedidProperty.Edid.DataBlock.Definition.DisplayRangeLimits.MinimumVerticalRate, MinimumVerticalRate);
     properties.Add(EedidProperty.Edid.DataBlock.Definition.DisplayRangeLimits.MaximumVerticalRate, MaximumVerticalRate);
     properties.Add(EedidProperty.Edid.DataBlock.Definition.DisplayRangeLimits.MinimumHorizontalRate, MinimumHorizontalRate);
     properties.Add(EedidProperty.Edid.DataBlock.Definition.DisplayRangeLimits.MaximumHorizontalRate, MaximumHorizontalRate);
     properties.Add(EedidProperty.Edid.DataBlock.Definition.DisplayRangeLimits.MaximumPixelClock, MaximumPixelClock);
 }
Пример #11
0
 /// <summary>
 /// Populates the property collection for this section.
 /// </summary>
 /// <param name="properties">Collection of properties of this section.</param>
 protected override void PopulateProperties(SectionPropertiesTable properties)
 {
     properties.Add(EedidProperty.Edid.DataBlock.Definition.Cvt3ByteCode.VersionNumber, VersionNumber);
     properties.Add(EedidProperty.Edid.DataBlock.Definition.Cvt3ByteCode.Priority1, Priority(KnownCvt3ByteCodePriority.Priority1));
     properties.Add(EedidProperty.Edid.DataBlock.Definition.Cvt3ByteCode.Priority2, Priority(KnownCvt3ByteCodePriority.Priority2));
     properties.Add(EedidProperty.Edid.DataBlock.Definition.Cvt3ByteCode.Priority3, Priority(KnownCvt3ByteCodePriority.Priority3));
     properties.Add(EedidProperty.Edid.DataBlock.Definition.Cvt3ByteCode.Priority4, Priority(KnownCvt3ByteCodePriority.Priority4));
 }
Пример #12
0
 /// <summary>
 /// Populates the property collection for this section.
 /// </summary>
 /// <param name="properties">Collection of properties of this section.</param>
 protected override void PopulateProperties(SectionPropertiesTable properties)
 {
     properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DynamicVideoTimingRangeLimits.MinimumPixelClock, MinimumPixelClock);
     properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DynamicVideoTimingRangeLimits.MaximumPixelClock, MaximumPixelClock);
     properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DynamicVideoTimingRangeLimits.MinimumVerticalRefreshRate, MinimumVerticalRefreshRate);
     properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DynamicVideoTimingRangeLimits.MaximumVerticalRefreshRate, MaximumVerticalRefreshRate);
     properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DynamicVideoTimingRangeLimits.SupportSeamlessDynamicVideoTiming, SupportSeamlessDynamicVideoTiming);
 }
 /// <summary>
 /// Populates the property collection for this section.
 /// </summary>
 /// <param name="properties">Collection of properties of this section.</param>
 protected override void PopulateProperties(SectionPropertiesTable properties)
 {
     properties.Add(EedidProperty.Edid.DataBlock.Definition.StandardTimingIdentifier.Timing9, Timing(KnownStandardTiming.Timing9));
     properties.Add(EedidProperty.Edid.DataBlock.Definition.StandardTimingIdentifier.Timing10, Timing(KnownStandardTiming.Timing10));
     properties.Add(EedidProperty.Edid.DataBlock.Definition.StandardTimingIdentifier.Timing11, Timing(KnownStandardTiming.Timing11));
     properties.Add(EedidProperty.Edid.DataBlock.Definition.StandardTimingIdentifier.Timing12, Timing(KnownStandardTiming.Timing12));
     properties.Add(EedidProperty.Edid.DataBlock.Definition.StandardTimingIdentifier.Timing13, Timing(KnownStandardTiming.Timing13));
     properties.Add(EedidProperty.Edid.DataBlock.Definition.StandardTimingIdentifier.Timing14, Timing(KnownStandardTiming.Timing14));
 }
Пример #14
0
        /// <summary>
        /// Populates the property collection for this section.
        /// </summary>
        /// <param name="properties">Collection of properties of this section.</param>
        protected override void PopulateProperties(SectionPropertiesTable properties)
        {
            var descriptors = DataBlockDescriptorsData().ToList();

            properties.Add(EedidProperty.Edid.DataBlock.Descriptor1, descriptors[0]);
            properties.Add(EedidProperty.Edid.DataBlock.Descriptor2, descriptors[1]);
            properties.Add(EedidProperty.Edid.DataBlock.Descriptor3, descriptors[2]);
            properties.Add(EedidProperty.Edid.DataBlock.Descriptor4, descriptors[3]);
        }
Пример #15
0
        /// <summary>
        /// Populates the property collection for this section.
        /// </summary>
        /// <param name="properties">Collection of properties of this section.</param>
        protected override void PopulateProperties(SectionPropertiesTable properties)
        {
            properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DisplayParameters.HorizontalImageSize, HorizontalImageSize);
            properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DisplayParameters.VerticalImageSize, VerticalImageSize);
            properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DisplayParameters.HorizontalPixelCount, HorizontalPixelCount);
            properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DisplayParameters.VerticalPixelCount, VerticalPixelCount);

            if (Version >= 0x20)
            {
                properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DisplayParameters.Features.ScanOrientation, GetScanOrientation(ScanOrientation));
                properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DisplayParameters.Features.LuminanceInformation, GetLuminanceInformation(LuminanceInformation));
                properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DisplayParameters.Features.ColorInformationCie1931, ColorInformationCie1931);
                properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DisplayParameters.Features.AudioSpeakersIntegrated, AudioSpeakersIntegrated);
                properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DisplayParameters.PrimaryColor1, CalculateNativeColorCromaticity(RawPrimaryColor1.ToArray()));
                properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DisplayParameters.PrimaryColor2, CalculateNativeColorCromaticity(RawPrimaryColor2.ToArray()));
                properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DisplayParameters.PrimaryColor3, CalculateNativeColorCromaticity(RawPrimaryColor3.ToArray()));
                properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DisplayParameters.WhitePoint, CalculateNativeColorCromaticity(RawWhiteColor.ToArray()));

                var nativeMaximumLuninanceFullCoverage = NativeMaximumLuninanceFullCoverage.FromIEEE754();
                if (nativeMaximumLuninanceFullCoverage >= 0.0f)
                {
                    properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DisplayParameters.NativeMaximumLuninanceFullCoverage, nativeMaximumLuninanceFullCoverage);
                }

                var nativeMaximumLuninanceRectangularCoverage = NativeMaximumLuninanceRectangularCoverage.FromIEEE754();
                if (nativeMaximumLuninanceRectangularCoverage >= 0.0f)
                {
                    properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DisplayParameters.NativeMaximumLuninanceRectangularCoverage, nativeMaximumLuninanceRectangularCoverage);
                }

                var nativeMinimumLuninance = NativeMinimumLuninance.FromIEEE754();
                if (nativeMinimumLuninance >= 0.0f)
                {
                    properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DisplayParameters.NativeMinimumLuninance, nativeMinimumLuninance);
                }

                properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DisplayParameters.NativeColorDepth, GetNativeColorDepth(NativeColorDepth));
                properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DisplayParameters.DisplayDeviceTechnology, GetDisplayDeviceTechnology(DisplayDeviceTechnology));
                properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DisplayParameters.Gamma, NativeGamma);
            }
            else
            {
                properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DisplayParameters.Features.AudioSupportOnVideoInterface, AudioSupportOnVideoInterface);
                properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DisplayParameters.Features.SeparateAudioInputs, SeparateAudioInputs);
                properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DisplayParameters.Features.AudioInputOverride, AudioInputOverride);
                properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DisplayParameters.Features.VesaPowerManagementSupported, VesaPowerManagementSupported);
                properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DisplayParameters.Features.FixedTiming, FixedTiming);
                properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DisplayParameters.Features.FixedPixelFormat, FixedPixelFormat);
                properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DisplayParameters.Features.SupportAI, SupportAI);
                properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DisplayParameters.Features.DeInterlacing, DeInterlacing);
                properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DisplayParameters.Gamma, TransferCharacteristicGamma);
                properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DisplayParameters.AspectRatio, AspectRatio);
                properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DisplayParameters.DisplayOverallColorBitDepth, DisplayOverallColorBitDepth);
                properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DisplayParameters.DisplayDeviceColorBitDepth, DisplayDeviceColorBitDepth);
            }
        }
Пример #16
0
        /// <summary>
        /// Populates the property collection for this section.
        /// </summary>
        /// <param name="properties">Collection of properties of this section.</param>
        protected override void PopulateProperties(SectionPropertiesTable properties)
        {
            VendorDataBlock vendorAllocationDataBlock = new VendorDataBlock(RawData);

            properties.Add(EedidProperty.Cea.DataBlock.Vendor.IEEERegistrationIdentifier, vendorAllocationDataBlock.IEEERegistrationIdentifier);
            properties.Add(EedidProperty.Cea.DataBlock.Vendor.PhysicalAddress, vendorAllocationDataBlock.PhysicalAddress);
            properties.Add(EedidProperty.Cea.DataBlock.Vendor.Flags, vendorAllocationDataBlock.Flags);
            properties.Add(EedidProperty.Cea.DataBlock.Vendor.MaxClock, vendorAllocationDataBlock.MaxClock);
            properties.Add(EedidProperty.Cea.DataBlock.Vendor.VendorPayload, vendorAllocationDataBlock.PayLoad);
        }
Пример #17
0
        /// <summary>
        /// Populates the property collection for this section.
        /// </summary>
        /// <param name="properties">Collection of properties of this section.</param>
        protected override void PopulateProperties(SectionPropertiesTable properties)
        {
            if (Gamma != 0xff)
            {
                properties.Add(EedidProperty.Edid.DataBlock.Definition.ColorPointData.Item.Gamma, (double?)((Gamma + 100) / 100));
            }

            properties.Add(EedidProperty.Edid.DataBlock.Definition.ColorPointData.Item.Index, Number);
            properties.Add(EedidProperty.Edid.DataBlock.Definition.ColorPointData.Item.White, GetWhitePoint(WhiteXY, WhiteX, WhiteY));
        }
Пример #18
0
        /// <summary>
        /// Populates the property collection for this section.
        /// </summary>
        /// <param name="properties">Collection of properties of this section.</param>
        protected override void PopulateProperties(SectionPropertiesTable properties)
        {
            var shortDataBlocks = GetDataBlockCollection(RawData);

            foreach (var shortDataBlock in shortDataBlocks)
            {
                var key   = shortDataBlock.Tag.ToString();
                var exist = shortDataBlock.Tag != ShortDataBlockTag.ExtendedTag; // && properties.ContainsKey(key);

                if (exist)
                {
                    var propertiesToAdd = new SectionPropertiesTable();
                    switch (shortDataBlock.Tag)
                    {
                    case ShortDataBlockTag.Audio:
                        var descriptor    = new ShortAudioDescriptorSection(shortDataBlock.RawData);
                        var hasProperties = descriptor.Properties.Any();
                        if (hasProperties)
                        {
                            propertiesToAdd.Add(EedidProperty.Cea.DataBlock.Tags.Audio, descriptor.Properties.FirstOrDefault().Value);
                        }
                        break;

                    case ShortDataBlockTag.Video:
                        propertiesToAdd.Add(EedidProperty.Cea.DataBlock.Tags.Video, new ShortVideoDescriptorSection(shortDataBlock.RawData).Properties);
                        break;

                    case ShortDataBlockTag.Vendor:
                        propertiesToAdd.Add(EedidProperty.Cea.DataBlock.Tags.Vendor, new ShortVendorDescriptorSection(shortDataBlock.RawData).Properties);
                        break;

                    case ShortDataBlockTag.Speaker:
                        propertiesToAdd.Add(EedidProperty.Cea.DataBlock.Tags.Speaker, new ShortSpeakerDescriptorSection(shortDataBlock.RawData).Properties);
                        break;

                    case ShortDataBlockTag.VESA:
                        propertiesToAdd.Add(EedidProperty.Cea.DataBlock.Tags.VESA, new ShortSpeakerDescriptorSection(shortDataBlock.RawData).Properties);
                        break;

                    case ShortDataBlockTag.ExtendedTag:
                        propertiesToAdd.Add(EedidProperty.Cea.DataBlock.Tags.Extended, new ShortExtendedTagDescriptorSection(shortDataBlock.RawData).Properties);
                        break;

                    default:
                        propertiesToAdd.Add(EedidProperty.Cea.DataBlock.Tags.Reserved, new ShortReservedDescriptorSection(shortDataBlock.RawData).Properties);
                        break;
                    }

                    foreach (var property in propertiesToAdd)
                    {
                        properties.Add(property);
                    }
                }
            }
        }
Пример #19
0
 /// <summary>
 /// Populates the property collection for this section.
 /// </summary>
 /// <param name="properties">Collection of properties of this section.</param>
 protected override void PopulateProperties(SectionPropertiesTable properties)
 {
     properties.Add(EedidProperty.Edid.DataBlock.Definition.Cvt3ByteCode.Item.AddressableVerticalLines, LogicHelper.Word(LowerAddressableLines, UpperAddressableLines));
     properties.Add(EedidProperty.Edid.DataBlock.Definition.Cvt3ByteCode.Item.AspectRatio, GetAspectRatio(AspectRatio));
     properties.Add(EedidProperty.Edid.DataBlock.Definition.Cvt3ByteCode.Item.PreferredVerticalRate, GetVerticalRate(PreferredVerticalRate));
     properties.Add(EedidProperty.Edid.DataBlock.Definition.Cvt3ByteCode.Item.SupportedVerticalRateAndBlanking.IsSupported50HzWithStandardBlanking, IsSupported50HzWithStandardBlanking);
     properties.Add(EedidProperty.Edid.DataBlock.Definition.Cvt3ByteCode.Item.SupportedVerticalRateAndBlanking.IsSupported60HzWithStandardBlanking, IsSupported60HzWithStandardBlanking);
     properties.Add(EedidProperty.Edid.DataBlock.Definition.Cvt3ByteCode.Item.SupportedVerticalRateAndBlanking.IsSupported75HzWithStandardBlanking, IsSupported75HzWithStandardBlanking);
     properties.Add(EedidProperty.Edid.DataBlock.Definition.Cvt3ByteCode.Item.SupportedVerticalRateAndBlanking.IsSupported85HzWithStandardBlanking, IsSupported85HzWithStandardBlanking);
     properties.Add(EedidProperty.Edid.DataBlock.Definition.Cvt3ByteCode.Item.SupportedVerticalRateAndBlanking.IsSupported60HzWithReducedBlanking, IsSupported60HzWithReducedBlanking);
 }
Пример #20
0
 /// <summary>
 /// Populates the property collection for this section.
 /// </summary>
 /// <param name="properties">Collection of properties of this section.</param>
 protected override void PopulateProperties(SectionPropertiesTable properties)
 {
     properties.Add(EedidProperty.Edid.StandardTimings.Timing1, Timing(KnownStandardTiming.Timing1));
     properties.Add(EedidProperty.Edid.StandardTimings.Timing2, Timing(KnownStandardTiming.Timing2));
     properties.Add(EedidProperty.Edid.StandardTimings.Timing3, Timing(KnownStandardTiming.Timing3));
     properties.Add(EedidProperty.Edid.StandardTimings.Timing4, Timing(KnownStandardTiming.Timing4));
     properties.Add(EedidProperty.Edid.StandardTimings.Timing5, Timing(KnownStandardTiming.Timing5));
     properties.Add(EedidProperty.Edid.StandardTimings.Timing6, Timing(KnownStandardTiming.Timing6));
     properties.Add(EedidProperty.Edid.StandardTimings.Timing7, Timing(KnownStandardTiming.Timing7));
     properties.Add(EedidProperty.Edid.StandardTimings.Timing8, Timing(KnownStandardTiming.Timing8));
 }
Пример #21
0
        /// <summary>
        /// Populates the property collection for this section.
        /// </summary>
        /// <param name="properties">Collection of properties of this section.</param>
        protected override void PopulateProperties(SectionPropertiesTable properties)
        {
            byte[] data = RawData.ToArray();
            properties.Add(EedidProperty.Edid.DataBlock.Definition.DummyData.OriginalData, Encoding.ASCII.GetString(data, 0x00, data.Length));

            //byte[] rawData = RawData.ToArray();
            //string originalString = Encoding.ASCII.GetString(rawData, 0x00, rawData.Length);
            //string printableString = new string(originalString.Where(c => !char.IsControl(c)).ToArray());

            //properties.Add(EedidProperty.Edid.DataBlock.Definition.DummyData.OriginalData, originalString);
            //properties.Add(EedidProperty.Edid.DataBlock.Definition.DummyData.PrintableData, printableString);
        }
Пример #22
0
 /// <summary>
 /// Populates the property collection for this section.
 /// </summary>
 /// <param name="properties">Collection of properties of this section.</param>
 protected override void PopulateProperties(SectionPropertiesTable properties)
 {
     properties.Add(EedidProperty.DI.DisplayDevice.SubPixelLayout, GetSubPixelLayout(SubPixelLayout));
     properties.Add(EedidProperty.DI.DisplayDevice.SubPixelConfiguration, GetSubPixelConfiguration(SubPixelConfiguration));
     properties.Add(EedidProperty.DI.DisplayDevice.SubPixelShape, GetSubPixelShape(SubPixelShape));
     properties.Add(EedidProperty.DI.DisplayDevice.HorizontalDotPixelPitch, HorizontalDotPixelPitch);
     properties.Add(EedidProperty.DI.DisplayDevice.VerticalDotPixelPitch, VerticalDotPixelPitch);
     properties.Add(EedidProperty.DI.DisplayDevice.FixedPixelFormat, MajorDisplayDeviceCharacteristics.CheckBit(Bits.Bit07));
     properties.Add(EedidProperty.DI.DisplayDevice.ViewDirection, GetViewDirection(ViewDirection));
     properties.Add(EedidProperty.DI.DisplayDevice.DisplayBackground, MajorDisplayDeviceCharacteristics.CheckBit(Bits.Bit04));
     properties.Add(EedidProperty.DI.DisplayDevice.PhysicalImplementation, GetPhysicalImplementation(PhysicalImplementation));
     properties.Add(EedidProperty.DI.DisplayDevice.DDC, MajorDisplayDeviceCharacteristics.CheckBit(Bits.Bit01));
 }
Пример #23
0
        /// <summary>
        /// Populates the property collection for this section.
        /// </summary>
        /// <param name="properties">Collection of properties of this section.</param>
        protected override void PopulateProperties(SectionPropertiesTable properties)
        {
            SpeakerDataBlock speakerAllocationDataBlock = new SpeakerDataBlock(RawData);

            properties.Add(EedidProperty.Cea.DataBlock.Speaker.FrontLeftRightHigh, speakerAllocationDataBlock.FrontLeftRightHigh);
            properties.Add(EedidProperty.Cea.DataBlock.Speaker.FrontLeftRightWide, speakerAllocationDataBlock.FrontLeftRightWide);
            properties.Add(EedidProperty.Cea.DataBlock.Speaker.RearLeftRightCenter, speakerAllocationDataBlock.RearLeftRearCenter);
            properties.Add(EedidProperty.Cea.DataBlock.Speaker.FrontLeftRightCenter, speakerAllocationDataBlock.FrontLeftRightCenter);
            properties.Add(EedidProperty.Cea.DataBlock.Speaker.RearCenter, speakerAllocationDataBlock.RearCenter);
            properties.Add(EedidProperty.Cea.DataBlock.Speaker.RearLeftRight, speakerAllocationDataBlock.RearLeftRight);
            properties.Add(EedidProperty.Cea.DataBlock.Speaker.FrontCenter, speakerAllocationDataBlock.FrontCenter);
            properties.Add(EedidProperty.Cea.DataBlock.Speaker.LFEChannel, speakerAllocationDataBlock.LFEChannel);
            properties.Add(EedidProperty.Cea.DataBlock.Speaker.FrontLeftRight, speakerAllocationDataBlock.FrontLeftRight);
            properties.Add(EedidProperty.Cea.DataBlock.Speaker.TopCenter, speakerAllocationDataBlock.TopCenter);
            properties.Add(EedidProperty.Cea.DataBlock.Speaker.FrontCenterHigh, speakerAllocationDataBlock.FrontCenterHigh);
        }
Пример #24
0
 /// <summary>
 /// Populates the property collection for this section.
 /// </summary>
 /// <param name="properties">Collection of properties of this section.</param>
 protected override void PopulateProperties(SectionPropertiesTable properties)
 {
     properties.Add(EedidProperty.Edid.DataBlock.Definition.DetailedTimingMode.PixelClock, PixelClock);
     properties.Add(EedidProperty.Edid.DataBlock.Definition.DetailedTimingMode.HorizontalResolution, HorizontalAddressableVideo);
     properties.Add(EedidProperty.Edid.DataBlock.Definition.DetailedTimingMode.HorizontalBlanking, HorizontalBlanking);
     properties.Add(EedidProperty.Edid.DataBlock.Definition.DetailedTimingMode.VerticalLines, VerticalLines);
     properties.Add(EedidProperty.Edid.DataBlock.Definition.DetailedTimingMode.VerticalBlanking, VerticalBlanking);
     properties.Add(EedidProperty.Edid.DataBlock.Definition.DetailedTimingMode.HorizontalFrontPorch, HorizontalFrontPorch);
     properties.Add(EedidProperty.Edid.DataBlock.Definition.DetailedTimingMode.HorizontalSyncPulseWidth, HorizontalSyncPulseWidth);
     properties.Add(EedidProperty.Edid.DataBlock.Definition.DetailedTimingMode.VerticalFrontPorch, VerticalFrontPorch);
     properties.Add(EedidProperty.Edid.DataBlock.Definition.DetailedTimingMode.VerticalSyncPulseWidth, VerticalSyncPulseWidth);
     properties.Add(EedidProperty.Edid.DataBlock.Definition.DetailedTimingMode.HorizontalImageSize, HorizontalAddresableVideoImageSize);
     properties.Add(EedidProperty.Edid.DataBlock.Definition.DetailedTimingMode.VerticalImageSize, VerticalAddresableVideoImageSize);
     properties.Add(EedidProperty.Edid.DataBlock.Definition.DetailedTimingMode.HorizontalBorder, HorizontalBorder);
     properties.Add(EedidProperty.Edid.DataBlock.Definition.DetailedTimingMode.VerticalBorder, VerticalBorder);
     properties.Add(EedidProperty.Edid.DataBlock.Definition.DetailedTimingMode.IsInterlaced, IsInterlaced);
     properties.Add(EedidProperty.Edid.DataBlock.Definition.DetailedTimingMode.StereoViewingSupport, GetStereoViewingSupport(StereoViewingSupport));
     properties.Add(EedidProperty.Edid.DataBlock.Definition.DetailedTimingMode.SyncSignalType, SyncSignalType);
 }
Пример #25
0
 /// <summary>
 /// Populates the property collection for this section.
 /// </summary>
 /// <param name="properties">Collection of properties of this section.</param>
 protected override void PopulateProperties(SectionPropertiesTable properties)
 {
     properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DetailedTimingTypeI.Timing.PixelClock, PixelClock);
     properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DetailedTimingTypeI.Timing.AspectRatio, GetAspectRatio(AspectRatio));
     properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DetailedTimingTypeI.Timing.InterfaceFrameScanningType, GetInterfaceFrameScanningType(Interlaced));
     properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DetailedTimingTypeI.Timing.Stereo3DSupport, GetStereo3DSupport(Stereo3DSupport));
     properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DetailedTimingTypeI.Timing.IsPreferredTiming, IsPreferredTiming);
     properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DetailedTimingTypeI.Timing.HorizontalActiveImage, HorizontalActiveImagePixels);
     properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DetailedTimingTypeI.Timing.HorizontalBlankPixels, HorizontalBlankPixels);
     properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DetailedTimingTypeI.Timing.HorizontalFrontPorchOffset, HorizontalFrontPorchOffset);
     properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DetailedTimingTypeI.Timing.HorizontalSyncPolarity, GetSyncPolarity(IsHorizontalPositiveSyncPolarity));
     properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DetailedTimingTypeI.Timing.HorizontalSyncWidth, HorizontalSyncWidth);
     properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DetailedTimingTypeI.Timing.HorizontalSyncWidth, HorizontalSyncWidth);
     properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DetailedTimingTypeI.Timing.VerticalActiveImage, VerticalActiveImageLines);
     properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DetailedTimingTypeI.Timing.VerticalBlankLines, VerticalBlankLines);
     properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DetailedTimingTypeI.Timing.VerticalSyncFrontPorchOffset, VerticalSyncFrontPorchOffset);
     properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DetailedTimingTypeI.Timing.VerticalSyncPolarity, GetSyncPolarity(IsVerticalSyncPositivePolarity));
     properties.Add(EedidProperty.DisplayID.DataBlocks.Blocks.DetailedTimingTypeI.Timing.VerticalSyncWidth, VerticalSyncWidth);
 }
 /// <summary>
 /// Populates the property collection for this section.
 /// </summary>
 /// <param name="properties">Collection of properties of this section.</param>
 protected override void PopulateProperties(SectionPropertiesTable properties)
 {
     properties.Add(EedidProperty.Edid.DataBlock.Definition.ColorManagementData.Item.A2, LogicHelper.Word(A2Lsb, A2Msb));
     properties.Add(EedidProperty.Edid.DataBlock.Definition.ColorManagementData.Item.A3, LogicHelper.Word(A3Lsb, A3Msb));
 }
Пример #27
0
 /// <summary>
 /// Populates the property collection for this section.
 /// </summary>
 /// <param name="properties">Collection of properties of this section.</param>
 protected override void PopulateProperties(SectionPropertiesTable properties)
 {
     properties.Add(EedidProperty.Edid.DataBlock.Definition.EstablishedTimingsIII.Revision, Revision);
     properties.Add(EedidProperty.Edid.DataBlock.Definition.EstablishedTimingsIII.Resolutions, GetResolutionCollection());
 }
Пример #28
0
 /// <summary>
 /// Populates the property collection for this section.
 /// </summary>
 /// <param name="properties">Collection of properties of this section.</param>
 protected override void PopulateProperties(SectionPropertiesTable properties)
 {
     properties.Add(EedidProperty.DI.UnusedBytes.Data, RawData);
 }
Пример #29
0
 /// <summary>
 /// Populates the property collection for this section.
 /// </summary>
 /// <param name="properties">Collection of properties of this section.</param>
 protected override void PopulateProperties(SectionPropertiesTable properties)
 {
     properties.Add(EedidProperty.Edid.EstablishedTimings.Resolutions, GetResolutionCollection());
 }
Пример #30
0
 /// <summary>
 /// Populates the property collection for this section.
 /// </summary>
 /// <param name="properties">Collection of properties of this section.</param>
 protected override void PopulateProperties(SectionPropertiesTable properties)
 {
 }