Exemplo n.º 1
0
    def __connect_buzzer(self, key, name):
        """
        Interface de connexion de manette
        :param key: avec quelle key sera stockée le buzzer dans self.buzzers
        :param name: le nom qui sera affiché à l'écran
        """

        # Si on a déjà un Buzzer du même nom, on le récupère
        buzzer_en_attente = None
        if key in self.buzzers:
            buzzer_en_attente = self.buzzers[key]
        else:
            buzzer_en_attente = Buzzer(key, dummy=self.dummy)

        # Démarre la connexion de façon asynchrone
        buzzer_en_attente.async_wait()

        # Ouvre une fenêtre
        win = WindowHelper.Instance()
        win.new_page('Page de connexion', WIN_WIDTH, WIN_HEIGHT ,label='connect_buzzer', bg='white')
        win.go_to('connect_buzzer')

        win.import_template('wiimote_connexion')
        win.edit_text('text_connexion_team', 'Télécommande {}'.format(name))  # à modifier

        win.refresh()

        # Variable d'execution
        vars = {
            'buzzer_en_attente': buzzer_en_attente,
            'self': self
        }

        # Attend que la manette soit connectée
        def waiting_connection(pg, win, vars, event):
            if event.type == pg.KEYDOWN and event.key == pg.K_d:
                vars['buzzer_en_attente'].dummy = True

        def before_fun(pg, win, vars):
            return vars['buzzer_en_attente'].connected

        win.event(before_fun=before_fun, event_fun=waiting_connection, vars=vars)  # On attend que quelqu'un appuie sur un bouton

        # Stocke le nouveau buzzer
        self.buzzers[key] = buzzer_en_attente