static void device_support_check_ready (MMPluginManager *plugin_manager, GAsyncResult *res, FindDeviceSupportContext *ctx) { GError *error = NULL; MMPlugin *plugin; /* Receive plugin result from the plugin manager */ plugin = mm_plugin_manager_device_support_check_finish (plugin_manager, res, &error); if (!plugin) { mm_info ("Couldn't check support for device at '%s': %s", mm_device_get_path (ctx->device), error->message); g_error_free (error); find_device_support_context_free (ctx); return; } /* Set the plugin as the one expected in the device */ mm_device_set_plugin (ctx->device, G_OBJECT (plugin)); g_object_unref (plugin); if (!mm_device_create_modem (ctx->device, ctx->self->priv->object_manager, &error)) { mm_warn ("Couldn't create modem for device at '%s': %s", mm_device_get_path (ctx->device), error->message); g_error_free (error); find_device_support_context_free (ctx); return; } /* Modem now created */ mm_info ("Modem for device at '%s' successfully created", mm_device_get_path (ctx->device)); find_device_support_context_free (ctx); }
static void find_device_support_ready (MMPluginManager *plugin_manager, GAsyncResult *result, FindDeviceSupportContext *ctx) { GError *error = NULL; if (!mm_plugin_manager_find_device_support_finish (plugin_manager, result, &error)) { mm_warn ("Couldn't find support for device at '%s': %s", mm_device_get_path (ctx->device), error->message); g_error_free (error); } else if (!mm_device_create_modem (ctx->device, ctx->self->priv->object_manager, &error)) { mm_warn ("Couldn't create modem for device at '%s': %s", mm_device_get_path (ctx->device), error->message); g_error_free (error); } else { mm_info ("Modem for device at '%s' successfully created", mm_device_get_path (ctx->device)); } find_device_support_context_free (ctx); }