summaryrefslogtreecommitdiffstats
path: root/plugins/hso.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2011-01-05 22:33:07 -0800
committerMarcel Holtmann <marcel@holtmann.org>2011-01-05 22:33:07 -0800
commitdbbc6be716bd5362d48e8b0ecf4ff190861e500f (patch)
tree96fa2de1c93b094e8868090b34cc407d796ea6ad /plugins/hso.c
parent9c5fdc90659daf97b2656f9ae1c4845246340b82 (diff)
downloadofono-dbbc6be716bd5362d48e8b0ecf4ff190861e500f.tar.bz2
hso: Add support for model type check on bootup
Diffstat (limited to 'plugins/hso.c')
-rw-r--r--plugins/hso.c36
1 files changed, 32 insertions, 4 deletions
diff --git a/plugins/hso.c b/plugins/hso.c
index f31d4e42..82cd9cc1 100644
--- a/plugins/hso.c
+++ b/plugins/hso.c
@@ -90,17 +90,28 @@ static void hso_debug(const char *str, void *user_data)
ofono_info("%s%s", prefix, str);
}
-static void cfun_enable(gboolean ok, GAtResult *result, gpointer user_data)
+static void check_model(gboolean ok, GAtResult *result, gpointer user_data)
{
struct ofono_modem *modem = user_data;
struct hso_data *data = ofono_modem_get_data(modem);
+ GAtResultIter iter;
+ char const *model;
DBG("");
- ofono_modem_set_powered(modem, ok);
-
if (!ok)
- return;
+ goto done;
+
+ g_at_result_iter_init(&iter, result);
+
+ if (!g_at_result_iter_next(&iter, "_OPMN:"))
+ goto done;
+
+ if (g_at_result_iter_next_unquoted_string(&iter, &model))
+ ofono_info("Model is %s", model);
+
+done:
+ ofono_modem_set_powered(modem, TRUE);
/*
* Option has the concept of Speech Service versus
@@ -117,6 +128,23 @@ static void cfun_enable(gboolean ok, GAtResult *result, gpointer user_data)
g_at_chat_send(data->app, "AT_ODO=0", none_prefix, NULL, NULL, NULL);
}
+static void cfun_enable(gboolean ok, GAtResult *result, gpointer user_data)
+{
+ struct ofono_modem *modem = user_data;
+ struct hso_data *data = ofono_modem_get_data(modem);
+
+ DBG("");
+
+
+ if (!ok) {
+ ofono_modem_set_powered(modem, ok);
+ return;
+ }
+
+ g_at_chat_send(data->control, "AT_OPMN", NULL,
+ check_model, modem, NULL);
+}
+
static GAtChat *create_port(const char *device)
{
GAtSyntax *syntax;