switch (next) {
case SYSCOMMON_DEVICED_DISPLAY_STATE_ON:
if (display_panel_get_dpms_cached_state() != SYSCOMMON_DEVICED_DPMS_ON)
- display_panel_lcd_on_direct(LCD_ON_BY_EVENT);
+ display_panel_lcd_on_direct(DEVICED_EVENT_UNKNOWN);
display_state_transition_update_lock_screen_timeout(LOCK_SCREEN_CONTROL_TIMEOUT);
display_state_transition_do_proc_change_state_action(next, -1);
break;
case SYSCOMMON_DEVICED_DISPLAY_STATE_OFF:
if (display_panel_get_dpms_cached_state() == SYSCOMMON_DEVICED_DPMS_ON) {
if (get_proximity_state() == SENSOR_PROXIMITY_NEAR)
- display_panel_lcd_off_procedure(LCD_OFF_BY_PROXIMITY);
+ display_panel_lcd_off_procedure(DEVICED_EVENT_MISC_PROXIMITY);
else
- display_panel_lcd_off_procedure(LCD_OFF_BY_EVENT);
+ /**
+ * FIXME: need to convey reason to this point
+ * from the top of this subroutine.
+ */
+ display_panel_lcd_off_procedure(DEVICED_EVENT_UNKNOWN);
}
if (set_custom_lcdon_timeout(0))
display_state_transition_update_display_state_timeout_by_priority();
dp->config = &display_conf;
init_display_states(dp);
setup_display_plugin_backlight_ops(dp);
- dp->get_device_flags = NULL;
dp->lcd_on_procedure = NULL;
dp->lcd_off_procedure = NULL;
dp->custom_lcd_on = NULL;
NULL);
}
-static inline bool switch_on_lcd(enum device_flags flags)
+static inline bool switch_on_lcd(enum deviced_event reason)
{
if (current_state_in_on())
return false;
- if (flags & LCD_ON_BY_POWER_KEY)
+ if (reason == DEVICED_EVENT_INPUT_POWERKEY)
broadcast_lcdon_by_powerkey();
- else if (flags & LCD_ON_BY_TOUCH)
+ else if (reason == DEVICED_EVENT_TOUCHSCREEN)
_I("Display on by Touch_wakeup event");
- display_panel_lcd_on_direct(flags);
+ display_panel_lcd_on_direct(reason);
return true;
}
broadcast_lcdoff_by_powerkey();
- display_panel_lcd_off_procedure(LCD_OFF_BY_POWER_KEY);
+ display_panel_lcd_off_procedure(DEVICED_EVENT_INPUT_POWERKEY);
}
static void check_key_combination(struct input_event *pinput)
_D("No lcd-on capability!");
return true;
} else if (pinput->value == KEY_PRESSED)
- switch_on_lcd(LCD_ON_BY_POWER_KEY);
+ switch_on_lcd(DEVICED_EVENT_INPUT_POWERKEY);
return false;
}
if (display_panel_get_dpms_cached_state() != SYSCOMMON_DEVICED_DPMS_ON ||
current_state_in_on() == false) {
broadcast_lcdon_by_powerkey();
- display_panel_lcd_on_direct(LCD_ON_BY_POWER_KEY);
+ display_panel_lcd_on_direct(DEVICED_EVENT_INPUT_POWERKEY);
display_state_transition_do_state_transition_by_input_poll_event();
}
int ignore = true;
if (pinput->value == KEY_PRESSED) {
- switch_on_lcd(LCD_ON_BY_BACK_KEY);
+ switch_on_lcd(DEVICED_EVENT_INPUT_BACKKEY);
_I("back key pressed");
ignore = false;
}
break;
if (current == SYSCOMMON_DEVICED_DISPLAY_STATE_OFF && bezel_wakeup) {
- switch_on_lcd(LCD_ON_BY_BEZEL);
+ switch_on_lcd(DEVICED_EVENT_INPUT_BEZEL);
ignore = false;
} else if (current != SYSCOMMON_DEVICED_DISPLAY_STATE_OFF)
ignore = false;
update_vital_state(pinput);
if (pinput->value == KEY_PRESSED) {
- switch_on_lcd(LCD_ON_BY_TOUCH);
+ switch_on_lcd(DEVICED_EVENT_TOUCHSCREEN);
ignore = false;
}
dp->config = &display_conf;
init_display_states(dp);
setup_display_plugin_backlight_ops(dp);
- dp->get_device_flags = NULL;
dp->lcd_on_procedure = NULL;
dp->lcd_off_procedure = NULL;
dp->custom_lcd_on = NULL;
NULL);
}
-static inline bool switch_on_lcd(enum device_flags flags)
+static inline bool switch_on_lcd(enum deviced_event reason)
{
if (current_state_in_on())
return false;
- if (flags & LCD_ON_BY_POWER_KEY)
+ if (reason == DEVICED_EVENT_INPUT_POWERKEY)
broadcast_lcdon_by_powerkey();
- else if (flags & LCD_ON_BY_TOUCH)
+ else if (reason == DEVICED_EVENT_TOUCHSCREEN)
_I("Display on by Touch_wakeup event");
- display_panel_lcd_on_direct(flags);
+ display_panel_lcd_on_direct(reason);
return true;
}
broadcast_lcdoff_by_powerkey();
- display_panel_lcd_off_procedure(LCD_OFF_BY_POWER_KEY);
+ display_panel_lcd_off_procedure(DEVICED_EVENT_INPUT_POWERKEY);
}
static void check_key_combination(struct input_event *pinput)
_D("No lcd-on capability!");
return true;
} else if (pinput->value == KEY_PRESSED)
- switch_on_lcd(LCD_ON_BY_POWER_KEY);
+ switch_on_lcd(DEVICED_EVENT_INPUT_POWERKEY);
return false;
}
int ignore = true;
if (pinput->value == KEY_PRESSED) {
- switch_on_lcd(LCD_ON_BY_BACK_KEY);
+ switch_on_lcd(DEVICED_EVENT_INPUT_BACKKEY);
_I("back key pressed");
ignore = false;
}
break;
case KEY_PRESSED:
if (display_has_caps(caps, SYSCOMMON_DEVICED_DISPLAY_CAPA_LCDON)) {
- skip_lcd_off = switch_on_lcd(LCD_ON_BY_POWER_KEY);
+ skip_lcd_off = switch_on_lcd(DEVICED_EVENT_INPUT_POWERKEY);
} else {
_D("No lcdon capability!");
skip_lcd_off = false;
break;
if (current == SYSCOMMON_DEVICED_DISPLAY_STATE_OFF && bezel_wakeup) {
- switch_on_lcd(LCD_ON_BY_BEZEL);
+ switch_on_lcd(DEVICED_EVENT_INPUT_BEZEL);
ignore = false;
} else if (current != SYSCOMMON_DEVICED_DISPLAY_STATE_OFF)
ignore = false;
update_vital_state(pinput);
if (pinput->value == KEY_PRESSED) {
- switch_on_lcd(LCD_ON_BY_TOUCH);
+ switch_on_lcd(DEVICED_EVENT_TOUCHSCREEN);
ignore = false;
}
return BEZEL_TURNON;
}
-static int bezel_start(enum device_flags flags)
+static int bezel_start(enum deviced_event reason)
{
if (!bezel_dev_available)
return 0;
return 0;
}
-static int bezel_stop(enum device_flags flags)
+static int bezel_stop(enum deviced_event reason)
{
enum bezel_state state;
return &states[state];
}
-static int get_device_flags(unsigned long *device_flags)
+static void lcd_on_procedure(int state, enum deviced_event reason)
{
- if (!device_flags)
- return -EINVAL;
-
- *device_flags = NORMAL_MODE;
-
- return 0;
-}
-
-static void lcd_on_procedure(int state, enum device_flags flag)
-{
- unsigned long flags = NORMAL_MODE;
- display_plugin_get_device_flags(&flags);
- flags |= flag;
int ret;
/*
return;
}
- _I("[lcdstep] 0x%lx", flags);
+ _I("[lcdstep] reason: %s", syscommon_plugin_deviced_common_get_event_name(reason));
/* send LCDOn dbus signal */
if (!lcdon_broadcast)
- broadcast_lcd_on(SIGNAL_PRE, flags);
+ broadcast_lcd_on(SIGNAL_PRE, reason);
/* Update brightness level */
if (state == LCD_DIM)
else if (state == LCD_DIM)
set_setting_pmstate(SYSCOMMON_DEVICED_DISPLAY_STATE_DIM);
- display_start_dependent_device(flags);
+ display_start_dependent_device(reason);
if (!lcdon_broadcast) {
- broadcast_lcd_on(SIGNAL_POST, flags);
+ broadcast_lcd_on(SIGNAL_POST, reason);
lcdon_broadcast = true;
}
display_misc_set_touch_event_blocked(false);
}
-static void lcd_off_procedure(enum device_flags flag)
+static void lcd_off_procedure(enum deviced_event reason)
{
- unsigned long flags = NORMAL_MODE;
- display_plugin_get_device_flags(&flags);
- flags |= flag;
-
/*
* Display off procedure
* step 0. enhance mode off using nofity (e.g mdnie, HBM, LBM)
* step 4. broadcast lcd off complete siganl
* step 5. enter doze mode if it is enabled
*/
- _I("[lcdstep] 0x%lx", flags);
+ _I("[lcdstep] reason: %s", syscommon_plugin_deviced_common_get_event_name(reason));
/* notification */
syscommon_notifier_emit_notify(DEVICED_NOTIFIER_LCD_OFF, NULL);
if (lcdon_broadcast) {
- broadcast_lcd_off(SIGNAL_PRE, flags);
+ broadcast_lcd_off(SIGNAL_PRE, reason);
lcdon_broadcast = false;
}
set_setting_pmstate(SYSCOMMON_DEVICED_DISPLAY_STATE_OFF);
- display_stop_dependent_device(flags);
+ display_stop_dependent_device(reason);
- broadcast_lcd_off(SIGNAL_POST, flags);
+ broadcast_lcd_off(SIGNAL_POST, reason);
syscommon_notifier_emit_notify(DEVICED_NOTIFIER_LCD_OFF_COMPLETE, NULL);
enter_doze();
return -EINVAL;
if (check_lcd_is_on() == false)
- display_panel_lcd_on_direct(LCD_ON_BY_GESTURE);
+ display_panel_lcd_on_direct(DEVICED_EVENT_MISC_GESTURE);
/* Exceptional case:
* During tutorial, reset timeout by default timeout, not the given timeout */
return 0;
}
-int custom_lcdoff(enum device_flags flag)
+int custom_lcdoff(enum deviced_event reason)
{
struct syscommon_deviced_display_state_info *st;
* call app can be changed to lcd state by proximity.
* If proximity is near then normal lock will be unlocked.
*/
- if (flag & LCD_OFF_BY_PROXIMITY) {
+ if (reason == DEVICED_EVENT_MISC_PROXIMITY) {
_I("custom lcd off by proximity, delete normal lock");
display_lock_release_lock_all(SYSCOMMON_DEVICED_DISPLAY_STATE_ON);
} else {
}
}
- _I("custom lcd off by flag(%d)", flag);
+ _I("custom lcd off by reason(%d)", reason);
if (display_panel_get_dpms_cached_state() == SYSCOMMON_DEVICED_DPMS_ON)
- lcd_off_procedure(flag);
+ lcd_off_procedure(reason);
if (set_custom_lcdon_timeout(0) == true)
display_state_transition_update_display_state_timeout_by_priority();
int display_on_by_reason(const char *reason, int timeout)
{
struct syscommon_deviced_display_state_info *st;
- int flag;
+ int _reason;
int str_len;
str_len = strlen(reason);
if (!strncmp(reason, GESTURE_STR, str_len))
- flag = LCD_ON_BY_GESTURE;
+ _reason = DEVICED_EVENT_MISC_GESTURE;
else if (!strncmp(reason, EVENT_STR, str_len))
- flag = LCD_ON_BY_EVENT;
+ _reason = DEVICED_EVENT_UNKNOWN;
else {
_E("Reason is unknown(%s)", reason);
return -EINVAL;
}
if (check_lcd_is_on() == false)
- display_panel_lcd_on_direct(flag);
+ display_panel_lcd_on_direct(_reason);
_I("platform lcd on by %s (%d ms)", reason, timeout);
if (set_custom_lcdon_timeout(timeout) == true)
int display_off_by_reason(const char *reason)
{
struct syscommon_deviced_display_state_info *st;
- int flag;
+ int _reason;
int str_len;
str_len = strlen(reason);
_I("skip platform lcd off by gesture");
return -ECANCELED;
}
- flag = LCD_OFF_BY_GESTURE;
+ _reason = DEVICED_EVENT_MISC_GESTURE;
} else if (!strncmp(reason, PALM_STR, str_len)) {
display_lock_release_lock_all(SYSCOMMON_DEVICED_DISPLAY_STATE_ON);
display_lock_release_lock_all(SYSCOMMON_DEVICED_DISPLAY_STATE_DIM);
- flag = LCD_OFF_BY_PALM;
+ _reason = DEVICED_EVENT_MISC_PALM;
} else if (!strncmp(reason, DISPLAY_DETACH_STR, str_len)) {
display_lock_release_lock_all(SYSCOMMON_DEVICED_DISPLAY_STATE_ON);
display_lock_release_lock_all(SYSCOMMON_DEVICED_DISPLAY_STATE_DIM);
- flag = LCD_OFF_BY_DISPLAY_DETACH;
+ _reason = DEVICED_EVENT_DEVICE_DETACH;
} else {
_E("Reason is unknown(%s)", reason);
return -EINVAL;
_I("platform lcd off by %s", reason);
if (display_panel_get_dpms_cached_state() == SYSCOMMON_DEVICED_DPMS_ON)
- lcd_off_procedure(flag);
+ lcd_off_procedure(_reason);
/* state transition */
set_pm_old_state(get_pm_cur_state());
switch (next) {
case SYSCOMMON_DEVICED_DISPLAY_STATE_ON:
if (check_lcd_is_on() == false)
- display_panel_lcd_on_direct(LCD_ON_BY_EVENT);
+ display_panel_lcd_on_direct(DEVICED_EVENT_UNKNOWN);
display_state_transition_update_lock_screen_timeout(LOCK_SCREEN_CONTROL_TIMEOUT);
display_state_transition_do_proc_change_state_action(next, -1);
break;
break;
case SYSCOMMON_DEVICED_DISPLAY_STATE_OFF:
if (display_panel_get_dpms_cached_state() == SYSCOMMON_DEVICED_DPMS_ON)
- lcd_off_procedure(LCD_OFF_BY_EVENT);
+ lcd_off_procedure(DEVICED_EVENT_UNKNOWN);
if (set_custom_lcdon_timeout(0))
display_state_transition_update_display_state_timeout_by_priority();
display_state_transition_do_proc_change_state_action(next, -1);
display_backlight_update_by_default_brightness();
if (check_lcd_is_on() == false)
- lcd_on_procedure(LCD_NORMAL, NORMAL_MODE);
+ lcd_on_procedure(LCD_NORMAL, DEVICED_EVENT_UNKNOWN);
break;
case SYSCOMMON_DEVICED_DISPLAY_STATE_DIM:
display_backlight_set_brightness_by_dim_brightness();
if ((get_pm_old_state() == SYSCOMMON_DEVICED_DISPLAY_STATE_OFF) || (get_pm_old_state() == SYSCOMMON_DEVICED_DISPLAY_STATE_SLEEP))
- lcd_on_procedure(LCD_DIM, NORMAL_MODE);
+ lcd_on_procedure(LCD_DIM, DEVICED_EVENT_UNKNOWN);
break;
case SYSCOMMON_DEVICED_DISPLAY_STATE_OFF:
if ((get_pm_old_state() != SYSCOMMON_DEVICED_DISPLAY_STATE_SLEEP) && (get_pm_old_state() != SYSCOMMON_DEVICED_DISPLAY_STATE_OFF)) {
/* lcd off state : turn off the backlight */
if (display_panel_get_dpms_cached_state() == SYSCOMMON_DEVICED_DPMS_ON)
- lcd_off_procedure(LCD_OFF_BY_TIMEOUT);
+ lcd_off_procedure(DEVICED_EVENT_DISPLAY_SCREEN_TIMEOUT);
}
display_panel_get_lcd_paneloff_mode(&lcd_paneloff_mode);
if (display_panel_get_dpms_cached_state() == SYSCOMMON_DEVICED_DPMS_ON
|| lcd_paneloff_mode)
- lcd_off_procedure(LCD_OFF_BY_TIMEOUT);
+ lcd_off_procedure(DEVICED_EVENT_DISPLAY_SCREEN_TIMEOUT);
break;
case SYSCOMMON_DEVICED_DISPLAY_STATE_SLEEP:
if (display_panel_get_dpms_cached_state() == SYSCOMMON_DEVICED_DPMS_ON)
- lcd_off_procedure(LCD_OFF_BY_TIMEOUT);
+ lcd_off_procedure(DEVICED_EVENT_DISPLAY_SCREEN_TIMEOUT);
if (!pm_get_power_lock_support()) {
/* sleep state : set system mode to SUSPEND */
val == VCONFKEY_IDLE_LOCK &&
display_panel_get_dpms_cached_state() != SYSCOMMON_DEVICED_DPMS_ON &&
is_lcdon_blocked() == LCDON_BLOCK_NONE)
- lcd_on_procedure(LCD_NORMAL, LCD_ON_BY_EVENT);
+ lcd_on_procedure(LCD_NORMAL, DEVICED_EVENT_UNKNOWN);
display_state_transition_update_display_state_timeout_by_priority();
if (get_pm_cur_state() == SYSCOMMON_DEVICED_DISPLAY_STATE_ON)
states[get_pm_cur_state()].trans(EVENT_INPUT);
dp->config = &display_conf;
init_display_states(dp);
setup_display_plugin_backlight_ops(dp);
- dp->get_device_flags = get_device_flags;
dp->lcd_on_procedure = lcd_on_procedure;
dp->lcd_off_procedure = lcd_off_procedure;
dp->custom_lcd_on = custom_lcdon;
return;
}
-static int display_start(enum device_flags flags)
+static int display_start(enum deviced_event reason)
{
bool lcd_paneloff_mode = false;
}
/* normal lcd on */
- display_panel_set_panel_state_by_on_state(flags);
+ display_panel_set_panel_state_by_on_state(reason);
return 0;
}
-static int display_stop(enum device_flags flags)
+static int display_stop(enum deviced_event reason)
{
- display_panel_set_panel_state_by_off_state(flags);
+ display_panel_set_panel_state_by_off_state(reason);
return 0;
}
NULL);
}
-static inline bool switch_on_lcd(enum device_flags flags)
+static inline bool switch_on_lcd(enum deviced_event reason)
{
int ret;
if (current_state_in_on())
return false;
- if (flags & LCD_ON_BY_POWER_KEY)
+ if (reason == DEVICED_EVENT_INPUT_POWERKEY)
broadcast_lcdon_by_powerkey();
- else if (flags & LCD_ON_BY_TOUCH)
+ else if (reason == DEVICED_EVENT_TOUCHSCREEN)
_I("Display on by Touch_wakeup event");
- display_panel_lcd_on_direct(flags);
+ display_panel_lcd_on_direct(reason);
return true;
}
broadcast_lcdoff_by_powerkey();
- display_panel_lcd_off_procedure(LCD_OFF_BY_POWER_KEY);
+ display_panel_lcd_off_procedure(DEVICED_EVENT_INPUT_POWERKEY);
}
static void check_key_combination(struct input_event *pinput)
_D("No lcd-on capability!");
return true;
} else if (pinput->value == KEY_PRESSED)
- switch_on_lcd(LCD_ON_BY_POWER_KEY);
+ switch_on_lcd(DEVICED_EVENT_INPUT_POWERKEY);
return false;
}
int ignore = true;
if (pinput->value == KEY_PRESSED) {
- switch_on_lcd(LCD_ON_BY_BACK_KEY);
+ switch_on_lcd(DEVICED_EVENT_INPUT_BACKKEY);
_I("back key pressed");
ignore = false;
}
break;
case KEY_PRESSED:
if (display_has_caps(caps, SYSCOMMON_DEVICED_DISPLAY_CAPA_LCDON)) {
- skip_lcd_off = switch_on_lcd(LCD_ON_BY_POWER_KEY);
+ skip_lcd_off = switch_on_lcd(DEVICED_EVENT_INPUT_POWERKEY);
} else {
_D("No lcdon capability!");
skip_lcd_off = false;
break;
case EV_REL:
if ((get_pm_cur_state() == SYSCOMMON_DEVICED_DISPLAY_STATE_OFF) && bezel_wakeup) {
- switch_on_lcd(LCD_ON_BY_BEZEL);
+ switch_on_lcd(DEVICED_EVENT_INPUT_BEZEL);
ignore = false;
} else if (get_pm_cur_state() != SYSCOMMON_DEVICED_DISPLAY_STATE_OFF)
ignore = false;
update_vital_state(pinput);
if (pinput->value == KEY_PRESSED) {
- switch_on_lcd(LCD_ON_BY_TOUCH);
+ switch_on_lcd(DEVICED_EVENT_TOUCHSCREEN);
ignore = false;
}
#ifndef __POWER_MANAGER_H__
#define __POWER_MANAGER_H__
+#include <system/syscommon-plugin-deviced-common-interface.h>
#include <system/syscommon-plugin-deviced-display.h>
#include "poll.h"
/* core.c */
int delete_condition(enum syscommon_deviced_display_state state);
-int custom_lcdoff(enum device_flags flag);
+int custom_lcdoff(enum deviced_event reason);
/* auto-brightness.c */
void set_brightness_changed_state(void);
control = g_display_plugin.config->control_display;
if (control)
- display_panel_set_panel_state_by_off_state(NORMAL_MODE);
+ display_panel_set_panel_state_by_off_state(DEVICED_EVENT_MISC_DBUS);
_D("app : %d, value : %d", app, val);
ret = display_panel_set_frame_rate(val);
_E("Failed to set frame rate (%d)", ret);
if (control)
- display_panel_set_panel_state_by_on_state(NORMAL_MODE);
+ display_panel_set_panel_state_by_on_state(DEVICED_EVENT_MISC_DBUS);
error:
return g_variant_new("(i)", ret);
GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data)
{
int ret = 0;
- enum device_flags flag;
+ enum deviced_event reason;
char *reason_str = NULL;
pid_t pid;
g_variant_get(param, "(s)", &reason_str);
if (!strcmp(reason_str, LCDOFF_PROXI_STR))
- flag = LCD_OFF_BY_PROXIMITY;
+ reason = DEVICED_EVENT_MISC_PROXIMITY;
else if (!strcmp(reason_str, LCDOFF_GESTURE_STR))
- flag = LCD_OFF_BY_GESTURE;
+ reason = DEVICED_EVENT_MISC_GESTURE;
else {
_E("%s resean is invalid, dbus ignored!", reason_str);
ret = -EINVAL;
goto out;
}
- ret = display_panel_custom_lcd_off(flag);
+ ret = display_panel_custom_lcd_off(reason);
out:
g_free(reason_str);
static struct timeval lcd_on_timeval;
/* FIXME: This function is for temporary use, should be fixed after plugin refactoring */
-int display_panel_set_dpms_state(int dpms_on, enum device_flags flags)
+static int display_panel_set_dpms_state(int dpms_on)
{
dpms_set_state(dpms_on);
return ret;
}
-int display_panel_set_panel_state_by_on_state(enum device_flags flags)
+int display_panel_set_panel_state_by_on_state(enum deviced_event reason)
{
int ret = -1;
static int cnt;
- _I("[DPMS XLIB Backlight] LCD on %#x cnt:%d", flags, cnt);
+ _I("[DPMS XLIB Backlight] LCD on reason: %s, cnt:%d",
+ syscommon_plugin_deviced_common_get_event_name(reason), cnt);
cnt++;
- ret = display_panel_set_dpms_state(SYSCOMMON_DEVICED_DPMS_ON, flags);
+ ret = display_panel_set_dpms_state(SYSCOMMON_DEVICED_DPMS_ON);
#ifdef ENABLE_PM_LOG
enum syscommon_deviced_display_state current;
return ret;
}
-int display_panel_set_panel_state_by_off_state(enum device_flags flags)
+int display_panel_set_panel_state_by_off_state(enum deviced_event reason)
{
int ret = -1;
static int cnt;
display_backlight_get_default_brightness(&default_brightness);
- _I("[DPMS XLIB Backlight] LCD off %#x cnt:%d", flags, cnt);
+ _I("[DPMS XLIB Backlight] LCD off, reason: %s, cnt:%d",
+ syscommon_plugin_deviced_common_get_event_name(reason), cnt);
cnt++;
/**
* it be helpful when recall how it was used.
*
* if (flags & FORCE_OFF_MODE)
- * ret = display_panel_set_dpms_state(SYSCOMMON_DEVICED_DPMS_FORCE_OFF, flags);
+ * ret = display_panel_set_dpms_state(SYSCOMMON_DEVICED_DPMS_FORCE_OFF);
* else
*/
- ret = display_panel_set_dpms_state(SYSCOMMON_DEVICED_DPMS_OFF, flags);
+ ret = display_panel_set_dpms_state(SYSCOMMON_DEVICED_DPMS_OFF);
#ifdef ENABLE_PM_LOG
enum syscommon_deviced_display_state current;
if ((dpms_get_cached_state() == SYSCOMMON_DEVICED_DPMS_ON) || standby_on) {
_I("LCD standby");
- ret = display_panel_set_dpms_state(SYSCOMMON_DEVICED_DPMS_STANDBY, 0);
+ ret = display_panel_set_dpms_state(SYSCOMMON_DEVICED_DPMS_STANDBY);
}
return ret;
*on = lcd_paneloff_mode;
}
-void display_panel_lcd_on_procedure(int state, enum device_flags flag)
+void display_panel_lcd_on_procedure(int state, enum deviced_event reason)
{
- unsigned long flags = NORMAL_MODE;
- display_util_get_device_flags(&flags);
- flags |= flag;
-
- if (display_plugin_lcd_on_procedure(state, flag) == 0)
+ if (display_plugin_lcd_on_procedure(state, reason) == 0)
return;
/*
* Display on procedure
*/
leave_doze();
- _I("[lcdstep] 0x%lx", flags);
+ _I("[lcdstep] reason: %s", syscommon_plugin_deviced_common_get_event_name(reason));
/* send LCDOn dbus signal */
if (!lcd_on_broadcasted)
- broadcast_lcd_on(SIGNAL_PRE, flags);
+ broadcast_lcd_on(SIGNAL_PRE, reason);
/* Update brightness level */
if (state == LCD_DIM)
else if (state == LCD_DIM)
set_setting_pmstate(SYSCOMMON_DEVICED_DISPLAY_STATE_DIM);
- display_start_dependent_device(flags);
+ display_start_dependent_device(reason);
if (!lcd_on_broadcasted) {
- broadcast_lcd_on(SIGNAL_POST, flags);
+ broadcast_lcd_on(SIGNAL_POST, reason);
lcd_on_broadcasted = true;
}
display_misc_set_touch_event_blocked(false);
}
-void display_panel_lcd_off_procedure(enum device_flags flag)
+void display_panel_lcd_off_procedure(enum deviced_event reason)
{
- unsigned long flags = NORMAL_MODE;
- display_util_get_device_flags(&flags);
- flags |= flag;
-
- if (display_plugin_lcd_off_procedure(flag) == 0)
+ if (display_plugin_lcd_off_procedure(reason) == 0)
return;
/*
* Display off procedure
* step 4. broadcast lcd off complete siganl
* step 5. enter doze mode if it is enabled
*/
- _I("[lcdstep] 0x%lx", flags);
+ _I("[lcdstep] reason: %s", syscommon_plugin_deviced_common_get_event_name(reason));
/* notification */
syscommon_notifier_emit_notify(DEVICED_NOTIFIER_LCD_OFF, NULL);
if (lcd_on_broadcasted) {
- broadcast_lcd_off(SIGNAL_PRE, flags);
+ broadcast_lcd_off(SIGNAL_PRE, reason);
lcd_on_broadcasted = false;
}
touchled_control_backlight(TOUCHLED_DIRECT_OFF);
- display_stop_dependent_device(flags);
+ display_stop_dependent_device(reason);
- broadcast_lcd_off(SIGNAL_POST, flags);
+ broadcast_lcd_off(SIGNAL_POST, reason);
syscommon_notifier_emit_notify(DEVICED_NOTIFIER_LCD_OFF_COMPLETE, NULL);
enter_doze();
}
-void display_panel_lcd_on_direct(enum device_flags flags)
+void display_panel_lcd_on_direct(enum deviced_event reason)
{
- enum hal_device_power_transition_reason reason;
+ /**
+ * FIXME: Those hal_device_power_transition_reason could be
+ * integrated into deviced common enum, deviced_event
+ */
+ enum hal_device_power_transition_reason power_reason;
- if (flags & LCD_ON_BY_POWER_KEY)
- reason = HAL_DEVICE_POWER_TRANSITION_REASON_POWER_KEY;
- else if (flags & LCD_ON_BY_TOUCH)
- reason = HAL_DEVICE_POWER_TRANSITION_REASON_TOUCH_SCREEN;
+ if (reason == DEVICED_EVENT_INPUT_POWERKEY)
+ power_reason = HAL_DEVICE_POWER_TRANSITION_REASON_POWER_KEY;
+ else if (reason == DEVICED_EVENT_TOUCHSCREEN)
+ power_reason = HAL_DEVICE_POWER_TRANSITION_REASON_TOUCH_SCREEN;
else
- reason = HAL_DEVICE_POWER_TRANSITION_REASON_UNKNOWN;
+ power_reason = HAL_DEVICE_POWER_TRANSITION_REASON_UNKNOWN;
syscommon_resman_set_resource_attr_uint64_4(SYSCOMMON_RESOURCE_ID(DEVICED_RESOURCE_TYPE_POWER),
DEVICED_POWER_ATTR_UINT64_4_CURRENT_STATE,
- DEVICED_POWER_STATE_SLEEP, DEVICED_POWER_STATE_NORMAL, reason, 0);
+ DEVICED_POWER_STATE_SLEEP, DEVICED_POWER_STATE_NORMAL, power_reason, 0);
set_pm_cur_state(SYSCOMMON_DEVICED_DISPLAY_STATE_ON);
_D("lcd is on directly");
display_panel_update_lcd_on_timeval();
- display_panel_lcd_on_procedure(LCD_NORMAL, flags);
+ display_panel_lcd_on_procedure(LCD_NORMAL, reason);
display_state_transition_update_lock_screen_timeout(LOCK_SCREEN_INPUT_TIMEOUT);
}
return -EINVAL;
if (display_panel_get_dpms_cached_state() != SYSCOMMON_DEVICED_DPMS_ON)
- display_panel_lcd_on_direct(LCD_ON_BY_GESTURE);
+ display_panel_lcd_on_direct(DEVICED_EVENT_MISC_GESTURE);
_I("Custom lcd on timeout(%d ms).", timeout);
if (set_custom_lcdon_timeout(timeout))
return 0;
}
-int display_panel_custom_lcd_off(enum device_flags flag)
+int display_panel_custom_lcd_off(enum deviced_event reason)
{
- if (display_plugin_custom_lcd_off(flag) == 0)
+ if (display_plugin_custom_lcd_off(reason) == 0)
return 0;
/* check holdkey block flag in lock node */
* call app can be changed to lcd state by proximity.
* If proximity is near then normal lock will be unlocked.
*/
- if (flag & LCD_OFF_BY_PROXIMITY) {
+ if (reason == DEVICED_EVENT_MISC_PROXIMITY) {
_I("custom lcd off by proximity, delete normal lock");
display_lock_release_lock_all(SYSCOMMON_DEVICED_DISPLAY_STATE_ON);
} else {
}
}
- _I("custom lcd off by flag(%d)", flag);
+ _I("custom lcd off by reason(%d)", reason);
if (display_panel_get_dpms_cached_state() == SYSCOMMON_DEVICED_DPMS_ON)
- display_panel_lcd_off_procedure(flag);
+ display_panel_lcd_off_procedure(reason);
if (set_custom_lcdon_timeout(0) == true)
display_state_transition_update_display_state_timeout_by_priority();
- display_state_set_current(SYSCOMMON_DEVICED_DISPLAY_STATE_OFF, DEVICED_EVENT_INPUT);
+ display_state_set_current(SYSCOMMON_DEVICED_DISPLAY_STATE_OFF, reason);
return 0;
}
*/
int display_panel_display_turn_on_by_reason(const char *reason, int timeout)
{
- int flag;
+ int _reason;
int str_len;
if (display_plugin_display_on_by_reason(reason, timeout) == 0)
str_len = strlen(reason);
if (!strncmp(reason, GESTURE_STR, str_len)) {
- flag = LCD_ON_BY_GESTURE;
+ _reason = DEVICED_EVENT_MISC_GESTURE;
} else if (!strncmp(reason, EVENT_STR, str_len)) {
- flag = LCD_ON_BY_EVENT;
+ _reason = DEVICED_EVENT_UNKNOWN;
} else {
_E("Reason is unknown(%s)", reason);
return -EINVAL;
}
if (display_panel_get_dpms_cached_state() != SYSCOMMON_DEVICED_DPMS_ON)
- display_panel_lcd_on_direct(flag);
+ display_panel_lcd_on_direct(_reason);
_I("platform lcd on by %s (%d ms)", reason, timeout);
if (set_custom_lcdon_timeout(timeout) == true)
int display_panel_display_turn_off_by_reason(const char *reason)
{
- int flag;
+ enum deviced_event _reason;
int str_len;
if (display_plugin_display_off_by_reason(reason) == 0)
_I("skip platform lcd off by gesture");
return -ECANCELED;
}
- flag = LCD_OFF_BY_GESTURE;
+ _reason = DEVICED_EVENT_MISC_GESTURE;
} else if (!strncmp(reason, PALM_STR, str_len)) {
display_lock_release_lock_all(SYSCOMMON_DEVICED_DISPLAY_STATE_ON);
display_lock_release_lock_all(SYSCOMMON_DEVICED_DISPLAY_STATE_DIM);
- flag = LCD_OFF_BY_PALM;
+ _reason = DEVICED_EVENT_MISC_PALM;
} else {
_E("Reason is unknown(%s)", reason);
return -EINVAL;
_I("platform lcd off by %s", reason);
if (display_panel_get_dpms_cached_state() == SYSCOMMON_DEVICED_DPMS_ON)
- display_panel_lcd_off_procedure(flag);
+ display_panel_lcd_off_procedure(_reason);
- display_state_set_current(SYSCOMMON_DEVICED_DISPLAY_STATE_OFF, DEVICED_EVENT_INPUT);
+ display_state_set_current(SYSCOMMON_DEVICED_DISPLAY_STATE_OFF, _reason);
return 0;
}
#define __DISPLAY_PANEL_H__
#include <hal/device/hal-display.h>
+#include <system/syscommon-plugin-deviced-common-interface.h>
#include "display-dpms.h"
#include "shared/devices.h"
-int display_panel_set_dpms_state(int dpms_on, enum device_flags flags);
int display_panel_set_white_balance(enum hal_display_white_balance white_balance_type, int value);
int display_panel_get_white_balance(enum hal_display_white_balance white_balance_type, int* out_val);
-int display_panel_set_panel_state_by_on_state(enum device_flags flags);
-int display_panel_set_panel_state_by_off_state(enum device_flags flags);
+int display_panel_set_panel_state_by_on_state(enum deviced_event reason);
+int display_panel_set_panel_state_by_off_state(enum deviced_event reason);
int display_panel_set_panel_state_by_standby_state(bool standby_on);
void display_panel_set_lcd_paneloff_mode(bool on);
void display_panel_get_lcd_paneloff_mode(bool *on);
-void display_panel_lcd_on_procedure(int state, enum device_flags flag);
-void display_panel_lcd_off_procedure(enum device_flags flag);
-void display_panel_lcd_on_direct(enum device_flags flags);
+void display_panel_lcd_on_procedure(int state, enum deviced_event reason);
+void display_panel_lcd_off_procedure(enum deviced_event reason);
+void display_panel_lcd_on_direct(enum deviced_event reason);
int display_panel_custom_lcd_on(int timeout);
-int display_panel_custom_lcd_off(enum device_flags flag);
+int display_panel_custom_lcd_off(enum deviced_event reason);
int display_panel_display_turn_on_by_reason(const char *reason, int timeout);
int display_panel_display_turn_off_by_reason(const char *reason);
bool display_panel_is_lcd_on_state_broadcasted(void);
return 0;
}
-int display_plugin_lcd_on_procedure(int state, enum device_flags flag)
+int display_plugin_lcd_on_procedure(int state, enum deviced_event reason)
{
if (g_display_plugin.lcd_on_procedure) {
- g_display_plugin.lcd_on_procedure(state, flag);
+ g_display_plugin.lcd_on_procedure(state, reason);
return 0;
}
return -EOPNOTSUPP;
}
-int display_plugin_lcd_off_procedure(enum device_flags flag)
+int display_plugin_lcd_off_procedure(enum deviced_event reason)
{
if (g_display_plugin.lcd_off_procedure) {
- g_display_plugin.lcd_off_procedure(flag);
+ g_display_plugin.lcd_off_procedure(reason);
return 0;
}
return -EOPNOTSUPP;
}
-int display_plugin_custom_lcd_off(enum device_flags flag)
+int display_plugin_custom_lcd_off(enum deviced_event reason)
{
if (g_display_plugin.custom_lcd_off) {
- g_display_plugin.custom_lcd_off(flag);
+ g_display_plugin.custom_lcd_off(reason);
return 0;
}
*pm_default_brightness = g_display_plugin.config->pm_default_brightness;
return 0;
-}
-
-int display_plugin_get_device_flags(unsigned long *device_flags)
-{
- if (!device_flags)
- return -EINVAL;
-
- if (!g_display_plugin.get_device_flags)
- return -EOPNOTSUPP;
-
- return g_display_plugin.get_device_flags(device_flags);
}
\ No newline at end of file
#include <unistd.h>
#include <sys/types.h>
+#include <system/syscommon-plugin-deviced-common-interface.h>
#include "core.h"
#include "display-config.h"
bool system_wakeup_flag;
int (*auto_brightness_control) (enum brightness_request_e request, int set_brightness);
/* FIXME: function names will be redefined */
- int (*get_device_flags) (unsigned long *device_flags);
- void (*lcd_on_procedure) (int state, enum device_flags flag);
- void (*lcd_off_procedure) (enum device_flags flag);
+ void (*lcd_on_procedure) (int state, enum deviced_event reason);
+ void (*lcd_off_procedure) (enum deviced_event reason);
int (*custom_lcd_on) (int timeout);
- int (*custom_lcd_off) (enum device_flags flag);
+ int (*custom_lcd_off) (enum deviced_event reason);
int (*display_on_by_reason) (const char *reason, int timeout);
int (*display_off_by_reason) (const char *reason);
void (*default_saving_mode) (int onoff);
int display_plugin_get_system_wakeup_flag(bool *flag);
int display_plugin_set_system_wakeup_flag(bool flag);
int display_plugin_auto_brightness_control(enum brightness_request_e request, int set_brightness);
-int display_plugin_get_device_flags(unsigned long *device_flags);
-int display_plugin_lcd_on_procedure(int state, enum device_flags flag);
-int display_plugin_lcd_off_procedure(enum device_flags flag);
+int display_plugin_lcd_on_procedure(int state, enum deviced_event reason);
+int display_plugin_lcd_off_procedure(enum deviced_event reason);
int display_plugin_custom_lcd_on(int timeout);
-int display_plugin_custom_lcd_off(enum device_flags flag);
+int display_plugin_custom_lcd_off(enum deviced_event reason);
int display_plugin_display_on_by_reason(const char *reason, int timeout);
int display_plugin_display_off_by_reason(const char *reason);
int display_plugin_set_power_save_mode_flag(int onoff);
static struct display_plugin *disp_plgn;
static long displayoff_time;
-void broadcast_lcd_on(enum signal_type type, enum device_flags flags)
+void broadcast_lcd_on(enum signal_type type, enum deviced_event reason)
{
const char *str;
const char *signal;
if (type == SIGNAL_PRE && displayoff_time != 0)
diff = clock_gettime_to_long() - displayoff_time;
- display_util_get_device_flags_name(flags, &str);
+ str = syscommon_plugin_deviced_common_get_event_name(reason);
signal = lcdon_sig_lookup[type];
_I("lcdstep : Broadcast signal(%s:%s).", signal, str);
_E("Failed to send dbus signal(%s)", signal);
}
-void broadcast_lcd_off(enum signal_type type, enum device_flags flags)
+void broadcast_lcd_off(enum signal_type type, enum deviced_event reason)
{
const char *str;
const char *signal;
signal = lcdoff_sig_lookup[type];
- display_util_get_device_flags_name(flags, &str);
+ str = syscommon_plugin_deviced_common_get_event_name(reason);
_I("lcdstep : Broadcast signal(%s).", signal);
ret = gdbus_signal_emit_sync(NULL,
#ifndef __DISPLAY_SIGNAL_H__
#define __DISPLAY_SIGNAL_H__
+#include <system/syscommon-plugin-deviced-common-interface.h>
#include <libsyscommon/libgdbus.h>
#include "shared/devices.h"
SIGNAL_MAX,
};
-void broadcast_lcd_on(enum signal_type type, enum device_flags flags);
-void broadcast_lcd_off(enum signal_type type, enum device_flags flags);
+void broadcast_lcd_on(enum signal_type type, enum deviced_event reason);
+void broadcast_lcd_off(enum signal_type type, enum deviced_event reason);
void set_process_active(bool flag, pid_t pid);
void display_signal_register_display_brightness_notifier(void);
display_backlight_update_by_default_brightness();
if (display_panel_get_dpms_cached_state() != SYSCOMMON_DEVICED_DPMS_ON)
- display_panel_lcd_on_procedure(LCD_NORMAL, NORMAL_MODE);
+ /* FIXME: need to get reason */
+ display_panel_lcd_on_procedure(LCD_NORMAL, DEVICED_EVENT_UNKNOWN);
break;
case SYSCOMMON_DEVICED_DISPLAY_STATE_DIM:
display_backlight_set_brightness_by_dim_brightness();
if ((previous == SYSCOMMON_DEVICED_DISPLAY_STATE_OFF) || (previous == SYSCOMMON_DEVICED_DISPLAY_STATE_SLEEP))
- display_panel_lcd_on_procedure(LCD_DIM, NORMAL_MODE);
+ /* FIXME: need to get reason */
+ display_panel_lcd_on_procedure(LCD_DIM, DEVICED_EVENT_UNKNOWN);
break;
case SYSCOMMON_DEVICED_DISPLAY_STATE_OFF:
if ((previous != SYSCOMMON_DEVICED_DISPLAY_STATE_SLEEP) && (previous != SYSCOMMON_DEVICED_DISPLAY_STATE_OFF)) {
/* lcd off state : turn off the backlight */
if (display_panel_get_dpms_cached_state() == SYSCOMMON_DEVICED_DPMS_ON)
- display_panel_lcd_off_procedure(LCD_OFF_BY_TIMEOUT);
+ display_panel_lcd_off_procedure(DEVICED_EVENT_DISPLAY_SCREEN_TIMEOUT);
}
display_panel_get_lcd_paneloff_mode(&lcd_paneloff_mode);
if (display_panel_get_dpms_cached_state() == SYSCOMMON_DEVICED_DPMS_ON
|| lcd_paneloff_mode)
- display_panel_lcd_off_procedure(LCD_OFF_BY_TIMEOUT);
+ display_panel_lcd_off_procedure(DEVICED_EVENT_DISPLAY_SCREEN_TIMEOUT);
break;
case SYSCOMMON_DEVICED_DISPLAY_STATE_SLEEP:
if (display_panel_get_dpms_cached_state() == SYSCOMMON_DEVICED_DPMS_ON)
- display_panel_lcd_off_procedure(LCD_OFF_BY_TIMEOUT);
+ display_panel_lcd_off_procedure(DEVICED_EVENT_DISPLAY_SCREEN_TIMEOUT);
if (!pm_get_power_lock_support()) {
/* sleep state : set system mode to SUSPEND */
display_state_transition_do_state_action(state_timeout);
else
display_state_transition_do_state_action(timeout);
-
}
*/
int display_state_transition_do_proc_change_state(unsigned int cond, pid_t pid)
{
+ /**
+ * FIXME: This function is not receiving "reason" for transition.
+ * The actual reason could be incorrect, for example, lcdoff triggered by
+ * dbus_changestate() will goes the below SYSCOMMON_DEVICED_DISPLAY_STATE_OFF case,
+ * calling display_panel_off_procedure() with reason SCREEN_TIMEOUT, but it is
+ * actually not.
+ */
enum syscommon_deviced_display_state next;
const char *state_name = NULL;
switch (next) {
case SYSCOMMON_DEVICED_DISPLAY_STATE_ON:
if (display_panel_get_dpms_cached_state() != SYSCOMMON_DEVICED_DPMS_ON)
- display_panel_lcd_on_direct(LCD_ON_BY_EVENT);
+ display_panel_lcd_on_direct(DEVICED_EVENT_UNKNOWN);
display_state_transition_update_lock_screen_timeout(LOCK_SCREEN_CONTROL_TIMEOUT);
display_state_transition_do_proc_change_state_action(next, TIMEOUT_NONE);
break;
break;
case SYSCOMMON_DEVICED_DISPLAY_STATE_OFF:
if (display_panel_get_dpms_cached_state() == SYSCOMMON_DEVICED_DPMS_ON)
- display_panel_lcd_off_procedure(LCD_OFF_BY_EVENT);
+ display_panel_lcd_off_procedure(DEVICED_EVENT_DISPLAY_SCREEN_TIMEOUT);
if (set_custom_lcdon_timeout(0))
display_state_transition_update_display_state_timeout_by_priority();
display_state_transition_do_proc_change_state_action(next, TIMEOUT_NONE);
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
#include "display-misc.h"
#include "display-plugin.h"
#include "display-util.h"
-int display_util_get_device_flags_name(enum device_flags flags, const char **flag_name)
-{
- if (!flag_name)
- return -EINVAL;
-
- if (flags & (LCD_ON_BY_GESTURE | LCD_OFF_BY_GESTURE))
- *flag_name = GESTURE_STR;
- else if (flags & (LCD_ON_BY_POWER_KEY | LCD_OFF_BY_POWER_KEY))
- *flag_name = POWER_KEY_STR;
- else if (flags & (LCD_ON_BY_EVENT | LCD_OFF_BY_EVENT))
- *flag_name = EVENT_STR;
- else if (flags & LCD_ON_BY_BACK_KEY)
- *flag_name = BACK_KEY_STR;
- else if (flags & LCD_ON_BY_TOUCH)
- *flag_name = TOUCH_STR;
- else if (flags & LCD_ON_BY_BEZEL)
- *flag_name = BEZEL_STR;
- else if (flags & LCD_OFF_BY_TIMEOUT)
- *flag_name = TIMEOUT_STR;
- else if (flags & LCD_OFF_BY_PROXIMITY)
- *flag_name = PROXI_STR;
- else if (flags & LCD_OFF_BY_PALM)
- *flag_name = PALM_STR;
- else if (flags & LCD_OFF_BY_DISPLAY_DETACH)
- *flag_name = DISPLAY_DETACH_STR;
- else
- *flag_name = UNKNOWN_STR;
-
- return 0;
-}
-
-int display_util_get_device_flags(unsigned long *device_flags)
-{
-
- if (!device_flags)
- return -EINVAL;
-
- if (g_display_plugin.get_device_flags)
- return display_plugin_get_device_flags(device_flags);
-
- *device_flags = NORMAL_MODE;
-
- return 0;
-}
-
int display_util_get_display_state(int s_bits)
{
switch (s_bits) {
#define USEC_TO_SEC(x) ((x)/1000000.0)
#define NSEC_TO_SEC(x) ((x)/1000000000.0)
-int display_util_get_device_flags_name(enum device_flags flags, const char **flag_name);
-int display_util_get_device_flags(unsigned long *device_flags);
int display_util_get_display_state(int s_bits);
#endif /* __DISPLAY_UTIL_H__ */
\ No newline at end of file
g_display_init_direction = display_init_direction;
}
-void lcd_direct_control(enum syscommon_deviced_dpms_state dpms_state, int flags)
+static void lcd_direct_control(enum syscommon_deviced_dpms_state dpms_state, enum deviced_event reason)
{
const struct device_ops *ops = NULL;
GList *l = NULL;
switch (dpms_state) {
case SYSCOMMON_DEVICED_DPMS_ON:
SYS_G_LIST_FOREACH(display_dependent_device_ops, l, ops)
- ops->start(flags);
+ ops->start(reason);
break;
case SYSCOMMON_DEVICED_DPMS_OFF:
SYS_G_LIST_FOREACH(display_dependent_device_ops, l, ops)
- ops->stop(flags);
+ ops->stop(reason);
break;
default:
_E("state is wrong value %d", dpms_state);
switch (current) {
case SYSCOMMON_DEVICED_DISPLAY_STATE_ON:
case SYSCOMMON_DEVICED_DISPLAY_STATE_DIM:
- display_panel_lcd_on_procedure(LCD_NORMAL, LCD_ON_BY_EVENT);
+ display_panel_lcd_on_procedure(LCD_NORMAL, DEVICED_EVENT_DEVICE_READY);
display_plugin_config_get_timeout_enable(&timeout_enable);
if (timeout_enable) {
display_plugin_state_get_timeout(SYSCOMMON_DEVICED_DISPLAY_STATE_ON, &timeout);
}
break;
case SYSCOMMON_DEVICED_DISPLAY_STATE_OFF:
- display_panel_lcd_off_procedure(LCD_OFF_BY_EVENT);
+ display_panel_lcd_off_procedure(DEVICED_EVENT_DISPLAY_SCREEN_TIMEOUT);
display_plugin_config_get_lcdoff_timeout(&lcdoff_timeout);
display_state_transition_reset_state_transition_timeout(lcdoff_timeout);
break;
touchscreen_ops = find_device("touchscreen");
if (!check_default(touchscreen_ops))
- touchscreen_ops->stop(NORMAL_MODE);
- display_panel_set_panel_state_by_off_state(NORMAL_MODE);
- display_panel_set_panel_state_by_on_state(NORMAL_MODE);
+ touchscreen_ops->stop(DEVICED_EVENT_MISC_ESD);
+ display_panel_set_panel_state_by_off_state(DEVICED_EVENT_MISC_ESD);
+ display_panel_set_panel_state_by_on_state(DEVICED_EVENT_MISC_ESD);
if (!check_default(touchscreen_ops))
- touchscreen_ops->start(NORMAL_MODE);
+ touchscreen_ops->start(DEVICED_EVENT_MISC_ESD);
}
static void lcd_uevent_changed(struct udev_device *dev)
/* In smd test, TSP should be turned off if display panel is not existed. */
if (display_panel_get_dpms_cached_state() == -ENOENT) {
_I("Display panel is not existed.");
- lcd_direct_control(SYSCOMMON_DEVICED_DPMS_OFF, NORMAL_MODE);
+ lcd_direct_control(SYSCOMMON_DEVICED_DPMS_OFF, DEVICED_EVENT_DEVICE_DETACH);
display_unregister_dependent_device();
}
// wm_ready = check_wm_ready();
if (display_panel_init_dpms()) {
if (display_is_lcdon_blocked() != LCDON_BLOCK_NONE) {
- display_panel_lcd_off_procedure(LCD_OFF_BY_EVENT);
+ display_panel_lcd_off_procedure(DEVICED_EVENT_DISPLAY_SCREEN_TIMEOUT);
} else {
- display_panel_lcd_on_procedure(LCD_NORMAL, LCD_ON_BY_EVENT);
+ display_panel_lcd_on_procedure(LCD_NORMAL, DEVICED_EVENT_DEVICE_READY);
}
} else {
display_add_timer_for_waiting_dpms_init();
ops = find_device("touchscreen");
if (!check_default(ops))
- ops->start(NORMAL_MODE);
+ ops->start(DEVICED_EVENT_DISPLAY);
ops = find_device("touchkey");
if (!check_default(ops))
- ops->start(NORMAL_MODE);
+ ops->start(DEVICED_EVENT_DISPLAY);
syscommon_notifier_unsubscribe_notify(DEVICED_NOTIFIER_DELAYED_INIT, delayed_init_done);
syscommon_notifier_unsubscribe_notify(DEVICED_NOTIFIER_APPLICATION_BACKGROUND, display_app_background);
unload_display_hal_backend();
}
-static int display_start(enum device_flags flags)
+static int display_start(enum deviced_event reason)
{
bool lcd_paneloff_mode = false;
}
/* normal lcd on */
- display_panel_set_panel_state_by_on_state(flags);
+ display_panel_set_panel_state_by_on_state(reason);
return 0;
}
-static int display_stop(enum device_flags flags)
+static int display_stop(enum deviced_event reason)
{
- display_panel_set_panel_state_by_off_state(flags);
+ display_panel_set_panel_state_by_off_state(reason);
return 0;
}
#define BATTERY_FLAG 0x00020000
#define COOLDOWN_FLAG 0x00040000
-void lcd_direct_control(enum syscommon_deviced_dpms_state dpms_state, int flags);
int get_pm_cur_state(void);
int get_pm_old_state(void);
void set_pm_cur_state(int cur_state);
case DEVICED_DISPLAY_ATTR_TUPLE2_CURRENT_STATE:
{
enum syscommon_deviced_display_state state = *(enum syscommon_deviced_display_state *) data1;
- enum deviced_event event = *(enum deviced_event *) data2;
+ enum deviced_event reason = *(enum deviced_event *) data2;
/**
* FIXME: Need to change it to display_state_set_current()
*/
- if (event == DEVICED_EVENT_DISPLAY_SCREEN_TIMEOUT)
+ if (reason == DEVICED_EVENT_DISPLAY_SCREEN_TIMEOUT)
return display_state_transition_do_state_transition(state, EVENT_TIMEOUT);
else
return display_state_transition_do_state_transition(state, EVENT_INPUT);
{
enum syscommon_deviced_dpms_state state = *(enum syscommon_deviced_dpms_state *) data1;
enum deviced_event reason = *(enum deviced_event *) data2;
- int flag;
-
- switch (reason) {
- case DEVICED_EVENT_INPUT_POWERKEY:
- flag = LCD_ON_BY_POWER_KEY;
- break;
- case DEVICED_EVENT_TOUCHSCREEN:
- flag = LCD_ON_BY_TOUCH;
- break;
- default:
- flag = 0;
- break;
- }
if (state == SYSCOMMON_DEVICED_DPMS_OFF)
- display_panel_lcd_off_procedure(flag);
+ display_panel_lcd_off_procedure(reason);
else if (state == SYSCOMMON_DEVICED_DPMS_ON)
- display_panel_lcd_on_direct(flag);
+ display_panel_lcd_on_direct(reason);
return 0;
}
case DEVICED_DISPLAY_ATTR_TUPLE2_CURRENT_STATE_WITH_OPTION:
val == VCONFKEY_IDLE_LOCK &&
display_panel_get_dpms_cached_state() != SYSCOMMON_DEVICED_DPMS_ON &&
display_is_lcdon_blocked() == LCDON_BLOCK_NONE)
- display_panel_lcd_on_procedure(LCD_NORMAL, LCD_ON_BY_EVENT);
+ /* FIXME: what is appropriate reason for this? */
+ display_panel_lcd_on_procedure(LCD_NORMAL, DEVICED_EVENT_MISC);
display_state_transition_update_display_state_timeout_by_priority();
if (current == SYSCOMMON_DEVICED_DISPLAY_STATE_ON)
display_state_transition_do_state_transition(current, EVENT_INPUT);
POWEROFF_WAIT_RESOURCED);
}
-static void disable_display(void)
+static void disable_display(int state)
{
const struct device_ops *display_device_ops = NULL;
+ enum deviced_event reason = DEVICED_EVENT_POWER;
+
+ if (state == DEVICED_POWER_STATE_POWEROFF)
+ reason = DEVICED_EVENT_POWER_OFF;
+ else if (state == DEVICED_POWER_STATE_REBOOT)
+ reason = DEVICED_EVENT_POWER_REBOOT;
+ else if (state == DEVICED_POWER_STATE_EXIT)
+ reason = DEVICED_EVENT_POWER_EXIT;
+
FIND_DEVICE_VOID(display_device_ops, "display");
if (display_device_ops->stop)
- display_device_ops->stop(NORMAL_MODE);
+ display_device_ops->stop(reason);
}
static int disable_systemd_journald(void)
disable_systemd_journald();
disable_coredump_handler();
poweroff_delay_for_seconds();
- disable_display();
+ disable_display(state);
/* Below functions follow after notifying DEVICED_NOTIFIER_POWEROFF
1. pmlock
#include <errno.h>
#include <libsyscommon/list.h>
+#include <system/syscommon-plugin-deviced-common-interface.h>
#include "shared/common.h"
#define DISPLAY_DETACH_STR "display_detach"
#define UNKNOWN_STR "unknown"
-enum device_flags {
- NORMAL_MODE = 0x00000001,
- LCD_ON_BY_GESTURE = 0x00010000,
- LCD_ON_BY_POWER_KEY = 0x00020000,
- LCD_ON_BY_BACK_KEY = 0x00040000,
- LCD_ON_BY_EVENT = 0x00080000,
- LCD_ON_BY_TOUCH = 0x00100000,
- LCD_ON_BY_BEZEL = 0x00200000,
- LCD_OFF_BY_DISPLAY_DETACH = 0x01000000,
- LCD_OFF_BY_POWER_KEY = 0x02000000,
- LCD_OFF_BY_TIMEOUT = 0x04000000,
- LCD_OFF_BY_EVENT = 0x08000000,
- LCD_OFF_BY_PROXIMITY = 0x20000000,
- LCD_OFF_BY_GESTURE = 0x40000000,
- LCD_OFF_BY_PALM = 0x80000000,
-};
-
struct device_ops {
int priority; /* high number will be initialized first */
bool disable_auto_init; /* default: false */
int (*probe) (void *data);
void (*init) (void *data);
void (*exit) (void *data);
- int (*start) (enum device_flags flags);
- int (*stop) (enum device_flags flags);
+ int (*start) (enum deviced_event reason);
+ int (*stop) (enum deviced_event reason);
int (*status) (void);
int (*execute) (void *data);
void (*suspend) (void);
static inline int device_start(const struct device_ops *dev)
{
if (dev && dev->start)
- return dev->start(NORMAL_MODE);
+ return dev->start(DEVICED_EVENT_MISC);
return -EINVAL;
}
static inline int device_stop(const struct device_ops *dev)
{
if (dev && dev->stop)
- return dev->stop(NORMAL_MODE);
+ return dev->stop(DEVICED_EVENT_MISC);
return -EINVAL;
}
static int touchscreen_enable = DEVICE_OPS_STATUS_START;
static int powersaving_support = true;
-static int touchscreen_start(enum device_flags flags);
-static int touchscreen_stop(enum device_flags flags);
+static int touchscreen_start(enum deviced_event reason);
+static int touchscreen_stop(enum deviced_event reason);
static int touchscreen_powersaving(enum ps_mode mode);
static int touchscreen_set_state(enum touchscreen_state state);
if (display_panel_get_dpms_cached_state() != SYSCOMMON_DEVICED_DPMS_ON) {
if (g_display_plugin.config->touch_wakeup) {
- touchscreen_start(NORMAL_MODE);
+ touchscreen_start(DEVICED_EVENT_DEVICE_READY);
} else {
touchscreen_powersaving(POWERSAVING_OFF);
touchscreen_set_state(TOUCHSCREEN_OFF);
return 0;
}
-static int touchscreen_start(enum device_flags flags)
+static int touchscreen_start(enum deviced_event reason)
{
int state = -1;
int ret;
return ret;
}
-static int touchscreen_stop(enum device_flags flags)
+static int touchscreen_stop(enum deviced_event reason)
{
if (!g_display_plugin.config) {
_I("Touchscreen is not initialized.");
GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data)
{
int ret;
- ret = touchscreen_start(NORMAL_MODE);
+ ret = touchscreen_start(DEVICED_EVENT_DEVICE_READY);
return g_variant_new("(i)", ret);
}
if (!usb_host_test_device_ops)
usb_host_test_device_ops = find_device("usb-host-test");
- ret = usb_host_test_device_ops->start(NORMAL_MODE);
+ ret = usb_host_test_device_ops->start(DEVICED_EVENT_MISC_DBUS);
if (ret != 0 && ret != -EALREADY)
_E("Failed to start usb-host-test : %d", ret);
if (!usb_host_test_device_ops)
usb_host_test_device_ops = find_device("usb-host-test");
- ret = usb_host_test_device_ops->stop(NORMAL_MODE);
+ ret = usb_host_test_device_ops->stop(DEVICED_EVENT_MISC_DBUS);
if (ret != 0 && ret != -EALREADY)
_E("Failed to stop usb-host-test : %d", ret);
return gdbus_new_g_variant_tuple();
}
-static int usb_host_test_start(enum device_flags flags)
+static int usb_host_test_start(enum deviced_event reason)
{
if (status == DEVICE_OPS_STATUS_START)
return -EALREADY;
return start();
}
-static int usb_host_test_stop(enum device_flags flags)
+static int usb_host_test_stop(enum deviced_event reason)
{
if (status == DEVICE_OPS_STATUS_STOP)
return -EALREADY;