diff --git a/src/ofono.h b/src/ofono.h index 156bc404..82d7e347 100644 --- a/src/ofono.h +++ b/src/ofono.h @@ -270,6 +270,9 @@ int __ofono_voicecall_tone_send(struct ofono_voicecall *vc, ofono_voicecall_tone_cb_t cb, void *user_data); void __ofono_voicecall_tone_cancel(struct ofono_voicecall *vc, int id); +struct ofono_call *__ofono_voicecall_find_call_with_status( + struct ofono_voicecall *vc, int status); + #include struct sms; diff --git a/src/voicecall.c b/src/voicecall.c index 9878050b..f2e03e5c 100644 --- a/src/voicecall.c +++ b/src/voicecall.c @@ -1098,6 +1098,22 @@ static gboolean voicecalls_have_incoming(struct ofono_voicecall *vc) return voicecalls_have_with_status(vc, CALL_STATUS_INCOMING); } +struct ofono_call *__ofono_voicecall_find_call_with_status( + struct ofono_voicecall *vc, int status) +{ + GSList *l; + struct voicecall *v; + + for (l = vc->call_list; l; l = l->next) { + v = l->data; + + if (v->call->status == status) + return v->call; + } + + return NULL; +} + static void voicecalls_multiparty_changed(GSList *old, GSList *new) { GSList *o, *n;