huawei,call: handle in-call URCs in the call object itself

Instead of handling the URCs in the modem object and using the
MMIfaceModem as a bridge to report the status read from the URC to a
call obtained from the MMCallList... just handle the URCs in the call
object itself.
This commit is contained in:
Aleksander Morgado
2018-06-15 00:04:15 +02:00
committed by Dan Williams
parent f71e120fb7
commit fc0feee654
8 changed files with 205 additions and 435 deletions

View File

@@ -109,99 +109,6 @@ mm_call_list_get_first_ringing_in_call (MMCallList *self)
return NULL;
}
MMBaseCall *
mm_call_list_get_first_ringing_out_call (MMCallList *self)
{
MMBaseCall *call = NULL;
GList *l;
for (l = self->priv->list; l; l = g_list_next (l)) {
MMCallState state;
g_object_get (MM_BASE_CALL (l->data),
"state", &state,
NULL);
if (state == MM_CALL_STATE_RINGING_IN ||
state == MM_CALL_STATE_RINGING_OUT) {
call = MM_BASE_CALL (l->data);
break;
}
}
return call;
}
MMBaseCall *
mm_call_list_get_first_outgoing_dialing_call (MMCallList *self)
{
MMBaseCall *call = NULL;
GList *l;
for (l = self->priv->list; l; l = g_list_next (l)) {
MMCallState state;
MMCallDirection direction;
g_object_get (MM_BASE_CALL (l->data),
"state", &state,
"direction", &direction,
NULL);
if (direction == MM_CALL_DIRECTION_OUTGOING &&
state == MM_CALL_STATE_DIALING) {
call = MM_BASE_CALL (l->data);
break;
}
}
return call;
}
MMBaseCall *
mm_call_list_get_first_non_terminated_call (MMCallList *self)
{
MMBaseCall *call = NULL;
GList *l;
for (l = self->priv->list; l; l = g_list_next (l)) {
MMCallState state;
g_object_get (MM_BASE_CALL (l->data),
"state", &state,
NULL);
if (state != MM_CALL_STATE_TERMINATED) {
call = MM_BASE_CALL (l->data);
break;
}
}
return call;
}
gboolean
mm_call_list_send_dtmf_to_active_calls (MMCallList *self,
const gchar *dtmf)
{
gboolean signaled = FALSE;
GList *l;
for (l = self->priv->list; l; l = g_list_next (l)) {
MMCallState state;
g_object_get (MM_BASE_CALL (l->data),
"state", &state,
NULL);
if (state == MM_CALL_STATE_ACTIVE) {
signaled = TRUE;
mm_base_call_received_dtmf (MM_BASE_CALL (l->data), dtmf);
}
}
return signaled;
}
/*****************************************************************************/
static guint