From 77c3278ff525edf30e2e7adb417a8944b59ccefa Mon Sep 17 00:00:00 2001 From: Bastien Nocera Date: Mon, 14 Oct 2013 14:27:48 +0200 Subject: daemon: Move all computations of warning level to daemon There's no reason why the state check should be done in the UpDevice implementation, and the state will be needed to add a new warning level for UPSes. --- src/up-daemon.c | 14 +++++++++----- src/up-daemon.h | 1 + src/up-device.c | 14 ++++++-------- 3 files changed, 16 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/up-daemon.c b/src/up-daemon.c index 9651999..2018a91 100644 --- a/src/up-daemon.c +++ b/src/up-daemon.c @@ -543,14 +543,18 @@ up_daemon_set_warning_level (UpDaemon *daemon, UpDeviceLevel warning_level) } UpDeviceLevel -up_daemon_compute_warning_level (UpDaemon *daemon, - UpDeviceKind kind, - gboolean power_supply, - gdouble percentage, - gint64 time_to_empty) +up_daemon_compute_warning_level (UpDaemon *daemon, + UpDeviceState state, + UpDeviceKind kind, + gboolean power_supply, + gdouble percentage, + gint64 time_to_empty) { gboolean use_percentage = TRUE; + if (state != UP_DEVICE_STATE_DISCHARGING) + return UP_DEVICE_LEVEL_NONE; + /* Keyboard and mice usually have a coarser * battery level, so this avoids falling directly * into critical (or off) before any warnings */ diff --git a/src/up-daemon.h b/src/up-daemon.h index 3bf7a19..19ca334 100644 --- a/src/up-daemon.h +++ b/src/up-daemon.h @@ -84,6 +84,7 @@ void up_daemon_set_on_battery (UpDaemon *daemon, void up_daemon_set_warning_level (UpDaemon *daemon, UpDeviceLevel warning_level); UpDeviceLevel up_daemon_compute_warning_level(UpDaemon *daemon, + UpDeviceState state, UpDeviceKind kind, gboolean power_supply, gdouble percentage, diff --git a/src/up-device.c b/src/up-device.c index c51e7d7..371dcb9 100644 --- a/src/up-device.c +++ b/src/up-device.c @@ -180,14 +180,12 @@ update_warning_level (UpDevice *device) { UpDeviceLevel warning_level; - if (device->priv->state != UP_DEVICE_STATE_DISCHARGING) - warning_level = UP_DEVICE_LEVEL_NONE; - else - warning_level = up_daemon_compute_warning_level (device->priv->daemon, - device->priv->type, - device->priv->power_supply, - device->priv->percentage, - device->priv->time_to_empty); + warning_level = up_daemon_compute_warning_level (device->priv->daemon, + device->priv->state, + device->priv->type, + device->priv->power_supply, + device->priv->percentage, + device->priv->time_to_empty); if (warning_level == device->priv->warning_level) return; -- cgit v1.2.1