display: display-state-transition: Relocate fuctions related to transition timer... 72/293472/4
authorYunhee Seo <yuni.seo@samsung.com>
Sat, 27 May 2023 08:11:10 +0000 (17:11 +0900)
committerYunhee Seo <yuni.seo@samsung.com>
Tue, 30 May 2023 11:48:23 +0000 (20:48 +0900)
Remove and redefine get_transition_timer()/timeout_handler()/reset_timeout() in plugins/display/core.c

These function are added to below display-state-transition.c
bool display_state_transition_is_there_state_transition_timer(void);
int display_state_transition_reset_state_transition_timeout(int timeout);
-> These are used to add and manage timeout callback for a specific state transition.

In fact, these functions do not actually change the time of the state transition.
They only generate state transitions by adding timeout callbacks.(with timeout parameter)
Thus, "reset" word or function name should be changed during refactoring process.

Change-Id: Icc4b70b7dd6bb30bd5bc5aa56d331cfe9fc726c6
Signed-off-by: Yunhee Seo <yuni.seo@samsung.com>
plugins/iot-headed/display/core.c
plugins/mobile/display/core.c
plugins/tv/display/core.c
plugins/wearable/display/core.c
src/display/core.h
src/display/display-state-transition.c
src/display/display-state-transition.h
src/display/plugin-common/ambient-mode.c
src/display/plugin-common/display-lock.c

index 166de68..0278ef0 100644 (file)
@@ -99,7 +99,6 @@ static int (*fp_get_charging_status) (int *val);
 static void (*power_saving_func) (int onoff);
 static enum device_ops_status status = DEVICE_OPS_STATUS_UNINIT;
 
-static guint timeout_src_id;
 static int system_wakeup_flag = false;
 static unsigned int custom_normal_timeout = 0;
 static unsigned int custom_dim_timeout = 0;
@@ -207,11 +206,6 @@ inline struct state* state_st(enum state_t state)
        return &states[state];
 }
 
-guint get_transition_timer(void)
-{
-       return timeout_src_id;
-}
-
 static const char* __device_flags_to_string(enum device_flags flags)
 {
        if (flags & LCD_ON_BY_GESTURE)
@@ -373,7 +367,7 @@ static void del_state_cond(void *data, enum state_t state)
         *   1. There should be no running state-transition timer
         *   2. Released lock is one of the pm_cur_state's lock
         * This emulates already expired transition timer */
-       if (!timeout_src_id && get_pm_cur_state() == state)
+       if (!display_state_transition_is_there_state_transition_timer() && (get_pm_cur_state() == state))
                states[get_pm_cur_state()].trans(EVENT_TIMEOUT);
 
        if (state == S_LCDOFF)
@@ -398,48 +392,6 @@ static gboolean del_off_cond(void *data)
        return G_SOURCE_REMOVE;
 }
 
