diff options
author | Richard Hughes <richard@hughsie.com> | 2011-01-04 17:01:59 +0000 |
---|---|---|
committer | Richard Hughes <richard@hughsie.com> | 2011-01-04 17:01:59 +0000 |
commit | c507b516d47b5eb8b3084efb93b71aaaa92a78c1 (patch) | |
tree | 116c6fa348fc03376d2d676f9a44b42de147e828 /src | |
parent | 2af7a6e091bb62faff9cdda5bb7e3fb5dcc8d15a (diff) |
Add an IsDocked binary property to the main interface
Diffstat (limited to 'src')
-rw-r--r-- | src/org.freedesktop.UPower.xml | 12 | ||||
-rw-r--r-- | src/up-daemon.c | 26 | ||||
-rw-r--r-- | src/up-daemon.h | 2 |
3 files changed, 40 insertions, 0 deletions
diff --git a/src/org.freedesktop.UPower.xml b/src/org.freedesktop.UPower.xml index 5a5fe57..6cb636d 100644 --- a/src/org.freedesktop.UPower.xml +++ b/src/org.freedesktop.UPower.xml @@ -304,6 +304,18 @@ method return sender=:1.386 -> dest=:1.451 reply_serial=2 </doc:doc> </property> + <property name="IsDocked" type="b" access="read"> + <doc:doc> + <doc:description> + <doc:para> + If the system is currently docked. + Note: the "is-docked" value is the result of a heuristic, + which may involve testing the display output. + </doc:para> + </doc:description> + </doc:doc> + </property> + </interface> </node> diff --git a/src/up-daemon.c b/src/up-daemon.c index 4587649..dbdb488 100644 --- a/src/up-daemon.c +++ b/src/up-daemon.c @@ -51,6 +51,7 @@ enum PROP_ON_LOW_BATTERY, PROP_LID_IS_CLOSED, PROP_LID_IS_PRESENT, + PROP_IS_DOCKED, PROP_LAST }; @@ -78,6 +79,7 @@ struct UpDaemonPrivate gboolean on_low_battery; gboolean lid_is_closed; gboolean lid_is_present; + gboolean is_docked; gboolean kernel_can_suspend; gboolean kernel_can_hibernate; gboolean hibernate_has_encrypted_swap; @@ -773,6 +775,18 @@ up_daemon_set_lid_is_present (UpDaemon *daemon, gboolean lid_is_present) } /** + * up_daemon_set_is_docked: + **/ +void +up_daemon_set_is_docked (UpDaemon *daemon, gboolean is_docked) +{ + UpDaemonPrivate *priv = daemon->priv; + g_debug ("is_docked = %s", is_docked ? "yes" : "no"); + priv->is_docked = is_docked; + g_object_notify (G_OBJECT (daemon), "is-docked"); +} + +/** * up_daemon_set_on_battery: **/ void @@ -1001,6 +1015,7 @@ up_daemon_init (UpDaemon *daemon) daemon->priv = UP_DAEMON_GET_PRIVATE (daemon); daemon->priv->polkit = up_polkit_new (); daemon->priv->lid_is_present = FALSE; + daemon->priv->is_docked = FALSE; daemon->priv->lid_is_closed = FALSE; daemon->priv->kernel_can_suspend = FALSE; daemon->priv->kernel_can_hibernate = FALSE; @@ -1135,6 +1150,9 @@ up_daemon_get_property (GObject *object, guint prop_id, GValue *value, GParamSpe case PROP_LID_IS_PRESENT: g_value_set_boolean (value, priv->lid_is_present); break; + case PROP_IS_DOCKED: + g_value_set_boolean (value, priv->is_docked); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -1232,6 +1250,14 @@ up_daemon_class_init (UpDaemonClass *klass) G_PARAM_READABLE)); g_object_class_install_property (object_class, + PROP_IS_DOCKED, + g_param_spec_boolean ("is-docked", + "Is docked", + "If this computer is docked", + FALSE, + G_PARAM_READABLE)); + + g_object_class_install_property (object_class, PROP_CAN_SUSPEND, g_param_spec_boolean ("can-suspend", "Can Suspend", diff --git a/src/up-daemon.h b/src/up-daemon.h index e240d1e..4d92b19 100644 --- a/src/up-daemon.h +++ b/src/up-daemon.h @@ -77,6 +77,8 @@ void up_daemon_set_lid_is_closed (UpDaemon *daemon, gboolean lid_is_closed); void up_daemon_set_lid_is_present (UpDaemon *daemon, gboolean lid_is_present); +void up_daemon_set_is_docked (UpDaemon *daemon, + gboolean is_docked); void up_daemon_set_on_battery (UpDaemon *daemon, gboolean on_battery); void up_daemon_set_on_low_battery (UpDaemon *daemon, |