static const char state_string[5][10] =
{ "S_START", "S_NORMAL", "S_LCDDIM", "S_LCDOFF", "S_SLEEP" };
+enum signal_type {
+ SIGNAL_INVALID = 0,
+ SIGNAL_PRE,
+ SIGNAL_POST,
+ SIGNAL_MAX,
+};
+
+static const char *lcdon_sig_lookup[SIGNAL_MAX] = {
+ [SIGNAL_PRE] = "LCDOn",
+ [SIGNAL_POST] = "LCDOnCompleted",
+};
+static const char *lcdoff_sig_lookup[SIGNAL_MAX] = {
+ [SIGNAL_PRE] = "LCDOff",
+ [SIGNAL_POST] = "LCDOffCompleted",
+};
+
static int trans_table[S_END][EVENT_END] = {
/* Timeout , Input */
{S_START, S_START}, /* S_START */
#define ACTIVE_ACT "active"
#define INACTIVE_ACT "inactive"
-#define SIGNAL_LCD_ON "LCDOn"
-#define SIGNAL_LCD_OFF "LCDOff"
#define LOCK_SCREEN_WATING_TIME 0.3 /* 0.3 second */
#define LONG_PRESS_INTERVAL 2 /* 2 seconds */
standby_state = state;
}
-void broadcast_lcd_on(enum device_flags flags)
+static void broadcast_lcd_on(enum signal_type type, enum device_flags flags)
{
char *arr[1];
+ const char *signal;
+
+ if (type <= SIGNAL_INVALID || type >= SIGNAL_MAX) {
+ _E("invalid signal type %d", type);
+ return;
+ }
if (flags & LCD_ON_BY_GESTURE)
arr[0] = GESTURE_STR;
else
arr[0] = UNKNOWN_STR;
+ signal = lcdon_sig_lookup[type];
+ _I("lcdstep : broadcast %s %s", signal, arr[0]);
broadcast_edbus_signal(DEVICED_PATH_DISPLAY, DEVICED_INTERFACE_DISPLAY,
- SIGNAL_LCD_ON, "s", arr);
+ signal, "s", arr);
}
-void broadcast_lcd_off(void)
+static void broadcast_lcd_off(enum signal_type type, enum device_flags flags)
{
+ const char *signal;
+
+ if (type <= SIGNAL_INVALID || type >= SIGNAL_MAX) {
+ _E("invalid signal type %d", type);
+ return;
+ }
+
+ signal = lcdoff_sig_lookup[type];
+ _I("lcdstep : broadcast %s", signal);
broadcast_edbus_signal(DEVICED_PATH_DISPLAY, DEVICED_INTERFACE_DISPLAY,
- SIGNAL_LCD_OFF, NULL, NULL);
+ signal, NULL, NULL);
}
static unsigned long get_lcd_on_flags(void)
/* send LCDOn dbus signal */
if (!lcdon_broadcast) {
- broadcast_lcd_on(flags);
+ broadcast_lcd_on(SIGNAL_PRE, flags);
lcdon_broadcast = true;
}
DD_LIST_FOREACH(lcdon_ops, l, ops)
ops->start(flags);
+ broadcast_lcd_on(SIGNAL_POST, flags);
+
if (CHECK_OPS(keyfilter_ops, backlight_enable))
keyfilter_ops->backlight_enable(true);
}
}
if (lcdon_broadcast) {
- broadcast_lcd_off();
+ broadcast_lcd_off(SIGNAL_PRE, flags);
lcdon_broadcast = false;
}
if (CHECK_OPS(keyfilter_ops, backlight_enable))
DD_LIST_REVERSE_FOREACH(lcdon_ops, l, ops)
ops->stop(flags);
+
+ broadcast_lcd_off(SIGNAL_POST, flags);
}
void set_stay_touchscreen_off(int val)