-/* timeout handler  */
-gboolean timeout_handler(void *data)
-{
-       _I("Time out state %s", states[get_pm_cur_state()].name);
-
-       if (timeout_src_id) {
-               g_source_remove(timeout_src_id);
-               timeout_src_id = 0;
-       }
-
-       states[get_pm_cur_state()].trans(EVENT_TIMEOUT);
-       return G_SOURCE_REMOVE;
-}
-
-void reset_timeout(int timeout)
-{
-       enum state_t next_state;
-
-       if (!display_conf.timeout_enable)
-               return;
-
-       if ((get_pm_cur_state() == S_LCDOFF)
-       && (is_emulator() == true || timeout_sleep_support == false))
-               return;
-
-       _I("Reset timeout(%d ms).", timeout);
-       if (timeout_src_id != 0) {
-               g_source_remove(timeout_src_id);
-               timeout_src_id = 0;
-       }
-
-       display_state_transition_get_next_transition_display_state(get_pm_cur_state(), &next_state, EVENT_TIMEOUT);
-       if (next_state == get_pm_cur_state())
-               return;
-
-       if (timeout > 0)
-               timeout_src_id = g_timeout_add(timeout,
-                   timeout_handler, NULL);
-       else if (timeout == 0)
-               states[get_pm_cur_state()].trans(EVENT_TIMEOUT);
-}
-
 /* get configurations from setting */
 static int get_lcd_timeout_from_settings(void)
 {
@@ -943,13 +895,13 @@ static int proc_condition(PMMsg *data)
        if (flags == 0) {
                /* guard time for suspend */
                if (get_pm_cur_state() == S_LCDOFF)
-                       reset_timeout(states[S_LCDOFF].timeout);
+                       display_state_transition_reset_state_transition_timeout(states[S_LCDOFF].timeout);
        } else {
                if (flags & PM_FLAG_RESET_TIMER)
-                       reset_timeout(states[get_pm_cur_state()].timeout);
+                       display_state_transition_reset_state_transition_timeout(states[get_pm_cur_state()].timeout);
        }
 
-       if (!timeout_src_id)
+       if (!display_state_transition_is_there_state_transition_timer())
                states[get_pm_cur_state()].trans(EVENT_TIMEOUT);
 
        return 0;
@@ -1251,7 +1203,7 @@ static int default_action(int timeout)
                        lcdon_tv.tv_sec = 0;
                }
                /* set timer with current state timeout */
-               reset_timeout(timeout);
+               display_state_transition_reset_state_transition_timeout(timeout);
 
                if (get_pm_cur_state() == S_NORMAL) {
                        time(&last_update_time);
@@ -1740,13 +1692,13 @@ static gboolean delayed_dpms_init_done(gpointer data)
                        /* check minimun lcd on time */
                        if (timeout < SEC_TO_MSEC(DEFAULT_NORMAL_TIMEOUT))
                                timeout = SEC_TO_MSEC(DEFAULT_NORMAL_TIMEOUT);
-                       reset_timeout(timeout);
+                       display_state_transition_reset_state_transition_timeout(timeout);
                }
                break;
        case S_LCDOFF:
                lcd_off_procedure(LCD_OFF_BY_EVENT);
                timeout = display_conf.lcdoff_timeout;
-               reset_timeout(timeout);
+               display_state_transition_reset_state_transition_timeout(timeout);
                break;
        default:
                break;
@@ -2029,7 +1981,7 @@ static void display_exit(void *data)
        set_pm_cur_state(S_NORMAL);
        set_setting_pmstate(get_pm_cur_state());
        /* timeout is not needed */
-       reset_timeout(TIMEOUT_NONE);
+       display_state_transition_reset_state_transition_timeout(TIMEOUT_NONE);
 
        if (CHECK_OPS(keyfilter_ops, exit))
                keyfilter_ops->exit();
index 74fb0df..19e752e 100644 (file)
@@ -101,7 +101,6 @@ static int (*fp_get_charging_status) (int *val);
 static void (*power_saving_func) (int onoff);
 static enum device_ops_status status = DEVICE_OPS_STATUS_UNINIT;
 
-static guint timeout_src_id;
 static int system_wakeup_flag = false;
 static unsigned int custom_normal_timeout = 0;
 static unsigned int custom_dim_timeout = 0;
@@ -209,11 +208,6 @@ inline struct state* state_st(enum state_t state)
        return &states[state];
 }
 
-guint get_transition_timer(void)
-{
-       return timeout_src_id;
-}
-
 static const char* __device_flags_to_string(enum device_flags flags)
 {
 
@@ -380,7 +374,7 @@ static void del_state_cond(void *data, enum state_t state)
         *   1. There should be no running state-transition timer
         *   2. Released lock is one of the pm_cur_state's lock
         * This emulates already expired transition timer */
-       if (!timeout_src_id && get_pm_cur_state() == state)
+       if (!display_state_transition_is_there_state_transition_timer() && (get_pm_cur_state() == state))
                states[get_pm_cur_state()].trans(EVENT_TIMEOUT);
 
        if (state == S_LCDOFF)
@@ -405,48 +399,6 @@ static gboolean del_off_cond(void *data)
        return G_SOURCE_REMOVE;
 }
 
