fbd-dev-led: Rework color API

Drop has_color API since supported colors are set during probing
and can be handled completely separately from the classes for
each type of hardware.

Rename set_color to set_supported_color because the usage
of this API is to check if the color is supported, but not
setting it. Setting the color is also separated from
start_periodic API to re-use multicolor across multiple LED types
with a set_color API. Multicolor LEDs are actually the same as
regular LEDs but they require a few additional sysfs entries to
actually set the color. Single color LEDs only have a single color
so the set_color method just returns TRUE for these LEDs.

Supported colors are advertised through the supports_color API now.
This way, each LED driver define which colors are supported
through supports_color API. RGB multicolor LEDs will report only fixed colors
like red, blue, green and white until the kernel can expose if a diffusor
is present to mix these colors.
This commit is contained in:
Dylan Van Assche
2024-06-09 11:21:19 +02:00
committed by Guido Günther
parent bcd37b0aa5
commit e43126b007
6 changed files with 64 additions and 57 deletions
+1 -1
View File
@@ -17,6 +17,6 @@ G_BEGIN_DECLS
GUdevDevice *fbd_dev_led_get_device (FbdDevLed *led);
void fbd_dev_led_set_max_brightness (FbdDevLed *led, guint max_brightness);
void fbd_dev_led_set_color (FbdDevLed *led, FbdFeedbackLedColor color);
void fbd_dev_led_set_supported_color (FbdDevLed *led, FbdFeedbackLedColor color);
G_END_DECLS