display: Add attribute for touch event blocked 22/297622/1
authorYoungjae Cho <y0.cho@samsung.com>
Tue, 22 Aug 2023 02:21:11 +0000 (11:21 +0900)
committerYoungjae Cho <y0.cho@samsung.com>
Tue, 22 Aug 2023 02:23:22 +0000 (11:23 +0900)
New attribute:
 - id: DEVICED_DISPLAY_ATTR_INT_GET_TOUCH_EVENT_BLOCKED
 - type: SYSCOMMON_RESMAN_DATA_TYPE_INT
 - setter: X
 - getter: O

Change-Id: Id8b65f4ceeee1ef145f58dbd8176ab7911d27dcf
Signed-off-by: Youngjae Cho <y0.cho@samsung.com>
plugins/iot-headed/display/key-filter.c
src/display/resource-display.c

index 1575fbb0ffc37064c1334622c32a5be9a306092d..c721b9c8e8feacf3db486228280aaf68214c479b 100644 (file)
@@ -33,7 +33,6 @@
 #include <linux/input.h>
 
 #include "display-config.h"
-#include "display-misc.h"
 #include <libsyscommon/log.h>
 #include "display-lock.h"
 #include "input/input.h"
@@ -700,6 +699,7 @@ static void check_key_filter(struct timeval time, unsigned short type, unsigned
        static int code, value;
        int ret;
        enum syscommon_deviced_display_state current;
+       int touch_event_blocked = 0;
 
        assert(pinput);
 
@@ -746,7 +746,13 @@ static void check_key_filter(struct timeval time, unsigned short type, unsigned
                        ignore = false;
                break;
        case EV_ABS:
-               if (display_misc_is_touch_event_blocked()
+               ret = syscommon_resman_get_resource_attr_int(SYSCOMMON_RESOURCE_ID(DEVICED_RESOURCE_TYPE_DISPLAY),
+                       DEVICED_DISPLAY_ATTR_INT_GET_TOUCH_EVENT_BLOCKED, &touch_event_blocked);
+
+               if (ret < 0)
+                       break;
+
+               if (touch_event_blocked
                        && !display_plugin_config_touch_wakeup()
                        && pinput->value == KEY_BEING_PRESSED)
                        return;
index 40e7fb24481b7b32a3c1bb79a0f9732bfb63c415..a1a1758f6a7a72d6aa74eba982b89a0dc71a1f97 100644 (file)
@@ -29,6 +29,7 @@
 #include "display-backlight.h"
 #include "display-actor.h"
 #include "device-interface.h"
+#include "display-misc.h"
 
 typedef union {
        int32_t i32;
@@ -192,6 +193,9 @@ static int get_display_attr_data(int resource_id,
        case DEVICED_DISPLAY_ATTR_INT_CUSTOM_BRIGHTNESS:
                display_backlight_get_custom_status(&attr_data.b);
                break;
+       case DEVICED_DISPLAY_ATTR_INT_GET_TOUCH_EVENT_BLOCKED:
+               attr_data.i32 = display_misc_is_touch_event_blocked();
+               break;
        default:
                ret = -EINVAL;
                break;
@@ -371,6 +375,15 @@ static const struct syscommon_resman_resource_attribute display_attrs[] = {
                        .set_3_tuple = set_tuple3_display_attr_data,
                        .is_supported = syscommon_resman_resource_attr_supported_always,
                },
+       }, {
+               .name = "DEVICED_DISPLAY_ATTR_INT_GET_TOUCH_EVENT_BLOCKED",
+               .id = DEVICED_DISPLAY_ATTR_INT_GET_TOUCH_EVENT_BLOCKED,
+               .flag = SYSCOMMON_RESMAN_RESOURCE_FLAG_PUBLIC,
+               .type = SYSCOMMON_RESMAN_DATA_TYPE_INT,
+               .ops = {
+                       .get = get_display_attr_data,
+                       .is_supported = syscommon_resman_resource_attr_supported_always,
+               },
        }
 };