From cd933c740ea8d9d32da42104607c8b4927c64389 Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Wed, 3 Aug 2022 14:19:54 +0000 Subject: libmm-glib,sim: add support to get GID1 and GID2 fields --- libmm-glib/mm-sim.c | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++ libmm-glib/mm-sim.h | 9 +++++ 2 files changed, 121 insertions(+) (limited to 'libmm-glib') diff --git a/libmm-glib/mm-sim.c b/libmm-glib/mm-sim.c index e44b5b3d..48b68619 100644 --- a/libmm-glib/mm-sim.c +++ b/libmm-glib/mm-sim.c @@ -415,6 +415,118 @@ mm_sim_get_preferred_networks (MMSim *self) /*****************************************************************************/ +/** + * mm_sim_get_gid1: + * @self: A #MMSim. + * @data_len: (out): Size of the output data, if any given. + * + * Gets the Group Identifier Level 1 of the #MMSim object. + * + * Returns: (transfer none) (array length=data_len) (element-type guint8): The + * GID1 data, or %NULL if unknown. + * + * Since: 1.20 + */ +const guint8 * +mm_sim_get_gid1 (MMSim *self, + gsize *data_len) +{ + GVariant *value; + + g_return_val_if_fail (MM_IS_SIM (self), NULL); + g_return_val_if_fail (data_len != NULL, NULL); + + value = mm_gdbus_sim_get_gid1 (MM_GDBUS_SIM (self)); + return (value ? + g_variant_get_fixed_array (value, data_len, sizeof (guint8)) : + NULL); +} + +/** + * mm_sim_dup_gid1: + * @self: A #MMSim. + * @data_len: (out): Size of the output data, if any given. + * + * Gets the Group Identifier Level 1 of the #MMSim object. + * + * Returns: (transfer full) (array length=data_len) (element-type guint8): The + * GID1 data, or %NULL if unknown. + * + * Since: 1.20 + */ +guint8 * +mm_sim_dup_gid1 (MMSim *self, + gsize *data_len) +{ + g_autoptr(GVariant) value = NULL; + + g_return_val_if_fail (MM_IS_SIM (self), NULL); + g_return_val_if_fail (data_len != NULL, NULL); + + value = mm_gdbus_sim_dup_gid1 (MM_GDBUS_SIM (self)); + return (value ? + g_memdup (g_variant_get_fixed_array (value, data_len, sizeof (guint8)), *data_len) : + NULL); +} + +/*****************************************************************************/ + +/** + * mm_sim_get_gid2: + * @self: A #MMSim. + * @data_len: (out): Size of the output data, if any given. + * + * Gets the Group Identifier Level 2 of the #MMSim object. + * + * Returns: (transfer none) (array length=data_len) (element-type guint8): The + * GID2 data, or %NULL if unknown. + * + * Since: 1.20 + */ +const guint8 * +mm_sim_get_gid2 (MMSim *self, + gsize *data_len) +{ + GVariant *value; + + g_return_val_if_fail (MM_IS_SIM (self), NULL); + g_return_val_if_fail (data_len != NULL, NULL); + + value = mm_gdbus_sim_get_gid2 (MM_GDBUS_SIM (self)); + return (value ? + g_variant_get_fixed_array (value, data_len, sizeof (guint8)) : + NULL); +} + +/** + * mm_sim_dup_gid2: + * @self: A #MMSim. + * @data_len: (out): Size of the output data, if any given. + * + * Gets the Group Identifier Level 2 of the #MMSim object. + * + * Returns: (transfer full) (array length=data_len) (element-type guint8): The + * GID2 data, or %NULL if unknown. + * + * Since: 1.20 + */ +guint8 * +mm_sim_dup_gid2 (MMSim *self, + gsize *data_len) +{ + g_autoptr(GVariant) value = NULL; + + g_return_val_if_fail (MM_IS_SIM (self), NULL); + g_return_val_if_fail (data_len != NULL, NULL); + + value = mm_gdbus_sim_dup_gid2 (MM_GDBUS_SIM (self)); + return (value ? + g_memdup (g_variant_get_fixed_array (value, data_len, sizeof (guint8)), *data_len) : + NULL); +} + +/*****************************************************************************/ + /** * mm_sim_get_sim_type: * @self: A #MMSim. diff --git a/libmm-glib/mm-sim.h b/libmm-glib/mm-sim.h index 77011fde..a1dd8ed5 100644 --- a/libmm-glib/mm-sim.h +++ b/libmm-glib/mm-sim.h @@ -89,6 +89,15 @@ gchar **mm_sim_dup_emergency_numbers (MMSim *self); GList* mm_sim_get_preferred_networks (MMSim *self); +const guint8 *mm_sim_get_gid1 (MMSim *self, + gsize *data_len); +guint8 *mm_sim_dup_gid1 (MMSim *self, + gsize *data_len); +const guint8 *mm_sim_get_gid2 (MMSim *self, + gsize *data_len); +guint8 *mm_sim_dup_gid2 (MMSim *self, + gsize *data_len); + MMSimType mm_sim_get_sim_type (MMSim *self); MMSimEsimStatus mm_sim_get_esim_status (MMSim *self); MMSimRemovability mm_sim_get_removability (MMSim *self); -- cgit v1.2.3-70-g09d2