diff options
author | Ben Chan <benchan@chromium.org> | 2018-08-14 14:54:14 -0700 |
---|---|---|
committer | Ben Chan <benchan@chromium.org> | 2018-08-18 13:34:06 -0700 |
commit | d46aa0c36a8543857e28f151e134f88462369fc4 (patch) | |
tree | 482c03ac63af9191aa4e56ecf336904b7dadfa4b /libmm-glib/mm-modem-3gpp.c | |
parent | eb327b4203601a6c09f6369927325767391b86e7 (diff) |
modem-3gpp: add 'Pco' property to Modem3gpp interface
This patch adds a 'Pco' property to the Modem3gpp interface for tracking
PCOs that the modem has received from the network.
Diffstat (limited to 'libmm-glib/mm-modem-3gpp.c')
-rw-r--r-- | libmm-glib/mm-modem-3gpp.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/libmm-glib/mm-modem-3gpp.c b/libmm-glib/mm-modem-3gpp.c index 69edc276..360aaef6 100644 --- a/libmm-glib/mm-modem-3gpp.c +++ b/libmm-glib/mm-modem-3gpp.c @@ -26,6 +26,7 @@ #include "mm-helpers.h" #include "mm-errors-types.h" #include "mm-modem-3gpp.h" +#include "mm-pco.h" /** * SECTION: mm-modem-3gpp @@ -299,6 +300,45 @@ mm_modem_3gpp_get_eps_ue_mode_operation (MMModem3gpp *self) /*****************************************************************************/ /** + * mm_modem_3gpp_get_pco: + * @self: A #MMModem3gpp. + * + * Get the list of #MMPco received from the network. + * + * The caller is responsible for freeing the returned #GList with + * mm_pco_list_free(). + * + * Returns: (transfer full): A list of #MMPco. + */ +GList * +mm_modem_3gpp_get_pco (MMModem3gpp *self) +{ + GList *pco_list = NULL; + GVariant *container, *child; + GVariantIter iter; + + g_return_val_if_fail (MM_IS_MODEM_3GPP (self), NULL); + + container = mm_gdbus_modem3gpp_get_pco (MM_GDBUS_MODEM3GPP (self)); + + g_return_val_if_fail (g_variant_is_of_type (container, G_VARIANT_TYPE ("a(ubay)")), + NULL); + g_variant_iter_init (&iter, container); + while ((child = g_variant_iter_next_value (&iter))) { + MMPco *pco; + + pco = mm_pco_from_variant (child, NULL); + pco_list = mm_pco_list_add (pco_list, pco); + g_object_unref (pco); + g_variant_unref (child); + } + + return pco_list; +} + +/*****************************************************************************/ + +/** * mm_modem_3gpp_register_finish: * @self: A #MMModem3gpp. * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to mm_modem_3gpp_register(). |