diff options
author | Bastien Nocera <hadess@hadess.net> | 2013-10-14 14:33:54 +0200 |
---|---|---|
committer | Bastien Nocera <hadess@hadess.net> | 2013-10-14 14:38:32 +0200 |
commit | b446cac8f697fb1417f8d07190f95fa40b690260 (patch) | |
tree | b1646d59e3fc1a4265490bdd681d749bb0bab723 /src | |
parent | 77c3278ff525edf30e2e7adb417a8944b59ccefa (diff) | |
download | upower-b446cac8f697fb1417f8d07190f95fa40b690260.tar.gz |
daemon: Add new WarningLevel "Discharging"
When UPSes are discharging, we should have a warning already, as
it means that mains power has been lost to the UPS (though not
to the computer).
Diffstat (limited to 'src')
-rw-r--r-- | src/org.freedesktop.UPower.Device.xml | 9 | ||||
-rw-r--r-- | src/up-daemon.c | 7 |
2 files changed, 11 insertions, 5 deletions
diff --git a/src/org.freedesktop.UPower.Device.xml b/src/org.freedesktop.UPower.Device.xml index bbbe20d..d825c4b 100644 --- a/src/org.freedesktop.UPower.Device.xml +++ b/src/org.freedesktop.UPower.Device.xml @@ -698,13 +698,16 @@ method return sender=:1.386 -> dest=:1.477 reply_serial=2 <doc:term>1</doc:term><doc:definition>None</doc:definition> </doc:item> <doc:item> - <doc:term>2</doc:term><doc:definition>Low</doc:definition> + <doc:term>2</doc:term><doc:definition>Discharging (only for UPSes)</doc:definition> </doc:item> <doc:item> - <doc:term>3</doc:term><doc:definition>Critical</doc:definition> + <doc:term>3</doc:term><doc:definition>Low</doc:definition> </doc:item> <doc:item> - <doc:term>4</doc:term><doc:definition>Action</doc:definition> + <doc:term>4</doc:term><doc:definition>Critical</doc:definition> + </doc:item> + <doc:item> + <doc:term>5</doc:term><doc:definition>Action</doc:definition> </doc:item> </doc:list> </doc:description> diff --git a/src/up-daemon.c b/src/up-daemon.c index 2018a91..ce1d5c5 100644 --- a/src/up-daemon.c +++ b/src/up-daemon.c @@ -551,6 +551,7 @@ up_daemon_compute_warning_level (UpDaemon *daemon, gint64 time_to_empty) { gboolean use_percentage = TRUE; + UpDeviceLevel default_level = UP_DEVICE_LEVEL_NONE; if (state != UP_DEVICE_STATE_DISCHARGING) return UP_DEVICE_LEVEL_NONE; @@ -566,6 +567,8 @@ up_daemon_compute_warning_level (UpDaemon *daemon, return UP_DEVICE_LEVEL_LOW; else return UP_DEVICE_LEVEL_NONE; + } else if (kind == UP_DEVICE_KIND_UPS) { + default_level = UP_DEVICE_LEVEL_DISCHARGING; } if (!power_supply || !daemon->priv->use_percentage_for_policy) @@ -573,7 +576,7 @@ up_daemon_compute_warning_level (UpDaemon *daemon, if (use_percentage) { if (percentage > daemon->priv->low_percentage) - return UP_DEVICE_LEVEL_NONE; + return default_level; if (percentage > daemon->priv->critical_percentage) return UP_DEVICE_LEVEL_LOW; if (percentage > daemon->priv->action_percentage) @@ -581,7 +584,7 @@ up_daemon_compute_warning_level (UpDaemon *daemon, return UP_DEVICE_LEVEL_ACTION; } else { if (time_to_empty > daemon->priv->low_time) - return UP_DEVICE_LEVEL_NONE; + return default_level; if (time_to_empty > daemon->priv->critical_time) return UP_DEVICE_LEVEL_LOW; if (time_to_empty > daemon->priv->action_time) |