diff options
Diffstat (limited to 'battery/src/device.vala')
-rw-r--r-- | battery/src/device.vala | 296 |
1 files changed, 0 insertions, 296 deletions
diff --git a/battery/src/device.vala b/battery/src/device.vala deleted file mode 100644 index eab3770..0000000 --- a/battery/src/device.vala +++ /dev/null @@ -1,296 +0,0 @@ -namespace AstalBattery { -public Device get_default() { - return Device.get_default(); -} - -public class Device : Object { - private static Device display_device; - public static Device? get_default() { - if (display_device != null) - return display_device; - - try { - display_device = new Device("/org/freedesktop/UPower/devices/DisplayDevice"); - - return display_device; - } catch (Error error) { - critical(error.message); - } - return null; - } - - private IUPowerDevice proxy; - - public Device(string path) throws Error { - proxy = Bus.get_proxy_sync(BusType.SYSTEM, "org.freedesktop.UPower", path); - proxy.g_properties_changed.connect(sync); - sync(); - } - - public Type device_type { get; private set; } - public string native_path { owned get; private set; } - public string vendor { owned get; private set; } - public string model { owned get; private set; } - public string serial { owned get; private set; } - public uint64 update_time { get; private set; } - public bool power_supply { get; private set; } - public bool has_history { get; private set; } - public bool has_statistics { get; private set; } - public bool online { get; private set; } - public double energy { get; private set; } - public double energy_empty { get; private set; } - public double energy_full { get; private set; } - public double energy_full_design { get; private set; } - public double energy_rate { get; private set; } - public double voltage { get; private set; } - public int charge_cycles { get; private set; } - public double luminosity { get; private set; } - public int64 time_to_empty { get; private set; } - public int64 time_to_full { get; private set;} - public double percentage { get; private set; } - public double temperature { get; private set; } - public bool is_present { get; private set; } - public State state { get; private set; } - public bool is_rechargable { get; private set; } - public double capacity { get; private set; } - public Technology technology { get; private set; } - public WarningLevel warning_level { get; private set; } - public BatteryLevel battery_level { get; private set; } - public string icon_name { owned get; private set; } - - public bool charging { get; private set; } - public bool is_battery { get; private set; } - public string battery_icon_name { get; private set; } - public string device_type_name { get; private set; } - public string device_type_icon { get; private set; } - - private unowned string get_battery_icon() { - if (percentage <= 0) - return "battery-good"; - - if (percentage < 0.10) - return "battery-empty"; - - if (percentage < 0.37) - return "battery-caution"; - - if (percentage < 0.62) - return "battery-low"; - - if (percentage < 0.87) - return "battery-good"; - - return "battery-full"; - } - - - public void sync() { - device_type = (Type)proxy.Type; - native_path = proxy.native_path; - vendor = proxy.vendor; - model = proxy.model; - serial = proxy.serial; - update_time = proxy.update_time; - power_supply = proxy.power_supply; - has_history = proxy.has_history; - has_statistics = proxy.has_statistics; - online = proxy.online; - energy = proxy.energy; - energy_empty = proxy.energy_empty; - energy_full = proxy.energy_full; - energy_full_design = proxy.energy_full_design; - energy_rate = proxy.energy_rate; - voltage = proxy.voltage; - charge_cycles = proxy.charge_cycles; - luminosity = proxy.luminosity; - time_to_empty = proxy.time_to_empty; - time_to_full = proxy.time_to_full; - percentage = proxy.percentage / 100; - temperature = proxy.temperature; - is_present = proxy.is_present; - state = (State)proxy.state; - is_rechargable = proxy.is_rechargable; - capacity = proxy.capacity; - technology = (Technology)proxy.technology; - warning_level = (WarningLevel)proxy.warning_level; - battery_level = (BatteryLevel)proxy.battery_level; - icon_name = proxy.icon_name; - - charging = state == State.FULLY_CHARGED || state == State.CHARGING; - is_battery = device_type != Type.UNKNOWN && device_type != Type.LINE_POWER; - - if (!is_battery) - battery_icon_name = "preferences-system-power"; - else if (percentage == 1.0 && charging) - battery_icon_name = "battery-full-charged"; - else - battery_icon_name = charging ? get_battery_icon() + "-charging" : get_battery_icon(); - - device_type_name = device_type.get_name(); - device_type_icon = device_type.get_icon_name(); - } -} - -[CCode (type_signature = "u")] -public enum State { - UNKNOWN = 0, - CHARGING, - DISCHARGING, - EMPTY, - FULLY_CHARGED, - PENDING_CHARGE, - PENDING_DISCHARGE, -} - -[CCode (type_signature = "u")] -public enum Technology { - UNKNOWN = 0, - LITHIUM_ION, - LITHIUM_POLYMER, - LITHIUM_IRON_PHOSPHATE, - LEAD_ACID, - NICKEL_CADMIUM, - NICKEL_METAL_HYDRIDE, -} - -[CCode (type_signature = "u")] -public enum WarningLevel { - UNKNOWN = 0, - NONE, - DISCHARGING, - LOW, - CRITICIAL, - ACTION, -} - -[CCode (type_signature = "u")] -public enum BatteryLevel { - UNKNOWN = 0, - NONE, - LOW, - CRITICIAL, - NORMAL, - HIGH, - FULL, -} - -[CCode (type_signature = "u")] -public enum Type { - UNKNOWN = 0, - LINE_POWER, - BATTERY, - UPS, - MONITOR, - MOUSE, - KEYBOARD, - PDA, - PHONE, - MEDIA_PLAYER, - TABLET, - COMPUTER, - GAMING_INPUT, - PEN, - TOUCHPAD, - MODEM, - NETWORK, - HEADSET, - SPEAKERS, - HEADPHONES, - VIDEO, - OTHER_AUDIO, - REMOVE_CONTROL, - PRINTER, - SCANNER, - CAMERA, - WEARABLE, - TOY, - BLUETOOTH_GENERIC; - - // TODO: add more icon names - public string? get_icon_name () { - switch (this) { - case UPS: - return "uninterruptible-power-supply"; - case MOUSE: - return "input-mouse"; - case KEYBOARD: - return "input-keyboard"; - case PDA: - case PHONE: - return "phone"; - case MEDIA_PLAYER: - return "multimedia-player"; - case TABLET: - case PEN: - return "input-tablet"; - case GAMING_INPUT: - return "input-gaming"; - default: - return null; - } - } - - public unowned string? get_name () { - switch (this) { - case LINE_POWER: - return "Plugged In"; - case BATTERY: - return "Battery"; - case UPS: - return "UPS"; - case MONITOR: - return "Display"; - case MOUSE: - return "Mouse"; - case KEYBOARD: - return "Keyboard"; - case PDA: - return "PDA"; - case PHONE: - return "Phone"; - case MEDIA_PLAYER: - return "Media Player"; - case TABLET: - return "Tablet"; - case COMPUTER: - return "Computer"; - case GAMING_INPUT: - return "Controller"; - case PEN: - return "Pen"; - case TOUCHPAD: - return "Touchpad"; - case MODEM: - return "Modem"; - case NETWORK: - return "Network"; - case HEADSET: - return "Headset"; - case SPEAKERS: - return "Speakers"; - case HEADPHONES: - return "Headphones"; - case VIDEO: - return "Video"; - case OTHER_AUDIO: - return "Other Audio"; - case REMOVE_CONTROL: - return "Remove Control"; - case PRINTER: - return "Printer"; - case SCANNER: - return "Scanner"; - case CAMERA: - return "Camera"; - case WEARABLE: - return "Wearable"; - case TOY: - return "Toy"; - case BLUETOOTH_GENERIC: - return "Bluetooth Generic"; - default: - return "Unknown"; - } - } -} -} |