int device_battery_get_percent(int *percent)
{
+ struct device_battery_info info;
int ret;
if (!percent)
if (!ret)
return DEVICE_ERROR_NOT_SUPPORTED;
- ret = dbus_handle_method_sync_var(DEVICED_BUS_NAME,
- DEVICED_PATH_BATTERY, DEVICED_INTERFACE_BATTERY,
- METHOD_GET_PERCENT, NULL);
- /* regard not suppoted as disconnected */
- if (ret == -ENOTSUP)
- ret = 0;
- else if (ret < 0)
- return errno_to_device_error(ret); //LCOV_EXCL_LINE System Error
+ ret = device_battery_get_info_direct(&info);
+ if (ret < 0)
+ return ret; //LCOV_EXCL_LINE System Error
- *percent = ret;
+ *percent = info.capacity;
return DEVICE_ERROR_NONE;
}
return DEVICE_ERROR_NONE;
}
-int device_battery_get_info(struct device_battery_info *info)
-{
- int ret;
- GVariant *output = NULL;
- char *status = NULL;
- char *health = NULL;
- char *power_source = NULL;
- int online;
- int present;
- int capacity;
- int current_now;
- int current_average;
- int voltage_now;
- int voltage_average;
- int temperature;
-
- if (!info)
- return DEVICE_ERROR_INVALID_PARAMETER;
-
- ret = is_battery_supported();
- if (!ret)
- return DEVICE_ERROR_NOT_SUPPORTED;
-
- output = dbus_handle_method_sync_with_reply_var(DEVICED_BUS_NAME,
- DEVICED_PATH_BATTERY, DEVICED_INTERFACE_BATTERY,
- METHOD_GET_INFO, NULL);
-
- if (!output)
- return DEVICE_ERROR_OPERATION_FAILED; //LCOV_EXCL_LINE System Error
-
- g_variant_get(output, "(isssiiiiiiii)", &ret,
- &status, &health, &power_source,
- &online, &present, &capacity,
- ¤t_now, ¤t_average, &voltage_now,
- &voltage_average, &temperature);
-
- if (ret < 0) {
-//LCOV_EXCL_START System Error
- ret = errno_to_device_error(ret);
- goto out;
-//LCOV_EXCL_STOP
- }
-
- snprintf(info->status, sizeof(info->status), "%s", status);
- snprintf(info->health, sizeof(info->health), "%s", health);
- snprintf(info->power_source, sizeof(info->power_source), "%s", power_source);
- info->online = online;
- info->present = present;
- info->capacity = capacity;
- info->current_now = current_now;
- info->current_average = current_average;
- info->voltage_now = voltage_now;
- info->voltage_average = voltage_average;
- info->temperature = temperature;
-
- ret = DEVICE_ERROR_NONE;
-
-out:
- g_free(status);
- g_free(health);
- g_free(power_source);
- g_variant_unref(output);
-
- return ret;
-}
-
static void battery_get_info(struct battery_info *info, void *data)
{
struct device_battery_info *bat = data;
if (!ret)
return DEVICE_ERROR_NOT_SUPPORTED;
- ret = device_battery_get_info(&info);
+ ret = device_battery_get_info_direct(&info);
if (ret != DEVICE_ERROR_NONE) {
//LCOV_EXCL_START System Error
_E("Failed to get battery info (%d)", ret);
if (!ret)
return DEVICE_ERROR_NOT_SUPPORTED;
- ret = device_battery_get_info(&info);
+ ret = device_battery_get_info_direct(&info);
if (ret != DEVICE_ERROR_NONE) {
//LCOV_EXCL_START System Error
_E("Failed to get battery info (%d)", ret);
if (!ret)
return DEVICE_ERROR_NOT_SUPPORTED;
- ret = device_battery_get_info(&info);
+ ret = device_battery_get_info_direct(&info);
if (ret != DEVICE_ERROR_NONE) {
//LCOV_EXCL_START System Error
_E("Failed to get battery info (%d)", ret);
if (!ret)
return DEVICE_ERROR_NOT_SUPPORTED;
- ret = device_battery_get_info(&info);
+ ret = device_battery_get_info_direct(&info);
if (ret != DEVICE_ERROR_NONE) {
//LCOV_EXCL_START System Error
_E("Failed to get battery info (%d)", ret);