diff options
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/backlight.c | 24 | ||||
-rw-r--r-- | firmware/drivers/button.c | 9 | ||||
-rw-r--r-- | firmware/export/backlight.h | 4 |
3 files changed, 19 insertions, 18 deletions
diff --git a/firmware/backlight.c b/firmware/backlight.c index 0f66fbf574..19e6933fca 100644 --- a/firmware/backlight.c +++ b/firmware/backlight.c | |||
@@ -631,13 +631,13 @@ void backlight_off(void) | |||
631 | queue_post(&backlight_queue, BACKLIGHT_OFF, 0); | 631 | queue_post(&backlight_queue, BACKLIGHT_OFF, 0); |
632 | } | 632 | } |
633 | 633 | ||
634 | /* returns true when the backlight is on OR when it's set to always off */ | 634 | /* returns true when the backlight is on, |
635 | bool is_backlight_on(void) | 635 | * and optionally when it's set to always off. */ |
636 | bool is_backlight_on(bool ignore_always_off) | ||
636 | { | 637 | { |
637 | if (backlight_timer || backlight_timeout <= 0) | 638 | return (backlight_timer > 0) /* countdown */ |
638 | return true; | 639 | || (backlight_timeout == 0) /* always on */ |
639 | else | 640 | || ((backlight_timeout < 0) && !ignore_always_off); |
640 | return false; | ||
641 | } | 641 | } |
642 | 642 | ||
643 | /* return value in ticks; 0 means always on, <0 means always off */ | 643 | /* return value in ticks; 0 means always on, <0 means always off */ |
@@ -752,13 +752,13 @@ int remote_backlight_get_current_timeout(void) | |||
752 | return remote_backlight_timeout; | 752 | return remote_backlight_timeout; |
753 | } | 753 | } |
754 | 754 | ||
755 | /* returns true when the backlight is on OR when it's set to always off */ | 755 | /* returns true when the backlight is on, and |
756 | bool is_remote_backlight_on(void) | 756 | * optionally when it's set to always off */ |
757 | bool is_remote_backlight_on(bool ignore_always_off) | ||
757 | { | 758 | { |
758 | if (remote_backlight_timer != 0 || remote_backlight_timeout <= 0) | 759 | return (remote_backlight_timer > 0) /* countdown */ |
759 | return true; | 760 | || (remote_backlight_timeout == 0) /* always on */ |
760 | else | 761 | || ((remote_backlight_timeout < 0) && !ignore_always_off); |
761 | return false; | ||
762 | } | 762 | } |
763 | 763 | ||
764 | #endif /* HAVE_REMOTE_LCD */ | 764 | #endif /* HAVE_REMOTE_LCD */ |
diff --git a/firmware/drivers/button.c b/firmware/drivers/button.c index d38306b3ca..90ff800c88 100644 --- a/firmware/drivers/button.c +++ b/firmware/drivers/button.c | |||
@@ -247,9 +247,10 @@ static void button_tick(void) | |||
247 | #ifdef HAVE_BACKLIGHT | 247 | #ifdef HAVE_BACKLIGHT |
248 | #ifdef HAVE_REMOTE_LCD | 248 | #ifdef HAVE_REMOTE_LCD |
249 | if (btn & BUTTON_REMOTE) { | 249 | if (btn & BUTTON_REMOTE) { |
250 | if (!remote_filter_first_keypress || is_remote_backlight_on() | 250 | if (!remote_filter_first_keypress |
251 | || is_remote_backlight_on(false) | ||
251 | #if defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES) | 252 | #if defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES) |
252 | || (remote_type()==REMOTETYPE_H300_NONLCD) | 253 | || (remote_type()==REMOTETYPE_H300_NONLCD) |
253 | #endif | 254 | #endif |
254 | ) | 255 | ) |
255 | queue_post(&button_queue, btn, data); | 256 | queue_post(&button_queue, btn, data); |
@@ -258,9 +259,9 @@ static void button_tick(void) | |||
258 | } | 259 | } |
259 | else | 260 | else |
260 | #endif | 261 | #endif |
261 | if (!filter_first_keypress || is_backlight_on() | 262 | if (!filter_first_keypress || is_backlight_on(false) |
262 | #if BUTTON_REMOTE | 263 | #if BUTTON_REMOTE |
263 | || (btn&BUTTON_REMOTE) | 264 | || (btn & BUTTON_REMOTE) |
264 | #endif | 265 | #endif |
265 | ) | 266 | ) |
266 | queue_post(&button_queue, btn, data); | 267 | queue_post(&button_queue, btn, data); |
diff --git a/firmware/export/backlight.h b/firmware/export/backlight.h index 3ee46c1485..35c0f86178 100644 --- a/firmware/export/backlight.h +++ b/firmware/export/backlight.h | |||
@@ -21,7 +21,7 @@ | |||
21 | 21 | ||
22 | #include "config.h" | 22 | #include "config.h" |
23 | 23 | ||
24 | bool is_backlight_on(void); | 24 | bool is_backlight_on(bool ignore_always_off); |
25 | void backlight_on(void); | 25 | void backlight_on(void); |
26 | void backlight_off(void); | 26 | void backlight_off(void); |
27 | void backlight_set_timeout(int value); | 27 | void backlight_set_timeout(int value); |
@@ -57,7 +57,7 @@ void remote_backlight_on(void); | |||
57 | void remote_backlight_off(void); | 57 | void remote_backlight_off(void); |
58 | void remote_backlight_set_timeout(int value); | 58 | void remote_backlight_set_timeout(int value); |
59 | void remote_backlight_set_timeout_plugged(int value); | 59 | void remote_backlight_set_timeout_plugged(int value); |
60 | bool is_remote_backlight_on(void); | 60 | bool is_remote_backlight_on(bool ignore_always_off); |
61 | 61 | ||
62 | #ifdef HAS_REMOTE_BUTTON_HOLD | 62 | #ifdef HAS_REMOTE_BUTTON_HOLD |
63 | void remote_backlight_hold_changed(bool rc_hold_button); | 63 | void remote_backlight_hold_changed(bool rc_hold_button); |