public MonitorApiTest() { _monitorApi = new MonitorApi(new MonitorApiOptions { HttpPrefix = _monitorUrl }); _monitorApi.Start(); HealthChecks.Clear(); CSharp.Monitor.ResetCounters(); }
public HorizonRESTClient(string BaseURL) { BaseURI = new Uri(BaseURL); ClientConfiguration = new Configuration(); ClientConfiguration.BasePath = BaseURI.AbsoluteUri; Authentication = new AuthApi(ClientConfiguration); Configuration = new ConfigApi(ClientConfiguration); Entitlements = new EntitlementsApi(ClientConfiguration); External = new ExternalApi(ClientConfiguration); Inventory = new InventoryApi(ClientConfiguration); Monitoring = new MonitorApi(ClientConfiguration); }
private uint _maximum = 100; // Raw maximum brightness (not always 100) public bool UpdateBrightness(int brightness = -1) { var(success, minimum, current, maximum) = MonitorApi.GetBrightness(_handle); if (!success || !(minimum < maximum) || !(minimum <= current) || !(current <= maximum)) { this.Brightness = -1; return(false); } this.Brightness = (int)Math.Round((double)(current - minimum) / (maximum - minimum) * 100D, MidpointRounding.AwayFromZero); this._minimum = minimum; this._maximum = maximum; return(true); }
public bool SetBrightness(int brightness) { if ((brightness < 0) || (100 < brightness)) { throw new ArgumentOutOfRangeException(nameof(brightness), brightness, "The brightness must be within 0 to 100."); } var buffer = (uint)Math.Round(brightness / 100D * (_maximum - _minimum) + _minimum, MidpointRounding.AwayFromZero); if (MonitorApi.SetBrightness(_handle, buffer)) { this.Brightness = brightness; return(true); } return(false); }
public static IEnumerable <DdcMonitorItem> EnumerateMonitors() { var deviceItems = DeviceContext.EnumerateMonitorDevices().ToList(); if (!(deviceItems?.Any() == true)) { yield break; } // Obtained by DDC/CI foreach (var handleItem in DeviceContext.GetMonitorHandles()) { foreach (var physicalItem in MonitorApi.EnumeratePhysicalMonitors(handleItem.MonitorHandle)) { int index = -1; if (physicalItem.IsSupported) { index = deviceItems.FindIndex(x => (x.DisplayIndex == handleItem.DisplayIndex) && (x.MonitorIndex == physicalItem.MonitorIndex) && string.Equals(x.Description, physicalItem.Description, StringComparison.OrdinalIgnoreCase)); } if (index < 0) { physicalItem.Handle.Dispose(); continue; } var deviceItem = deviceItems[index]; yield return(new DdcMonitorItem( deviceInstanceId: deviceItem.DeviceInstanceId, description: deviceItem.Description, displayIndex: deviceItem.DisplayIndex, monitorIndex: deviceItem.MonitorIndex, handle: physicalItem.Handle)); deviceItems.RemoveAt(index); if (deviceItems.Count == 0) { yield break; } } } }
public override bool IsInvalid => false; // The validity cannot be checked by the handle. protected override bool ReleaseHandle() { return(MonitorApi.DestroyPhysicalMonitor(handle)); }