diff options
author | Landry Breuil <landry@rhaalovely.net> | 2011-02-27 22:56:47 +0100 |
---|---|---|
committer | Richard Hughes <richard@hughsie.com> | 2011-03-21 18:38:56 +0000 |
commit | 6b32cea9c3d23df205cf88cee7fdcd2bbb41707e (patch) | |
tree | 9d655cfc4eb2f0e379d5bae399e017e14c8820e7 /src/openbsd | |
parent | 5e36534edfd499742f5ab1b9d6b0c66c606a431b (diff) | |
download | upower-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.c | 18 |
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; } |