-/* timeout handler  */
-gboolean timeout_handler(void *data)
-{
-       _I("Time out state %s", states[get_pm_cur_state()].name);
-
-       if (timeout_src_id) {
-               g_source_remove(timeout_src_id);
-               timeout_src_id = 0;
-       }
-
-       states[get_pm_cur_state()].trans(EVENT_TIMEOUT);
-       return G_SOURCE_REMOVE;
-}
-
-void reset_timeout(int timeout)
-{
-       enum state_t next_state;
-
-       if (!display_conf.timeout_enable)
-               return;
-
-       if ((get_pm_cur_state() == S_LCDOFF)
-       && (is_emulator() == true || timeout_sleep_support == false))
-               return;
-
-       _I("Reset timeout(%d ms).", timeout);
-       if (timeout_src_id != 0) {
-               g_source_remove(timeout_src_id);
-               timeout_src_id = 0;
-       }
-
-       display_state_transition_get_next_transition_display_state(get_pm_cur_state(), &next_state, EVENT_TIMEOUT);
-       if (next_state == get_pm_cur_state())
-               return;
-
-       if (timeout > 0)
-               timeout_src_id = g_timeout_add(timeout,
-                   timeout_handler, NULL);
-       else if (timeout == 0)
-               states[get_pm_cur_state()].trans(EVENT_TIMEOUT);
-}
-
 /* get configurations from setting */
 static int get_lcd_timeout_from_settings(void)
 {
@@ -953,13 +905,13 @@ static int proc_condition(PMMsg *data)
        if (flags == 0) {
                /* guard time for suspend */
                if (get_pm_cur_state() == S_LCDOFF)
-                       reset_timeout(states[S_LCDOFF].timeout);
+                       display_state_transition_reset_state_transition_timeout(states[S_LCDOFF].timeout);
        } else {
                if (flags & PM_FLAG_RESET_TIMER)
-                       reset_timeout(states[get_pm_cur_state()].timeout);
+                       display_state_transition_reset_state_transition_timeout(states[get_pm_cur_state()].timeout);
        }
 
-       if (!timeout_src_id)
+       if (!display_state_transition_is_there_state_transition_timer())
                states[get_pm_cur_state()].trans(EVENT_TIMEOUT);
 
        return 0;
@@ -1261,7 +1213,7 @@ static int default_action(int timeout)
                        lcdon_tv.tv_sec = 0;
                }
                /* set timer with current state timeout */
-               reset_timeout(timeout);
+               display_state_transition_reset_state_transition_timeout(timeout);
 
                if (get_pm_cur_state() == S_NORMAL) {
                        time(&last_update_time);
@@ -1750,13 +1702,13 @@ static gboolean delayed_dpms_init_done(gpointer data)
                        /* check minimun lcd on time */
                        if (timeout < SEC_TO_MSEC(DEFAULT_NORMAL_TIMEOUT))
                                timeout = SEC_TO_MSEC(DEFAULT_NORMAL_TIMEOUT);
-                       reset_timeout(timeout);
+                       display_state_transition_reset_state_transition_timeout(timeout);
                }
                break;
        case S_LCDOFF:
                lcd_off_procedure(LCD_OFF_BY_EVENT);
                timeout = display_conf.lcdoff_timeout;
-               reset_timeout(timeout);
+               display_state_transition_reset_state_transition_timeout(timeout);
                break;
        default:
                break;
@@ -2035,7 +1987,7 @@ static void display_exit(void *data)
        set_pm_cur_state(S_NORMAL);
        set_setting_pmstate(get_pm_cur_state());
        /* timeout is not needed */
-       reset_timeout(TIMEOUT_NONE);
+       display_state_transition_reset_state_transition_timeout(TIMEOUT_NONE);
 
        if (CHECK_OPS(keyfilter_ops, exit))
                keyfilter_ops->exit();
