diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2013-11-15 19:06:58 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2013-11-21 10:50:49 +0100 |
commit | 7f442b777c6fe7fd71f4f9022121752dabad5cdd (patch) | |
tree | d77ebb9ffa37c6abb549c85806b30bc4e1a73045 /src/mm-iface-modem.c | |
parent | c21709b32e1af46f1764888a03b21fd747db7da1 (diff) |
introspection,api: new 'Bearers' property in the Modem interface
https://bugzilla.gnome.org/show_bug.cgi?id=712276
Diffstat (limited to 'src/mm-iface-modem.c')
-rw-r--r-- | src/mm-iface-modem.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/mm-iface-modem.c b/src/mm-iface-modem.c index 0a3f096a..838e8ec2 100644 --- a/src/mm-iface-modem.c +++ b/src/mm-iface-modem.c @@ -347,6 +347,29 @@ internal_load_unlock_required (MMIfaceModem *self, /*****************************************************************************/ +static void +bearer_list_updated (MMBearerList *bearer_list, + GParamSpec *pspec, + MMIfaceModem *self) +{ + MmGdbusModem *skeleton; + gchar **paths; + + g_object_get (self, + MM_IFACE_MODEM_DBUS_SKELETON, &skeleton, + NULL); + if (!skeleton) + return; + + paths = mm_bearer_list_get_paths (bearer_list); + mm_gdbus_modem_set_bearers (skeleton, (const gchar *const *)paths); + g_strfreev (paths); + + g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (skeleton)); +} + +/*****************************************************************************/ + static MMModemState get_current_consolidated_state (MMIfaceModem *self, MMModemState modem_state); typedef struct { @@ -4209,6 +4232,10 @@ interface_initialization_step (InitializationContext *ctx) /* Create new default list */ list = mm_bearer_list_new (n, n); + g_signal_connect (list, + "notify::" MM_BEARER_LIST_NUM_BEARERS, + G_CALLBACK (bearer_list_updated), + ctx->self); g_object_set (ctx->self, MM_IFACE_MODEM_BEARER_LIST, list, NULL); |