# HG changeset patch # User William Pitcock # Date 1194373404 21600 # Node ID 44ab3d6057dabeba1b02b8d572c62d86e49b772a # Parent 2c768d923bcfcf421beaf8c50d6bcbb7177f994c implement audacious_get_tuple_field_data(). diff -r 2c768d923bcf -r 44ab3d6057da src/libaudclient/audctrl.c --- a/src/libaudclient/audctrl.c Tue Nov 06 11:52:01 2007 -0600 +++ b/src/libaudclient/audctrl.c Tue Nov 06 12:23:24 2007 -0600 @@ -964,8 +964,34 @@ **/ gchar *audacious_get_tuple_field_data(DBusGProxy *proxy, gchar *field, guint pos) { -//XXX - g_clear_error(&error); - return NULL; + GValue value; + gchar *s = NULL; + + org_atheme_audacious_song_tuple(proxy, pos, field, &value, &error); + + g_clear_error(&error); + + if (G_IS_VALUE(&value) == FALSE) + return NULL; + + if (G_VALUE_HOLDS_STRING(&value)) + s = g_strescape(g_value_get_string(&value), NULL); + else if (g_value_type_transformable(G_VALUE_TYPE(&value), G_TYPE_STRING)) + { + GValue tmp_value = {}; + + g_value_init(&tmp_value, G_TYPE_STRING); + g_value_transform(&value, &tmp_value); + + s = g_strescape(g_value_get_string(&tmp_value), NULL); + + g_value_unset(&tmp_value); + } + else + s = g_strdup(""); + + g_value_unset(&value); + + return s; }