[gnome-settings-daemon/wip/aggregate-menu: 2/8] power: Ensure that we always have a composite device
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-settings-daemon/wip/aggregate-menu: 2/8] power: Ensure that we always have a composite device
- Date: Wed, 12 Jun 2013 20:20:42 +0000 (UTC)
commit 1541603070a449b318bf8248a5455f7e68763221
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Mon Jun 10 13:26:06 2013 -0400
power: Ensure that we always have a composite device
In the scenario when we only have one battery, we short-circuit and
use that instead of creating a composite device. We want to always
expose the composite device as an API, so never do that.
https://bugzilla.gnome.org/show_bug.cgi?id=700913
plugins/power/gsd-power-manager.c | 35 ++++++++++-------------------------
1 files changed, 10 insertions(+), 25 deletions(-)
---
diff --git a/plugins/power/gsd-power-manager.c b/plugins/power/gsd-power-manager.c
index ea6a307..2f37273 100644
--- a/plugins/power/gsd-power-manager.c
+++ b/plugins/power/gsd-power-manager.c
@@ -224,7 +224,7 @@ static void gsd_power_manager_class_init (GsdPowerManagerClass *klass);
static void gsd_power_manager_init (GsdPowerManager *power_manager);
static UpDevice *engine_get_composite_device (GsdPowerManager *manager, UpDevice *original_device);
-static UpDevice *engine_update_composite_device (GsdPowerManager *manager, UpDevice *original_device);
+static void engine_update_composite_device (GsdPowerManager *manager, UpDevice *original_device);
static GIcon *engine_get_icon (GsdPowerManager *manager);
static gchar *engine_get_summary (GsdPowerManager *manager);
static gdouble engine_get_percentage (GsdPowerManager *manager);
@@ -737,7 +737,7 @@ engine_get_composite_device (GsdPowerManager *manager,
return device;
}
-static UpDevice *
+static void
engine_update_composite_device (GsdPowerManager *manager,
UpDevice *original_device)
{
@@ -751,7 +751,6 @@ engine_update_composite_device (GsdPowerManager *manager,
gdouble energy_rate_total = 0.0;
gint64 time_to_empty = 0;
gint64 time_to_full = 0;
- guint battery_devices = 0;
gboolean is_charging = FALSE;
gboolean is_discharging = FALSE;
gboolean is_fully_charged = TRUE;
@@ -792,14 +791,6 @@ engine_update_composite_device (GsdPowerManager *manager,
energy_total += energy;
energy_full_total += energy_full;
energy_rate_total += energy_rate;
- battery_devices++;
- }
-
- /* just use the original device if only one primary battery */
- if (battery_devices == 1) {
- g_debug ("using original device as only one primary battery");
- device = original_device;
- goto out;
}
/* use percentage weighted for each battery capacity */
@@ -824,11 +815,8 @@ engine_update_composite_device (GsdPowerManager *manager,
time_to_full = 3600 * ((energy_full_total - energy_total) / energy_rate_total);
}
- /* okay, we can use the composite device */
- device = manager->priv->device_composite;
-
g_debug ("printing composite device");
- g_object_set (device,
+ g_object_set (manager->priv->device_composite,
"energy", energy,
"energy-full", energy_full,
"energy-rate", energy_rate,
@@ -841,9 +829,6 @@ engine_update_composite_device (GsdPowerManager *manager,
/* force update of icon */
if (engine_recalculate_state_icon (manager))
engine_emit_changed (manager, TRUE, FALSE);
-out:
- /* return composite device or original device */
- return device;
}
typedef struct {
@@ -989,7 +974,6 @@ engine_device_add (GsdPowerManager *manager, UpDevice *device)
GsdPowerManagerWarning warning;
UpDeviceState state;
UpDeviceKind kind;
- UpDevice *composite;
/* assign warning */
warning = engine_get_warning (manager, device);
@@ -1013,15 +997,15 @@ engine_device_add (GsdPowerManager *manager, UpDevice *device)
if (kind == UP_DEVICE_KIND_BATTERY) {
g_debug ("updating because we added a device");
- composite = engine_update_composite_device (manager, device);
+ engine_update_composite_device (manager, device);
/* get the same values for the composite device */
- warning = engine_get_warning (manager, composite);
- g_object_set_data (G_OBJECT(composite),
+ warning = engine_get_warning (manager, manager->priv->device_composite);
+ g_object_set_data (G_OBJECT(manager->priv->device_composite),
"engine-warning-old",
GUINT_TO_POINTER(warning));
- g_object_get (composite, "state", &state, NULL);
- g_object_set_data (G_OBJECT(composite),
+ g_object_get (manager->priv->device_composite, "state", &state, NULL);
+ g_object_set_data (G_OBJECT(manager->priv->device_composite),
"engine-state-old",
GUINT_TO_POINTER(state));
}
@@ -1769,7 +1753,8 @@ engine_device_changed_cb (UpClient *client, UpDevice *device, GsdPowerManager *m
/* if battery then use composite device to cope with multiple batteries */
if (kind == UP_DEVICE_KIND_BATTERY) {
g_debug ("updating because %s changed", up_device_get_object_path (device));
- device = engine_update_composite_device (manager, device);
+ engine_update_composite_device (manager, device);
+ device = manager->priv->device_composite;
}
/* get device properties (may be composite) */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]