From 99294473442a23456f17f86ef54466861c863516 Mon Sep 17 00:00:00 2001 From: Krzysztof Sasiak Date: Fri, 9 Aug 2013 15:35:09 +0200 Subject: [PATCH] Add dbus method to contol min value of autobrightness There is autobrightness limitation when some application is working. ex) Min autobrightness of camera application is 60% (default value). Then Add dbus method for turning min autobrightness. Change-Id: I89879aa1ecd9a35f0525443b3c083e3593698d62 Signed-off-by: Krzysztof Sasiak --- src/display/display-dbus.c | 25 +++++++++++++++++++++++++ src/display/lsensor.c | 11 +++++++++++ 2 files changed, 36 insertions(+) diff --git a/src/display/display-dbus.c b/src/display/display-dbus.c index d212298..e25c154 100644 --- a/src/display/display-dbus.c +++ b/src/display/display-dbus.c @@ -338,6 +338,30 @@ static DBusMessage *e_dbus_setautobrightnessinterval(E_DBus_Object *obj, DBusMes return reply; } +static DBusMessage *e_dbus_setautobrightnessmin(E_DBus_Object *obj, DBusMessage *msg) +{ + DBusMessageIter iter; + DBusMessage *reply; + int val, ret; + pid_t pid; + + dbus_message_iter_init(msg, &iter); + dbus_message_iter_get_basic(&iter, &val); + + pid = get_edbus_sender_pid(msg); + ret = set_autobrightness_min(val); + if (ret) + _E("fail to set autobrightness min %d, %d by %d", val, ret, pid); + else + _I("set autobrightness min %d by %d", val, pid); + + reply = dbus_message_new_method_return(msg); + dbus_message_iter_init_append(reply, &iter); + dbus_message_iter_append_basic(&iter, DBUS_TYPE_INT32, &ret); + + return reply; +} + static struct edbus_method { const char *member; const char *signature; @@ -354,6 +378,7 @@ static struct edbus_method { { "setframerate", "i", "i", e_dbus_setframerate }, { "getautobrightnessinterval", NULL, "i", e_dbus_getautobrightnessinterval }, { "setautobrightnessinterval", "i", "i", e_dbus_setautobrightnessinterval }, + { "setautobrightnessmin", "i", "i", e_dbus_setautobrightnessmin }, /* Add methods here */ }; diff --git a/src/display/lsensor.c b/src/display/lsensor.c index 075080d..38fc13f 100644 --- a/src/display/lsensor.c +++ b/src/display/lsensor.c @@ -43,6 +43,7 @@ static int sf_handle = -1; static int fault_count = 0; static int power_saving_display_stat = 0; static int sampling_interval = SAMPLING_INTERVAL; +static int min_brightness = PM_MIN_BRIGHTNESS; static bool alc_handler(void* data) { @@ -289,6 +290,16 @@ int set_autobrightness_interval(int val) return 0; } +int set_autobrightness_min(int val) +{ + if (val < PM_MIN_BRIGHTNESS || val > PM_MAX_BRIGHTNESS) + return -EINVAL; + + min_brightness = val; + + return 0; +} + static void __attribute__ ((constructor)) pm_lsensor_init(void) { _default_action = NULL; -- 2.7.4