Remove and redefine backlight_transit_state function in backlight_ops.
This function is added to below display-backlight.
int display_backlight_change_brightness_by_dpms_state(enum dpms_state state)
-> In AOD mode, this function changes brightness smoothly.
Change-Id: Iee3e16ad023fc71a3d1fccbf96dcabfbc156401c
Signed-off-by: Yunhee Seo <yuni.seo@samsung.com>
g_source_remove(transit_timer);
transit_timer = 0;
- backlight_ops->transit_state(DPMS_ON);
+ display_backlight_change_brightness_by_dpms_state(DPMS_ON);
return G_SOURCE_REMOVE;
}
}
if (flags & LCD_PHASED_TRANSIT_MODE)
- backlight_ops->transit_state(DPMS_OFF);
+ display_backlight_change_brightness_by_dpms_state(DPMS_OFF);
SYS_G_LIST_FOREACH(lcdon_ops, l, ops)
ops->stop(flags);
return false;
}
-/* It was operated only AOD enter & leave */
-static int backlight_transit_state(int state)
-{
- int brt, val;
- int start, end;
- int default_brightness = 0;
-
- display_backlight_get_default_brightness(&default_brightness);
-
- display_backlight_get_brightness(&brt);
-
- if (state == DPMS_OFF) {
- start = brt;
- end = display_conf->aod_enter_level;
-
- /*
- * The value of display_backlight_get_brightness is system brightness.
- * But when device is LBM, the value is not same with real brightness.
- * So it should be read exactly value for transit smooth effect
- */
- display_backlight_get_brightness(&val);
-
- if (val > display_conf->aod_enter_level)
- display_backlight_change_brightness(start, end, display_conf->brightness_change_step);
- } else {
- /* prevent transit effect when another effect is already executed */
- if (brt != display_conf->aod_enter_level) {
- _W("effect is already executed brt(%d) aod_level(%d)",
- brt, display_conf->aod_enter_level);
- return 0;
- }
-
- start = display_conf->aod_enter_level;
- end = default_brightness;
- display_backlight_change_brightness(start, end, display_conf->brightness_change_step);
- }
-
- return 0;
-}
-
static struct _backlight_ops backlight_ops = {
.get_lcd_power = dpms_get_cached_state,
.set_brightness = NULL,
.get_brightness = NULL,
- .transit_state = backlight_transit_state,
+ .transit_state = NULL,
.transit_brt = NULL,
};
g_source_remove(transit_timer);
transit_timer = 0;
- backlight_ops->transit_state(DPMS_ON);
+ display_backlight_change_brightness_by_dpms_state(DPMS_ON);
return G_SOURCE_REMOVE;
}
}
if (flags & LCD_PHASED_TRANSIT_MODE)
- backlight_ops->transit_state(DPMS_OFF);
+ display_backlight_change_brightness_by_dpms_state(DPMS_OFF);
SYS_G_LIST_FOREACH(lcdon_ops, l, ops)
ops->stop(flags);
return false;
}
-/* It was operated only AOD enter & leave */
-static int backlight_transit_state(int state)
-{
- int brt, val;
- int start, end;
- int default_brightness = 0;
-
- display_backlight_get_default_brightness(&default_brightness);
-
- display_backlight_get_brightness(&brt);
-
- if (state == DPMS_OFF) {
- start = brt;
- end = display_conf->aod_enter_level;
-
- /*
- * The value of display_backlight_get_brightness is system brightness.
- * But when device is LBM, the value is not same with real brightness.
- * So it should be read exactly value for transit smooth effect
- */
- display_backlight_get_brightness(&val);
-
- if (val > display_conf->aod_enter_level)
- display_backlight_change_brightness(start, end, display_conf->brightness_change_step);
- } else {
- /* prevent transit effect when another effect is already executed */
- if (brt != display_conf->aod_enter_level) {
- _W("effect is already executed brt(%d) aod_level(%d)",
- brt, display_conf->aod_enter_level);
- return 0;
- }
-
- start = display_conf->aod_enter_level;
- end = default_brightness;
- display_backlight_change_brightness(start, end, display_conf->brightness_change_step);
- }
-
- return 0;
-}
-
static struct _backlight_ops backlight_ops = {
.get_lcd_power = dpms_get_cached_state,
.set_brightness = NULL,
.get_brightness = NULL,
- .transit_state = backlight_transit_state,
+ .transit_state = NULL,
.transit_brt = NULL,
};
g_source_remove(transit_timer);
transit_timer = 0;
- backlight_ops->transit_state(DPMS_ON);
+ display_backlight_change_brightness_by_dpms_state(DPMS_ON);
return G_SOURCE_REMOVE;
}
}
if (flags & LCD_PHASED_TRANSIT_MODE)
- backlight_ops->transit_state(DPMS_OFF);
+ display_backlight_change_brightness_by_dpms_state(DPMS_OFF);
SYS_G_LIST_FOREACH(lcdon_ops, l, ops)
ops->stop(flags);
return false;
}
-/* It was operated only AOD enter & leave */
-static int backlight_transit_state(int state)
-{
- int brt, val;
- int start, end;
- int default_brightness = 0;
-
- display_backlight_get_default_brightness(&default_brightness);
-
- display_backlight_get_brightness(&brt);
-
- if (state == DPMS_OFF) {
- start = brt;
- end = display_conf->aod_enter_level;
-
- /*
- * The value of display_backlight_get_brightness is system brightness.
- * But when device is LBM, the value is not same with real brightness.
- * So it should be read exactly value for transit smooth effect
- */
- display_backlight_get_brightness(&val);
-
- if (val > display_conf->aod_enter_level)
- display_backlight_change_brightness(start, end, display_conf->brightness_change_step);
- } else {
- /* prevent transit effect when another effect is already executed */
- if (brt != display_conf->aod_enter_level) {
- _W("effect is already executed brt(%d) aod_level(%d)",
- brt, display_conf->aod_enter_level);
- return 0;
- }
-
- start = display_conf->aod_enter_level;
- end = default_brightness;
- display_backlight_change_brightness(start, end, display_conf->brightness_change_step);
- }
-
- return 0;
-}
-
static struct _backlight_ops backlight_ops = {
.get_lcd_power = dpms_get_cached_state,
.set_brightness = NULL,
.get_brightness = NULL,
- .transit_state = backlight_transit_state,
+ .transit_state = NULL,
.transit_brt = NULL,
};
g_source_remove(transit_timer);
transit_timer = 0;
- backlight_ops->transit_state(DPMS_ON);
+ display_backlight_change_brightness_by_dpms_state(DPMS_ON);
return G_SOURCE_REMOVE;
}
}
if (flags & LCD_PHASED_TRANSIT_MODE)
- backlight_ops->transit_state(DPMS_OFF);
+ display_backlight_change_brightness_by_dpms_state(DPMS_OFF);
SYS_G_LIST_FOREACH(lcdon_ops, l, ops)
ops->stop(flags);
#include "shared/common.h"
#include "shared/devices.h"
#include "display/display-actor.h"
+#include "display/display-backlight.h"
#include "display/display-ops.h"
#include "display-info.h"
if (dpms_get_cached_state() != DPMS_ON)
return G_SOURCE_REMOVE;
- backlight_ops->transit_state(DPMS_ON);
+ display_backlight_change_brightness_by_dpms_state(DPMS_ON);
display_info.set_brightness_level(level);
/* lcdon is completed, aod disappered */
if (!aod_clock_displayed)
return;
- backlight_ops->transit_state(DPMS_ON);
+ display_backlight_change_brightness_by_dpms_state(DPMS_ON);
if (autobrt_timer) { /* if there is reserved level, apply it */
g_source_remove(autobrt_timer);
autobrt_timer = 0;
}
}
+/* FIXME: display_backlight_get_brightness is duplicated, this code structure should be changed */
+/* It was operated only AOD enter & leave */
+int display_backlight_change_brightness_by_dpms_state(enum dpms_state state)
+{
+ int brt, val;
+ int start, end;
+ int default_brightness;
+
+ display_backlight_get_default_brightness(&default_brightness);
+
+ if (backlight_ops && backlight_ops->transit_state)
+ return backlight_ops->transit_state((int)state);
+
+ display_backlight_get_brightness(&brt);
+
+ if (state == DPMS_OFF) {
+ start = brt;
+ end = display_conf->aod_enter_level;
+
+ /*
+ * The value of display_backlight_get_brightness is system brightness.
+ * But when device is LBM, the value is not same with real brightness.
+ * So it should be read exactly value for transit smooth effect
+ */
+ display_backlight_get_brightness(&val);
+
+ if (val > display_conf->aod_enter_level)
+ display_backlight_change_brightness(start, end, display_conf->brightness_change_step);
+ } else {
+ /* prevent transit effect when another effect is already executed */
+ if (brt != display_conf->aod_enter_level) {
+ _W("effect is already executed brt(%d) aod_level(%d)",
+ brt, display_conf->aod_enter_level);
+ return 0;
+ }
+
+ start = display_conf->aod_enter_level;
+ end = default_brightness;
+ display_backlight_change_brightness(start, end, display_conf->brightness_change_step);
+ }
+
+ return 0;
+}
+
int display_backlight_set_default_brightness(int brightness)
{
if (brightness < PM_MIN_BRIGHTNESS || brightness > PM_MAX_BRIGHTNESS) {
#ifndef __DISPLAY_BACKLIGHT_H__
#define __DISPLAY_BACKLIGHT_H__
+#include "shared/devices.h"
+
int display_backlight_get_max_brightness(int *max_brightness);
int display_backlight_get_normalized_brightness(int raw_brightness,
int *normalized_brightness);
int display_backlight_get_brightness(int *brightness);
int display_backlight_get_brightness_by_plugin_profile(int *brightness);
void display_backlight_change_brightness(int start, int end, int step);
+int display_backlight_change_brightness_by_dpms_state(enum dpms_state state);
int display_backlight_set_default_brightness(int brightness);
int display_backlight_get_default_brightness(int *brightness);
int display_backlight_update_by_default_brightness(void);