* 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");
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;
}
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;
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;
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)
{
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;
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;
}
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;
}
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)
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);
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;
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;