diff options
Diffstat (limited to 'src/utils.vala')
-rw-r--r-- | src/utils.vala | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/utils.vala b/src/utils.vala new file mode 100644 index 0000000..de22f18 --- /dev/null +++ b/src/utils.vala @@ -0,0 +1,36 @@ +namespace AstalBattery{ +internal string pascal_to_kebab_case(string pascal) { + StringBuilder kebab = new StringBuilder(); + + for (int i = 0; i < pascal.length; i++) { + char c = pascal[i]; + if (c.isupper()) { + if (i != 0) + kebab.append_c('-'); + + kebab.append_c(c.tolower()); + } else { + kebab.append_c(c); + } + } + + return kebab.str; +} + +internal string to_json(AstalBattery.Device device) { + string s = "unknown"; + if (device.state == AstalBattery.DeviceState.CHARGING) + s = "charging"; + if (device.state == AstalBattery.DeviceState.DISCHARGING) + s = "discharging"; + if (device.state == AstalBattery.DeviceState.FULLY_CHARGED) + s = "fully_charged"; + + var p = device.percentage; + var i = device.icon_name; + var r = device.state == AstalBattery.DeviceState.CHARGING + ? device.time_to_full : device.time_to_empty; + + return "{ \"percentage\": %f, \"state\": \"%s\", \"icon_name\": \"%s\", \"time_remaining\": %f }".printf(p, s, i, r); +} +} |