diff options
author | Youngjae Cho <y0.cho@samsung.com> | 2020-03-10 18:02:20 +0900 |
---|---|---|
committer | Hyotaek Shim <hyotaek.shim@samsung.com> | 2020-03-11 03:06:38 +0000 |
commit | 1301a49238feff2c9d174726e021dcf2be6a3fa2 (patch) | |
tree | 5565a498fe43e0509bba2bf8c353723815972abb | |
parent | c50f896d18b82148278820f026ffae1018945852 (diff) | |
download | deviced-1301a49238feff2c9d174726e021dcf2be6a3fa2.tar.gz deviced-1301a49238feff2c9d174726e021dcf2be6a3fa2.tar.bz2 deviced-1301a49238feff2c9d174726e021dcf2be6a3fa2.zip |
Introduce 3 level AOD brightnesssubmit/tizen_5.5/20200311.031543accepted/tizen/5.5/unified/20200311.130956
Change-Id: Iae0ca878f7702e72cccf9ff54f26da59e3b3e78e
Signed-off-by: Youngjae Cho <y0.cho@samsung.com>
(cherry picked from commit 4e1b763e5054c50a234edafedcc47119aa3e75dd)
-rwxr-xr-x[-rw-r--r--] | plugins/wearable/display/device-interface.c | 41 |
1 files changed, 35 insertions, 6 deletions
diff --git a/plugins/wearable/display/device-interface.c b/plugins/wearable/display/device-interface.c index eb6414d8..b03e5c4c 100644..100755 --- a/plugins/wearable/display/device-interface.c +++ b/plugins/wearable/display/device-interface.c @@ -43,6 +43,7 @@ #include "device-node.h" #include "display/display-dpms.h" #include "battery-monitor.h" +#include "battery/power-supply.h" #define SET_SUSPEND_TIME 0.5 @@ -89,6 +90,9 @@ static bool vital_sleep; static int dpms_running_state = DPMS_SETTING_DONE; static struct display_device *display_dev; static guint release_timer; +static int aod_max_level = -1; +static int aod_normal_level = -1; +static int aod_min_level = -1; struct display_device *display_dev_get(void) { @@ -808,12 +812,23 @@ static int backlight_transit_state(int state) { int brt, val; int start, end; + static int aod_brightness_level; backlight_ops.get_brightness(&brt); if (state == DPMS_OFF) { start = brt; - end = display_conf.aod_enter_level; + + /* There are three levels of AOD brightness: max, normal, min brightness. + * At first, AOD brightness is set to normal level when charger is connected, + * otherwise set to max. And then, if the current brightness is lower than this + * initialized AOD brightness, set AOD brightness to min level brightness. */ + if (battery.online_type && aod_normal_level > 0) + aod_brightness_level = aod_normal_level; + else if (aod_max_level > 0) + aod_brightness_level = aod_max_level; + else + aod_brightness_level = display_conf.aod_enter_level; /* * The value of backlight_ops.get_brightness is system brightness. @@ -822,18 +837,24 @@ static int backlight_transit_state(int state) */ get_brightness(&val); - if (val > display_conf.aod_enter_level) - backlight_ops.transit_brt(start, end, display_conf.brightness_change_step); + if ((val < aod_brightness_level) && (aod_min_level > 0)) + aod_brightness_level = aod_min_level; + + if (val > aod_brightness_level) { + _D("backlight transit start %d end %d DPMS OFF", start, aod_brightness_level); + backlight_ops.transit_brt(start, aod_brightness_level, display_conf.brightness_change_step); + } } else { /* prevent transit effect when another effect is already executed */ - if (brt != display_conf.aod_enter_level) { + if (brt != aod_brightness_level) { _W("effect is already executed brt(%d) aod_level(%d)", - brt, display_conf.aod_enter_level); + brt, aod_brightness_level); return 0; } - start = display_conf.aod_enter_level; + start = aod_brightness_level; end = default_brightness; + _D("backlight transit start %d end %d DPMS ON", start, end); backlight_ops.transit_brt(start, end, display_conf.brightness_change_step); } @@ -965,7 +986,15 @@ int display_service_load(void) return -EPERM; } + if (display_dev && display_dev->get_aod_brightness) { + r = display_dev->get_aod_brightness(&aod_max_level, &aod_normal_level, &aod_min_level); + if (r == 0) { + _I("Use various AOD brightness : max %d, normal %d, min %d", aod_max_level, aod_normal_level, aod_min_level); + } + } + _D("Display device structure load success."); + return 0; } |