diff options
author | roman.artiukhin <bahusdrive@gmail.com> | 2023-08-21 00:55:03 +0300 |
---|---|---|
committer | William Wilgus <me.theuser@yahoo.com> | 2023-09-09 22:00:14 -0400 |
commit | 7bbaf74c5cfc93419f4c3b16171ad23fe34975be (patch) | |
tree | d493bffbf5ed1ece4221311cde28b73d4ff30014 | |
parent | 6b0e3fe775f6bdd52f3442447832271bbf613497 (diff) | |
download | rockbox-7bbaf74c5c.tar.gz rockbox-7bbaf74c5c.zip |
Ability to control backlight for soft lock action
See Settings -> General Settings -> Display -> LCD Settings -> Backlight on Lock
Change-Id: I201cb1c2907bb6842bf5d0b7a657e9db27aa905a
-rw-r--r-- | apps/lang/english.lang | 6 | ||||
-rw-r--r-- | apps/menus/display_menu.c | 6 | ||||
-rw-r--r-- | apps/settings.c | 2 | ||||
-rw-r--r-- | apps/settings.h | 2 | ||||
-rw-r--r-- | apps/settings_list.c | 12 | ||||
-rw-r--r-- | firmware/backlight.c | 13 | ||||
-rw-r--r-- | firmware/export/backlight.h | 2 |
7 files changed, 20 insertions, 23 deletions
diff --git a/apps/lang/english.lang b/apps/lang/english.lang index 922fa0340c..3773d138d4 100644 --- a/apps/lang/english.lang +++ b/apps/lang/english.lang @@ -2347,15 +2347,15 @@ desc: in lcd settings user: core <source> - *: none + *: "Backlight on Lock" hold_button: "Backlight on Hold" </source> <dest> - *: none + *: "Backlight on Lock" hold_button: "Backlight on Hold" </dest> <voice> - *: none + *: "Backlight on Lock" hold_button: "Backlight on hold" </voice> </phrase> diff --git a/apps/menus/display_menu.c b/apps/menus/display_menu.c index e70c4ee98a..f43ae5691f 100644 --- a/apps/menus/display_menu.c +++ b/apps/menus/display_menu.c @@ -149,10 +149,10 @@ MENUITEM_SETTING(backlight_timeout, &global_settings.backlight_timeout, NULL); MENUITEM_SETTING(backlight_timeout_plugged, &global_settings.backlight_timeout_plugged, NULL); #endif -#ifdef HAS_BUTTON_HOLD + MENUITEM_SETTING(backlight_on_button_hold, &global_settings.backlight_on_button_hold, NULL); -#endif + MENUITEM_SETTING(caption_backlight, &global_settings.caption_backlight, NULL); #if defined(HAVE_BACKLIGHT_FADING_INT_SETTING) \ || defined(HAVE_BACKLIGHT_FADING_BOOL_SETTING) @@ -200,9 +200,7 @@ MAKE_MENU(lcd_settings,ID2P(LANG_LCD_MENU), # if CONFIG_CHARGING ,&backlight_timeout_plugged # endif -# ifdef HAS_BUTTON_HOLD ,&backlight_on_button_hold -# endif ,&caption_backlight #if defined(HAVE_BACKLIGHT_FADING_INT_SETTING) \ || defined(HAVE_BACKLIGHT_FADING_BOOL_SETTING) diff --git a/apps/settings.c b/apps/settings.c index 0f060a41e6..619c5062ec 100644 --- a/apps/settings.c +++ b/apps/settings.c @@ -1051,9 +1051,7 @@ void settings_apply(bool read_disk) #ifdef HAVE_REMOTE_LCD set_remote_backlight_filter_keypress(global_settings.remote_bl_filter_first_keypress); #endif -#ifdef HAS_BUTTON_HOLD backlight_set_on_button_hold(global_settings.backlight_on_button_hold); -#endif #ifdef HAVE_LCD_SLEEP_SETTING lcd_set_sleep_after_backlight_off(global_settings.lcd_sleep_after_backlight_off); diff --git a/apps/settings.h b/apps/settings.h index ca10c45d5f..66945e181b 100644 --- a/apps/settings.h +++ b/apps/settings.h @@ -691,10 +691,8 @@ struct user_settings #ifdef HAVE_BACKLIGHT bool bl_selective_actions; /* backlight disable on some actions */ int bl_selective_actions_mask;/* mask of actions that will not enable backlight */ -#ifdef HAS_BUTTON_HOLD int backlight_on_button_hold; /* what to do with backlight when hold switch is on */ -#endif #ifdef HAVE_LCD_SLEEP_SETTING int lcd_sleep_after_backlight_off; /* when to put lcd to sleep after backlight has turned off: -1=never, 0=always, diff --git a/apps/settings_list.c b/apps/settings_list.c index 59719f2e08..b24b590766 100644 --- a/apps/settings_list.c +++ b/apps/settings_list.c @@ -1846,12 +1846,16 @@ const struct settings_list settings[] = { ID2P(LANG_IN_SUBMENU)), #ifdef HAVE_BACKLIGHT -#ifdef HAS_BUTTON_HOLD - CHOICE_SETTING(0, backlight_on_button_hold, LANG_BACKLIGHT_ON_BUTTON_HOLD, - 1, "backlight on button hold", "normal,off,on", + CHOICE_SETTING(0, backlight_on_button_hold, + LANG_BACKLIGHT_ON_BUTTON_HOLD, +#ifdef HAS_HOLD_BUTTON + 1, +#else + 0, +#endif + "backlight on button hold", "normal,off,on", backlight_set_on_button_hold, 3, ID2P(LANG_NORMAL), ID2P(LANG_OFF), ID2P(LANG_ON)), -#endif #ifdef HAVE_LCD_SLEEP_SETTING TABLE_SETTING_LIST(F_TIME_SETTING | F_ALLOW_ARBITRARY_VALS, diff --git a/firmware/backlight.c b/firmware/backlight.c index 9c7a16808c..1466a58987 100644 --- a/firmware/backlight.c +++ b/firmware/backlight.c @@ -39,6 +39,7 @@ #include "backlight.h" #include "lcd.h" #include "screendump.h" +#include "action.h" #ifdef HAVE_REMOTE_LCD #include "lcd-remote.h" @@ -120,9 +121,7 @@ static int backlight_timeout_normal = 5*HZ; #if CONFIG_CHARGING static int backlight_timeout_plugged = 5*HZ; #endif -#ifdef HAS_BUTTON_HOLD static int backlight_on_button_hold = 0; -#endif static void backlight_handle_timeout(void); #ifdef HAVE_BUTTON_LIGHT @@ -846,18 +845,18 @@ bool is_backlight_on(bool ignore_always_off) /* return value in ticks; 0 means always on, <0 means always off */ int backlight_get_current_timeout(void) { -#ifdef HAS_BUTTON_HOLD if ((backlight_on_button_hold != 0) -#ifdef HAVE_REMOTE_LCD_AS_MAIN +#if defined(HAVE_REMOTE_LCD_AS_MAIN) && defined(HAS_REMOTE_BUTTON_HOLD) && remote_button_hold() -#else +#elifdef HAS_BUTTON_HOLD && button_hold() +#else + && is_keys_locked() #endif ) return (backlight_on_button_hold == 2) ? 0 : -1; /* always on or always off */ else -#endif #if CONFIG_CHARGING if (power_input_present()) return backlight_timeout_plugged; @@ -893,6 +892,7 @@ void backlight_hold_changed(bool hold_button) queue_post(&backlight_queue, BACKLIGHT_ON, 0); } } +#endif /* HAS_BUTTON_HOLD */ void backlight_set_on_button_hold(int index) { @@ -903,7 +903,6 @@ void backlight_set_on_button_hold(int index) backlight_on_button_hold = index; queue_post(&backlight_queue, BACKLIGHT_TMO_CHANGED, 0); } -#endif /* HAS_BUTTON_HOLD */ #ifdef HAVE_LCD_SLEEP_SETTING void lcd_set_sleep_after_backlight_off(int timeout_seconds) diff --git a/firmware/export/backlight.h b/firmware/export/backlight.h index f4ce5d8568..c94be264ca 100644 --- a/firmware/export/backlight.h +++ b/firmware/export/backlight.h @@ -53,8 +53,8 @@ void backlight_set_timeout_plugged(int value); #ifdef HAS_BUTTON_HOLD void backlight_hold_changed(bool hold_button); -void backlight_set_on_button_hold(int index); #endif +void backlight_set_on_button_hold(int index); #if defined(HAVE_LCD_SLEEP) && defined(HAVE_LCD_SLEEP_SETTING) void lcd_set_sleep_after_backlight_off(int timeout_seconds); |