display: Add attribute for custom brightness 11/297511/1
authorYoungjae Cho <y0.cho@samsung.com>
Mon, 21 Aug 2023 06:46:45 +0000 (15:46 +0900)
committerYoungjae Cho <y0.cho@samsung.com>
Mon, 21 Aug 2023 06:46:45 +0000 (15:46 +0900)
New attribute:
 - id: DEVICED_DISPLAY_ATTR_INT_CUSTOM_BRIGHTNESS
 - type: SYSCOMMON_RESMAN_DATA_TYPE_INT
 - setter: O
 - getter: O
 It gets whether custom brightness is set or not. And it enables the
 custom  brightness when it sets attrbute by a value other than 0.

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

index de9c5f0..2ef1ed9 100644 (file)
@@ -32,7 +32,6 @@
 #include <linux/input.h>
 
 #include "display-actor.h"
-#include "display-backlight.h"
 #include "display-config.h"
 #include "display-misc.h"
 #include "display-state-transition.h"
@@ -112,9 +111,11 @@ static inline void restore_custom_brightness(void)
        if (ret < 0)
                return;
 
-       display_backlight_get_custom_status(&custom_status);
+       syscommon_resman_get_resource_attr_int(SYSCOMMON_RESOURCE_ID(DEVICED_RESOURCE_TYPE_DISPLAY),
+               DEVICED_DISPLAY_ATTR_INT_CUSTOM_BRIGHTNESS, (int *) &custom_status);
        if (current == SYSCOMMON_DEVICED_DISPLAY_STATE_DIM && custom_status)
-               display_backlight_update_by_custom_brightness();
+               syscommon_resman_set_resource_attr_int(SYSCOMMON_RESOURCE_ID(DEVICED_RESOURCE_TYPE_DISPLAY),
+                       DEVICED_DISPLAY_ATTR_INT_CUSTOM_BRIGHTNESS, true);
 }
 
 static void pwroff_popup(void)
index 8ce2222..fe1405f 100644 (file)
@@ -65,6 +65,15 @@ static int set_display_attr_data(int resource_id,
                        }
                }
                break;
+       case DEVICED_DISPLAY_ATTR_INT_CUSTOM_BRIGHTNESS:
+               {
+                       bool on = *(bool *) data;
+                       if (on)
+                               display_backlight_update_by_custom_brightness();
+
+                       return 0;
+               }
+               break;
        default:
                return -EINVAL;
        }
@@ -144,6 +153,9 @@ static int get_display_attr_data(int resource_id,
        case DEVICED_DISPLAY_ATTR_INT_DPMS_STATE:
                attr_data.i32 = display_panel_get_dpms_cached_state();
                break;
+       case DEVICED_DISPLAY_ATTR_INT_CUSTOM_BRIGHTNESS:
+               display_backlight_get_custom_status(&attr_data.b);
+               break;
        default:
                ret = -EINVAL;
                break;
@@ -228,6 +240,16 @@ static const struct syscommon_resman_resource_attribute display_attrs[] = {
                        .set_2_tuple = set_tuple2_display_attr_data,
                        .is_supported = syscommon_resman_resource_attr_supported_always,
                },
+       }, {
+               .name = "DEVICED_DISPLAY_ATTR_INT_CUSTOM_BRIGHTNESS",
+               .id = DEVICED_DISPLAY_ATTR_INT_CUSTOM_BRIGHTNESS,
+               .type = SYSCOMMON_RESMAN_DATA_TYPE_INT,
+               .flag = SYSCOMMON_RESMAN_RESOURCE_FLAG_PUBLIC,
+               .ops = {
+                       .set = set_display_attr_data,
+                       .get = get_display_attr_data,
+                       .is_supported = syscommon_resman_resource_attr_supported_always,
+               },
        }
 };