aboutsummaryrefslogtreecommitdiff
path: root/libmm-glib
diff options
context:
space:
mode:
authorAleksander Morgado <aleksandermj@google.com>2022-08-03 14:19:54 +0000
committerAleksander Morgado <aleksander@aleksander.es>2022-08-19 15:53:43 +0000
commitcd933c740ea8d9d32da42104607c8b4927c64389 (patch)
treeccdd0a2993c531895f0d23c99024dad456faf87b /libmm-glib
parent219efb02534d8607698be0dd3ebefecca64c8826 (diff)
libmm-glib,sim: add support to get GID1 and GID2 fields
Diffstat (limited to 'libmm-glib')
-rw-r--r--libmm-glib/mm-sim.c112
-rw-r--r--libmm-glib/mm-sim.h9
2 files changed, 121 insertions, 0 deletions
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
@@ -416,6 +416,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);