index 70da82f..a008cbf 100644 (file)
@@ -99,7 +99,6 @@ static int (*fp_get_charging_status) (int *val);
 static void (*power_saving_func) (int onoff);
 static enum device_ops_status status = DEVICE_OPS_STATUS_UNINIT;
 
-static guint timeout_src_id;
 static int system_wakeup_flag = false;
 static unsigned int custom_normal_timeout = 0;
 static unsigned int custom_dim_timeout = 0;
@@ -207,11 +206,6 @@ inline struct state* state_st(enum state_t state)
        return &states[state];
 }
 
-guint get_transition_timer(void)
-{
-       return timeout_src_id;
-}
-
 static const char* __device_flags_to_string(enum device_flags flags)
 {
        if (flags & LCD_ON_BY_GESTURE)
@@ -373,7 +367,7 @@ static void del_state_cond(void *data, enum state_t state)
         *   1. There should be no running state-transition timer
         *   2. Released lock is one of the pm_cur_state's lock
         * This emulates already expired transition timer */
-       if (!timeout_src_id && get_pm_cur_state() == state)
+       if (!display_state_transition_is_there_state_transition_timer() && (get_pm_cur_state() == state))
                states[get_pm_cur_state()].trans(EVENT_TIMEOUT);
 
        if (state == S_LCDOFF)
@@ -398,48 +392,6 @@ static gboolean del_off_cond(void *data)
        return G_SOURCE_REMOVE;
 }
 
-/* timeout handler  */
-gboolean timeout_handler(void *data)
-{
-       _I("Time out state %s", states[get_pm_cur_state()].name);
-
-       if (timeout_src_id) {
-               g_source_remove(timeout_src_id);
-               timeout_src_id = 0;
-       }
-
-       states[get_pm_cur_state()].trans(EVENT_TIMEOUT);
-       return G_SOURCE_REMOVE;
-}
-
-void reset_timeout(int timeout)
-{
-       enum state_t next_state;
-
-       if (!display_conf.timeout_enable)
-               return;
-
-       if ((get_pm_cur_state() == S_LCDOFF)
-       && (is_emulator() == true || timeout_sleep_support == false))
-               return;
-
-       _I("Reset timeout(%d ms) pm_cur_state(%d).", timeout, get_pm_cur_state());
-       if (timeout_src_id != 0) {
-               g_source_remove(timeout_src_id);
-               timeout_src_id = 0;
-       }
-
-       display_state_transition_get_next_transition_display_state(get_pm_cur_state(), &next_state, EVENT_TIMEOUT);
-       if (next_state == get_pm_cur_state())
-               return;
-
-       if (timeout > 0)
-               timeout_src_id = g_timeout_add(timeout,
-                   timeout_handler, NULL);
-       else if (timeout == 0)
-               states[get_pm_cur_state()].trans(EVENT_TIMEOUT);
-}
-
 /* get configurations from setting */
 static int get_lcd_timeout_from_settings(void)
 {
@@ -943,13 +895,13 @@ static int proc_condition(PMMsg *data)
        if (flags == 0) {
                /* guard time for suspend */
                if (get_pm_cur_state() == S_LCDOFF)
-                       reset_timeout(states[S_LCDOFF].timeout);
+                       display_state_transition_reset_state_transition_timeout(states[S_LCDOFF].timeout);
        } else {
                if (flags & PM_FLAG_RESET_TIMER)
-                       reset_timeout(states[get_pm_cur_state()].timeout);
+                       display_state_transition_reset_state_transition_timeout(states[get_pm_cur_state()].timeout);
        }
 
-       if (!timeout_src_id)
+       if (!display_state_transition_is_there_state_transition_timer())
                states[get_pm_cur_state()].trans(EVENT_TIMEOUT);
 
        return 0;
@@ -1251,7 +1203,7 @@ static int default_action(int timeout)
                        lcdon_tv.tv_sec = 0;
                }
                /* set timer with current state timeout */
