handsfree-audio: Implement card create / remove
authorDenis Kenzior <denkenz@gmail.com>
Tue, 26 Feb 2013 17:03:00 +0000 (11:03 -0600)
committerDenis Kenzior <denkenz@gmail.com>
Tue, 26 Feb 2013 17:09:48 +0000 (11:09 -0600)
src/handsfree-audio.c

index 4e2cf93..66d9bb0 100644 (file)
@@ -42,6 +42,11 @@ enum hfp_codec {
        HFP_CODEC_MSBC = 0x02,
 };
 
+struct ofono_handsfree_card {
+       char *remote;
+       char *local;
+};
+
 struct agent {
        char *owner;
        char *path;
@@ -52,6 +57,37 @@ struct agent {
 
 static struct agent *agent = NULL;
 static int ref_count = 0;
+static GSList *card_list = 0;
+
+struct ofono_handsfree_card *ofono_handsfree_card_create(const char *remote,
+                                                       const char *local)
+{
+       struct ofono_handsfree_card *card;
+
+       card = g_new0(struct ofono_handsfree_card, 1);
+
+       card->remote = g_strdup(remote);
+       card->local = g_strdup(local);
+
+       card_list = g_slist_prepend(card_list, card);
+
+       return card;
+}
+
+void ofono_handsfree_card_remove(struct ofono_handsfree_card *card)
+{
+       DBG("%p", card);
+
+       if (card == NULL)
+               return;
+
+       card_list = g_slist_remove(card_list, card);
+
+       g_free(card->remote);
+       g_free(card->local);
+
+       g_free(card);
+}
 
 static void agent_free(struct agent *agent)
 {