From 0e88863a3ddbc6876dab7b3a671da4d0282d6e51 Mon Sep 17 00:00:00 2001 From: knoppix knoppix Date: Wed, 23 Apr 2025 20:02:12 +0000 Subject: [PATCH] Allow constant lighting of notification LED through the setting of frequency in theme.json to zero. --- src/fbd-dev-led.c | 26 ++++++++++++++++---------- tests/test-fbd-dev-led.c | 1 + 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/fbd-dev-led.c b/src/fbd-dev-led.c index c70b5eb..84f5a32 100644 --- a/src/fbd-dev-led.c +++ b/src/fbd-dev-led.c @@ -115,25 +115,31 @@ fbd_dev_led_start_periodic_default (FbdDevLed *led, guint freq) { FbdDevLedPrivate *priv; - g_autoptr (GError) err = NULL; - g_autofree gchar *str = NULL; gboolean success = FALSE; gdouble max; - gdouble t; g_return_val_if_fail (FBD_IS_DEV_LED (led), FALSE); g_return_val_if_fail (max_brightness_percentage <= 100, FALSE); priv = fbd_dev_led_get_instance_private (led); max = priv->max_brightness * (max_brightness_percentage / 100.0); - /* ms mHz T/2 */ - t = 1000.0 * 1000.0 / freq / 2.0; - str = g_strdup_printf ("0 %d %d %d\n", (gint)t, (gint)max, (gint)t); - g_debug ("Freq %d mHz, Brightness: %d%%, Blink pattern: %s", freq, max_brightness_percentage, str); + if (freq) { + g_autofree gchar *str = NULL; + g_autoptr (GError) err = NULL; + gdouble t; - success = fbd_udev_set_sysfs_path_attr_as_string (priv->dev, LED_PATTERN_ATTR, str, &err); - if (!success) - g_warning ("Failed to set led pattern: %s", err->message); + /* ms mHz T/2 */ + t = 1000.0 * 1000.0 / freq / 2.0; + str = g_strdup_printf ("0 %d %d %d\n", (gint)t, (gint)max, (gint)t); + g_debug ("Freq %d mHz, Brightness: %d%%, Blink pattern: %s", freq, max_brightness_percentage, + str); + success = fbd_udev_set_sysfs_path_attr_as_string (priv->dev, LED_PATTERN_ATTR, str, &err); + if (!success) + g_warning ("Failed to set led pattern: %s", err->message); + } else { + g_debug ("Constant light, Brightness: %d%%", max_brightness_percentage); + success = fbd_dev_led_set_brightness (led, (gint)max); + } return success; } diff --git a/tests/test-fbd-dev-led.c b/tests/test-fbd-dev-led.c index 4cc0a1e..024e27a 100644 --- a/tests/test-fbd-dev-led.c +++ b/tests/test-fbd-dev-led.c @@ -93,6 +93,7 @@ test_fbd_dev_led_flash (FbdUmockdevFixture *fixture, gconstpointer unused) 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_true (fbd_dev_led_start_periodic (led, 50, 0)); g_assert_finalize_object (led); }