using System;
using NvAPIWrapper.Native.Helpers;
namespace NvAPIWrapper.Native.Display.Structures
{
///
/// Contains monitor VCDB capabilities
///
public struct MonitorVCDBCapabilities
{
private readonly byte[] _data;
internal MonitorVCDBCapabilities(byte[] data)
{
if (data.Length != 49)
{
throw new ArgumentOutOfRangeException(nameof(data));
}
_data = data;
}
///
/// Gets a boolean value indicating RGB range quantization
///
public bool QuantizationRangeRGB
{
get => _data[0].GetBit(1);
}
///
/// Gets a boolean value indicating Ycc range quantization
///
public bool QuantizationRangeYcc
{
get => _data[0].GetBit(0);
}
public byte ScanInfoConsumerElectronicsVideoFormats
{
get => (byte)_data[0].GetBits(6, 2);
}
public byte ScanInfoInformationTechnologyVideoFormats
{
get => (byte)_data[0].GetBits(4, 2);
}
public byte ScanInfoPreferredVideoFormat
{
get => (byte)_data[0].GetBits(2, 2);
}
}
}