diff options
author | Denis Kenzior <denkenz@gmail.com> | 2013-09-10 10:58:14 -0500 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2013-09-12 13:17:39 -0500 |
commit | a4a170e1ea17dc5d81fabddde35b39d053abdc88 (patch) | |
tree | 49014bea93e2207cf664036b858f03415096ef55 /drivers/hfpmodem | |
parent | 0026ae3fb71925fdd90739b8447ad3ae18d111fe (diff) | |
download | ofono-a4a170e1ea17dc5d81fabddde35b39d053abdc88.tar.bz2 |
hfpmodem: Call ofono_voicecall_mpty_hint as needed
Diffstat (limited to 'drivers/hfpmodem')
-rw-r--r-- | drivers/hfpmodem/voicecall.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/hfpmodem/voicecall.c b/drivers/hfpmodem/voicecall.c index 12f42539..5836b8b1 100644 --- a/drivers/hfpmodem/voicecall.c +++ b/drivers/hfpmodem/voicecall.c @@ -213,11 +213,12 @@ static void clcc_poll_cb(gboolean ok, GAtResult *result, gpointer user_data) unsigned int num_active = 0; unsigned int num_held = 0; GSList *notify_calls = NULL; + unsigned int mpty_ids; if (!ok) return; - calls = at_util_parse_clcc(result); + calls = at_util_parse_clcc(result, &mpty_ids); n = calls; o = vd->calls; @@ -281,6 +282,8 @@ static void clcc_poll_cb(gboolean ok, GAtResult *result, gpointer user_data) g_slist_foreach(notify_calls, voicecall_notify, vc); g_slist_free(notify_calls); + ofono_voicecall_mpty_hint(vc, mpty_ids); + g_slist_foreach(vd->calls, (GFunc) g_free, NULL); g_slist_free(vd->calls); @@ -1097,13 +1100,15 @@ 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); + unsigned int mpty_ids; if (!ok) return; - vd->calls = at_util_parse_clcc(result); + vd->calls = at_util_parse_clcc(result, &mpty_ids); g_slist_foreach(vd->calls, voicecall_notify, vc); + ofono_voicecall_mpty_hint(vc, mpty_ids); } static void hfp_voicecall_initialized(gboolean ok, GAtResult *result, |