Add display_get_state to remove dependency with enlightenment 04/181304/3
authorlokilee73 <changjoo.lee@samsung.com>
Tue, 12 Jun 2018 03:14:22 +0000 (12:14 +0900)
committerlokilee73 <changjoo.lee@samsung.com>
Tue, 12 Jun 2018 07:26:17 +0000 (16:26 +0900)
Change-Id: Icf3e63eac467eee7e25397bb283eba9375be70a5
Signed-off-by: lokilee73 <changjoo.lee@samsung.com>
hw/display/display.c [changed mode: 0644->0755]

old mode 100644 (file)
new mode 100755 (executable)
index b34add1..5044446
 #define BACKLIGHT_PATH  "/sys/class/backlight/s6e3ha2"
 #endif
 
+#ifndef LCD_PATH
+#define LCD_PATH  "/sys/class/drm/card0-DSI-1"
+#endif
+
 static int display_get_max_brightness(int *val)
 {
        static int max = -1;
@@ -91,6 +95,28 @@ static int display_set_brightness(int brightness)
        return 0;
 }
 
+static int display_get_state(enum display_state *state)
+{
+       int r;
+       char status[32];
+
+       r = sys_get_str(LCD_PATH"/dpms", status, sizeof(status));
+       if (r < 0) {
+               _E("fail to get state (errno:%d)", r);
+               return r;
+       }
+
+       //remap LCD state
+       if (!strncmp(status, "On", 2)) {
+               *state = DISPLAY_ON;
+       } else if (!strncmp(status, "Off", 3)) {
+               *state = DISPLAY_OFF;
+       } else
+               *state = -EINVAL;
+
+       return 0;
+}
+
 static int display_open(struct hw_info *info,
                const char *id, struct hw_common **common)
 {
@@ -107,6 +133,7 @@ static int display_open(struct hw_info *info,
        display_dev->get_max_brightness = display_get_max_brightness;
        display_dev->get_brightness = display_get_brightness;
        display_dev->set_brightness = display_set_brightness;
+       display_dev->get_state = display_get_state;
 
        *common = (struct hw_common *)display_dev;
        return 0;