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);
 }
Exemple #3
0
    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);
    }
Exemple #4
0
    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);
    }
Exemple #5
0
    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;
                }
            }
        }
    }
Exemple #6
0
    public override bool IsInvalid => false; // The validity cannot be checked by the handle.

    protected override bool ReleaseHandle()
    {
        return(MonitorApi.DestroyPhysicalMonitor(handle));
    }