display: Replace auto brightness with plugin api 91/313091/1
authorYoungjae Cho <y0.cho@samsung.com>
Mon, 17 Jun 2024 11:12:58 +0000 (20:12 +0900)
committerYoungjae Cho <y0.cho@samsung.com>
Wed, 19 Jun 2024 04:38:01 +0000 (13:38 +0900)
The reset_autobrightness_min has removed and it is intended to be a
part of plugin implementation, .set_auto_brightness_min.

Change-Id: Ie5eeb1bab5a3a8b78a0f6e034dbf2b6b82708e87
Signed-off-by: Youngjae Cho <y0.cho@samsung.com>
plugins/wearable/display/auto-brightness-sensorhub.c
plugins/wearable/display/auto-brightness-sensorhub.h
plugins/wearable/display/auto-brightness.c
src/display/core.h
src/display/display-dbus.c
src/display/display-plugin.c
src/display/display-plugin.h

index a982af980526e6331d3514d58f823845848abc17..10c2d7ac2ccc00de6ebc8b2d225f6edd45f7d072 100644 (file)
@@ -343,8 +343,6 @@ int prepare_level_handler(void)
 {
        int status, ret;
 
-       disp_plgn->auto_brightness_control = auto_brightness_control;
-
        ret = vconf_get_int(VCONFKEY_SETAPPL_BRIGHTNESS_AUTOMATIC_INT, &status);
        if (ret >= 0)
                auto_brightness_state = status;
index a3d401f576e674988d4e9d2ef10bb9841ecf01e5..150a4ae52900900bed33dd1f9fcab0ce98c338f4 100644 (file)
@@ -28,6 +28,7 @@
 #define LBM_LEVEL              110
 #define HBM_LEVEL              120
 
+#include "core.h"
 #include "display.h"
 #include "display-ops.h"
 
index b0e145a30b8526863f3b5f01d55cbf9877770867..8c759a49c93fe4cd0fbf854f340d1efd46f4eec2 100644 (file)
@@ -64,6 +64,11 @@ static char *min_brightness_name = 0;
 /* light sensor */
 static float lmax, lmin;
 
+static void reset_autobrightness_min(GDBusConnection *conn,
+       const gchar     *sender,
+       const gchar     *unique_name,
+       gpointer         data);
+
 static bool update_working_position(void)
 {
        sensor_event_s data;
@@ -567,8 +572,14 @@ static void update_brightness_direct(void)
                _E("Failed to get vconf value for automatic brightness: %d", vconf_get_ext_errno());
 }
 
+/**
+ * FIXME: Register it to plugin interface .set_auto_brightness_min
+ */
+__attribute__((unused))
 static int set_autobrightness_min(int val, char *name)
 {
+       int id;
+
        if (!name)
                return -EINVAL;
 
@@ -588,6 +599,13 @@ static int set_autobrightness_min(int val, char *name)
        _I("Auto brightness min value changed. min_brightness=%d min_brightness_name=%s",
            min_brightness, min_brightness_name);
 
+       id = gdbus_watch_name(name, reset_autobrightness_min, NULL, NULL, NULL);
+       if (id <= 0) {
+               _E("failed to watch name %s, id %d", name, id);
+               //todo: set return value
+       }
+       _I("set autobrightness min %d by %s", val, name);
+
        return 0;
 }
 
@@ -661,9 +679,6 @@ static void exit_lsensor(void)
 
 static void auto_brightness_init(void *data)
 {
-       g_display_plugin.set_autobrightness_min = set_autobrightness_min;
-       g_display_plugin.reset_autobrightness_min = reset_autobrightness_min;
-
        syscommon_notifier_subscribe_notify(DEVICED_NOTIFIER_LCD, lcd_changed_cb);
        syscommon_notifier_subscribe_notify(DEVICED_NOTIFIER_DELAYED_INIT, delayed_init_done);
 }
index 7378d2e440bf153571d57a8cab524563e05d08c5..d3778404d737fe639052689c47554bc72478ce27 100644 (file)
 #define MAX_LOG_COUNT 250
 #endif
 
+/**
+ * FIXME:
+ *   It is passed via first parameter 'mode' of plugin api
+ *   syscommon_plugin_deviced_display_control_auto_brightness(mode, brightness),
+ *   but have not moved it to plugin-api(libsyscommon) as it is currently
+ *   only wearable specific enum and technically, the wearable is not plugin structure.
+ */
+enum brightness_request_e {
+       /**
+        * request for brightness that managed internally.
+        * BR_HOLD_BRIGHTNESS and BR_SET_BRIGHTNESS does not use this implicit brightness
+        * for request, but explicitly request for a brightness value
+        */
+       BR_IMPLICIT = -1,
+
+       BR_MIN = 0,
+       /* entering request */
+       BR_LBM_ON,
+       BR_HBM_ON,
+       BR_HOLD_BRIGHTNESS,
+       BR_LOWDIM_ON, /* low battery dim */
+
+       /* exiting request */
+       BR_LBM_OFF,
+       BR_HBM_OFF,
+       BR_RELEASE_BRIGHTNESS,
+       BR_LOWDIM_OFF, /* low battery dim off */
+
+       /* special */
+       BR_SET_BRIGHTNESS,
+
+       BR_MAX,
+};
+
 struct syscommon_deviced_display_state_info *state_st(enum syscommon_deviced_display_state state);
 
 /*
index 1d54a5cac4442c49903d48756e88878c54b223ff..6c54daafc0044ea0f5dc020dc75f0fd4eab19070 100644 (file)
@@ -505,9 +505,9 @@ static GVariant *dbus_setbrightness(GDBusConnection *conn,
 
        clear_pm_status_flag(DIM_MASK);
        if (state == DISPLAY_STATE_NORMAL) {
-               if (disp_plgn->auto_brightness_control) {
-                       ret = disp_plgn->auto_brightness_control(BR_SET_BRIGHTNESS, brt);
-               } else {
+               ret = syscommon_plugin_deviced_display_control_auto_brightness(BR_SET_BRIGHTNESS, brt);
+               if (ret == -ENOTSUP || ret == -EOPNOTSUPP) {
+                       _D("Take default operation as there is no found plugin backend, ret=%d", ret);
                        display_backlight_set_default_brightness(brt);
                        ret = display_backlight_set_brightness(brt);
                        if (ret < 0)
@@ -571,13 +571,15 @@ static GVariant *dbus_holdbrightness(GDBusConnection *conn,
        }
 
        ret = vconf_set_int(VCONFKEY_PM_CUSTOM_BRIGHTNESS_STATUS, VCONFKEY_PM_CUSTOM_BRIGHTNESS_ON);
+
        if (ret < 0)
                _E("Failed to set vconf value for custom brightness status: %d", vconf_get_ext_errno());
 
-       if (disp_plgn->auto_brightness_control)
-               ret = disp_plgn->auto_brightness_control(BR_HOLD_BRIGHTNESS, brt);
-       else
+       ret = syscommon_plugin_deviced_display_control_auto_brightness(BR_HOLD_BRIGHTNESS, brt);
+       if (ret == -ENOTSUP || ret == -EOPNOTSUPP) {
+               _D("Take default operation as there is no found plugin backend, ret=%d", ret);
                ret = display_backlight_set_brightness(brt);
+       }
 
        if (ret < 0)
                goto error;
@@ -650,7 +652,7 @@ static GVariant *dbus_releasebrightness(GDBusConnection *conn,
                brt = ret;
 
        // check dim state
-       if (!disp_plgn->auto_brightness_control && display_misc_is_low_battery_state(bat) &&
+       if (display_misc_is_low_battery_state(bat) &&
            charger == VCONFKEY_SYSMAN_CHARGER_DISCONNECTED && !changed) {
                _D("batt warning low : brightness is not changed!");
                if (brt != 0)
@@ -659,9 +661,8 @@ static GVariant *dbus_releasebrightness(GDBusConnection *conn,
        }
 
        if (autobrt == SETTING_BRIGHTNESS_AUTOMATIC_OFF) {
-               if (disp_plgn->auto_brightness_control) {
-                       disp_plgn->auto_brightness_control(BR_RELEASE_BRIGHTNESS, BR_IMPLICIT);
-               } else {
+               ret = syscommon_plugin_deviced_display_control_auto_brightness(BR_RELEASE_BRIGHTNESS, BR_IMPLICIT);
+               if (ret == -ENOTSUP || ret == -EOPNOTSUPP) {
                        if (brt != setting)
                                display_backlight_set_brightness(setting);
                }
@@ -720,12 +721,7 @@ static GVariant *dbus_setautobrightnessmin(GDBusConnection *conn,
 {
        int val, ret;
        pid_t pid;
-       int id = 0;
 
-       if (!g_display_plugin.set_autobrightness_min) {
-               ret = -EIO;
-               goto error;
-       }
        g_variant_get(param, "(i)", &val);
 
        pid = gdbus_connection_get_sender_pid(conn, sender);
@@ -734,19 +730,9 @@ static GVariant *dbus_setautobrightnessmin(GDBusConnection *conn,
                ret = -ESRCH;
                goto error;
        }
-       ret = g_display_plugin.set_autobrightness_min(val, (char *)sender);
-       if (ret) {
-               _W("fail to set autobrightness min %d, %d by %d", val, ret, pid);
-               goto error;
-       }
-       if (g_display_plugin.reset_autobrightness_min) {
-               id = gdbus_watch_name(sender, g_display_plugin.reset_autobrightness_min, NULL, NULL, NULL);
-               if (id <= 0) {
-                       _E("failed to watch name %s, id %d", sender, id);
-                       //todo: set return value
-               }
-               _I("set autobrightness min %d by %d", val, pid);
-       }
+
+       ret = syscommon_plugin_deviced_display_set_auto_brightness_min(val, sender);
+
 error:
        return g_variant_new("(i)", ret);
 }
index bff05d4d8df9e09741b5fb70d214dad88cb32ba5..6716a7c4d98bd52ad68c9f97d963bdf6b3df0a37 100644 (file)
@@ -37,14 +37,6 @@ int display_plugin_set_system_wakeup_flag(bool flag)
        return 0;
 }
 
-int display_plugin_auto_brightness_control(enum brightness_request_e request, int set_brightness)
-{
-       if (g_display_plugin.auto_brightness_control)
-               return g_display_plugin.auto_brightness_control(request, set_brightness);
-
-       return 0;
-}
-
 /* FIXME: Below functions are temorary to separtate display state transition functions */
 int display_plugin_state_do_default_trans(enum syscommon_deviced_display_state state, int evt)
 {
index 084b2c0039abb0c9ed8c46ebc3f1466576e6e5f8..f55a99aca48039e105a9c2bc677eee1fcf8d5dab 100644 (file)
 #include "display-backlight.h"
 #include "shared/devices.h"
 
-/* FIXME: Currently because of display_plugin.auto_brightness_control(),
- *        it is here. Please relocate it to proper place later. */
-enum brightness_request_e {
-       BR_MIN = 0,
-       /* entering request */
-       BR_LBM_ON,
-       BR_HBM_ON,
-       BR_HOLD_BRIGHTNESS,
-       BR_LOWDIM_ON, /* low battery dim */
-
-       /* exiting request */
-       BR_LBM_OFF,
-       BR_HBM_OFF,
-       BR_RELEASE_BRIGHTNESS,
-       BR_LOWDIM_OFF, /* low battery dim off */
-
-       /* special */
-       BR_SET_BRIGHTNESS,
-
-       BR_MAX,
-};
-
-/* request for brightness that managed internally.
- * BR_HOLD_BRIGHTNESS and BR_SET_BRIGHTNESS does not use this implicit brightness
- * for request, but explicitly request for a brightness value */
-#define BR_IMPLICIT            (-1)
-
 struct display_plugin {
        bool system_wakeup_flag;
-       int (*auto_brightness_control) (enum brightness_request_e request, int set_brightness);
        int (*proc_change_state) (unsigned int cond, pid_t pid);
-       int (*set_autobrightness_min) (int val, char *name);
-       void (*reset_autobrightness_min) (GDBusConnection *conn, const gchar *sender,
-                                       const gchar *unique_name, gpointer data);
 
        struct syscommon_deviced_display_config *config;
        struct syscommon_deviced_display_state_info* display_states[SYSCOMMON_DEVICED_DISPLAY_STATE_END];
@@ -70,7 +39,6 @@ extern struct display_plugin g_display_plugin;
 
 int display_plugin_get_system_wakeup_flag(bool *flag);
 int display_plugin_set_system_wakeup_flag(bool flag);
-int display_plugin_auto_brightness_control(enum brightness_request_e request, int set_brightness);
 
 /* FIXME: function names will be redefined */
 int display_plugin_state_do_default_trans(enum syscommon_deviced_display_state state, int evt);