2.0 alpha
[platform/core/system/devman.git] / src / if_legacy.c
old mode 100755 (executable)
new mode 100644 (file)
similarity index 67%
rename from if_legacy.c
rename to src/if_legacy.c
index 18311ce..9eaccf9
@@ -4,7 +4,7 @@
  * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
  *
  * Contact: DongGi Jang <dg0402.jang@samsung.com>
- * 
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  * See the License for the specific language governing permissions and
  * limitations under the License.
  *
-*/ 
+*/
 
 
 #include <vconf.h>
+#include <errno.h>
 
 #include "devman_internal.h"
 #include "device_engine.h"
 #define DISP_INDEX_BIT                         4
 #define COMBINE_DISP_CMD(cmd, prop, index)     (cmd = (prop | (index << DISP_INDEX_BIT)))
 
-#define SET_FLAG(var, bit)             (var |= (1<<bit))
-#define UNSET_FLAG(var, bit)   (var &= (~(1<<bit)))
-#define BRT_BIT                        1
-#define GAMMA_BIT              2
-#define LED_BIT                        4
+#define SET_FLAG(var, bit)                     (var |= (1<<bit))
+#define UNSET_FLAG(var, bit)                   (var &= (~(1<<bit)))
+#define BRT_BIT                                        1
+#define GAMMA_BIT                              2
+#define LED_BIT                                        4
 
 static unsigned int disp_flag = 0x0;
 
 API int device_get_battery_pct(void)
 {
        int val;
-       if (device_get_property
-                       (DEVTYPE_POWERSUPPLY, POWER_SUPPLY_PROP_CAPACITY, &val) < 0)
+       if (device_get_property(DEVTYPE_POWERSUPPLY, POWER_SUPPLY_PROP_CAPACITY, &val) < 0)
                return -1;
        if (val < 0 || val > 100) {
                ERR("capacity value is wrong");
@@ -53,28 +53,24 @@ API int device_get_battery_pct(void)
 
 API int device_is_battery_full(void)
 {
-       int capacity = 0, charge_state = 0;
-       if(device_get_property(DEVTYPE_POWERSUPPLY, POWER_SUPPLY_PROP_CAPACITY, &capacity) < 0)
+       int charge_full = 0;
+       if (device_get_property(DEVTYPE_POWERSUPPLY, POWER_SUPPLY_PROP_CHARGE_FULL, &charge_full) < 0)
                return -1;
 
-       /* If the capacity is 100 and charge state is 1, battery is not full */
-       device_get_property(DEVTYPE_POWERSUPPLY, POWER_SUPPLY_PROP_CHARGE_NOW, &charge_state);
-       if(capacity < 0 || capacity > 100) {
-               ERR("capacity value is wrong");
+       if (charge_full != 0 && charge_full != 1) {
+               ERR("charge_full value is wrong");
                return -1;
-       } else if(capacity == 100 && charge_state < 1) {
-               return 1;
-       } else {
-               return 0;
        }
+
+       return charge_full;
 }
 
 API int device_get_battery_health(void)
 {
        int health = -1;
-       if(device_get_property(DEVTYPE_POWERSUPPLY, POWER_SUPPLY_PROP_BATTERY_HEALTH, &health) < 0)
+       if (device_get_property(DEVTYPE_POWERSUPPLY, POWER_SUPPLY_PROP_BATTERY_HEALTH, &health) < 0)
                return -1;
-       if(health < BAT_UNKNOWN || health > BAT_COLD) {
+       if (health < BAT_UNKNOWN || health > BAT_COLD) {
                ERR("battery health value is wrong");
                return -1;
        }
@@ -82,6 +78,20 @@ API int device_get_battery_health(void)
        return health;
 }
 
+API int device_get_battery_pct_raw(void)
+{
+       int val;
+       int ret = -1;
+
+       ret = device_get_property(DEVTYPE_POWERSUPPLY, POWER_SUPPLY_PROP_CAPACITY_RAW, &val);
+       if (ret < 0)
+               return ret;
+
+       if (val > 10000)
+               return 10000;
+       return val;
+}
+
 API int device_get_display_brt(display_num_t lcdnum)
 {
        int val;
@@ -97,10 +107,11 @@ API int device_get_display_brt(display_num_t lcdnum)
 API int device_set_display_brt(display_num_t lcdnum, int val)
 {
        int bat_state = -1;
+       int auto_brightness_state = -1;
        int ret = -1;
        int cmd;
 
-       if(vconf_get_int(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, &bat_state) != 0 || bat_state >= VCONFKEY_SYSMAN_BAT_WARNING_LOW ) {
+       if (vconf_get_int(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, &bat_state) != 0 || bat_state >= VCONFKEY_SYSMAN_BAT_WARNING_LOW ) {
                COMBINE_DISP_CMD(cmd, DISPLAY_PROP_BRIGHTNESS, lcdnum);
                if (device_set_property(DEVTYPE_DISPLAY0, cmd, val) < 0)
                        return -1;
@@ -109,6 +120,13 @@ API int device_set_display_brt(display_num_t lcdnum, int val)
                return -1;
        }
 
+       if (vconf_get_int(VCONFKEY_SETAPPL_BRIGHTNESS_AUTOMATIC_INT, &auto_brightness_state) == 0) {
+               if (auto_brightness_state == SETTING_BRIGHTNESS_AUTOMATIC_ON) {
+                       DBG("Auto brightness is paused");
+                       vconf_set_int(VCONFKEY_SETAPPL_BRIGHTNESS_AUTOMATIC_INT, SETTING_BRIGHTNESS_AUTOMATIC_PAUSE);
+               }
+       }
+
        if (!disp_flag)
                ret = display_register_postjob();
        if (ret == 0)
@@ -120,30 +138,47 @@ API int device_release_brt_ctrl(display_num_t lcdnum)
 {
        int setting_val=0;
        int bat_state=-1;
+       int auto_brightness_state = -1;
        int cmd;
 
-       if(vconf_get_int(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, &bat_state) != 0 || bat_state >= VCONFKEY_SYSMAN_BAT_WARNING_LOW ) {
-               if(vconf_get_int(VCONFKEY_SETAPPL_LCD_BRIGHTNESS, &setting_val) != 0){
-                       COMBINE_DISP_CMD(cmd, DISPLAY_PROP_MAX_BRIGHTNESS, lcdnum); 
+       if (vconf_get_int(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, &bat_state) != 0 || bat_state >= VCONFKEY_SYSMAN_BAT_WARNING_LOW ) {
+               if(vconf_get_int(VCONFKEY_SETAPPL_LCD_BRIGHTNESS, &setting_val) != 0) {
+                       COMBINE_DISP_CMD(cmd, DISPLAY_PROP_MAX_BRIGHTNESS, lcdnum);
                        if (device_get_property(DEVTYPE_DISPLAY0, cmd, &setting_val) < 0)
                                return -1;
-                       setting_val=setting_val*0.7;
+                       setting_val = setting_val * 0.7;
                }
 
                COMBINE_DISP_CMD(cmd, DISPLAY_PROP_BRIGHTNESS, lcdnum);
                if (device_set_property(DEVTYPE_DISPLAY0, cmd, setting_val) < 0)
                        return -1;
-       } else {
-               ERR("can not set brightness for low battery");
-               return -1;
+       }
+
+       if (vconf_get_int(VCONFKEY_SETAPPL_BRIGHTNESS_AUTOMATIC_INT, &auto_brightness_state) == 0) {
+               if (auto_brightness_state == SETTING_BRIGHTNESS_AUTOMATIC_PAUSE) {
+                       DBG("Auto brightness is enable");
+                       vconf_set_int(VCONFKEY_SETAPPL_BRIGHTNESS_AUTOMATIC_INT, SETTING_BRIGHTNESS_AUTOMATIC_ON);
+               }
        }
 
        UNSET_FLAG(disp_flag, BRT_BIT);
-       if (!disp_flag)     
+       if (!disp_flag)
                display_cancel_postjob();
        return 0;
 }
 
+API int device_get_min_brt(display_num_t lcdnum)
+{
+       int val = -1;
+       int cmd;
+
+       COMBINE_DISP_CMD(cmd, DISPLAY_PROP_MIN_BRIGHTNESS, lcdnum);
+       if (device_get_property(DEVTYPE_DISPLAY0, cmd, &val) < 0)
+               return -1;
+
+       return val;
+}
+
 API int device_get_max_brt(display_num_t lcdnum)
 {
        int val = -1;
@@ -205,7 +240,7 @@ API int device_get_display_count(void)
        int val = -1;
 
        if (device_get_property
-                       (DEVTYPE_DISPLAY0, DISPLAY_PROP_DISPLAY_COUNT, &val) < 0)
+           (DEVTYPE_DISPLAY0, DISPLAY_PROP_DISPLAY_COUNT, &val) < 0)
                return -1;
 
        return val;
@@ -222,9 +257,9 @@ API int device_get_image_enhance_mode(void)
 }
 
 API int device_set_image_enhance_mode(int val)
-{   
+{
        if (device_set_property(DEVTYPE_DISPLAY0, DISPLAY_PROP_IMAGE_ENHANCE_MODE, val) < 0)
-               return -1;  
+               return -1;
 
        return 0;
 }
@@ -283,6 +318,16 @@ API int device_set_image_enhance_outdoor(int val)
        return 0;
 }
 
+API int device_get_image_enhance_info(void)
+{
+       int val = -1;
+
+       if (device_get_property(DEVTYPE_DISPLAY0, DISPLAY_PROP_IMAGE_ENHANCE_INFO, &val) < 0)
+               return -1;
+
+       return val;
+}
+
 API int device_power_suspend(void)
 {
        if (device_set_property(DEVTYPE_POWER, POWER_PROP_STATE, 0) < 0)
@@ -294,18 +339,22 @@ API int device_power_suspend(void)
 API int device_get_led_brt(void)
 {
        int val;
+       int ret = -1;
 
-       if (device_get_property(DEVTYPE_LED, LED_PROP_BRIGHTNESS, &val) < 0)
-               return -1;
+       ret = device_get_property(DEVTYPE_LED, LED_PROP_BRIGHTNESS, &val);
+       if (ret < 0)
+               return ret;
 
        return val;
 }
 
 API int device_set_led_brt(int val)
 {
-       int ret=-1;
-       if (device_set_property(DEVTYPE_LED, LED_PROP_BRIGHTNESS, val) < 0) 
-               return -1;
+       int ret = -1;
+
+       ret = device_set_property(DEVTYPE_LED, LED_PROP_BRIGHTNESS, val);
+       if (ret < 0)
+               return ret;
 
        if (val == 0) {
                UNSET_FLAG(disp_flag, LED_BIT);
@@ -323,15 +372,16 @@ API int device_set_led_brt(int val)
 API int device_get_max_led(void)
 {
        int val = -1;
+       int ret = -1;
 
-       if (device_get_property(DEVTYPE_LED, LED_PROP_MAX_BRIGHTNESS, &val) < 0)
-               return -1;
+       ret = device_get_property(DEVTYPE_LED, LED_PROP_MAX_BRIGHTNESS, &val);
+       if (ret < 0)
+               return ret;
 
        return val;
 }
 
-
-int device_get_acl_control_status(display_num_t num)
+API int device_get_acl_control_status(display_num_t num)
 {
        int val = -1;
        int cmd;
@@ -343,7 +393,7 @@ int device_get_acl_control_status(display_num_t num)
        return val;
 }
 
-int device_set_acl_control_status(display_num_t num, int val)
+API int device_set_acl_control_status(display_num_t num, int val)
 {
        int cmd;