diff --git a/src/fbd-dev-led-multicolor.c b/src/fbd-dev-led-multicolor.c index bcb5d17..23fcf54 100644 --- a/src/fbd-dev-led-multicolor.c +++ b/src/fbd-dev-led-multicolor.c @@ -144,6 +144,26 @@ fbd_dev_led_multicolor_set_color (FbdDevLed *led, } +static gboolean +fbd_dev_led_multicolor_supports_color (FbdDevLed *led, + FbdFeedbackLedColor color) +{ + switch(color) { + case FBD_FEEDBACK_LED_COLOR_WHITE: + return TRUE; + case FBD_FEEDBACK_LED_COLOR_RED: + return TRUE; + case FBD_FEEDBACK_LED_COLOR_GREEN: + return TRUE; + case FBD_FEEDBACK_LED_COLOR_BLUE: + return TRUE; + default: + g_warning ("Color unsupported: %d", color); + return FALSE; + } +} + + static void fbd_dev_led_multicolor_class_init (FbdDevLedMulticolorClass *klass) { @@ -151,6 +171,7 @@ fbd_dev_led_multicolor_class_init (FbdDevLedMulticolorClass *klass) fbd_dev_led_class->probe = fbd_dev_led_multicolor_probe; fbd_dev_led_class->set_color = fbd_dev_led_multicolor_set_color; + fbd_dev_led_class->supports_color = fbd_dev_led_multicolor_supports_color; } diff --git a/tests/test-fbd-dev-led.c b/tests/test-fbd-dev-led.c index 9b5fe8d..533accd 100644 --- a/tests/test-fbd-dev-led.c +++ b/tests/test-fbd-dev-led.c @@ -60,7 +60,7 @@ test_fbd_dev_led_multicolor (FbdUmockdevFixture *fixture, gconstpointer unused) led = fbd_dev_led_multicolor_new (dev, &err); g_assert_no_error (err); g_assert_cmpint (fbd_dev_led_get_max_brightness (led), ==, 248); - g_assert_true (fbd_dev_led_supports_color (led, FBD_FEEDBACK_LED_COLOR_RGB)); + g_assert_true (fbd_dev_led_supports_color (led, FBD_FEEDBACK_LED_COLOR_BLUE)); g_assert_true (fbd_dev_led_start_periodic (led, 50, 50)); g_assert_finalize_object (led);