From dc87e9e9f3c383b63c3cb3713886a6c93b6a79d1 Mon Sep 17 00:00:00 2001
From: William Wilgus <me.theuser@yahoo.com>
Date: Tue, 22 Nov 2016 06:21:31 +0100
Subject: Selective Backlight/Advanced Softlock - Selective actions based on
 context

Selective backlight allows the user to choose actions that will not
enable the backlight when pressed.

Advanced softlock allows user to choose actions that  will not be
blocked by screenlock on devices without a hold button.

Both only occur in FM and WPS Contexts.

Update:
Back from the dead
-Cleaned up code, removed unnecessary calls, re-arranged last filter action
  timeout conditional to work in case last_filtered_action_tick was never set
-Added entries to the manual
-Fixed back button on some menus not activating backlight
-Made menus more intuitive, no actions selected now changes menu item to off.
-Added talk fuctionality.
-Added option to disable selective backlight while on external power.
-Rewrote backlight and softlock handling code to fix issue with scrollwheels
-Menu changed to have toggle(yes/no) and settings
-Optimized selective actions lookup
-Added option to disable notification of 'buttons locked' while softlocked
-Removed uneeded code, consolidated action lookup to single function
-Fixed incorrect name on selective softlock menu
-Added option to disable touch on touchscreen devices
-Fixed backlight on original screenlock without selective screenlock active
-Added text selection in mask_select for when show_icons is off
-Fixed voice in mask_select to speak if voice is defined instead of spelling
-Added more lang defines (play skip seek)
-Added option to disable unknown keys turning on backlight
-Fixed Conditional argument In wrong place causing players without
	backlight to fail to build
-Fixed Disable Unknown blocking detection of context change
-Fixed canceling menu didn't update new settings
-Added Autolock on backlight off
-Removed backlight_on_force from backlight.c, Now sets ignore next to false
	and uses backlight_on
-Cleaned up autolock code added strings to lang file
-Fixed issue where rapid presses would bypass softlock
-Removed old softlock code, Cleaned selective actions code
-Changed menu to match existing RB menus
-Fixed Backlight_on_Hold blocked by backlight_ignore_next
-Fixed ignore_next for ipod
-Fixed bug allowing context with softlock to bypass selective backlight
-Changed mask_select to no longer prompt for changes to be saved
-Changed menu names
-Added ignore timeout to allow ipod scroll wheel to work properly and other
 players to still work properly, removed some previous code including
 ignore_event
-Increased ignore timeout to prevent sd card accesses from interrupting action
 code and turning on backlight
-Changed Unknown action to unmapped action in menu, changed handling code
-Removed unneeded logic and variables for handling unfiltered actions
-Reverted unmapped action code to previous functionality
-Added manual entries (thanks JohnB)
-Removed elusive unhandled unicode character from manual, changed formatting slightly

Actions:
Volume,Play,Seek,Skip

Extras:
Disable unmapped actions
Disable selective backlight on external power
Disable touch during softlock on touchscreen devices
Disable softlock notifications (power button still notifies)
Autolock on backlight off

Method:
Adds a function to ignore backlight on next call
 If selected action occurs backlight is forced on,
 Filter_first_keypress stays intact.

Selective softlock allows selected actions through, bypasses the normal
 softlock routine.

ToDo:
DONE

