diff options
author | Denis Kenzior <denkenz@gmail.com> | 2013-02-26 13:35:38 -0600 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2013-02-26 14:14:46 -0600 |
commit | 1c759123808fe1c59a69ce0e3934c1b9a2ff9b74 (patch) | |
tree | 46b01a2fb09f35f6ec9a7e9c1431d8267835cdc9 /src/handsfree-audio.c | |
parent | 44281e53a9be904865a0bc451a283652123c3167 (diff) | |
download | ofono-1c759123808fe1c59a69ce0e3934c1b9a2ff9b74.tar.bz2 |
handsfree-audio: Implement card GetProperties
Diffstat (limited to 'src/handsfree-audio.c')
-rw-r--r-- | src/handsfree-audio.c | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/src/handsfree-audio.c b/src/handsfree-audio.c index 289d7d9d..4f083cac 100644 --- a/src/handsfree-audio.c +++ b/src/handsfree-audio.c @@ -61,10 +61,38 @@ static struct agent *agent = NULL; static int ref_count = 0; static GSList *card_list = 0; +static void card_append_properties(struct ofono_handsfree_card *card, + DBusMessageIter *dict) +{ + ofono_dbus_dict_append(dict, "RemoteAddress", + DBUS_TYPE_STRING, &card->remote); + + ofono_dbus_dict_append(dict, "LocalAddress", + DBUS_TYPE_STRING, &card->local); +} + static DBusMessage *card_get_properties(DBusConnection *conn, DBusMessage *msg, void *data) { - return __ofono_error_not_implemented(msg); + struct ofono_handsfree_card *card = data; + DBusMessage *reply; + DBusMessageIter iter; + DBusMessageIter dict; + + reply = dbus_message_new_method_return(msg); + if (reply == NULL) + return NULL; + + dbus_message_iter_init_append(reply, &iter); + dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, + OFONO_PROPERTIES_ARRAY_SIGNATURE, + &dict); + + card_append_properties(card, &dict); + + dbus_message_iter_close_container(&iter, &dict); + + return reply; } static DBusMessage *card_connect(DBusConnection *conn, |