public void Initialize() { // Set a sane default value for on_battery. Thus, if we don't find a working power manager // we assume we're not on battery. on_battery = false; try { BusG.Init(); if (Bus.System.NameHasOwner(DeviceKitPowerName)) { devicekit = Bus.System.GetObject <IDeviceKitPower> (DeviceKitPowerName, new ObjectPath(DeviceKitPowerPath)); devicekit.OnChanged += DeviceKitOnChanged; on_battery = (bool)devicekit.Get(DeviceKitPowerName, "on-battery"); Log <SystemService> .Debug("Using org.freedesktop.DeviceKit.Power for battery information"); } else if (Bus.Session.NameHasOwner(PowerManagementName)) { power = Bus.Session.GetObject <IPowerManagement> (PowerManagementName, new ObjectPath(PowerManagementPath)); power.OnBatteryChanged += PowerOnBatteryChanged; on_battery = power.GetOnBattery(); Log <SystemService> .Debug("Using org.freedesktop.PowerManager for battery information"); } } catch (Exception e) { Log <SystemService> .Error("Could not initialize dbus: {0}", e.Message); Log <SystemService> .Debug(e.StackTrace); } }
void InitializeBattery() { // Set a sane default value for on_battery. Thus, if we don't find a working power manager // we assume we're not on battery. on_battery = false; try { if (Bus.System.NameHasOwner(UPowerName)) { upower = Bus.System.GetObject <IUPower> (UPowerName, new ObjectPath(UPowerPath)); upower.Changed += HandleUPowerChanged; HandleUPowerChanged(); Log <SystemService> .Debug("Using org.freedesktop.UPower for battery information"); } else if (Bus.System.NameHasOwner(DeviceKitPowerName)) { devicekit = Bus.System.GetObject <IDeviceKitPower> (DeviceKitPowerName, new ObjectPath(DeviceKitPowerPath)); devicekit.Changed += HandleDeviceKitChanged; HandleDeviceKitChanged(); Log <SystemService> .Debug("Using org.freedesktop.DeviceKit.Power for battery information"); } else if (Bus.Session.NameHasOwner(PowerManagementName)) { power = Bus.Session.GetObject <IPowerManagement> (PowerManagementName, new ObjectPath(PowerManagementPath)); power.OnBatteryChanged += PowerOnBatteryChanged; on_battery = power.GetOnBattery(); Log <SystemService> .Debug("Using org.freedesktop.PowerManager for battery information"); } } catch (Exception e) { Log <SystemService> .Error("Could not initialize power manager dbus: '{0}'", e.Message); Log <SystemService> .Info(e.StackTrace); } }