previous commit (#1) has attribution for folder_select.c which mask_select
is based from.

Change-Id: I08132ddcfd64c81751ef23b720f3ec6d68695fe4
---
 manual/configure_rockbox/display_options.tex | 66 ++++++++++++++++++++--------
 1 file changed, 48 insertions(+), 18 deletions(-)
 mode change 100644 => 100755 manual/configure_rockbox/display_options.tex

(limited to 'manual/configure_rockbox/display_options.tex')

diff --git a/manual/configure_rockbox/display_options.tex b/manual/configure_rockbox/display_options.tex
old mode 100644
new mode 100755
index c872f08031..163b1e884c
--- a/manual/configure_rockbox/display_options.tex
+++ b/manual/configure_rockbox/display_options.tex
@@ -1,6 +1,6 @@
 % $Id$ %
 \section{\label{ref:Displayoptions}Display}
-  
+
   \begin{description}
 
   \item[LCD Settings.]
@@ -32,14 +32,14 @@
         \item[Backlight Fade In.]
         The amount of time that the backlight will take to fade from off to on
         after a button is pressed. If set to \setting{Off} the backlight will
-        turn on immediately, with no fade in. Can also be set to 
+        turn on immediately, with no fade in. Can also be set to
         \setting{500ms}, \setting{1s} or \setting{2s}.
         \item[Backlight Fade Out.]
         Like Backlight fade in, this controls the amount of time that the
         backlight will take to fade from on to off after a button is pressed. If
         set to \setting{Off} the backlight will turn off immediately, with no
         fade out. Other valid values: \setting{500ms}, \setting{1s},
-        \setting{2s}, \setting{3s}, \setting{4s}, \setting{5s} or 
+        \setting{2s}, \setting{3s}, \setting{4s}, \setting{5s} or
         \setting{10s}.
       }
       \opt{backlight_fade_bool}{
@@ -56,21 +56,51 @@
       With this option enabled the first keypress while the backlight is turned
       off will only turn the backlight on without having any other effect. When
       disabled the first keypress will \emph{also} perform its appropriate action.
-      
+
+      \item[\label{ref:selectivebacklight}Selective Backlight]
+       This option allows some selected actions in While Playing Screen and
+       FM screen to \emph{not} turn on the backlight in order to save power.
+      \begin{description}
+        \item[Enabled.]
+        Enables/disables the feature.
+
+        \item[Settings.]
+        Allows to select actions that will \emph{not} activate backlight.
+                \begin{itemize}
+                \item[Volume.]
+                Volume up/down.
+                \item[Play.]
+                Toggling Play/Pause.
+                \item[Seek.]
+                Seeking in a track.
+                \item[Skip.]
+                Skipping of a track.
+                \item[Disable Unmapped Keys.]
+                Buttons that have no action assigned and accidental button
+                    combinations don't turn on backlight.
+                \item[Disable on External Power.]
+                When plugged goes back to regular behavior.
+                \end{itemize}
+        Selected actions are indicated by a leading +.
+        Note: If all options get de-selected, the entire feature is disabled.
+        \end{description}
+
+
+
       \opt{lcd_sleep}{
         \item[Sleep (After Backlight Off).]
         This setting controls how long rockbox will wait before turning off the
         display after the backlight is turned off. Turning off the display
-        saves battery power but turning on the display takes noticeably longer 
+        saves battery power but turning on the display takes noticeably longer
         than just turning on the backlight.
       }
-      
+
       \opt{backlight_brightness}{
         \item[Brightness.]
         Changes the brightness of your LCD display.
       }
     } % \opt{HAVE_BACKLIGHT}
-    
+
     \opt{lcd_contrast}{
       \item[Contrast.]
       Changes the contrast of your LCD display.
@@ -122,7 +152,7 @@
          This setting lets you invert the whole screen, so now you get a
          black background and light text and graphics.
        \item[Upside Down.]
-         Displays the screen so that the top of the display is nearest 
+         Displays the screen so that the top of the display is nearest
          the buttons. This is sometimes useful when carrying the \dap\ in a
          pocket for easy access to the headphone socket.
        \opt{remote_ticking}{
@@ -138,7 +168,7 @@
     the following parameters:
     \begin{description}
     \item[Scroll Speed.]
-      Sets how many times per second the automatic horizontal scrolling text 
+      Sets how many times per second the automatic horizontal scrolling text
       will move a step.
     \item[Scroll Start Delay.]
       Controls how many milliseconds Rockbox should wait before a new
@@ -184,23 +214,23 @@
       useful on slow displays.
     \nopt{scrollwheel}{
       \item[List Acceleration Start Delay.]
-        This setting enables the acceleration of scroll speed in lists when 
-        holding \ActionStdPrev{} or \ActionStdNext{}. When set to 
-        \setting{Off} the acceleration is disabled. When any other value is set 
+        This setting enables the acceleration of scroll speed in lists when
+        holding \ActionStdPrev{} or \ActionStdNext{}. When set to
+        \setting{Off} the acceleration is disabled. When any other value is set
         the acceleration will start to accelerate after holding
-        \ActionStdPrev{} or \ActionStdNext{} for the chosen time (in 
+        \ActionStdPrev{} or \ActionStdNext{} for the chosen time (in
         seconds).
       \item[List Acceleration Speed.]
-        This setting controls how fast the scroll speed accelerates. The scroll 
-        speed will increase every N seconds. For example, selecting 
-        \setting{Speed up every 3s} will increase the scroll speed every 3 
+        This setting controls how fast the scroll speed accelerates. The scroll
+        speed will increase every N seconds. For example, selecting
+        \setting{Speed up every 3s} will increase the scroll speed every 3
         seconds while \ActionStdPrev{} or \ActionStdNext{} is held.
     }
     \end{description}
 %
   \opt{lcd_bitmap}{
     \item[Peak Meter.]
-      The peak meter can be configured with a number of parameters. 
+      The peak meter can be configured with a number of parameters.
       \begin{description}
       \item[Peak Release.]
         This determines how fast the bar shrinks when the music becomes
@@ -216,7 +246,7 @@
       \item[Clip Hold Time.]
         The number of seconds that the clipping indicator will be visible
         after clipping is detected.
-      \opt{recording}{  
+      \opt{recording}{
         \item[Clip Counter.]
           Show the number of times the clip indicator went active during
           recording in front of the peak meters.
-- 
cgit v1.2.3

