display: plugin: Add display_plugin_get_device_flags()
[platform/core/system/deviced.git] / plugins / wearable / display / core.c
index b3ba04f..4365feb 100644 (file)
@@ -446,21 +446,31 @@ static void free_killable_daemon_list(void)
        initialized_killable_daemon_list = false;
 }
 
-static unsigned long get_lcd_on_flags(void)
+static int get_device_flags(unsigned long *device_flags)
 {
-       unsigned long flags = NORMAL_MODE;
-       bool lcd_paneloff_mode = false;
+       if (!device_flags)
+               return -EINVAL;
 
+       *device_flags = NORMAL_MODE;
+       bool lcd_paneloff_mode = false;
+       bool stay_touchscreen_off = false;
        display_panel_get_lcd_paneloff_mode(&lcd_paneloff_mode);
-       if (lcd_paneloff_mode)
-               flags |= LCD_PANEL_OFF_MODE;
+       display_misc_get_stay_touchscreen_off(&stay_touchscreen_off);
+
+       if (lcd_paneloff_mode) {
+               *device_flags |= LCD_PANEL_OFF_MODE;
+       }
+
+       if (stay_touchscreen_off) {
+               *device_flags |= TOUCH_SCREEN_OFF_MODE;
+       }
 
        if (ambient_get_state()) {
-               flags |= AMBIENT_MODE;
-               flags |= LCD_PHASED_TRANSIT_MODE;
+               *device_flags |= AMBIENT_MODE;
+               *device_flags |= LCD_PHASED_TRANSIT_MODE;
        }
 
-       return flags;
+       return 0;
 }
 
 bool touch_event_blocked(void)
@@ -482,7 +492,8 @@ static gboolean late_transit_on(void *data)
 
 void lcd_on_procedure(int state, enum device_flags flag)
 {
-       unsigned long flags = get_lcd_on_flags();
+       unsigned long flags = NORMAL_MODE;
+       display_plugin_get_device_flags(&flags);
        flags |= flag;
        int ret;
 
@@ -545,26 +556,10 @@ void lcd_on_procedure(int state, enum device_flags flag)
        touch_blocked = false;
 }
 
-static unsigned long get_lcd_off_flags(void)
-{
-       unsigned long flags = NORMAL_MODE;
-       bool stay_touchscreen_off = false;
-
-       if (ambient_get_condition() == true) {
-               flags |= AMBIENT_MODE;
-               flags |= LCD_PHASED_TRANSIT_MODE;
-       }
-
-       display_misc_get_stay_touchscreen_off(&stay_touchscreen_off);
-       if (stay_touchscreen_off)
-               flags |= TOUCH_SCREEN_OFF_MODE;
-
-       return flags;
-}
-
 inline void lcd_off_procedure(enum device_flags flag)
 {
-       unsigned long flags = get_lcd_off_flags();
+       unsigned long flags = NORMAL_MODE;
+       display_plugin_get_device_flags(&flags);
        flags |= flag;
 
        /*
@@ -1970,6 +1965,7 @@ static int display_probe(void *data)
        setup_display_plugin_backlight_ops(dp);
        dp->delete_state_cond = del_state_cond;
        dp->set_dim_state = set_dim_state;
+       dp->get_device_flags = get_device_flags;
        setup_display_plugin_backlight_ops(dp);
 
        /**