lib: Add more members to UpDeviceLevel struct

Those levels will not be used to cover warning levels, but approximate
battery levels that devices can use, exported by the kernel as
POWER_SUPPLY_CAPACITY_LEVEL_* values.

See linux/power_supply.h

https://bugs.freedesktop.org/show_bug.cgi?id=100359
This commit is contained in:
Bastien Nocera 2017-04-04 18:16:10 +02:00
parent 6b14798281
commit 4f9230900b
3 changed files with 20 additions and 2 deletions

View file

@ -258,6 +258,12 @@ up_device_level_to_string (UpDeviceLevel level_enum)
return "critical";
case UP_DEVICE_LEVEL_ACTION:
return "action";
case UP_DEVICE_LEVEL_NORMAL:
return "normal";
case UP_DEVICE_LEVEL_HIGH:
return "high";
case UP_DEVICE_LEVEL_FULL:
return "full";
default:
return "unknown";
}
@ -290,5 +296,11 @@ up_device_level_from_string (const gchar *level)
return UP_DEVICE_LEVEL_CRITICAL;
if (g_strcmp0 (level, "action") == 0)
return UP_DEVICE_LEVEL_ACTION;
if (g_strcmp0 (level, "normal") == 0)
return UP_DEVICE_LEVEL_NORMAL;
if (g_strcmp0 (level, "high") == 0)
return UP_DEVICE_LEVEL_HIGH;
if (g_strcmp0 (level, "full") == 0)
return UP_DEVICE_LEVEL_FULL;
return UP_DEVICE_LEVEL_UNKNOWN;
}

View file

@ -86,7 +86,7 @@ typedef enum {
/**
* UpDeviceLevel:
*
* The warning level of a battery.
* The level of a battery.
**/
typedef enum {
UP_DEVICE_LEVEL_UNKNOWN,
@ -95,6 +95,9 @@ typedef enum {
UP_DEVICE_LEVEL_LOW,
UP_DEVICE_LEVEL_CRITICAL,
UP_DEVICE_LEVEL_ACTION,
UP_DEVICE_LEVEL_NORMAL,
UP_DEVICE_LEVEL_HIGH,
UP_DEVICE_LEVEL_FULL,
UP_DEVICE_LEVEL_LAST
} UpDeviceLevel;

View file

@ -63,7 +63,10 @@ UP_DISPLAY_OBJECT_PATH = '/org/freedesktop/UPower/devices/DisplayDevice'
UP_DEVICE_LEVEL_DISCHARGING,
UP_DEVICE_LEVEL_LOW,
UP_DEVICE_LEVEL_CRITICAL,
UP_DEVICE_LEVEL_ACTION) = (0, 1, 2, 3, 4, 5)
UP_DEVICE_LEVEL_ACTION,
UP_DEVICE_LEVEL_NORMAL,
UP_DEVICE_LEVEL_HIGH,
UP_DEVICE_LEVEL_FULL) = (0, 1, 2, 3, 4, 5, 6, 7, 8)
(UP_DEVICE_KIND_UNKNOWN,
UP_DEVICE_KIND_LINE_POWER,