From f4f85a8c7f2182b9730df33474b6aecad5bd4cf0 Mon Sep 17 00:00:00 2001 From: Grigori Goronzy <greg@hein> Date: Sat, 8 May 2010 15:19:40 +0200 Subject: [PATCH] Switch to new UPower DBus interface for battery check The org.freedesktop.PowerManagement interface is long gone, use org.freedesktop.UPower instead. --- EeeControl/tray.py | 23 ++++++++++++----------- 1 files changed, 12 insertions(+), 11 deletions(-) diff --git a/EeeControl/tray.py b/EeeControl/tray.py index be54ac9..671134e 100644 --- a/EeeControl/tray.py +++ b/EeeControl/tray.py @@ -292,14 +292,13 @@ class EeeControlTray: self.bus.add_signal_receiver(self.fsb_notify, dbus_interface="org.eee.Eee", signal_name="fsb_changed") # Listen for eee-control-daemon appearance/disappearance self.bus.add_signal_receiver(self.daemon_status_change, dbus_interface="org.freedesktop.DBus", signal_name="NameOwnerChanged", arg0="org.eee.Eee") - # Listen for gnome-power-manager (autofsb) + # Listen for upower (autofsb) # This can safely fail try: - session_bus = dbus.SessionBus() - session_bus.add_signal_receiver(self.autofsb_trigger, dbus_interface="org.freedesktop.PowerManagement", signal_name="OnBatteryChanged") - session_bus.add_signal_receiver(self.autofsb_start, dbus_interface="org.freedesktop.DBus", signal_name="NameOwnerChanged", arg0="org.freedesktop.PowerManagement") + self.bus.add_signal_receiver(self.autofsb_trigger, dbus_interface="org.freedesktop.UPower", signal_name="Changed") + self.bus.add_signal_receiver(self.autofsb_start, dbus_interface="org.freedesktop.DBus", signal_name="NameOwnerChanged", arg0="org.freedesktop.UPower") except dbus.exceptions.DBusException: - print _("Unable to set up autofsb signal receiver. Is gnome-power-manager running?") + print _("Unable to set up autofsb signal receiver.") def daemon_status_change(self, name, oldown, newown): if newown == "": self.disable_tray() @@ -309,7 +308,10 @@ class EeeControlTray: if oldown == "": self.apply_configuration() - def autofsb_trigger(self, state): + def autofsb_trigger(self): + remote = self.bus.get_object("org.freedesktop.UPower", "/org/freedesktop/UPower") + iface = dbus.Interface(remote, dbus_interface="org.freedesktop.DBus.Properties") + state = iface.Get("org.freedesktop.UPower", "OnBattery") if self.conf.get_bool("/apps/eee-control-tray/options/autofsb") and self.iface.get_fsb() != None: if state == True: self.iface.set_fsb("powersave") @@ -359,15 +361,14 @@ class EeeControlTray: # Switch to powersave preset if autofsb is active if self.conf.get_bool("/apps/eee-control-tray/options/autofsb") == True: try: - sb = dbus.SessionBus() - remote = sb.get_object("org.freedesktop.PowerManagement", "/org/freedesktop/PowerManagement") - iface = dbus.Interface(remote, dbus_interface="org.freedesktop.PowerManagement") - if iface.GetOnBattery() == True and self.iface.get_fsb() != None: + remote = self.bus.get_object("org.freedesktop.UPower", "/org/freedesktop/UPower") + iface = dbus.Interface(remote, dbus_interface="org.freedesktop.DBus.Properties") + if iface.Get("org.freedesktop.UPower", "OnBattery") == True and self.iface.get_fsb() != None: self.autotriggered = True self.iface.set_fsb("powersave") return False except dbus.exceptions.DBusException: - print _("Failed to set up automatic performance adjustment. Is gnome-power-manager running?") + print _("Failed to set up automatic performance adjustment.") # Else, apply saved FSB preset = self.conf.get_string("/apps/eee-control-tray/fsb_preset") if preset and self.iface.get_fsb() != None: -- 1.7.0.4