[telepathy-mission-control/master] McdAccount: fd.o #21377: add support for serializing bytes, 64-bit integers, doubles and object paths
Simon McVittie
simon.mcvittie at collabora.co.uk
Wed Jun 10 03:40:33 PDT 2009
---
src/mcd-account.c | 39 +++++++++++++++++++++++++++++++++++++--
1 files changed, 37 insertions(+), 2 deletions(-)
diff --git a/src/mcd-account.c b/src/mcd-account.c
index 85bc75c..fc99c85 100644
--- a/src/mcd-account.c
+++ b/src/mcd-account.c
@@ -307,16 +307,51 @@ set_parameter (McdAccount *account, const gchar *name, const GValue *value)
g_key_file_set_boolean (priv->keyfile, priv->unique_name, key,
g_value_get_boolean (value));
break;
+
+ case G_TYPE_UCHAR:
+ g_key_file_set_integer (priv->keyfile, priv->unique_name, key,
+ g_value_get_uchar (value));
+ break;
+
+ case G_TYPE_UINT64:
+ g_snprintf (buf, sizeof (buf), "%" G_GUINT64_FORMAT,
+ g_value_get_uint64 (value));
+ g_key_file_set_string (priv->keyfile, priv->unique_name, key,
+ buf);
+ break;
+
+ case G_TYPE_INT64:
+ g_snprintf (buf, sizeof (buf), "%" G_GINT64_FORMAT,
+ g_value_get_int64 (value));
+ g_key_file_set_string (priv->keyfile, priv->unique_name, key,
+ buf);
+ break;
+
+ case G_TYPE_DOUBLE:
+ g_key_file_set_double (priv->keyfile, priv->unique_name, key,
+ g_value_get_double (value));
+ break;
+
default:
if (G_VALUE_HOLDS (value, G_TYPE_STRV))
{
gchar **strings = g_value_get_boxed (value);
+
g_key_file_set_string_list (priv->keyfile, priv->unique_name, key,
(const gchar **)strings,
g_strv_length (strings));
- break;
}
- g_warning ("Unexpected param type %s", G_VALUE_TYPE_NAME (value));
+ else if (G_VALUE_HOLDS (value, DBUS_TYPE_G_OBJECT_PATH))
+ {
+ const gchar *path = g_value_get_boxed (value);
+
+ g_key_file_set_string (priv->keyfile, priv->unique_name, key,
+ path);
+ }
+ else
+ {
+ g_warning ("Unexpected param type %s", G_VALUE_TYPE_NAME (value));
+ }
}
}
--
1.5.6.5
More information about the telepathy-commits
mailing list