From: =?unknown-8bit?q?Fr=C3=A9d=C3=A9ric?= Danis <frederic.danis@linux.intel.com>
To: ofono@ofono.org
Subject: [PATCH 3/7] emulator: add RING for HFP AG
Date: Tue, 05 Apr 2011 17:40:27 +0200 [thread overview]
Message-ID: <1302018031-12401-4-git-send-email-frederic.danis@linux.intel.com> (raw)
In-Reply-To: <1302018031-12401-1-git-send-email-frederic.danis@linux.intel.com>
[-- Attachment #1: Type: text/plain, Size: 2477 bytes --]
---
src/emulator.c | 45 +++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 45 insertions(+), 0 deletions(-)
diff --git a/src/emulator.c b/src/emulator.c
index 2707592..104693d 100644
--- a/src/emulator.c
+++ b/src/emulator.c
@@ -37,6 +37,8 @@
#define DUN_DNS_SERVER_1 "10.10.10.10"
#define DUN_DNS_SERVER_2 "10.10.10.11"
+#define RING_TIMEOUT 3
+
struct ofono_emulator {
struct ofono_atom *atom;
enum ofono_emulator_type type;
@@ -49,6 +51,8 @@ struct ofono_emulator {
int events_mode;
gboolean events_ind;
GSList *indicators;
+ guint ring;
+ gboolean active_call;
};
struct indicator {
@@ -177,6 +181,18 @@ error:
g_at_server_send_final(em->server, G_AT_SERVER_RESULT_ERROR);
}
+static gboolean ring_cb(gpointer user_data)
+{
+ struct ofono_emulator *em = user_data;
+
+ if (em->type == OFONO_EMULATOR_TYPE_HFP && em->slc == FALSE)
+ return TRUE;
+
+ g_at_server_send_unsolicited(em->server, "RING");
+
+ return TRUE;
+}
+
static void brsf_cb(GAtServer *server, GAtServerRequestType type,
GAtResult *result, gpointer user_data)
{
@@ -418,6 +434,11 @@ static void emulator_unregister(struct ofono_atom *atom)
em->source = 0;
}
+ if (em->ring) {
+ g_source_remove(em->ring);
+ em->ring = 0;
+ }
+
for (l = em->indicators; l; l = l->next) {
struct indicator *ind = l->data;
@@ -697,11 +718,35 @@ void ofono_emulator_set_indicator(struct ofono_emulator *em,
ind->value = value;
+ if (g_str_equal(name, OFONO_EMULATOR_IND_CALL) == TRUE)
+ em->active_call = value;
+
if (em->events_mode == 3 && em->events_ind && em->slc) {
sprintf(buf, "+CIEV: %d,%d", i, ind->value);
g_at_server_send_info(em->server, buf, TRUE);
}
+ /*
+ * Ring timer should be started when callsetup indicator
+ * is set to Incoming, but only if there is no active or held
+ * call (active indicator set to 1)
+ * It should be stopped for all other values of callsetup
+ */
+ if (g_str_equal(name, OFONO_EMULATOR_IND_CALLSETUP) == TRUE) {
+ if (value == OFONO_EMULATOR_CALLSETUP_INCOMING &&
+ !em->active_call && em->ring == 0) {
+ ring_cb(em);
+ em->ring = g_timeout_add_seconds(RING_TIMEOUT,
+ ring_cb, em);
+ }
+
+ if (value != OFONO_EMULATOR_CALLSETUP_INCOMING &&
+ em->ring) {
+ g_source_remove(em->ring);
+ em->ring = 0;
+ }
+ }
+
return;
}
}
--
1.7.1
next prev parent reply other threads:[~2011-04-05 15:40 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-05 15:40 [PATCH 0/7] emulator: add simple incoming call support =?unknown-8bit?q?Fr=C3=A9d=C3=A9ric?= Danis
2011-04-05 15:40 ` [PATCH 1/7] emulator: add defines for call, callsetup and callheld indicators =?unknown-8bit?q?Fr=C3=A9d=C3=A9ric?= Danis
2011-04-05 15:40 ` [PATCH 2/7] emulator: add " =?unknown-8bit?q?Fr=C3=A9d=C3=A9ric?= Danis
2011-04-05 15:40 ` =?unknown-8bit?q?Fr=C3=A9d=C3=A9ric?= Danis [this message]
2011-04-05 15:49 ` [PATCH 3/7] emulator: add RING for HFP AG =?unknown-8bit?q?Fr=C3=A9d=C3=A9ric?= Dalleau
2011-04-05 15:54 ` =?unknown-8bit?q?Fr=C3=A9d=C3=A9ric?= Dalleau
2011-04-05 15:40 ` [PATCH 4/7] emulator: add incoming call API =?unknown-8bit?q?Fr=C3=A9d=C3=A9ric?= Danis
2011-04-05 15:40 ` [PATCH 5/7] emulator: add +CLIP support for HFP AG =?unknown-8bit?q?Fr=C3=A9d=C3=A9ric?= Danis
2011-04-05 15:40 ` [PATCH 6/7] voicecall: add ATA support for HFP emulator =?unknown-8bit?q?Fr=C3=A9d=C3=A9ric?= Danis
2011-04-05 15:40 ` [PATCH 7/7] voicecall: add +CHUP " =?unknown-8bit?q?Fr=C3=A9d=C3=A9ric?= Danis
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1302018031-12401-4-git-send-email-frederic.danis@linux.intel.com \
--to=frederic.danis@linux.intel.com \
--cc=ofono@ofono.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.