[gnome-power-manager] Add support for recall data provided by DeviceKit-power
- From: Richard Hughes <rhughes src gnome org>
- To: svn-commits-list gnome org
- Subject: [gnome-power-manager] Add support for recall data provided by DeviceKit-power
- Date: Fri, 3 Jul 2009 13:17:33 +0000 (UTC)
commit e9dff4e2289965e61a45d9ecb3350333b37b7af7
Author: Richard Hughes <richard hughsie com>
Date: Fri Jul 3 14:15:35 2009 +0100
Add support for recall data provided by DeviceKit-power
src/gpm-engine.c | 44 ++++++++++++++++++++++++++++++++++++++++----
1 files changed, 40 insertions(+), 4 deletions(-)
---
diff --git a/src/gpm-engine.c b/src/gpm-engine.c
index 4bc090b..d650525 100644
--- a/src/gpm-engine.c
+++ b/src/gpm-engine.c
@@ -44,10 +44,6 @@ static void gpm_engine_finalize (GObject *object);
#define GPM_ENGINE_WARN_ACCURACY 20
#define GPM_USE_COMPOSITE 0
-/* Left to convert:
- * 1. Recall data
- */
-
struct GpmEnginePrivate
{
GConfClient *conf;
@@ -695,6 +691,44 @@ gpm_engine_device_add (GpmEngine *engine, DkpDevice *device)
}
/**
+ * gpm_engine_check_recall:
+ **/
+static gboolean
+gpm_engine_check_recall (GpmEngine *engine, DkpDevice *device)
+{
+ DkpDeviceType type;
+ gboolean recall_notice = FALSE;
+ gchar *recall_vendor = NULL;
+ gchar *recall_url = NULL;
+
+ /* get device properties */
+ g_object_get (device,
+ "type", &type,
+#if DKP_CHECK_VERSION(0x009)
+ "recall-notice", &recall_notice,
+ "recall-vendor", &recall_vendor,
+ "recall-url", &recall_url,
+#endif
+ NULL);
+
+ /* not battery */
+ if (type != DKP_DEVICE_TYPE_BATTERY)
+ goto out;
+
+ /* no recall data */
+ if (!recall_notice)
+ goto out;
+
+ /* emit signal for manager */
+ egg_debug ("** EMIT: perhaps-recall");
+ g_signal_emit (engine, signals [PERHAPS_RECALL], 0, device, recall_vendor, recall_url);
+out:
+ g_free (recall_vendor);
+ g_free (recall_url);
+ return recall_notice;
+}
+
+/**
* gpm_engine_coldplug_idle_cb:
**/
static gboolean
@@ -747,6 +781,7 @@ gpm_engine_coldplug_idle_cb (GpmEngine *engine)
for (i=0;i<array->len;i++) {
device = g_ptr_array_index (engine->priv->array, i);
gpm_engine_device_add (engine, device);
+ gpm_engine_check_recall (engine, device);
}
/* never repeat */
@@ -761,6 +796,7 @@ gpm_engine_device_added_cb (DkpClient *client, DkpDevice *device, GpmEngine *eng
{
/* add to list */
g_ptr_array_add (engine->priv->array, g_object_ref (device));
+ gpm_engine_check_recall (engine, device);
gpm_engine_recalculate_state (engine);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]