diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2011-11-22 17:33:47 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2012-03-15 14:14:22 +0100 |
commit | 88e6b0e4e64e87ea371e8dec5f1889254f220a56 (patch) | |
tree | be58b267f4e8603df05e12553263ad8d581cb8ad /src | |
parent | 9e7cd2a3450a56bd3af99e7d22146c66189774e2 (diff) |
iface-modem: set `Device', `Driver' and `Plugin' during init
Values taken from the MMBaseModem object, which are not expected to change
during the lifetime of the Modem object.
Diffstat (limited to 'src')
-rw-r--r-- | src/mm-iface-modem.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/mm-iface-modem.c b/src/mm-iface-modem.c index 5c1499d6..6acf8ee3 100644 --- a/src/mm-iface-modem.c +++ b/src/mm-iface-modem.c @@ -163,6 +163,36 @@ interface_initialization_step (InitializationContext *ctx) { switch (ctx->step) { case INITIALIZATION_STEP_FIRST: { + /* Load device if not done before */ + if (!mm_gdbus_modem_get_device (ctx->skeleton)) { + gchar *device; + + g_object_get (ctx->self, + MM_BASE_MODEM_DEVICE, &device, + NULL); + mm_gdbus_modem_set_device (ctx->skeleton, device); + g_free (device); + } + /* Load driver if not done before */ + if (!mm_gdbus_modem_get_driver (ctx->skeleton)) { + gchar *driver; + + g_object_get (ctx->self, + MM_BASE_MODEM_DRIVER, &driver, + NULL); + mm_gdbus_modem_set_driver (ctx->skeleton, driver); + g_free (driver); + } + /* Load plugin if not done before */ + if (!mm_gdbus_modem_get_plugin (ctx->skeleton)) { + gchar *plugin; + + g_object_get (ctx->self, + MM_BASE_MODEM_PLUGIN, &plugin, + NULL); + mm_gdbus_modem_set_plugin (ctx->skeleton, plugin); + g_free (plugin); + } break; } case INITIALIZATION_STEP_LAST: |