forked from len0rd/rockbox
For backlights that have a wide control, support skipping steps.
the rocker, x3ii, and x20 now take advantage of this, and fades are far faster now. Change-Id: Iceb1a5a6c1d1389c3fdb859b32016b5114a80a22
This commit is contained in:
parent
9ee618e889
commit
b5cb99a7bf
4 changed files with 28 additions and 3 deletions
|
@ -27,6 +27,10 @@
|
||||||
#include "backlight.h"
|
#include "backlight.h"
|
||||||
#include "backlight-sw-fading.h"
|
#include "backlight-sw-fading.h"
|
||||||
|
|
||||||
|
#ifndef BRIGHTNESS_STEP
|
||||||
|
#define BRIGHTNESS_STEP 1
|
||||||
|
#endif
|
||||||
|
|
||||||
/* To adapt a target do:
|
/* To adapt a target do:
|
||||||
* - make sure backlight_hw_on doesn't set the brightness to something other than
|
* - make sure backlight_hw_on doesn't set the brightness to something other than
|
||||||
* the previous value (lowest brightness in most cases)
|
* the previous value (lowest brightness in most cases)
|
||||||
|
@ -46,7 +50,14 @@ static bool _backlight_fade_up(void)
|
||||||
{
|
{
|
||||||
if (LIKELY(current_brightness < backlight_brightness))
|
if (LIKELY(current_brightness < backlight_brightness))
|
||||||
{
|
{
|
||||||
|
#if BRIGHTNESS_STEP == 1
|
||||||
backlight_hw_brightness(++current_brightness);
|
backlight_hw_brightness(++current_brightness);
|
||||||
|
#else
|
||||||
|
current_brightness += BRIGHTNESS_STEP;
|
||||||
|
if (current_brightness > MAX_BRIGHTNESS_SETTING)
|
||||||
|
current_brightness = MAX_BRIGHTNESS_SETTING;
|
||||||
|
backlight_hw_brightness(current_brightness);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
return(current_brightness >= backlight_brightness);
|
return(current_brightness >= backlight_brightness);
|
||||||
}
|
}
|
||||||
|
@ -56,13 +67,24 @@ static bool _backlight_fade_down(void)
|
||||||
{
|
{
|
||||||
if (LIKELY(current_brightness > MIN_BRIGHTNESS_SETTING))
|
if (LIKELY(current_brightness > MIN_BRIGHTNESS_SETTING))
|
||||||
{
|
{
|
||||||
|
#if BRIGHTNESS_STEP == 1
|
||||||
backlight_hw_brightness(--current_brightness);
|
backlight_hw_brightness(--current_brightness);
|
||||||
|
#else
|
||||||
|
current_brightness -= BRIGHTNESS_STEP;
|
||||||
|
if (current_brightness < MIN_BRIGHTNESS_SETTING)
|
||||||
|
current_brightness = MIN_BRIGHTNESS_SETTING;
|
||||||
|
backlight_hw_brightness(current_brightness);
|
||||||
|
#endif
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* decrement once more, since backlight is off */
|
/* decrement once more, since backlight is off */
|
||||||
|
#if BRIGHTNESS_STEP == 1
|
||||||
current_brightness--;
|
current_brightness--;
|
||||||
|
#else
|
||||||
|
current_brightness=MIN_BRIGHTNESS_SETTING -1;
|
||||||
|
#endif
|
||||||
backlight_hw_off();
|
backlight_hw_off();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,10 +51,11 @@
|
||||||
#define HAVE_BACKLIGHT_BRIGHTNESS
|
#define HAVE_BACKLIGHT_BRIGHTNESS
|
||||||
|
|
||||||
/* Main LCD backlight brightness range and defaults: the backlight driver
|
/* Main LCD backlight brightness range and defaults: the backlight driver
|
||||||
* has levels from 0 to 2555. But 0 is off so start at 1.
|
* has levels from 0 to 255. But 0 is off so start at 1.
|
||||||
*/
|
*/
|
||||||
#define MIN_BRIGHTNESS_SETTING 1
|
#define MIN_BRIGHTNESS_SETTING 1
|
||||||
#define MAX_BRIGHTNESS_SETTING 255
|
#define MAX_BRIGHTNESS_SETTING 255
|
||||||
|
#define BRIGHTNESS_STEP 5
|
||||||
#define DEFAULT_BRIGHTNESS_SETTING 70
|
#define DEFAULT_BRIGHTNESS_SETTING 70
|
||||||
|
|
||||||
/* Which backlight fading type? */
|
/* Which backlight fading type? */
|
||||||
|
|
|
@ -48,10 +48,11 @@
|
||||||
#define HAVE_BACKLIGHT_BRIGHTNESS
|
#define HAVE_BACKLIGHT_BRIGHTNESS
|
||||||
|
|
||||||
/* Main LCD backlight brightness range and defaults: the backlight driver
|
/* Main LCD backlight brightness range and defaults: the backlight driver
|
||||||
* has levels from 0 to 2555. But 0 is off so start at 1.
|
* has levels from 0 to 255. But 0 is off so start at 1.
|
||||||
*/
|
*/
|
||||||
#define MIN_BRIGHTNESS_SETTING 1
|
#define MIN_BRIGHTNESS_SETTING 1
|
||||||
#define MAX_BRIGHTNESS_SETTING 255
|
#define MAX_BRIGHTNESS_SETTING 255
|
||||||
|
#define BRIGHTNESS_STEP 5
|
||||||
#define DEFAULT_BRIGHTNESS_SETTING 70
|
#define DEFAULT_BRIGHTNESS_SETTING 70
|
||||||
|
|
||||||
/* Which backlight fading type? */
|
/* Which backlight fading type? */
|
||||||
|
|
|
@ -48,10 +48,11 @@
|
||||||
#define HAVE_BACKLIGHT_BRIGHTNESS
|
#define HAVE_BACKLIGHT_BRIGHTNESS
|
||||||
|
|
||||||
/* Main LCD backlight brightness range and defaults: the backlight driver
|
/* Main LCD backlight brightness range and defaults: the backlight driver
|
||||||
* has levels from 0 to 2555. But 0 is off so start at 1.
|
* has levels from 0 to 255. But 0 is off so start at 1.
|
||||||
*/
|
*/
|
||||||
#define MIN_BRIGHTNESS_SETTING 1
|
#define MIN_BRIGHTNESS_SETTING 1
|
||||||
#define MAX_BRIGHTNESS_SETTING 255
|
#define MAX_BRIGHTNESS_SETTING 255
|
||||||
|
#define BRIGHTNESS_STEP 5
|
||||||
#define DEFAULT_BRIGHTNESS_SETTING 70
|
#define DEFAULT_BRIGHTNESS_SETTING 70
|
||||||
|
|
||||||
/* Which backlight fading type? */
|
/* Which backlight fading type? */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue