summaryrefslogtreecommitdiffstats
path: root/audio
diff options
context:
space:
mode:
authorJohan Hedberg <johan.hedberg@nokia.com>2008-10-21 17:31:20 +0300
committerJohan Hedberg <johan.hedberg@nokia.com>2008-12-08 16:10:56 +0200
commitb5e8e0bf6f25900a7f1c2eb702a422e7e59ae09e (patch)
tree27f4fef194b04dc401432a2c97b32ae01f39064e /audio
parent942947f4eddaad40216a91bb5865ef44cdf6be16 (diff)
Add variable to monitor the callsetup stage
Diffstat (limited to 'audio')
-rw-r--r--audio/telephony-maemo.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/audio/telephony-maemo.c b/audio/telephony-maemo.c
index 6f67a04b..692b84e7 100644
--- a/audio/telephony-maemo.c
+++ b/audio/telephony-maemo.c
@@ -75,6 +75,7 @@ struct csd_call {
gboolean on_hold;
gboolean conference;
char *number;
+ gboolean setup;
};
static DBusConnection *connection = NULL;
@@ -543,23 +544,31 @@ static void handle_call_status(DBusMessage *msg, const char *call_path)
switch (status) {
case CSD_CALL_STATUS_IDLE:
- if (!active_call)
+ if (call->setup)
+ telephony_update_indicator(maemo_indicators,
+ "callsetup",
+ EV_CALLSETUP_INACTIVE);
+ else
telephony_update_indicator(maemo_indicators, "call",
EV_CALL_INACTIVE);
+
g_free(call->number);
call->number = NULL;
call->originating = FALSE;
call->emergency = FALSE;
call->on_hold = FALSE;
call->conference = FALSE;
+ call->setup = FALSE;
break;
case CSD_CALL_STATUS_CREATE:
call->originating = TRUE;
+ call->setup = TRUE;
telephony_update_indicator(maemo_indicators, "callsetup",
EV_CALLSETUP_OUTGOING);
break;
case CSD_CALL_STATUS_COMING:
call->originating = FALSE;
+ call->setup = TRUE;
break;
case CSD_CALL_STATUS_PROCEEDING:
break;
@@ -583,6 +592,7 @@ static void handle_call_status(DBusMessage *msg, const char *call_path)
telephony_update_indicator(maemo_indicators,
"callsetup",
EV_CALLSETUP_INACTIVE);
+ call->setup = FALSE;
}
break;
case CSD_CALL_STATUS_MO_RELEASE: