From 6c0f14132b8f6a12e8535cb95961eeb78cf8342f Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Thu, 19 Jul 2012 15:47:43 +0200 Subject: [PATCH] icera: implement network time retrieval --- plugins/icera/mm-iface-icera.c | 30 ++++++++++++++++++++++++++++++ plugins/icera/mm-iface-icera.h | 7 +++++++ 2 files changed, 37 insertions(+) diff --git a/plugins/icera/mm-iface-icera.c b/plugins/icera/mm-iface-icera.c index 01d5cb18..941f5282 100644 --- a/plugins/icera/mm-iface-icera.c +++ b/plugins/icera/mm-iface-icera.c @@ -751,6 +751,36 @@ mm_iface_icera_modem_time_load_network_timezone (MMIfaceModemTime *self, /*****************************************************************************/ +gchar * +mm_iface_icera_modem_time_load_network_time_finish (MMIfaceModemTime *self, + GAsyncResult *res, + GError **error) +{ + const gchar *response; + gchar *iso8601; + + response = mm_base_modem_at_command_finish (MM_BASE_MODEM (self), res, error); + if (!response) + return NULL; + + return (parse_tlts_query_reply (response, &iso8601, NULL, error) ? iso8601 : NULL); +} + +void +mm_iface_icera_modem_time_load_network_time (MMIfaceModemTime *self, + GAsyncReadyCallback callback, + gpointer user_data) +{ + mm_base_modem_at_command (MM_BASE_MODEM (self), + "%TLTS", + 3, + FALSE, + callback, + user_data); +} + +/*****************************************************************************/ + static void iface_icera_init (gpointer g_iface) { diff --git a/plugins/icera/mm-iface-icera.h b/plugins/icera/mm-iface-icera.h index 3ba32d37..f056b5ab 100644 --- a/plugins/icera/mm-iface-icera.h +++ b/plugins/icera/mm-iface-icera.h @@ -103,6 +103,13 @@ gboolean mm_iface_icera_modem_3gpp_disable_unsolicited_events_finish (MMIfaceMod /*****************************************************************************/ /* Modem Time interface specific implementations */ +void mm_iface_icera_modem_time_load_network_time (MMIfaceModemTime *self, + GAsyncReadyCallback callback, + gpointer user_data); +gchar *mm_iface_icera_modem_time_load_network_time_finish (MMIfaceModemTime *self, + GAsyncResult *res, + GError **error); + void mm_iface_icera_modem_time_load_network_timezone (MMIfaceModemTime *self, GAsyncReadyCallback callback, gpointer user_data);