mirror of git://git.sysmocom.de/ofono
common,atmodem: move at_util_call_compare_by_status to drivers/common
at_util_call_compare_by_status is used by several modem drivers.
This commit is contained in:
parent
4704531a56
commit
34b9f1b9e4
|
@ -71,17 +71,6 @@ void decode_at_error(struct ofono_error *error, const char *final)
|
|||
}
|
||||
}
|
||||
|
||||
gint at_util_call_compare_by_status(gconstpointer a, gconstpointer b)
|
||||
{
|
||||
const struct ofono_call *call = a;
|
||||
int status = GPOINTER_TO_INT(b);
|
||||
|
||||
if (status != call->status)
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
gint at_util_call_compare_by_phone_number(gconstpointer a, gconstpointer b)
|
||||
{
|
||||
const struct ofono_call *call = a;
|
||||
|
|
|
@ -52,7 +52,6 @@ enum at_util_charset {
|
|||
typedef void (*at_util_sim_inserted_cb_t)(gboolean present, void *userdata);
|
||||
|
||||
void decode_at_error(struct ofono_error *error, const char *final);
|
||||
gint at_util_call_compare_by_status(gconstpointer a, gconstpointer b);
|
||||
gint at_util_call_compare_by_phone_number(gconstpointer a, gconstpointer b);
|
||||
gint at_util_call_compare_by_id(gconstpointer a, gconstpointer b);
|
||||
GSList *at_util_parse_clcc(GAtResult *result, unsigned int *mpty_ids);
|
||||
|
|
|
@ -661,13 +661,13 @@ static void ring_notify(GAtResult *result, gpointer user_data)
|
|||
/* See comment in CRING */
|
||||
if (g_slist_find_custom(vd->calls,
|
||||
GINT_TO_POINTER(CALL_STATUS_WAITING),
|
||||
at_util_call_compare_by_status))
|
||||
ofono_call_compare_by_status))
|
||||
return;
|
||||
|
||||
/* RING can repeat, ignore if we already have an incoming call */
|
||||
if (g_slist_find_custom(vd->calls,
|
||||
GINT_TO_POINTER(CALL_STATUS_INCOMING),
|
||||
at_util_call_compare_by_status))
|
||||
ofono_call_compare_by_status))
|
||||
return;
|
||||
|
||||
/* Generate an incoming call of unknown type */
|
||||
|
@ -699,13 +699,13 @@ static void cring_notify(GAtResult *result, gpointer user_data)
|
|||
*/
|
||||
if (g_slist_find_custom(vd->calls,
|
||||
GINT_TO_POINTER(CALL_STATUS_WAITING),
|
||||
at_util_call_compare_by_status))
|
||||
ofono_call_compare_by_status))
|
||||
return;
|
||||
|
||||
/* CRING can repeat, ignore if we already have an incoming call */
|
||||
if (g_slist_find_custom(vd->calls,
|
||||
GINT_TO_POINTER(CALL_STATUS_INCOMING),
|
||||
at_util_call_compare_by_status))
|
||||
ofono_call_compare_by_status))
|
||||
return;
|
||||
|
||||
g_at_result_iter_init(&iter, result);
|
||||
|
@ -749,7 +749,7 @@ static void clip_notify(GAtResult *result, gpointer user_data)
|
|||
|
||||
l = g_slist_find_custom(vd->calls,
|
||||
GINT_TO_POINTER(CALL_STATUS_INCOMING),
|
||||
at_util_call_compare_by_status);
|
||||
ofono_call_compare_by_status);
|
||||
if (l == NULL) {
|
||||
ofono_error("CLIP for unknown call");
|
||||
return;
|
||||
|
@ -811,7 +811,7 @@ static void cdip_notify(GAtResult *result, gpointer user_data)
|
|||
|
||||
l = g_slist_find_custom(vd->calls,
|
||||
GINT_TO_POINTER(CALL_STATUS_INCOMING),
|
||||
at_util_call_compare_by_status);
|
||||
ofono_call_compare_by_status);
|
||||
if (l == NULL) {
|
||||
ofono_error("CDIP for unknown call");
|
||||
return;
|
||||
|
@ -860,7 +860,7 @@ static void cnap_notify(GAtResult *result, gpointer user_data)
|
|||
|
||||
l = g_slist_find_custom(vd->calls,
|
||||
GINT_TO_POINTER(CALL_STATUS_INCOMING),
|
||||
at_util_call_compare_by_status);
|
||||
ofono_call_compare_by_status);
|
||||
if (l == NULL) {
|
||||
ofono_error("CNAP for unknown call");
|
||||
return;
|
||||
|
@ -914,7 +914,7 @@ static void ccwa_notify(GAtResult *result, gpointer user_data)
|
|||
/* Some modems resend CCWA, ignore it the second time around */
|
||||
if (g_slist_find_custom(vd->calls,
|
||||
GINT_TO_POINTER(CALL_STATUS_WAITING),
|
||||
at_util_call_compare_by_status))
|
||||
ofono_call_compare_by_status))
|
||||
return;
|
||||
|
||||
g_at_result_iter_init(&iter, result);
|
||||
|
|
|
@ -41,3 +41,13 @@ gint ofono_call_compare(gconstpointer a, gconstpointer b)
|
|||
return 0;
|
||||
}
|
||||
|
||||
gint ofono_call_compare_by_status(gconstpointer a, gconstpointer b)
|
||||
{
|
||||
const struct ofono_call *call = a;
|
||||
int status = GPOINTER_TO_INT(b);
|
||||
|
||||
if (status != call->status)
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -25,5 +25,6 @@
|
|||
#include <glib.h>
|
||||
|
||||
gint ofono_call_compare(gconstpointer a, gconstpointer b);
|
||||
gint ofono_call_compare_by_status(gconstpointer a, gconstpointer b);
|
||||
|
||||
#endif /* __OFONO_DRIVER_COMMON_CALL_LIST */
|
||||
|
|
|
@ -86,12 +86,12 @@ static GSList *find_dialing(GSList *calls)
|
|||
GSList *c;
|
||||
|
||||
c = g_slist_find_custom(calls, GINT_TO_POINTER(CALL_STATUS_DIALING),
|
||||
at_util_call_compare_by_status);
|
||||
ofono_call_compare_by_status);
|
||||
|
||||
if (c == NULL)
|
||||
c = g_slist_find_custom(calls,
|
||||
GINT_TO_POINTER(CALL_STATUS_ALERTING),
|
||||
at_util_call_compare_by_status);
|
||||
ofono_call_compare_by_status);
|
||||
|
||||
return c;
|
||||
}
|
||||
|
@ -761,7 +761,7 @@ static void ccwa_notify(GAtResult *result, gpointer user_data)
|
|||
/* CCWA can repeat, ignore if we already have an waiting call */
|
||||
if (g_slist_find_custom(vd->calls,
|
||||
GINT_TO_POINTER(CALL_STATUS_WAITING),
|
||||
at_util_call_compare_by_status))
|
||||
ofono_call_compare_by_status))
|
||||
return;
|
||||
|
||||
/* some phones may send extra CCWA after active call is ended
|
||||
|
@ -770,7 +770,7 @@ static void ccwa_notify(GAtResult *result, gpointer user_data)
|
|||
*/
|
||||
if (g_slist_find_custom(vd->calls,
|
||||
GINT_TO_POINTER(CALL_STATUS_INCOMING),
|
||||
at_util_call_compare_by_status))
|
||||
ofono_call_compare_by_status))
|
||||
return;
|
||||
|
||||
|
||||
|
@ -813,7 +813,7 @@ static gboolean clip_timeout(gpointer user_data)
|
|||
|
||||
l = g_slist_find_custom(vd->calls,
|
||||
GINT_TO_POINTER(CALL_STATUS_INCOMING),
|
||||
at_util_call_compare_by_status);
|
||||
ofono_call_compare_by_status);
|
||||
|
||||
if (l == NULL)
|
||||
return FALSE;
|
||||
|
@ -842,12 +842,12 @@ static void ring_notify(GAtResult *result, gpointer user_data)
|
|||
/* RING can repeat, ignore if we already have an incoming call */
|
||||
if (g_slist_find_custom(vd->calls,
|
||||
GINT_TO_POINTER(CALL_STATUS_INCOMING),
|
||||
at_util_call_compare_by_status))
|
||||
ofono_call_compare_by_status))
|
||||
return;
|
||||
|
||||
waiting = g_slist_find_custom(vd->calls,
|
||||
GINT_TO_POINTER(CALL_STATUS_WAITING),
|
||||
at_util_call_compare_by_status);
|
||||
ofono_call_compare_by_status);
|
||||
|
||||
/* If we started receiving RINGS but have a waiting call, most
|
||||
* likely all other calls were dropped and we just didn't get
|
||||
|
@ -892,7 +892,7 @@ static void clip_notify(GAtResult *result, gpointer user_data)
|
|||
|
||||
l = g_slist_find_custom(vd->calls,
|
||||
GINT_TO_POINTER(CALL_STATUS_INCOMING),
|
||||
at_util_call_compare_by_status);
|
||||
ofono_call_compare_by_status);
|
||||
|
||||
if (l == NULL) {
|
||||
ofono_error("CLIP for unknown call");
|
||||
|
@ -1008,7 +1008,7 @@ static void ciev_callsetup_notify(struct ofono_voicecall *vc,
|
|||
|
||||
waiting = g_slist_find_custom(vd->calls,
|
||||
GINT_TO_POINTER(CALL_STATUS_WAITING),
|
||||
at_util_call_compare_by_status);
|
||||
ofono_call_compare_by_status);
|
||||
|
||||
/* This is a truly bizarre case not covered at all by the specification
|
||||
* (yes, they are complete idiots). Here we assume the other side is
|
||||
|
@ -1087,7 +1087,7 @@ static void ciev_callsetup_notify(struct ofono_voicecall *vc,
|
|||
{
|
||||
GSList *o = g_slist_find_custom(vd->calls,
|
||||
GINT_TO_POINTER(CALL_STATUS_DIALING),
|
||||
at_util_call_compare_by_status);
|
||||
ofono_call_compare_by_status);
|
||||
|
||||
if (o) {
|
||||
struct ofono_call *call = o->data;
|
||||
|
|
|
@ -180,7 +180,7 @@ static void cring_notify(GAtResult *result, gpointer user_data)
|
|||
/* CRING can repeat, ignore if we already have an incoming call */
|
||||
if (g_slist_find_custom(vd->calls,
|
||||
GINT_TO_POINTER(CALL_STATUS_INCOMING),
|
||||
at_util_call_compare_by_status))
|
||||
ofono_call_compare_by_status))
|
||||
return;
|
||||
|
||||
g_at_result_iter_init(&iter, result);
|
||||
|
@ -219,7 +219,7 @@ static void clip_notify(GAtResult *result, gpointer user_data)
|
|||
|
||||
l = g_slist_find_custom(vd->calls,
|
||||
GINT_TO_POINTER(CALL_STATUS_INCOMING),
|
||||
at_util_call_compare_by_status);
|
||||
ofono_call_compare_by_status);
|
||||
if (l == NULL) {
|
||||
ofono_error("CLIP for unknown call");
|
||||
return;
|
||||
|
|
|
@ -546,12 +546,12 @@ static void cring_notify(GAtResult *result, gpointer user_data)
|
|||
*/
|
||||
if (g_slist_find_custom(vd->calls,
|
||||
GINT_TO_POINTER(CALL_STATUS_WAITING),
|
||||
at_util_call_compare_by_status))
|
||||
ofono_call_compare_by_status))
|
||||
return;
|
||||
|
||||
l = g_slist_find_custom(vd->calls,
|
||||
GINT_TO_POINTER(CALL_STATUS_INCOMING),
|
||||
at_util_call_compare_by_status);
|
||||
ofono_call_compare_by_status);
|
||||
if (l == NULL) {
|
||||
ofono_error("CRING received before XCALLSTAT!!!");
|
||||
return;
|
||||
|
@ -590,7 +590,7 @@ static void clip_notify(GAtResult *result, gpointer user_data)
|
|||
|
||||
l = g_slist_find_custom(vd->calls,
|
||||
GINT_TO_POINTER(CALL_STATUS_INCOMING),
|
||||
at_util_call_compare_by_status);
|
||||
ofono_call_compare_by_status);
|
||||
if (l == NULL) {
|
||||
ofono_error("CLIP for unknown call");
|
||||
return;
|
||||
|
@ -650,7 +650,7 @@ static void cnap_notify(GAtResult *result, gpointer user_data)
|
|||
*/
|
||||
l = g_slist_find_custom(vd->calls,
|
||||
GINT_TO_POINTER(CALL_STATUS_INCOMING),
|
||||
at_util_call_compare_by_status);
|
||||
ofono_call_compare_by_status);
|
||||
if (l == NULL) {
|
||||
ofono_error("CNAP for unknown call");
|
||||
return;
|
||||
|
@ -696,7 +696,7 @@ static void ccwa_notify(GAtResult *result, gpointer user_data)
|
|||
|
||||
l = g_slist_find_custom(vd->calls,
|
||||
GINT_TO_POINTER(CALL_STATUS_WAITING),
|
||||
at_util_call_compare_by_status);
|
||||
ofono_call_compare_by_status);
|
||||
if (l == NULL) {
|
||||
ofono_error("CCWA received before XCALLSTAT!!!");
|
||||
return;
|
||||
|
|
Loading…
Reference in New Issue