blob: de22f18d580992154dec34fae3c59f3161372366 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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);
}
}
|