{
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;
#define LBM_LEVEL 110
#define HBM_LEVEL 120
+#include "core.h"
#include "display.h"
#include "display-ops.h"
/* 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;
_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;
_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;
}
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);
}
#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);
/*
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)
}
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;
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)
}
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);
}
{
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);
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);
}
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)
{
#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];
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);