aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mm-base-bearer.c6
-rw-r--r--src/mm-base-bearer.h9
-rw-r--r--src/mm-bearer-list.c16
-rw-r--r--src/mm-bearer-list.h8
4 files changed, 32 insertions, 7 deletions
diff --git a/src/mm-base-bearer.c b/src/mm-base-bearer.c
index 92c98af8..6798f8d1 100644
--- a/src/mm-base-bearer.c
+++ b/src/mm-base-bearer.c
@@ -1290,6 +1290,12 @@ mm_base_bearer_get_config (MMBaseBearer *self)
NULL);
}
+gint
+mm_base_bearer_get_profile_id (MMBaseBearer *self)
+{
+ return mm_gdbus_bearer_get_profile_id (MM_GDBUS_BEARER (self));
+}
+
/*****************************************************************************/
static void
diff --git a/src/mm-base-bearer.h b/src/mm-base-bearer.h
index 6ab58ac4..bef771b7 100644
--- a/src/mm-base-bearer.h
+++ b/src/mm-base-bearer.h
@@ -155,10 +155,11 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC (MMBaseBearer, g_object_unref)
void mm_base_bearer_export (MMBaseBearer *self);
-const gchar *mm_base_bearer_get_path (MMBaseBearer *self);
-MMBearerStatus mm_base_bearer_get_status (MMBaseBearer *self);
-MMBearerProperties *mm_base_bearer_peek_config (MMBaseBearer *self);
-MMBearerProperties *mm_base_bearer_get_config (MMBaseBearer *self);
+const gchar *mm_base_bearer_get_path (MMBaseBearer *self);
+MMBearerStatus mm_base_bearer_get_status (MMBaseBearer *self);
+MMBearerProperties *mm_base_bearer_peek_config (MMBaseBearer *self);
+MMBearerProperties *mm_base_bearer_get_config (MMBaseBearer *self);
+gint mm_base_bearer_get_profile_id (MMBaseBearer *self);
void mm_base_bearer_connect (MMBaseBearer *self,
GAsyncReadyCallback callback,
diff --git a/src/mm-bearer-list.c b/src/mm-bearer-list.c
index b0694588..71f3b9e3 100644
--- a/src/mm-bearer-list.c
+++ b/src/mm-bearer-list.c
@@ -155,6 +155,22 @@ mm_bearer_list_find_by_path (MMBearerList *self,
return NULL;
}
+MMBaseBearer *
+mm_bearer_list_find_by_profile_id (MMBearerList *self,
+ gint profile_id)
+{
+ GList *l;
+
+ g_assert (profile_id != MM_3GPP_PROFILE_ID_UNKNOWN);
+
+ for (l = self->priv->bearers; l; l = g_list_next (l)) {
+ if (mm_base_bearer_get_profile_id (MM_BASE_BEARER (l->data)) == profile_id)
+ return g_object_ref (l->data);
+ }
+
+ return NULL;
+}
+
/*****************************************************************************/
typedef struct {
diff --git a/src/mm-bearer-list.h b/src/mm-bearer-list.h
index 72fe24ff..40771f9a 100644
--- a/src/mm-bearer-list.h
+++ b/src/mm-bearer-list.h
@@ -70,10 +70,12 @@ void mm_bearer_list_foreach (MMBearerList *self,
MMBearerListForeachFunc func,
gpointer user_data);
-MMBaseBearer *mm_bearer_list_find_by_properties (MMBearerList *self,
+MMBaseBearer *mm_bearer_list_find_by_properties (MMBearerList *self,
MMBearerProperties *properties);
-MMBaseBearer *mm_bearer_list_find_by_path (MMBearerList *self,
- const gchar *path);
+MMBaseBearer *mm_bearer_list_find_by_path (MMBearerList *self,
+ const gchar *path);
+MMBaseBearer *mm_bearer_list_find_by_profile_id (MMBearerList *self,
+ gint profile_id);
void mm_bearer_list_disconnect_all_bearers (MMBearerList *self,
GAsyncReadyCallback callback,