summaryrefslogtreecommitdiff
path: root/src/utils.vala
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);
}
}