DDCUtil: Improved DDCUtil support for brightness control over DDC/CI channel…

Authored by dvogel on Apr 10 2019, 3:16 AM.

Description

DDCUtil: Improved DDCUtil support for brightness control over DDC/CI channel for supported monitors

Summary:
Reworked & simplified based on feedback from DDCUtil author in D5381.
Fixed CMakeList to add definitions for use in the code.
Updated the code to use the the ddcutil 0.9.5 C API

Current limitations:

  • multiple DDC-capable monitors connected will be used, however only one slider is showed. All monitors will be affected with the same brightness value.
  • ddcutil has to be setup so that it can be used as user (1. load i2c-dev on boot, 2. udev rule to affect /dev/i2c-* nodes to the i2c user group, 3. add your user to the i2c group.)

Test Plan:
Tested on X session seems stable
On Wayland, the capabilities enumeration seems a bit inconsistent. Fixed by using "the old capability testing method": test each parameter by trying to read its current value.
Tested with dell 2212HM alone, and also with Magedok t116 as second display on AMD gpu using Mesa.
Using OpenSuse Krypton.

Reviewers: broulik, davidedmundson

Reviewed By: broulik

Subscribers: ngraham, asturmlechner, plasma-devel

Tags: Plasma

Differential Revision: https://phabricator.kde.org/D8626