summaryrefslogtreecommitdiff
path: root/src/openbsd
diff options
context:
space:
mode:
authorLandry Breuil <landry@rhaalovely.net>2011-02-27 22:56:47 +0100
committerRichard Hughes <richard@hughsie.com>2011-03-21 18:38:56 +0000
commit6b32cea9c3d23df205cf88cee7fdcd2bbb41707e (patch)
tree9d655cfc4eb2f0e379d5bae399e017e14c8820e7 /src/openbsd
parent5e36534edfd499742f5ab1b9d6b0c66c606a431b (diff)
downloadupower-6b32cea9c3d23df205cf88cee7fdcd2bbb41707e.tar.gz
openbsd: do a delayed add for device coldplugging, and emit device-added signal
Signed-off-by: Richard Hughes <richard@hughsie.com>
Diffstat (limited to 'src/openbsd')
-rw-r--r--src/openbsd/up-backend.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/openbsd/up-backend.c b/src/openbsd/up-backend.c
index e4f144f..f9505c2 100644
--- a/src/openbsd/up-backend.c
+++ b/src/openbsd/up-backend.c
@@ -42,6 +42,21 @@ static guint signals [SIGNAL_LAST] = { 0 };
G_DEFINE_TYPE (UpBackend, up_backend, G_TYPE_OBJECT)
/**
+ * up_backend_add_cb:
+ **/
+static gboolean
+up_backend_add_cb (UpBackend *backend)
+{
+ /* coldplug */
+ if (!up_device_coldplug (backend->priv->device, backend->priv->daemon, backend->priv->native))
+ g_warning ("failed to coldplug");
+ /* emit */
+ else
+ g_signal_emit (backend, signals[SIGNAL_DEVICE_ADDED], 0, backend->priv->native, backend->priv->device);
+ return FALSE;
+}
+
+/**
* functions called by upower daemon
**/
@@ -60,6 +75,9 @@ up_backend_coldplug (UpBackend *backend, UpDaemon *daemon)
{
backend->priv->daemon = g_object_ref (daemon);
backend->priv->device_list = up_daemon_get_device_list (daemon);
+ /* small delay until first device is added */
+ g_timeout_add_seconds (1, (GSourceFunc) up_backend_add_cb, backend);
+
return TRUE;
}