diff options
-rw-r--r-- | firmware/backlight.c | 34 |
1 files changed, 25 insertions, 9 deletions
diff --git a/firmware/backlight.c b/firmware/backlight.c index b8370deaa1..2a2155df8a 100644 --- a/firmware/backlight.c +++ b/firmware/backlight.c | |||
@@ -64,6 +64,9 @@ enum { | |||
64 | BACKLIGHT_ON, | 64 | BACKLIGHT_ON, |
65 | BACKLIGHT_OFF, | 65 | BACKLIGHT_OFF, |
66 | BACKLIGHT_TMO_CHANGED, | 66 | BACKLIGHT_TMO_CHANGED, |
67 | #ifdef HAVE_BACKLIGHT_BRIGHTNESS | ||
68 | BACKLIGHT_BRIGHTNESS_CHANGED, | ||
69 | #endif | ||
67 | #ifdef HAVE_REMOTE_LCD | 70 | #ifdef HAVE_REMOTE_LCD |
68 | REMOTE_BACKLIGHT_ON, | 71 | REMOTE_BACKLIGHT_ON, |
69 | REMOTE_BACKLIGHT_OFF, | 72 | REMOTE_BACKLIGHT_OFF, |
@@ -79,7 +82,10 @@ enum { | |||
79 | BUTTON_LIGHT_ON, | 82 | BUTTON_LIGHT_ON, |
80 | BUTTON_LIGHT_OFF, | 83 | BUTTON_LIGHT_OFF, |
81 | BUTTON_LIGHT_TMO_CHANGED, | 84 | BUTTON_LIGHT_TMO_CHANGED, |
85 | #ifdef HAVE_BUTTONLIGHT_BRIGHTNESS | ||
86 | BUTTON_LIGHT_BRIGHTNESS_CHANGED, | ||
82 | #endif | 87 | #endif |
88 | #endif /* HAVE_BUTTON_LIGHT */ | ||
83 | #ifdef BACKLIGHT_DRIVER_CLOSE | 89 | #ifdef BACKLIGHT_DRIVER_CLOSE |
84 | BACKLIGHT_QUIT, | 90 | BACKLIGHT_QUIT, |
85 | #endif | 91 | #endif |
@@ -604,6 +610,17 @@ void backlight_thread(void) | |||
604 | case BACKLIGHT_OFF: | 610 | case BACKLIGHT_OFF: |
605 | do_backlight_off(); | 611 | do_backlight_off(); |
606 | break; | 612 | break; |
613 | #ifdef HAVE_BACKLIGHT_BRIGHTNESS | ||
614 | case BACKLIGHT_BRIGHTNESS_CHANGED: | ||
615 | backlight_brightness = (int)ev.data; | ||
616 | _backlight_set_brightness((int)ev.data); | ||
617 | #if (CONFIG_BACKLIGHT_FADING == BACKLIGHT_FADING_SW_SETTING) \ | ||
618 | || (CONFIG_BACKLIGHT_FADING == BACKLIGHT_FADING_SW_HW_REG) | ||
619 | /* receive backlight brightness */ | ||
620 | _backlight_fade_update_state((int)ev.data); | ||
621 | #endif | ||
622 | break; | ||
623 | #endif /* HAVE_BACKLIGHT_BRIGHTNESS */ | ||
607 | #ifdef HAVE_LCD_SLEEP | 624 | #ifdef HAVE_LCD_SLEEP |
608 | case LCD_SLEEP: | 625 | case LCD_SLEEP: |
609 | lcd_sleep(); | 626 | lcd_sleep(); |
@@ -619,7 +636,12 @@ void backlight_thread(void) | |||
619 | buttonlight_timer = 0; | 636 | buttonlight_timer = 0; |
620 | _buttonlight_off(); | 637 | _buttonlight_off(); |
621 | break; | 638 | break; |
622 | #endif | 639 | #ifdef HAVE_BUTTONLIGHT_BRIGHTNESS |
640 | case BUTTON_LIGHT_BRIGHTNESS_CHANGED: | ||
641 | _buttonlight_set_brightness((int)ev.data); | ||
642 | break; | ||
643 | #endif /* HAVE_BUTTONLIGHT_BRIGHTNESS */ | ||
644 | #endif /* HAVE_BUTTON_LIGHT */ | ||
623 | 645 | ||
624 | case SYS_POWEROFF: /* Lock backlight on poweroff so it doesn't */ | 646 | case SYS_POWEROFF: /* Lock backlight on poweroff so it doesn't */ |
625 | locked = true; /* go off before power is actually cut. */ | 647 | locked = true; /* go off before power is actually cut. */ |
@@ -922,13 +944,7 @@ void backlight_set_brightness(int val) | |||
922 | else if (val > MAX_BRIGHTNESS_SETTING) | 944 | else if (val > MAX_BRIGHTNESS_SETTING) |
923 | val = MAX_BRIGHTNESS_SETTING; | 945 | val = MAX_BRIGHTNESS_SETTING; |
924 | 946 | ||
925 | backlight_brightness = val; | 947 | queue_post(&backlight_queue, BACKLIGHT_BRIGHTNESS_CHANGED, val); |
926 | _backlight_set_brightness(val); | ||
927 | #if (CONFIG_BACKLIGHT_FADING == BACKLIGHT_FADING_SW_SETTING) \ | ||
928 | || (CONFIG_BACKLIGHT_FADING == BACKLIGHT_FADING_SW_HW_REG) | ||
929 | /* receive backlight brightness */ | ||
930 | _backlight_fade_update_state(val); | ||
931 | #endif | ||
932 | } | 948 | } |
933 | #endif /* HAVE_BACKLIGHT_BRIGHTNESS */ | 949 | #endif /* HAVE_BACKLIGHT_BRIGHTNESS */ |
934 | 950 | ||
@@ -940,7 +956,7 @@ void buttonlight_set_brightness(int val) | |||
940 | else if (val > MAX_BRIGHTNESS_SETTING) | 956 | else if (val > MAX_BRIGHTNESS_SETTING) |
941 | val = MAX_BRIGHTNESS_SETTING; | 957 | val = MAX_BRIGHTNESS_SETTING; |
942 | 958 | ||
943 | _buttonlight_set_brightness(val); | 959 | queue_post(&backlight_queue, BUTTON_LIGHT_BRIGHTNESS_CHANGED, val); |
944 | } | 960 | } |
945 | #endif /* HAVE_BUTTONLIGHT_BRIGHTNESS */ | 961 | #endif /* HAVE_BUTTONLIGHT_BRIGHTNESS */ |
946 | 962 | ||