Esempio n. 1
0
        /// <summary>
        ///     Reads EDID data of an output
        /// </summary>
        /// <param name="output">The GPU output to read EDID information for</param>
        /// <returns>A byte array containing EDID data</returns>
        public byte[] ReadEDIDData(GPUOutput output)
        {
            try
            {
                var data           = new byte[0];
                var identification = 0;
                var totalSize      = EDIDV3.MaxDataSize;
                for (var offset = 0; offset < totalSize; offset += EDIDV3.MaxDataSize)
                {
                    var edid = GPUApi.GetEDID(Handle, output.OutputId, offset, identification);
                    identification = edid.Identification;
                    totalSize      = edid.TotalSize;

                    var edidData = edid.Data;
                    Array.Resize(ref data, data.Length + edidData.Length);
                    Array.Copy(edidData, 0, data, data.Length - edidData.Length, edidData.Length);
                }
                return(data);
            }
            catch (NVIDIAApiException ex)
            {
                if (ex.Status == Status.IncompatibleStructureVersion)
                {
                    return(GPUApi.GetEDID(Handle, output.OutputId).Data);
                }
                throw;
            }
        }
Esempio n. 2
0
 /// <summary>
 ///     Writes EDID data of an output
 /// </summary>
 /// <param name="output">The GPU output to write EDID information for</param>
 /// <param name="edidData">A byte array containing EDID data</param>
 public void WriteEDIDData(GPUOutput output, byte[] edidData)
 {
     WriteEDIDData((uint)output.OutputId, edidData);
 }
Esempio n. 3
0
 /// <summary>
 ///     Get the display device connected to a specific GPU output
 /// </summary>
 /// <param name="output">The GPU output to get connected display device for</param>
 /// <returns>DisplayDevice connected to the specified GPU output</returns>
 public DisplayDevice GetDisplayDeviceByOutput(GPUOutput output)
 {
     return(new DisplayDevice(GPUApi.GetDisplayIdFromGPUAndOutputId(Handle, output.OutputId)));
 }