[gnome-settings-daemon] power: Update time_to_empty/time_to_full from the real batteries
- From: Bastien Nocera <hadess src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-settings-daemon] power: Update time_to_empty/time_to_full from the real batteries
- Date: Mon, 17 Jun 2013 16:47:17 +0000 (UTC)
commit 6b463f75c248e224452c6a3750a5ce1b278d4a66
Author: Bastien Nocera <hadess hadess net>
Date: Fri Jun 14 18:46:00 2013 +0200
power: Update time_to_empty/time_to_full from the real batteries
So that we use upower's knowledge of that value instead of making
up our own. This fixes the test_action_critical_battery test failing.
https://bugzilla.gnome.org/show_bug.cgi?id=700913
plugins/power/gsd-power-manager.c | 22 ++++++++++++++--------
1 files changed, 14 insertions(+), 8 deletions(-)
---
diff --git a/plugins/power/gsd-power-manager.c b/plugins/power/gsd-power-manager.c
index cd142f4..2c8703c 100644
--- a/plugins/power/gsd-power-manager.c
+++ b/plugins/power/gsd-power-manager.c
@@ -694,8 +694,8 @@ engine_update_composite_device (GsdPowerManager *manager)
gdouble energy_total = 0.0;
gdouble energy_full_total = 0.0;
gdouble energy_rate_total = 0.0;
- gint64 time_to_empty = 0;
- gint64 time_to_full = 0;
+ gint64 time_to_empty_total = 0;
+ gint64 time_to_full_total = 0;
guint battery_devices = 0;
gboolean is_charging = FALSE;
gboolean is_discharging = FALSE;
@@ -711,6 +711,8 @@ engine_update_composite_device (GsdPowerManager *manager)
gdouble energy = 0.0;
gdouble energy_full = 0.0;
gdouble energy_rate = 0.0;
+ gint64 time_to_empty = 0;
+ gint64 time_to_full = 0;
device = g_ptr_array_index (array, i);
g_object_get (device,
@@ -719,6 +721,8 @@ engine_update_composite_device (GsdPowerManager *manager)
"energy", &energy,
"energy-full", &energy_full,
"energy-rate", &energy_rate,
+ "time-to-empty", &time_to_empty,
+ "time-to-full", &time_to_full,
NULL);
if (kind != UP_DEVICE_KIND_BATTERY)
continue;
@@ -735,6 +739,8 @@ engine_update_composite_device (GsdPowerManager *manager)
energy_total += energy;
energy_full_total += energy_full;
energy_rate_total += energy_rate;
+ time_to_empty_total += time_to_empty;
+ time_to_full_total += time_to_full;
battery_devices++;
}
@@ -757,10 +763,10 @@ engine_update_composite_device (GsdPowerManager *manager)
/* calculate a quick and dirty time remaining value */
if (energy_rate_total > 0) {
- if (state == UP_DEVICE_STATE_DISCHARGING)
- time_to_empty = 3600 * (energy_total / energy_rate_total);
- else if (state == UP_DEVICE_STATE_CHARGING)
- time_to_full = 3600 * ((energy_full_total - energy_total) / energy_rate_total);
+ if (state == UP_DEVICE_STATE_DISCHARGING && time_to_empty_total == 0)
+ time_to_empty_total = 3600 * (energy_total / energy_rate_total);
+ else if (state == UP_DEVICE_STATE_CHARGING && time_to_full_total == 0)
+ time_to_full_total = 3600 * ((energy_full_total - energy_total) / energy_rate_total);
}
out:
@@ -769,8 +775,8 @@ engine_update_composite_device (GsdPowerManager *manager)
"energy", energy_total,
"energy-full", energy_full_total,
"energy-rate", energy_rate_total,
- "time-to-empty", time_to_empty,
- "time-to-full", time_to_full,
+ "time-to-empty", time_to_empty_total,
+ "time-to-full", time_to_full_total,
"percentage", percentage,
"state", state,
"is-present", (battery_devices > 0),
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]