summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/ofono.h3
-rw-r--r--src/voicecall.c16
2 files changed, 19 insertions, 0 deletions
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 <ofono/sms.h>
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;