diff options
author | Bastien Nocera <hadess@hadess.net> | 2013-10-15 17:46:29 +0200 |
---|---|---|
committer | Bastien Nocera <hadess@hadess.net> | 2013-10-15 17:50:18 +0200 |
commit | 5e5e7379482d5b6f09426dce6e6afd15606bea4b (patch) | |
tree | dcd39aa983687269784f6b1240d1a0754c5bfcea /src/up-daemon.c | |
parent | 2cfd98c01d937922e24c6e0eaa80bc815efe4828 (diff) | |
download | upower-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.c | 16 |
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 (); } |