+void resource_led_set_rgb_colors(char *key,
+ int def_r_3bit, int def_g_3bit, int def_b_3bit,
+ int def_r_24bit, int def_g_24bit, int def_b_24bit,
+ bi_led_color_e bi_led)
+{
+ int red, green, blue;
+ char final_key[PATH_MAX];
+
+ snprintf(final_key, PATH_MAX, "3bit.%s", key);
+ bool modified = config_get_rgb_with_default("Rpi.led", final_key, def_r_3bit, def_g_3bit, def_b_3bit, &red, &green, &blue);
+ resource_led_rgb_gpio_set(red, green, blue);
+
+ _D("%s: 3bit color: [%d, %d, %d]", final_key, red, green, blue);
+
+ snprintf(final_key, PATH_MAX, "24bit.%s", key);
+ modified |= config_get_rgb_with_default("Rpi.led", final_key, def_r_24bit, def_g_24bit, def_b_24bit, &red, &green, &blue);
+ resource_led_rgb_l2c_set(red, green, blue);
+
+ _D("%s: 24bit color: [%d, %d, %d]", final_key, red, green, blue);
+
+ int value;
+ snprintf(final_key, PATH_MAX, "bicolor.%s", key);
+ modified |= config_get_int_with_default("Rpi.led", final_key, bi_led, &value);
+ resource_led_bi_set(value);
+
+ if (modified) {
+ config_save();
+ }
+ _D("%s: bicolor: [%d]", final_key, value);
+}
+
+void resource_led_blink_rgb_colors(char *key,
+ int def_r_3bit, int def_g_3bit, int def_b_3bit,
+ int def_r_24bit, int def_g_24bit, int def_b_24bit,
+ bi_led_color_e bi_led, int timeout)
+{
+ resource_led_set_rgb_colors(key, def_r_3bit, def_g_3bit, def_b_3bit, def_r_24bit, def_g_24bit, def_b_24bit, bi_led);
+
+ g_timeout_add(timeout, _restore_rgb_color_cb, NULL);
+}