From dbbc6be716bd5362d48e8b0ecf4ff190861e500f Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Wed, 5 Jan 2011 22:33:07 -0800 Subject: hso: Add support for model type check on bootup --- plugins/hso.c | 36 ++++++++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) (limited to 'plugins') 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; -- cgit v1.2.3