summaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2010-09-05 20:50:30 +0200
committerMarcel Holtmann <marcel@holtmann.org>2010-09-05 20:50:30 +0200
commit92916affeace4b61d6dcae8d9e8da0d14f9c25ca (patch)
tree2eb80828594ae63fed765a053690c75b35ac7e3e /plugins
parenta0fe9cbdbd94b49399a2caf4d3081b2c80687c2e (diff)
downloadofono-92916affeace4b61d6dcae8d9e8da0d14f9c25ca.tar.bz2
huawei: Decode voice channel settings
Diffstat (limited to 'plugins')
-rw-r--r--plugins/huawei.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/plugins/huawei.c b/plugins/huawei.c
index 0fd23c86..c155fb72 100644
--- a/plugins/huawei.c
+++ b/plugins/huawei.c
@@ -225,6 +225,7 @@ static void cvoice_query_cb(gboolean ok, GAtResult *result,
struct ofono_modem *modem = user_data;
struct huawei_data *data = ofono_modem_get_data(modem);
GAtResultIter iter;
+ gint mode, rate, bits, period;
if (!ok)
goto done;
@@ -234,8 +235,27 @@ static void cvoice_query_cb(gboolean ok, GAtResult *result,
if (!g_at_result_iter_next(&iter, "^CVOICE:"))
goto done;
+ if (!g_at_result_iter_next_number(&iter, &mode))
+ goto done;
+
+ if (!g_at_result_iter_next_number(&iter, &rate))
+ goto done;
+
+ if (!g_at_result_iter_next_number(&iter, &bits))
+ goto done;
+
+ if (!g_at_result_iter_next_number(&iter, &period))
+ goto done;
+
data->voice = TRUE;
+ ofono_info("Voice channel: %d Hz, %d bits, %dms period",
+ rate, bits, period);
+
+ /* check available voice ports */
+ g_at_chat_send(data->pcui, "AT^DDSETEX=?", none_prefix,
+ NULL, NULL, NULL);
+
done:
ofono_modem_set_powered(modem, TRUE);