-               reset_timeout(timeout);
+               display_state_transition_reset_state_transition_timeout(timeout);
 
                if (get_pm_cur_state() == S_NORMAL) {
                        time(&last_update_time);
@@ -1740,13 +1692,13 @@ static gboolean delayed_dpms_init_done(gpointer data)
                        /* check minimun lcd on time */
                        if (timeout < SEC_TO_MSEC(DEFAULT_NORMAL_TIMEOUT))
                                timeout = SEC_TO_MSEC(DEFAULT_NORMAL_TIMEOUT);
-                       reset_timeout(timeout);
+                       display_state_transition_reset_state_transition_timeout(timeout);
                }
                break;
        case S_LCDOFF:
                lcd_off_procedure(LCD_OFF_BY_EVENT);
                timeout = display_conf.lcdoff_timeout;
-               reset_timeout(timeout);
+               display_state_transition_reset_state_transition_timeout(timeout);
                break;
        default:
                break;
@@ -2026,7 +1978,7 @@ static void display_exit(void *data)
        set_pm_cur_state(S_NORMAL);
        set_setting_pmstate(get_pm_cur_state());
        /* timeout is not needed */
-       reset_timeout(TIMEOUT_NONE);
+       display_state_transition_reset_state_transition_timeout(TIMEOUT_NONE);
 
        if (CHECK_OPS(keyfilter_ops, exit))
                keyfilter_ops->exit();
index 9ba26c9..f16c389 100644 (file)
@@ -112,7 +112,6 @@ static int (*fp_get_charging_status) (int *val);
 static void (*power_saving_func) (int onoff);
 static enum device_ops_status status = DEVICE_OPS_STATUS_UNINIT;
 
-static guint timeout_src_id;
 static int system_wakeup_flag = false;
 static unsigned int custom_normal_timeout = 0;
 static unsigned int custom_dim_timeout = 0;
@@ -235,11 +234,6 @@ inline struct state *state_st(enum state_t state)
        return &states[state];
 }
 
-guint get_transition_timer(void)
-{
-       return timeout_src_id;
-}
-
 static int display_auto_brightness_sensing(void *data)
 {
        if (!transit_timer)
@@ -393,7 +387,7 @@ static gboolean pmlock_terminate_daemon_to_release_lock(gpointer data)
                del_node(state, node);
                set_unlock_time(pid, state);
 
-               if (!timeout_src_id)
+               if (!display_state_transition_is_there_state_transition_timer())
                        states[get_pm_cur_state()].trans(EVENT_TIMEOUT);
        }
 
@@ -650,7 +644,7 @@ static void del_state_cond(void *data, enum state_t state)
         *   1. There should be no running state-transition timer
         *   2. Released lock is one of the pm_cur_state's lock
         * This emulates already expired transition timer */
-       if (!timeout_src_id && get_pm_cur_state() == state)
+       if (!display_state_transition_is_there_state_transition_timer() && (get_pm_cur_state() == state))
                states[get_pm_cur_state()].trans(EVENT_TIMEOUT);
 
        if (state == S_LCDOFF)
@@ -675,48 +669,6 @@ static gboolean del_off_cond(void *data)
        return G_SOURCE_REMOVE;
 }
 
