From 7893cc3ef24782a7f49e9366dc30f74ea6edd2f0 Mon Sep 17 00:00:00 2001 From: Denis Kenzior Date: Thu, 11 Aug 2011 04:14:30 -0500 Subject: [PATCH] stk: Use phonesim vendor for modem-handled cmds --- drivers/atmodem/stk.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/drivers/atmodem/stk.c b/drivers/atmodem/stk.c index 879c0930..c448e54a 100644 --- a/drivers/atmodem/stk.c +++ b/drivers/atmodem/stk.c @@ -152,6 +152,24 @@ static void phonesim_cusatp_notify(GAtResult *result, gpointer user_data) ofono_stk_proactive_command_notify(stk, len, response); } +static void phonesim_hcmd_notify(GAtResult *result, gpointer user_data) +{ + struct ofono_stk *stk = user_data; + GAtResultIter iter; + const guint8 *response; + gint len; + + g_at_result_iter_init(&iter, result); + + if (!g_at_result_iter_next(&iter, "*HCMD:")) + return; + + if (!g_at_result_iter_next_hexstring(&iter, &response, &len)) + return; + + ofono_stk_proactive_command_handled_notify(stk, len, response); +} + static void phonesim_cusatend_notify(GAtResult *result, gpointer user_data) { struct ofono_stk *stk = user_data; @@ -170,6 +188,10 @@ static gboolean at_stk_register(gpointer user) g_at_chat_register(sd->chat, "+CUSATEND", phonesim_cusatend_notify, FALSE, stk, NULL); + if (sd->vendor == OFONO_VENDOR_PHONESIM) + g_at_chat_register(sd->chat, "*HCMD:", phonesim_hcmd_notify, + FALSE, stk, NULL); + ofono_stk_register(stk); return FALSE;