Add dbus method to contol min value of autobrightness 29/15129/1
authorKrzysztof Sasiak <k.sasiak@samsung.com>
Fri, 9 Aug 2013 13:35:09 +0000 (15:35 +0200)
committerKrzysztof Sasiak <k.sasiak@samsung.com>
Thu, 16 Jan 2014 11:02:37 +0000 (12:02 +0100)
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 <k.sasiak@samsung.com>
src/display/display-dbus.c
src/display/lsensor.c

index d212298..e25c154 100644 (file)
@@ -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 */
 };
 
index 075080d..38fc13f 100644 (file)
@@ -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;