import rb import gobject import dbus import dbus.glib class SessionPresenceManagerPlugin(rb.Plugin): def __init__(self): rb.Plugin.__init__(self) def activate(self, shell): self.shell = shell self.paused_by_us = False session_bus = dbus.SessionBus() session_bus.add_signal_receiver(self.on_status_changed_cb, signal_name="StatusChanged", dbus_interface="com.weej.SessionPresenceManager", named_service=None, path="/com/weej/SessionPresenceManager") def deactivate(self, shell): del self.shell def on_status_changed_cb(self, status): player = self.shell.get_player() if (status == "here" and self.paused_by_us): player.play() self.paused_by_us = False if (status == "not-here" and player.get_playing()): self.shell.get_player().pause() self.paused_by_us = True