[gnome-power-manager/gnome-2-32] Backport support for new devices recognised in UPower
- From: Richard Hughes <rhughes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-power-manager/gnome-2-32] Backport support for new devices recognised in UPower
- Date: Fri, 6 Aug 2010 15:03:07 +0000 (UTC)
commit 746273c955c5a131c7d6e23dcc3b3edf479e471e
Author: Richard Hughes <richard hughsie com>
Date: Fri Aug 6 15:54:19 2010 +0100
Backport support for new devices recognised in UPower
src/gpm-engine.c | 23 +++++++++++++++++---
src/gpm-manager.c | 55 +++++++++++++++++++++++++++++++++++++++++++++++++-
src/gpm-phone.c | 2 -
src/gpm-statistics.c | 44 +++++++--------------------------------
src/gpm-tray-icon.c | 7 +++++-
src/gpm-upower.c | 25 ++++++++++++++++++++++
6 files changed, 112 insertions(+), 44 deletions(-)
---
diff --git a/src/gpm-engine.c b/src/gpm-engine.c
index 9ba8d44..c6cc1e2 100644
--- a/src/gpm-engine.c
+++ b/src/gpm-engine.c
@@ -196,6 +196,11 @@ gpm_engine_get_warning (GpmEngine *engine, UpDevice *device)
warning_type = gpm_engine_get_warning_csr (engine, device);
} else if (kind == UP_DEVICE_KIND_UPS ||
+#if UP_CHECK_VERSION(0,9,5)
+ kind == UP_DEVICE_KIND_MEDIA_PLAYER ||
+ kind == UP_DEVICE_KIND_TABLET ||
+ kind == UP_DEVICE_KIND_COMPUTER ||
+#endif
kind == UP_DEVICE_KIND_PDA) {
warning_type = gpm_engine_get_warning_percentage (engine, device);
@@ -235,8 +240,10 @@ gpm_engine_get_summary (GpmEngine *engine)
guint i;
GPtrArray *array;
UpDevice *device;
+ UpDeviceState state;
GString *tooltip = NULL;
gchar *part;
+ gboolean is_present;
g_return_val_if_fail (GPM_IS_ENGINE (engine), NULL);
@@ -247,6 +254,14 @@ gpm_engine_get_summary (GpmEngine *engine)
array = engine->priv->array;
for (i=0;i<array->len;i++) {
device = g_ptr_array_index (engine->priv->array, i);
+ g_object_get (device,
+ "is-present", &is_present,
+ "state", &state,
+ NULL);
+ if (!is_present)
+ continue;
+ if (state == UP_DEVICE_STATE_EMPTY)
+ continue;
part = gpm_upower_get_device_summary (device);
if (part != NULL)
g_string_append_printf (tooltip, "%s\n", part);
@@ -606,10 +621,10 @@ static UpDevice *
gpm_engine_update_composite_device (GpmEngine *engine, UpDevice *original_device)
{
guint i;
- gdouble percentage;
- gdouble energy;
- gdouble energy_full;
- gdouble energy_rate;
+ gdouble percentage = 0.0;
+ gdouble energy = 0.0;
+ gdouble energy_full = 0.0;
+ gdouble energy_rate = 0.0;
gdouble energy_total = 0.0;
gdouble energy_full_total = 0.0;
gdouble energy_rate_total = 0.0;
diff --git a/src/gpm-manager.c b/src/gpm-manager.c
index 4c4c547..dfb28dc 100644
--- a/src/gpm-manager.c
+++ b/src/gpm-manager.c
@@ -1524,7 +1524,30 @@ gpm_manager_engine_charge_low_cb (GpmEngine *engine, UpDevice *device, GpmManage
title = _("Cell phone battery low");
/* TRANSLATORS: tell user more details */
- message = g_strdup_printf (_("The cell phone attached to this computer is low in power (%.1f%%)"), percentage);
+ message = g_strdup_printf (_("Cell phone is low in power (%.0f%%)"), percentage);
+
+#if UP_CHECK_VERSION(0,9,5)
+ } else if (kind == UP_DEVICE_KIND_MEDIA_PLAYER) {
+ /* TRANSLATORS: media player, e.g. mp3 is getting a little low */
+ title = _("Media player battery low");
+
+ /* TRANSLATORS: tell user more details */
+ message = g_strdup_printf (_("Media player is low in power (%.0f%%)"), percentage);
+
+ } else if (kind == UP_DEVICE_KIND_TABLET) {
+ /* TRANSLATORS: graphics tablet, e.g. wacom is getting a little low */
+ title = _("Tablet battery low");
+
+ /* TRANSLATORS: tell user more details */
+ message = g_strdup_printf (_("Tablet is low in power (%.0f%%)"), percentage);
+
+ } else if (kind == UP_DEVICE_KIND_COMPUTER) {
+ /* TRANSLATORS: computer, e.g. ipad is getting a little low */
+ title = _("Attached computer battery low");
+
+ /* TRANSLATORS: tell user more details */
+ message = g_strdup_printf (_("Attached computer is low in power (%.0f%%)"), percentage);
+#endif
}
/* get correct icon */
@@ -1649,6 +1672,36 @@ gpm_manager_engine_charge_critical_cb (GpmEngine *engine, UpDevice *device, GpmM
message = g_strdup_printf (_("Cell phone is very low in power (%.0f%%). "
"This device will soon stop functioning if not charged."),
percentage);
+
+#if UP_CHECK_VERSION(0,9,5)
+ } else if (kind == UP_DEVICE_KIND_MEDIA_PLAYER) {
+
+ /* TRANSLATORS: the cell battery is very low */
+ title = _("Cell phone battery low");
+
+ /* TRANSLATORS: the device is just going to stop working */
+ message = g_strdup_printf (_("Media player is very low in power (%.0f%%). "
+ "This device will soon stop functioning if not charged."),
+ percentage);
+ } else if (kind == UP_DEVICE_KIND_TABLET) {
+
+ /* TRANSLATORS: the cell battery is very low */
+ title = _("Tablet battery low");
+
+ /* TRANSLATORS: the device is just going to stop working */
+ message = g_strdup_printf (_("Tablet is very low in power (%.0f%%). "
+ "This device will soon stop functioning if not charged."),
+ percentage);
+ } else if (kind == UP_DEVICE_KIND_COMPUTER) {
+
+ /* TRANSLATORS: the cell battery is very low */
+ title = _("Attached computer battery low");
+
+ /* TRANSLATORS: the device is just going to stop working */
+ message = g_strdup_printf (_("Attached computer is very low in power (%.0f%%). "
+ "The device will soon shutdown if not charged."),
+ percentage);
+#endif
}
/* get correct icon */
diff --git a/src/gpm-phone.c b/src/gpm-phone.c
index bbe8583..bdd9a8b 100644
--- a/src/gpm-phone.c
+++ b/src/gpm-phone.c
@@ -143,7 +143,6 @@ gpm_phone_get_num_batteries (GpmPhone *phone)
static void
gpm_phone_battery_state_changed (DBusGProxy *proxy, guint idx, guint percentage, gboolean on_ac, GpmPhone *phone)
{
- g_return_if_fail (phone != NULL);
g_return_if_fail (GPM_IS_PHONE (phone));
egg_debug ("got BatteryStateChanged %i = %i (%i)", idx, percentage, on_ac);
@@ -159,7 +158,6 @@ gpm_phone_battery_state_changed (DBusGProxy *proxy, guint idx, guint percentage,
static void
gpm_phone_num_batteries_changed (DBusGProxy *proxy, guint number, GpmPhone *phone)
{
- g_return_if_fail (phone != NULL);
g_return_if_fail (GPM_IS_PHONE (phone));
egg_debug ("got NumberBatteriesChanged %i", number);
diff --git a/src/gpm-statistics.c b/src/gpm-statistics.c
index 6da3723..81d9a95 100644
--- a/src/gpm-statistics.c
+++ b/src/gpm-statistics.c
@@ -1532,7 +1532,7 @@ main (int argc, char *argv[])
GPtrArray *devices;
UpDevice *device;
UpDeviceKind kind;
- guint i;
+ guint i, j;
gint page;
gboolean checked;
gchar *last_device = NULL;
@@ -1764,41 +1764,13 @@ main (int argc, char *argv[])
devices = up_client_get_devices (client);
/* add devices in visually pleasing order */
- for (i=0; i < devices->len; i++) {
- device = g_ptr_array_index (devices, i);
- g_object_get (device, "kind", &kind, NULL);
- if (kind == UP_DEVICE_KIND_LINE_POWER)
- gpm_stats_add_device (device);
- }
- for (i=0; i < devices->len; i++) {
- device = g_ptr_array_index (devices, i);
- g_object_get (device, "kind", &kind, NULL);
- if (kind == UP_DEVICE_KIND_BATTERY)
- gpm_stats_add_device (device);
- }
- for (i=0; i < devices->len; i++) {
- device = g_ptr_array_index (devices, i);
- g_object_get (device, "kind", &kind, NULL);
- if (kind == UP_DEVICE_KIND_UPS)
- gpm_stats_add_device (device);
- }
- for (i=0; i < devices->len; i++) {
- device = g_ptr_array_index (devices, i);
- g_object_get (device, "kind", &kind, NULL);
- if (kind == UP_DEVICE_KIND_MONITOR)
- gpm_stats_add_device (device);
- }
- for (i=0; i < devices->len; i++) {
- device = g_ptr_array_index (devices, i);
- g_object_get (device, "kind", &kind, NULL);
- if (kind == UP_DEVICE_KIND_MOUSE)
- gpm_stats_add_device (device);
- }
- for (i=0; i < devices->len; i++) {
- device = g_ptr_array_index (devices, i);
- g_object_get (device, "kind", &kind, NULL);
- if (kind == UP_DEVICE_KIND_KEYBOARD)
- gpm_stats_add_device (device);
+ for (j=0; j<UP_DEVICE_KIND_LAST; j++) {
+ for (i=0; i < devices->len; i++) {
+ device = g_ptr_array_index (devices, i);
+ g_object_get (device, "kind", &kind, NULL);
+ if (kind == j)
+ gpm_stats_add_device (device);
+ }
}
/* set current device */
diff --git a/src/gpm-tray-icon.c b/src/gpm-tray-icon.c
index 4b9623d..b537a15 100644
--- a/src/gpm-tray-icon.c
+++ b/src/gpm-tray-icon.c
@@ -86,7 +86,7 @@ gpm_tray_icon_show (GpmTrayIcon *icon, gboolean enabled)
/**
* gpm_tray_icon_set_tooltip:
- * @tooltip: The tooltip text, e.g. "Batteries fully charged"
+ * @tooltip: The tooltip text, e.g. "Batteries charged"
**/
gboolean
gpm_tray_icon_set_tooltip (GpmTrayIcon *icon, const gchar *tooltip)
@@ -276,6 +276,11 @@ gpm_tray_icon_create_menu (GpmTrayIcon *icon, guint32 timestamp)
dev_cnt += gpm_tray_icon_add_device (icon, menu, array, UP_DEVICE_KIND_KEYBOARD);
dev_cnt += gpm_tray_icon_add_device (icon, menu, array, UP_DEVICE_KIND_PDA);
dev_cnt += gpm_tray_icon_add_device (icon, menu, array, UP_DEVICE_KIND_PHONE);
+#if UP_CHECK_VERSION(0,9,5)
+ dev_cnt += gpm_tray_icon_add_device (icon, menu, array, UP_DEVICE_KIND_MEDIA_PLAYER);
+ dev_cnt += gpm_tray_icon_add_device (icon, menu, array, UP_DEVICE_KIND_TABLET);
+ dev_cnt += gpm_tray_icon_add_device (icon, menu, array, UP_DEVICE_KIND_COMPUTER);
+#endif
g_ptr_array_unref (array);
/* skip for things like live-cd's and GDM */
diff --git a/src/gpm-upower.c b/src/gpm-upower.c
index 4fe47ea..f659c51 100644
--- a/src/gpm-upower.c
+++ b/src/gpm-upower.c
@@ -505,6 +505,20 @@ gpm_device_kind_to_localised_text (UpDeviceKind kind, guint number)
/* TRANSLATORS: cell phone (mobile...) */
text = ngettext ("Cell phone", "Cell phones", number);
break;
+#if UP_CHECK_VERSION(0,9,5)
+ case UP_DEVICE_KIND_MEDIA_PLAYER:
+ /* TRANSLATORS: media player, mp3 etc */
+ text = ngettext ("Media player", "Media players", number);
+ break;
+ case UP_DEVICE_KIND_TABLET:
+ /* TRANSLATORS: tablet device */
+ text = ngettext ("Tablet", "Tablets", number);
+ break;
+ case UP_DEVICE_KIND_COMPUTER:
+ /* TRANSLATORS: tablet device */
+ text = ngettext ("Computer", "Computers", number);
+ break;
+#endif
default:
egg_warning ("enum unrecognised: %i", kind);
text = up_device_kind_to_string (kind);
@@ -544,6 +558,17 @@ gpm_device_kind_to_icon (UpDeviceKind kind)
case UP_DEVICE_KIND_PHONE:
icon = "phone";
break;
+#if UP_CHECK_VERSION(0,9,5)
+ case UP_DEVICE_KIND_MEDIA_PLAYER:
+ icon = "multimedia-player";
+ break;
+ case UP_DEVICE_KIND_TABLET:
+ icon = "input-tablet";
+ break;
+ case UP_DEVICE_KIND_COMPUTER:
+ icon = "computer-apple-ipad";
+ break;
+#endif
default:
egg_warning ("enum unrecognised: %i", kind);
icon = "gtk-help";
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]