summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
Diffstat (limited to 'firmware')
-rw-r--r--firmware/backlight.c24
-rw-r--r--firmware/drivers/button.c9
-rw-r--r--firmware/export/backlight.h4
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,
635bool is_backlight_on(void) 635 * and optionally when it's set to always off. */
636bool 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
756bool is_remote_backlight_on(void) 756 * optionally when it's set to always off */
757bool 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
24bool is_backlight_on(void); 24bool is_backlight_on(bool ignore_always_off);
25void backlight_on(void); 25void backlight_on(void);
26void backlight_off(void); 26void backlight_off(void);
27void backlight_set_timeout(int value); 27void backlight_set_timeout(int value);
@@ -57,7 +57,7 @@ void remote_backlight_on(void);
57void remote_backlight_off(void); 57void remote_backlight_off(void);
58void remote_backlight_set_timeout(int value); 58void remote_backlight_set_timeout(int value);
59void remote_backlight_set_timeout_plugged(int value); 59void remote_backlight_set_timeout_plugged(int value);
60bool is_remote_backlight_on(void); 60bool is_remote_backlight_on(bool ignore_always_off);
61 61
62#ifdef HAS_REMOTE_BUTTON_HOLD 62#ifdef HAS_REMOTE_BUTTON_HOLD
63void remote_backlight_hold_changed(bool rc_hold_button); 63void remote_backlight_hold_changed(bool rc_hold_button);