aboutsummaryrefslogtreecommitdiff
path: root/libmm-glib/mm-common-helpers.c
diff options
context:
space:
mode:
Diffstat (limited to 'libmm-glib/mm-common-helpers.c')
-rw-r--r--libmm-glib/mm-common-helpers.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/libmm-glib/mm-common-helpers.c b/libmm-glib/mm-common-helpers.c
index 11d0640c..8c3415ff 100644
--- a/libmm-glib/mm-common-helpers.c
+++ b/libmm-glib/mm-common-helpers.c
@@ -728,6 +728,33 @@ mm_common_ports_garray_to_variant (GArray *array)
return mm_common_ports_array_to_variant (NULL, 0);
}
+gboolean
+mm_common_ports_garray_to_array (GArray *array,
+ MMModemPortInfo **ports,
+ guint *n_ports)
+{
+ if (!array)
+ return FALSE;
+
+ *ports = NULL;
+ *n_ports = array->len;
+ if (array->len > 0) {
+ guint i;
+
+ *ports = g_malloc (sizeof (MMModemPortInfo) * array->len);
+
+ /* Deep-copy the array */
+ for (i = 0; i < array->len; i++) {
+ MMModemPortInfo *src;
+
+ src = &g_array_index (array, MMModemPortInfo, i);
+ (*ports)[i].name = g_strdup (src->name);
+ (*ports)[i].type = src->type;
+ }
+ }
+ return TRUE;
+}
+
/******************************************************************************/
/* MMSmsStorage array management */