From dfeb91fc08bf119977fd1ccb87b7111a5d7ad4be Mon Sep 17 00:00:00 2001 From: Denis Kenzior Date: Tue, 26 Feb 2013 11:03:00 -0600 Subject: [PATCH] handsfree-audio: Implement card create / remove --- src/handsfree-audio.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/handsfree-audio.c b/src/handsfree-audio.c index 4e2cf93..66d9bb0 100644 --- a/src/handsfree-audio.c +++ b/src/handsfree-audio.c @@ -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) { -- 2.7.4