From 18e8c906c56ab4f1df47f655296203b3f52154df Mon Sep 17 00:00:00 2001 From: Denis Kenzior Date: Fri, 4 Dec 2009 16:51:53 -0600 Subject: Make sure to list calls in HFP voicecall driver --- drivers/hfpmodem/voicecall.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'drivers/hfpmodem/voicecall.c') diff --git a/drivers/hfpmodem/voicecall.c b/drivers/hfpmodem/voicecall.c index 7899ba67..6693280f 100644 --- a/drivers/hfpmodem/voicecall.c +++ b/drivers/hfpmodem/voicecall.c @@ -927,6 +927,21 @@ static void ciev_notify(GAtResult *result, gpointer user_data) ciev_callheld_notify(vc, value); } +static void hfp_clcc_cb(gboolean ok, GAtResult *result, gpointer user_data) +{ + struct ofono_voicecall *vc = user_data; + struct voicecall_data *vd = ofono_voicecall_get_data(vc); + GSList *l; + + if (!ok) + return; + + vd->calls = at_util_parse_clcc(result); + + for (l = vd->calls; l; l = l->next) + ofono_voicecall_notify(vc, l->data); +} + static void hfp_voicecall_initialized(gboolean ok, GAtResult *result, gpointer user_data) { @@ -944,6 +959,9 @@ static void hfp_voicecall_initialized(gboolean ok, GAtResult *result, no_carrier_notify, FALSE, vc, NULL); ofono_voicecall_register(vc); + + /* Populate the call list */ + g_at_chat_send(vd->chat, "AT+CLCC", clcc_prefix, hfp_clcc_cb, vc, NULL); } static int hfp_voicecall_probe(struct ofono_voicecall *vc, unsigned int vendor, -- cgit v1.2.3