diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2011-01-05 22:33:07 -0800 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2011-01-05 22:33:07 -0800 |
commit | dbbc6be716bd5362d48e8b0ecf4ff190861e500f (patch) | |
tree | 96fa2de1c93b094e8868090b34cc407d796ea6ad /plugins/hso.c | |
parent | 9c5fdc90659daf97b2656f9ae1c4845246340b82 (diff) | |
download | ofono-dbbc6be716bd5362d48e8b0ecf4ff190861e500f.tar.bz2 |
hso: Add support for model type check on bootup
Diffstat (limited to 'plugins/hso.c')
-rw-r--r-- | plugins/hso.c | 36 |
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; |