Пример #1
0
    def _configure_triggers(self, data):
        for trig in self._triggers:
            trig.reset_configuration()
        self._triggers.clear()
        for elem in data:
            # print(elem)
            simvar = elem.get('simvar')
            trigger_type = elem.get('trigger_type', None)
            trigger_index = elem.get('trigger_index', None)
            condition = elem.get('condition', None)
            object_to_trigger = None
            trigger = Trigger()
            trigger.bind_to_simvar(simvar)

            if trigger_type == "encoder":
                object_to_trigger = self._encoders[trigger_index - 1]
                trigger.bind_to_event(object_to_trigger.on_alternate)
            elif trigger_type == "button":
                object_to_trigger = self._buttons[trigger_index - 1]
            elif trigger_type == "condition":
                trigger.bind_to_event(ConditionalRunner(condition))
            elif trigger_type == "condition-file":
                trigger.bind_to_event(ConditionalRunner("", condition))
            else:
                raise ValueError(f"Unknown trigger type: {trigger_type}")

            self._triggers.append(trigger)