-/* timeout handler  */
-gboolean timeout_handler(void *data)
-{
-       _I("Time out state %s", states[get_pm_cur_state()].name);
-
-       if (timeout_src_id) {
-               g_source_remove(timeout_src_id);
-               timeout_src_id = 0;
-       }
-
-       states[get_pm_cur_state()].trans(EVENT_TIMEOUT);
-       return G_SOURCE_REMOVE;
-}
-
-void reset_timeout(int timeout)
-{
-       enum state_t next_state;
-
-       if (!display_conf.timeout_enable)
-               return;
-
-       if ((get_pm_cur_state() == S_LCDOFF)
-       && (is_emulator() == true || timeout_sleep_support == false))
-               return;
-
-       _I("Reset timeout(%d ms).", timeout);
-       if (timeout_src_id != 0) {
-               g_source_remove(timeout_src_id);
-               timeout_src_id = 0;
-       }
-
-       display_state_transition_get_next_transition_display_state(get_pm_cur_state(), &next_state, EVENT_TIMEOUT);
-       if (next_state == get_pm_cur_state())
-               return;
-
-       if (timeout > 0)
-               timeout_src_id = g_timeout_add(timeout,
-                   timeout_handler, NULL);
-       else if (timeout == 0)
-               states[get_pm_cur_state()].trans(EVENT_TIMEOUT);
-}
-
 /* get configurations from setting */
 static int get_lcd_timeout_from_settings(void)
 {
@@ -1253,13 +1205,13 @@ static int proc_condition(PMMsg *data)
        if (flags == 0) {
                /* guard time for suspend */
                if (get_pm_cur_state() == S_LCDOFF)
-                       reset_timeout(states[S_LCDOFF].timeout);
+                       display_state_transition_reset_state_transition_timeout(states[S_LCDOFF].timeout);
        } else {
                if (flags & PM_FLAG_RESET_TIMER)
-                       reset_timeout(states[get_pm_cur_state()].timeout);
+                       display_state_transition_reset_state_transition_timeout(states[get_pm_cur_state()].timeout);
        }
 
-       if (!timeout_src_id)
+       if (!display_state_transition_is_there_state_transition_timer())
                states[get_pm_cur_state()].trans(EVENT_TIMEOUT);
 
        return 0;
@@ -1579,7 +1531,7 @@ static int default_action(int timeout)
                        lcdon_tv.tv_sec = 0;
                }
                /* set timer with current state timeout */
-               reset_timeout(timeout);
+               display_state_transition_reset_state_transition_timeout(timeout);
 
                if (get_pm_cur_state() == S_NORMAL) {
                        time(&last_update_time);
@@ -2087,13 +2039,13 @@ static gboolean delayed_dpms_init_done(gpointer data)
                        /* check minimun lcd on time */
                        if (timeout < SEC_TO_MSEC(DEFAULT_NORMAL_TIMEOUT))
                                timeout = SEC_TO_MSEC(DEFAULT_NORMAL_TIMEOUT);
-                       reset_timeout(timeout);
+                       display_state_transition_reset_state_transition_timeout(timeout);
                }
                break;
        case S_LCDOFF:
                lcd_off_procedure(LCD_OFF_BY_EVENT);
                timeout = display_conf.lcdoff_timeout;
-               reset_timeout(timeout);
+               display_state_transition_reset_state_transition_timeout(timeout);
                break;
        default:
                break;
@@ -2411,7 +2363,7 @@ static void display_exit(void *data)
        set_pm_cur_state(S_NORMAL);
        set_setting_pmstate(get_pm_cur_state());
        /* timeout is not needed */
-       reset_timeout(TIMEOUT_NONE);
+       display_state_transition_reset_state_transition_timeout(TIMEOUT_NONE);
 
        if (CHECK_OPS(keyfilter_ops, exit))
                keyfilter_ops->exit();
index 7262bfd..95502e3 100644 (file)
@@ -146,8 +146,6 @@ void lcd_off_procedure(enum device_flags flag);
 bool touch_event_blocked(void);
 void broadcast_lcd_off_late(enum device_flags flags);
 void set_dim_state(bool on);
-void reset_timeout(int timeout);
-guint get_transition_timer(void);
 
 /* auto-brightness.c */
 void set_brightness_changed_state(void);
index 2d00019..d61667c 100644 (file)
 #include "device-interface.h"
 #include "display-state-transition.h"
 #include "display-plugin.h"
