mirror of git://git.sysmocom.de/ofono
Use g_source instead of flag for mpty list changes
This commit is contained in:
parent
eae2f2b3fb
commit
44e56bf752
|
@ -41,7 +41,6 @@
|
|||
|
||||
#define VOICECALLS_FLAG_PENDING 0x1
|
||||
#define VOICECALLS_FLAG_MULTI_RELEASE 0x2
|
||||
#define VOICECALLS_FLAG_UPDATING_MPTY_CALL_LIST 0x8
|
||||
|
||||
#define MAX_VOICE_CALLS 16
|
||||
|
||||
|
@ -53,6 +52,7 @@ struct voicecalls_data {
|
|||
int flags;
|
||||
DBusMessage *pending;
|
||||
gint emit_calls_source;
|
||||
gint emit_multi_source;
|
||||
};
|
||||
|
||||
struct voicecall {
|
||||
|
@ -490,6 +490,11 @@ static void voicecalls_destroy(gpointer userdata)
|
|||
calls->emit_calls_source = 0;
|
||||
}
|
||||
|
||||
if (calls->emit_multi_source) {
|
||||
g_source_remove(calls->emit_multi_source);
|
||||
calls->emit_multi_source = 0;
|
||||
}
|
||||
|
||||
for (l = calls->call_list; l; l = l->next)
|
||||
voicecall_dbus_unregister(modem, l->data);
|
||||
|
||||
|
@ -1181,8 +1186,8 @@ static gboolean real_emit_multiparty_call_list_changed(void *data)
|
|||
&objpath_list);
|
||||
|
||||
g_strfreev(objpath_list);
|
||||
|
||||
voicecalls->flags &= ~VOICECALLS_FLAG_UPDATING_MPTY_CALL_LIST;
|
||||
|
||||
voicecalls->emit_multi_source = 0;
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -1192,9 +1197,9 @@ static void emit_multiparty_call_list_changed(struct ofono_modem *modem)
|
|||
#ifdef DELAY_EMIT
|
||||
struct voicecalls_data *calls = modem->voicecalls;
|
||||
|
||||
if (!(calls->flags & VOICECALLS_FLAG_UPDATING_MPTY_CALL_LIST)) {
|
||||
calls->flags |= VOICECALLS_FLAG_UPDATING_MPTY_CALL_LIST;
|
||||
g_timeout_add(0, real_emit_multiparty_call_list_changed, modem);
|
||||
if (calls->emit_multi_source == 0)
|
||||
calls->emit_multi_source = g_timeout_add(0,
|
||||
real_emit_multiparty_call_list_changed, modem);
|
||||
}
|
||||
#else
|
||||
real_emit_multiparty_call_list_changed(modem);
|
||||
|
|
Loading…
Reference in New Issue