From a06d9c85f7475d650cc451fb0f537623c0206f5a Mon Sep 17 00:00:00 2001 From: William Wilgus Date: Mon, 17 Dec 2018 22:27:55 -0600 Subject: Auto-Ranging Time Formatting For Menus (hh:mm:ss:mss) Unifies time formatting in settings_list.c allows time format to display as HH:MM:SS.MSS or any consecutive combination thereof (hh:mm:ss, mm:ss, mm:ss.mss, ss.mss, hh, mm, ss ,mss) works in INT and TABLE settings with the addition of flag 'F_TIME_SETTING' Time is auto-ranged dependent on value Adds talk_time_intervals to allow time values to be spoken similar to display format: x Hours, x Minutes, x Seconds, x Milliseconds Table lookups merged or removed from recording, clip meter and lcd timeout -String_Choice replaced with TABLE_SETTING or INT_SETTING for these functions as well, cleaned-up cfg_vals that get saved to cfgfile RTL Languages ARE supported Negative values ARE supported Backlight on/off are now Always and Never to share formatter with LCD Timeout Added flag to allow ranged units to be locked to a minimum index Added flag to allow leading zero to be supressed from the largest unit merged talk_time_unit() and talk_time_intervals() optimized time_split() optimized format_time_auto() Backlight time-out list same as original Change-Id: I59027c62d3f2956bd16fdcc1a48b2ac32c084abd --- firmware/backlight.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) (limited to 'firmware/backlight.c') diff --git a/firmware/backlight.c b/firmware/backlight.c index 25c295197f..3acc89c27c 100644 --- a/firmware/backlight.c +++ b/firmware/backlight.c @@ -191,10 +191,6 @@ static int remote_backlight_on_button_hold = 0; #ifdef HAVE_LCD_SLEEP #ifdef HAVE_LCD_SLEEP_SETTING -const signed char lcd_sleep_timeout_value[10] = -{ - -1, 0, 5, 10, 15, 20, 30, 45, 60, 90 -}; static int lcd_sleep_timeout = 10*HZ; #else /* Target defines needed value */ @@ -885,23 +881,21 @@ void backlight_set_on_button_hold(int index) #endif /* HAS_BUTTON_HOLD */ #ifdef HAVE_LCD_SLEEP_SETTING -void lcd_set_sleep_after_backlight_off(int index) +void lcd_set_sleep_after_backlight_off(int timeout_seconds) { - if ((unsigned)index >= sizeof(lcd_sleep_timeout_value)) - /* if given a weird value, use default */ - index = 3; - - lcd_sleep_timeout = HZ * lcd_sleep_timeout_value[index]; + lcd_sleep_timeout = HZ * timeout_seconds; if (is_backlight_on(true)) - /* Timer will be set when bl turns off or bl set to on. */ + /* Timer will be set when bl turns off or bl set to on. */ return; /* Backlight is Off */ if (lcd_sleep_timeout < 0) + lcd_sleep_timer = 0; /* Never */ + else if (lcd_sleep_timeout == 0) lcd_sleep_timer = 1; /* Always - sleep next tick */ else - lcd_sleep_timer = lcd_sleep_timeout; /* Never, other */ + lcd_sleep_timer = lcd_sleep_timeout; /* other */ } #endif /* HAVE_LCD_SLEEP_SETTING */ -- cgit v1.2.3