summaryrefslogtreecommitdiff
path: root/libupower-glib/up-types.c
diff options
context:
space:
mode:
Diffstat (limited to 'libupower-glib/up-types.c')
-rw-r--r--libupower-glib/up-types.c56
1 files changed, 56 insertions, 0 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;
+}