Adds a common function to append Handsfree Audio Card properties used
when replying GetProperties and emitting CardAdded signal.
---
 src/handsfree-audio.c | 44 ++++++++++++++++++++------------------------
 1 file changed, 20 insertions(+), 24 deletions(-)

diff --git a/src/handsfree-audio.c b/src/handsfree-audio.c
index 64d1ed0..2a4b3d5 100644
--- a/src/handsfree-audio.c
+++ b/src/handsfree-audio.c
@@ -84,6 +84,24 @@ static void agent_disconnect(DBusConnection *conn, void 
*user_data)
        agent = NULL;
 }
 
+static void card_append_properties(DBusMessageIter *iter,
+                                               struct ofono_modem *modem)
+{
+       DBusMessageIter dict;
+       const char *address;
+
+       dbus_message_iter_open_container(iter, DBUS_TYPE_ARRAY,
+                                       OFONO_PROPERTIES_ARRAY_SIGNATURE,
+                                       &dict);
+
+       address = ofono_modem_get_string(modem, "Remote");
+
+       ofono_dbus_dict_append(&dict, "RemoteAddress",
+                                       DBUS_TYPE_STRING, &address);
+
+       dbus_message_iter_close_container(iter, &dict);
+}
+
 static DBusMessage *am_get_cards(DBusConnection *conn,
                                        DBusMessage *msg, void *user_data)
 {
@@ -183,10 +201,8 @@ static DBusMessage *card_get_properties(DBusConnection 
*conn,
                                        DBusMessage *msg, void *user_data)
 {
        struct ofono_modem *modem = user_data;
-       const char *address;
        DBusMessage *reply;
        DBusMessageIter iter;
-       DBusMessageIter dict;
 
        reply = dbus_message_new_method_return(msg);
        if (reply == NULL)
@@ -194,16 +210,7 @@ static DBusMessage *card_get_properties(DBusConnection 
*conn,
 
        dbus_message_iter_init_append(reply, &iter);
 
-       dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY,
-                                       OFONO_PROPERTIES_ARRAY_SIGNATURE,
-                                       &dict);
-
-       address = ofono_modem_get_string(modem, "Remote");
-
-       ofono_dbus_dict_append(&dict, "RemoteAddress",
-                                       DBUS_TYPE_STRING, &address);
-
-       dbus_message_iter_close_container(&iter, &dict);
+       card_append_properties(&iter, modem);
 
        return reply;
 }
@@ -219,8 +226,6 @@ static void am_emit_card_added(const char *path, struct 
ofono_modem *modem)
 {
        DBusMessage *signal;
        DBusMessageIter iter;
-       DBusMessageIter dict;
-       const char *address;
 
        signal = dbus_message_new_signal("/", HFP_AUDIO_MANAGER_INTERFACE,
                                                                "CardAdded");
@@ -233,16 +238,7 @@ static void am_emit_card_added(const char *path, struct 
ofono_modem *modem)
 
        dbus_message_iter_append_basic(&iter, DBUS_TYPE_OBJECT_PATH, &path);
 
-       dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY,
-                                       OFONO_PROPERTIES_ARRAY_SIGNATURE,
-                                       &dict);
-
-       address = ofono_modem_get_string(modem, "Remote");
-
-       ofono_dbus_dict_append(&dict, "RemoteAddress",
-                                       DBUS_TYPE_STRING, &address);
-
-       dbus_message_iter_close_container(&iter, &dict);
+       card_append_properties(&iter, modem);
 
        g_dbus_send_message(ofono_dbus_get_connection(), signal);
 }
-- 
1.7.11.7

_______________________________________________
ofono mailing list
[email protected]
http://lists.ofono.org/listinfo/ofono

Reply via email to