+#include "power/power-suspend.h"
+#include "shared/log.h"
+
+static guint state_transition_timer_id;
 
 static int trans_table[S_END][EVENT_END] = {
        /* Timeout,   Input */
@@ -62,4 +66,54 @@ int display_state_transition_set_transition_table_display_state(enum state_t dis
 
        trans_table[display_state][evt_type] = set_state;
        return 0;
+}
+
+static void remove_state_transition(void)
+{
+       if (state_transition_timer_id) {
+               g_source_remove(state_transition_timer_id);
+               state_transition_timer_id = 0;
+       }
+}
+
+static gboolean state_transition_timeout_handler(void *data)
+{
+       const char *state_name = NULL;
+       display_plugin_state_get_name(get_pm_cur_state(), &state_name);
+       _I("Time out state %s", state_name);
+
+       remove_state_transition();
+
+       display_plugin_state_do_default_trans(get_pm_cur_state(), EVENT_TIMEOUT);
+       return G_SOURCE_REMOVE;
+}
+
+bool display_state_transition_is_there_state_transition_timer(void)
+{
+       return (state_transition_timer_id != 0);
+}
+
+int display_state_transition_reset_state_transition_timeout(int timeout)
+{
+       bool timeout_enable;
+       if (!display_plugin_config_get_timeout_enable(&timeout_enable) && (!timeout_enable))
+               return -EPERM;
+
+       if ((get_pm_cur_state() == S_LCDOFF)
+       && (is_emulator() == true || timeout_sleep_support == false))
+               return -EPERM;
+
+       _I("Reset timeout(%d ms) pm_cur_state(%d).", timeout, get_pm_cur_state());
+       remove_state_transition();
+
+       if (trans_table[get_pm_cur_state()][EVENT_TIMEOUT] == get_pm_cur_state())
+               return -EPERM;
+
+       if (timeout > 0)
+               state_transition_timer_id = g_timeout_add(timeout,
+                       state_transition_timeout_handler, NULL);
+       else if (timeout == 0)
+               display_plugin_state_do_default_trans(get_pm_cur_state(), EVENT_TIMEOUT);
+
+       return 0;
 }
\ No newline at end of file
index b7107d6..a8bab4d 100644 (file)
@@ -28,5 +28,7 @@
 
 int display_state_transition_get_next_transition_display_state(enum state_t from_state, enum state_t *to_state, int evt_type);
 int display_state_transition_set_transition_table_display_state(enum state_t display_state, enum state_t set_state, int evt_type);
+bool display_state_transition_is_there_state_transition_timer(void);
+int display_state_transition_reset_state_transition_timeout(int timeout);
 
 #endif /* __DISPLAY_STATE_TRANSITION_H__ */
\ No newline at end of file
index 5f464b4..5015a6a 100644 (file)
@@ -26,6 +26,7 @@
 #include "display.h"
 #include "display-ops.h"
 #include "display-panel.h"
+#include "display-state-transition.h"
 #include "shared/device-notifier.h"
 #include "shared/devices.h"
 #include "shared/plugin.h"
@@ -154,7 +155,7 @@ void ambient_check_invalid_state(pid_t pid)
         * deviced just turns off lcd in this case.
         */
 
-       reset_timeout(TIMEOUT_NONE);
+       display_state_transition_reset_state_transition_timeout(TIMEOUT_NONE);
        lcd_direct_control(DPMS_OFF, NORMAL_MODE);
 
        broadcast_lcd_off_late(LCD_OFF_LATE_MODE);
index d1b0979..d426283 100644 (file)
@@ -38,7 +38,6 @@
 #define PID_MAX                        6
 #define LOCK_TIME_WARNING      60      /* 60 seconds */
 
-#define no_transition_timer()    (get_transition_timer() == 0)
 #define no_foreground_lock(st)   (check_lock_state(st) == false)
 
 static GList *cond_head[S_END];
@@ -552,8 +551,8 @@ int display_app_terminated(void *data)
         *   3. there should be no running state-transition timer
         *
         * This emulates already expired transition timer */
-       if (current_unlocked && no_foreground_lock(cur) && no_transition_timer())
-               reset_timeout(0);
+       if (current_unlocked && no_foreground_lock(cur) && !display_state_transition_is_there_state_transition_timer())
+               display_state_transition_reset_state_transition_timeout(0);
 
        return 0;
 }