led: Add flash LED type

Camera flashes are also exported via the LED subsystem. We use a
separate LED type so they're not picked by default.

We don't use them as fallbacks either.
This commit is contained in:
Guido Günther
2024-06-15 11:14:40 +02:00
parent e16dc3cdab
commit e47ce8e09e
7 changed files with 272 additions and 2 deletions
+32
View File
@@ -7,6 +7,7 @@
#include "fbd-feedback-led.h"
#include "fbd-dev-led.h"
#include "fbd-dev-led-flash.h"
#include "fbd-dev-led-multicolor.h"
#include "fbd-dev-led-qcom.h"
#include "fbd-dev-led-qcom-multicolor.h"
@@ -69,6 +70,34 @@ test_fbd_dev_led_multicolor (FbdUmockdevFixture *fixture, gconstpointer unused)
}
static void
test_fbd_dev_led_flash (FbdUmockdevFixture *fixture, gconstpointer unused)
{
GUdevClient *client;
g_autolist (GUdevDevice) leds = NULL;
FbdDevLed *led;
g_autoptr (GError) err = NULL;
GUdevDevice *dev;
client = g_udev_client_new ((const char *const []){ "leds", NULL});
leds = g_udev_client_query_by_subsystem (client, "leds");
/* There should be a single device only */
g_assert_cmpint (g_list_length (leds), ==, 1);
dev = G_UDEV_DEVICE (leds->data);
g_assert_cmpstr (g_udev_device_get_property (dev, "FEEDBACKD_TYPE"), ==, "led");
led = fbd_dev_led_flash_new (dev, &err);
g_assert_no_error (err);
g_assert_cmpint (fbd_dev_led_get_max_brightness (led), ==, 255);
g_assert_true (fbd_dev_led_supports_color (led, FBD_FEEDBACK_LED_COLOR_FLASH));
g_assert_true (fbd_dev_led_start_periodic (led, 50, 50));
g_assert_finalize_object (led);
}
static void
test_fbd_dev_led_qcom_simple (FbdUmockdevFixture *fixture, gconstpointer unused)
{
@@ -135,6 +164,9 @@ main (gint argc, gchar *argv[])
FBD_UMOCKDEV_TEST_ADD ("/feedbackd/fbd/dev/led/multicolor",
test_fbd_dev_led_multicolor,
"led-multicolor");
FBD_UMOCKDEV_TEST_ADD ("/feedbackd/fbd/dev/led/flash",
test_fbd_dev_led_flash,
"led-flash");
FBD_UMOCKDEV_TEST_ADD ("/feedbackd/fbd/dev/led/qcom/simple",
test_fbd_dev_led_qcom_simple,
"led-qcom-simple");