diff options
author | Bastien Nocera <hadess@hadess.net> | 2013-10-11 14:29:04 +0200 |
---|---|---|
committer | Bastien Nocera <hadess@hadess.net> | 2013-10-14 10:42:56 +0200 |
commit | de749a332b8b659ca9ec33103110cf64e43b5109 (patch) | |
tree | 57729bd0480071d063d0028e5897a5b5db10af52 /src/up-daemon.c | |
parent | 68aca3a7e7dbbbeab9d6728b1c3d42fa2fdb1538 (diff) | |
download | upower-de749a332b8b659ca9ec33103110cf64e43b5109.tar.gz |
daemon: Add WarningLevel device property
Diffstat (limited to 'src/up-daemon.c')
-rw-r--r-- | src/up-daemon.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/up-daemon.c b/src/up-daemon.c index c57c797..2da05b9 100644 --- a/src/up-daemon.c +++ b/src/up-daemon.c @@ -437,6 +437,37 @@ up_daemon_set_on_low_battery (UpDaemon *daemon, gboolean on_low_battery) g_object_notify (G_OBJECT (daemon), "on-low-battery"); } +UpDeviceLevel +up_daemon_compute_warning_level(UpDaemon *daemon, + gboolean power_supply, + gdouble percentage, + gint64 time_to_empty) +{ + gboolean use_percentage = TRUE; + + if (!power_supply || !daemon->priv->use_percentage_for_policy) + use_percentage = FALSE; + + if (use_percentage) { + if (percentage > daemon->priv->low_percentage) + return UP_DEVICE_LEVEL_NONE; + if (percentage > daemon->priv->critical_percentage) + return UP_DEVICE_LEVEL_LOW; + if (percentage > daemon->priv->action_percentage) + return UP_DEVICE_LEVEL_CRITICAL; + return UP_DEVICE_LEVEL_ACTION; + } else { + if (time_to_empty > daemon->priv->low_time) + return UP_DEVICE_LEVEL_NONE; + if (time_to_empty > daemon->priv->critical_time) + return UP_DEVICE_LEVEL_LOW; + if (time_to_empty > daemon->priv->action_time) + return UP_DEVICE_LEVEL_CRITICAL; + return UP_DEVICE_LEVEL_ACTION; + } + g_assert_not_reached (); +} + /** * up_daemon_refresh_battery_devices_cb: **/ |