aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2020-08-01 09:59:47 +0200
committerAleksander Morgado <aleksander@aleksander.es>2020-08-28 14:59:06 +0000
commitb564d5f2e508537dc5b10fd5fe20497113226526 (patch)
tree9b13e5e124b83ad19a2bd8d07573ca302c90d4f2 /src
parent89b6e811b984f2f9f6e0eea652246a58e3200c8f (diff)
sim-qmi: allow creating preinitialized SIM objects
The default SIM creation method will attempt to initialize the SIM properties during the object creation. This new method allows creating SIM objects with already known property values, and therefore not explicitly running the asynchronous initialization process. Completely equivalent to mm_base_sim_new_initialized() but creating a subclassed MMSimQmi instead of the generic MMBaseSim.
Diffstat (limited to 'src')
-rw-r--r--src/mm-sim-qmi.c31
-rw-r--r--src/mm-sim-qmi.h10
2 files changed, 41 insertions, 0 deletions
diff --git a/src/mm-sim-qmi.c b/src/mm-sim-qmi.c
index 584dbe99..f7b44a55 100644
--- a/src/mm-sim-qmi.c
+++ b/src/mm-sim-qmi.c
@@ -1319,6 +1319,37 @@ mm_sim_qmi_new (MMBaseModem *modem,
NULL);
}
+MMBaseSim *
+mm_sim_qmi_new_initialized (MMBaseModem *modem,
+ gboolean dms_uim_deprecated,
+ guint slot_number,
+ gboolean active,
+ const gchar *sim_identifier,
+ const gchar *imsi,
+ const gchar *operator_identifier,
+ const gchar *operator_name,
+ const GStrv emergency_numbers)
+{
+ MMBaseSim *sim;
+
+ sim = MM_BASE_SIM (g_object_new (MM_TYPE_SIM_QMI,
+ MM_BASE_SIM_MODEM, modem,
+ MM_SIM_QMI_DMS_UIM_DEPRECATED, dms_uim_deprecated,
+ MM_BASE_SIM_SLOT_NUMBER, slot_number,
+ "active", active,
+ "sim-identifier", sim_identifier,
+ "imsi", imsi,
+ "operator-identifier", operator_identifier,
+ "operator-name", operator_name,
+ "emergency-numbers", emergency_numbers,
+ NULL));
+
+ mm_base_sim_export (sim);
+ return sim;
+}
+
+/*****************************************************************************/
+
static void
mm_sim_qmi_init (MMSimQmi *self)
{
diff --git a/src/mm-sim-qmi.h b/src/mm-sim-qmi.h
index 20954444..c47891c4 100644
--- a/src/mm-sim-qmi.h
+++ b/src/mm-sim-qmi.h
@@ -53,4 +53,14 @@ void mm_sim_qmi_new (MMBaseModem *modem,
MMBaseSim *mm_sim_qmi_new_finish (GAsyncResult *res,
GError **error);
+MMBaseSim *mm_sim_qmi_new_initialized (MMBaseModem *modem,
+ gboolean dms_uim_deprecated,
+ guint slot_number,
+ gboolean active,
+ const gchar *sim_identifier,
+ const gchar *imsi,
+ const gchar *operator_identifier,
+ const gchar *operator_name,
+ const GStrv emergency_numbers);
+
#endif /* MM_SIM_QMI_H */