summaryrefslogtreecommitdiff
path: root/src/linux/up-backend.c
diff options
context:
space:
mode:
authorRichard Hughes <richard@hughsie.com>2011-03-03 14:02:27 +0000
committerRichard Hughes <richard@hughsie.com>2011-03-03 14:02:27 +0000
commit38199e44ff1e87b586d51d30b69d1f70e40d27f1 (patch)
treedbd1202d6d4609350d8a7c1d09b26256a164ce7c /src/linux/up-backend.c
parent11301ae3d65bf28f97fb8c290b0f9e446658e824 (diff)
Add an option for polling dock devices in UPower.conf, defaulting to false
Diffstat (limited to 'src/linux/up-backend.c')
-rw-r--r--src/linux/up-backend.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/linux/up-backend.c b/src/linux/up-backend.c
index c671d2d..069ca9b 100644
--- a/src/linux/up-backend.c
+++ b/src/linux/up-backend.c
@@ -284,6 +284,38 @@ up_backend_uevent_signal_handler_cb (GUdevClient *client, const gchar *action,
}
/**
+ * up_backend_should_poll_docks:
+ **/
+static gboolean
+up_backend_should_poll_docks (void)
+{
+ gboolean ret;
+ GKeyFile *keyfile;
+ GError *error = NULL;
+
+ /* get the settings from the config file */
+ keyfile = g_key_file_new ();
+ ret = g_key_file_load_from_file (keyfile,
+ PACKAGE_SYSCONF_DIR "/UPower/UPower.conf",
+ G_KEY_FILE_NONE,
+ &error);
+ if (!ret) {
+ g_error ("Failed to get poll setting, assuming FALSE: %s",
+ error->message);
+ g_error_free (error);
+ goto out;
+ }
+ ret = g_key_file_get_boolean (keyfile,
+ "UPower",
+ "PollDockDevices",
+ NULL);
+ g_debug ("Polling docks: %s", ret ? "YES" : "NO");
+out:
+ g_key_file_free (keyfile);
+ return ret;
+}
+
+/**
* up_backend_coldplug:
* @backend: The %UpBackend class instance
* @daemon: The %UpDaemon controlling instance
@@ -323,6 +355,8 @@ up_backend_coldplug (UpBackend *backend, UpDaemon *daemon)
/* add dock update object */
backend->priv->dock = up_dock_new ();
+ ret = up_backend_should_poll_docks ();
+ up_dock_set_should_poll (backend->priv->dock, ret);
ret = up_dock_coldplug (backend->priv->dock, daemon);
if (!ret)
g_warning ("failed to coldplug dock devices");