Пример #1
0
    def participant_change_cb(self, added, removed):
        log.debug( 'participant_change_cb: %s %s', added, removed )
        def nick(buddy):
            if buddy is not None:
                return buddy.props.nick
            else:
                return 'Unknown'

        for handle, bus_name in added:
            dbus_handle = self.tube.participants[handle]
            self.ordered_bus_names.append(dbus_handle)
            eventwrap.post(PEvent.Event(PARTICIPANT_ADD, handle=dbus_handle))

        for handle in removed:
            dbus_handle = self.tube.participants[handle]
            self.ordered_bus_names.remove(dbus_handle)
            eventwrap.post(PEvent.Event(PARTICIPANT_REMOVE, handle=dbus_handle))

        if self.is_initiator:
            if not self.entered:
                # Initiator will broadcast a new ordered_bus_names each time
                # a participant joins.
                self.ordered_bus_names = [self.tube.get_unique_name()]
            self.NewParticipants(self.ordered_bus_names)

        self.entered = True
Пример #2
0
    def participant_change_cb(self, added, removed):
        log.debug('participant_change_cb: %s %s', added, removed)

        def nick(buddy):
            if buddy is not None:
                return buddy.props.nick
            else:
                return 'Unknown'

        for handle, bus_name in added:
            dbus_handle = self.tube.participants[handle]
            self.ordered_bus_names.append(dbus_handle)
            eventwrap.post(PEvent.Event(PARTICIPANT_ADD, handle=dbus_handle))

        for handle in removed:
            dbus_handle = self.tube.participants[handle]
            self.ordered_bus_names.remove(dbus_handle)
            eventwrap.post(PEvent.Event(PARTICIPANT_REMOVE,
                                        handle=dbus_handle))

        if self.is_initiator:
            if not self.entered:
                # Initiator will broadcast a new ordered_bus_names each time
                # a participant joins.
                self.ordered_bus_names = [self.tube.get_unique_name()]
            self.NewParticipants(self.ordered_bus_names)

        self.entered = True
Пример #3
0
 def _post(self, evt):
     try:
         PCevent.post(evt)
     except pygame.error, e:
         if str(e) == 'Event queue full':
             print "Event queue full!"
             pass
         else:
             raise e
Пример #4
0
    def __init__(self, tube, is_initiator, tube_id):
        super(PygameTube, self).__init__(tube, DBUS_PATH)
        log.info( 'PygameTube init' )
        self.tube = tube
        self.is_initiator = is_initiator
        self.entered = False
        self.ordered_bus_names = []
        eventwrap.post(PEvent.Event(CONNECT, id=tube_id))

        if not self.is_initiator:
            self.tube.add_signal_receiver(self.new_participant_cb, 'NewParticipants', DBUS_IFACE, path=DBUS_PATH)
        self.tube.watch_participants(self.participant_change_cb)
        self.tube.add_signal_receiver(self.broadcast_cb, 'Broadcast', DBUS_IFACE, path=DBUS_PATH, sender_keyword='sender')
Пример #5
0
    def __init__(self, tube, is_initiator, tube_id):
        super(PygameTube, self).__init__(tube, DBUS_PATH)
        self.tube = tube
        self.is_initiator = is_initiator
        self.entered = False
        self.ordered_bus_names = []
        eventwrap.post(PEvent.Event(CONNECT, id=tube_id))

        if not self.is_initiator:
            self.tube.add_signal_receiver(self.new_participant_cb,
                                          'NewParticipants',
                                          DBUS_IFACE,
                                          path=DBUS_PATH)
        self.tube.watch_participants(self.participant_change_cb)
        self.tube.add_signal_receiver(self.broadcast_cb,
                                      'Broadcast',
                                      DBUS_IFACE,
                                      path=DBUS_PATH,
                                      sender_keyword='sender')
Пример #6
0
 def broadcast_cb(self, content, sender=None):
     '''This is the Broadcast callback, fired when someone sends a Broadcast signal along the bus.'''
     eventwrap.post(PEvent.Event(MESSAGE_MULTI, handle=sender, content=content))
Пример #7
0
 def Tell(self, content, sender=None):
     '''This is the targeted-message interface; called when a message is received that was sent directly to me.'''
     eventwrap.post(PEvent.Event(MESSAGE_UNI, handle=sender, content=content))
Пример #8
0
 def _quit(self, data=None):
     self.__stopped = True
     PCevent.post(Pevent.Event(pygame.QUIT))
Пример #9
0
 def broadcast_cb(self, content, sender=None):
     '''This is the Broadcast callback, fired when someone sends a Broadcast signal along the bus.'''
     eventwrap.post(
         PEvent.Event(MESSAGE_MULTI, handle=sender, content=content))
Пример #10
0
 def Tell(self, content, sender=None):
     '''This is the targeted-message interface; called when a message is received that was sent directly to me.'''
     eventwrap.post(
         PEvent.Event(MESSAGE_UNI, handle=sender, content=content))