summaryrefslogtreecommitdiff
path: root/libupower-glib
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2013-10-11 11:20:37 +0200
committerBastien Nocera <hadess@hadess.net>2013-10-14 10:42:56 +0200
commit5423adab8902eb22ebebcb60c8b4223ef5d7f3eb (patch)
tree8c4f9db74676952b4c0a10000c7aed17906dad43 /libupower-glib
parent4a5d12a9093044b348f76b63c78b531d4fdf9d2b (diff)
downloadupower-5423adab8902eb22ebebcb60c8b4223ef5d7f3eb.tar.gz
lib: Add UpDeviceLevel enum
Diffstat (limited to 'libupower-glib')
-rw-r--r--libupower-glib/up-types.c56
-rw-r--r--libupower-glib/up-types.h17
2 files changed, 72 insertions, 1 deletions
diff --git a/libupower-glib/up-types.c b/libupower-glib/up-types.c
index c7d6e1c..db0aa68 100644
--- a/libupower-glib/up-types.c
+++ b/libupower-glib/up-types.c
@@ -232,3 +232,59 @@ up_device_technology_from_string (const gchar *technology)
return UP_DEVICE_TECHNOLOGY_NICKEL_METAL_HYDRIDE;
return UP_DEVICE_TECHNOLOGY_UNKNOWN;
}
+
+/**
+ * up_device_level_to_string:
+ *
+ * Converts a #UpDeviceLevel to a string.
+ *
+ * Return value: identifier string
+ *
+ * Since: 1.0
+ **/
+const gchar *
+up_device_level_to_string (UpDeviceLevel level_enum)
+{
+ switch (level_enum) {
+ case UP_DEVICE_LEVEL_UNKNOWN:
+ return "unknown";
+ case UP_DEVICE_LEVEL_NONE:
+ return "none";
+ case UP_DEVICE_LEVEL_LOW:
+ return "low";
+ case UP_DEVICE_LEVEL_CRITICAL:
+ return "critical";
+ case UP_DEVICE_LEVEL_ACTION:
+ return "action";
+ default:
+ return "unknown";
+ }
+ g_assert_not_reached ();
+}
+
+/**
+ * up_device_level_from_string:
+ *
+ * Converts a string to a #UpDeviceLevel.
+ *
+ * Return value: enumerated value
+ *
+ * Since: 1.0
+ **/
+UpDeviceLevel
+up_device_level_from_string (const gchar *level)
+{
+ if (level == NULL)
+ return UP_DEVICE_LEVEL_UNKNOWN;
+ if (g_strcmp0 (level, "unknown") == 0)
+ return UP_DEVICE_LEVEL_UNKNOWN;
+ if (g_strcmp0 (level, "none") == 0)
+ return UP_DEVICE_LEVEL_NONE;
+ if (g_strcmp0 (level, "low") == 0)
+ return UP_DEVICE_LEVEL_LOW;
+ if (g_strcmp0 (level, "critical") == 0)
+ return UP_DEVICE_LEVEL_CRITICAL;
+ if (g_strcmp0 (level, "action") == 0)
+ return UP_DEVICE_LEVEL_ACTION;
+ return UP_DEVICE_LEVEL_UNKNOWN;
+}
diff --git a/libupower-glib/up-types.h b/libupower-glib/up-types.h
index e503f49..0a175bc 100644
--- a/libupower-glib/up-types.h
+++ b/libupower-glib/up-types.h
@@ -83,13 +83,28 @@ typedef enum {
UP_DEVICE_TECHNOLOGY_LAST
} UpDeviceTechnology;
+/**
+ * UpDeviceLevel:
+ *
+ * The warning level of a battery.
+ **/
+typedef enum {
+ UP_DEVICE_LEVEL_UNKNOWN,
+ UP_DEVICE_LEVEL_NONE,
+ UP_DEVICE_LEVEL_LOW,
+ UP_DEVICE_LEVEL_CRITICAL,
+ UP_DEVICE_LEVEL_ACTION,
+ UP_DEVICE_LEVEL_LAST
+} UpDeviceLevel;
+
const gchar *up_device_kind_to_string (UpDeviceKind type_enum);
const gchar *up_device_state_to_string (UpDeviceState state_enum);
const gchar *up_device_technology_to_string (UpDeviceTechnology technology_enum);
+const gchar *up_device_level_to_string (UpDeviceLevel level_enum);
UpDeviceKind up_device_kind_from_string (const gchar *type);
UpDeviceState up_device_state_from_string (const gchar *state);
UpDeviceTechnology up_device_technology_from_string (const gchar *technology);
-
+UpDeviceLevel up_device_level_from_string (const gchar *level);
G_END_DECLS