All pastes #413212 Raw Edit

Stuff

public text v1 · immutable
#413212 ·published 2007-03-28 06:40 UTC
rendered paste body
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