summaryrefslogtreecommitdiff
path: root/src/up-daemon.c
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2013-10-15 17:46:29 +0200
committerBastien Nocera <hadess@hadess.net>2013-10-15 17:50:18 +0200
commit5e5e7379482d5b6f09426dce6e6afd15606bea4b (patch)
treedcd39aa983687269784f6b1240d1a0754c5bfcea /src/up-daemon.c
parent2cfd98c01d937922e24c6e0eaa80bc815efe4828 (diff)
downloadupower-5e5e7379482d5b6f09426dce6e6afd15606bea4b.tar.gz
daemon: Add support for more types for PropertiesChanged
Add code to transform strings, doubles, uint64s, and int64s.
Diffstat (limited to 'src/up-daemon.c')
-rw-r--r--src/up-daemon.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/up-daemon.c b/src/up-daemon.c
index 721cd4f..401f79e 100644
--- a/src/up-daemon.c
+++ b/src/up-daemon.c
@@ -519,6 +519,22 @@ changed_props_add_to_msg (gpointer key,
gboolean val = g_variant_get_boolean (value);
dbus_message_iter_open_container (&dict_iter, DBUS_TYPE_VARIANT, "b", &v_iter);
dbus_message_iter_append_basic (&v_iter, DBUS_TYPE_BOOLEAN, &val);
+ } else if (g_variant_is_of_type (value, G_VARIANT_TYPE_STRING)) {
+ const gchar *val = g_variant_get_string (value, NULL);
+ dbus_message_iter_open_container (&dict_iter, DBUS_TYPE_VARIANT, "s", &v_iter);
+ dbus_message_iter_append_basic (&v_iter, DBUS_TYPE_STRING, &val);
+ } else if (g_variant_is_of_type (value, G_VARIANT_TYPE_DOUBLE)) {
+ gdouble val = g_variant_get_double (value);
+ dbus_message_iter_open_container (&dict_iter, DBUS_TYPE_VARIANT, "d", &v_iter);
+ dbus_message_iter_append_basic (&v_iter, DBUS_TYPE_DOUBLE, &val);
+ } else if (g_variant_is_of_type (value, G_VARIANT_TYPE_UINT64)) {
+ guint64 val = g_variant_get_uint64 (value);
+ dbus_message_iter_open_container (&dict_iter, DBUS_TYPE_VARIANT, "t", &v_iter);
+ dbus_message_iter_append_basic (&v_iter, DBUS_TYPE_UINT64, &val);
+ } else if (g_variant_is_of_type (value, G_VARIANT_TYPE_INT64)) {
+ gint64 val = g_variant_get_int64 (value);
+ dbus_message_iter_open_container (&dict_iter, DBUS_TYPE_VARIANT, "x", &v_iter);
+ dbus_message_iter_append_basic (&v_iter, DBUS_TYPE_INT64, &val);
} else {
g_assert_not_reached ();
}