def device_discovery(self, devs): group = QActionGroup(self._menu_devices, exclusive=False) for d in devs: node = QAction(d.name, self._menu_devices, checkable=True) node.toggled.connect(self._inputdevice_selected) group.addAction(node) self._menu_devices.addAction(node) if d.name == Config().get("input_device"): self._active_device = d.name if len(self._active_device) == 0: self._active_device = str(self._menu_devices.actions()[0].text()) device_config_mapping = Config().get("device_config_mapping") if device_config_mapping: if self._active_device in device_config_mapping.keys(): self._current_input_config = device_config_mapping[ self._active_device] else: self._current_input_config = self._menu_mappings.actions()[0]\ .text() else: self._current_input_config = self._menu_mappings.actions()[0].text() # Now we know what device to use and what mapping, trigger the events # to change the menus and start the input for c in self._menu_devices.actions(): if c.text() == self._active_device: c.setChecked(True) for c in self._menu_mappings.actions(): c.setEnabled(True) if c.text() == self._current_input_config: c.setChecked(True)
def device_discovery(self, devs): group = QActionGroup(self._menu_devices, exclusive=True) for d in devs: node = QAction(d["name"], self._menu_devices, checkable=True) node.toggled.connect(self._inputdevice_selected) group.addAction(node) self._menu_devices.addAction(node) if (d["name"] == Config().get("input_device")): self._current_input_device = d["name"] if (len(self._current_input_device) == 0): self._current_input_device = self._menu_devices.actions()[0].text() device_config_mapping = Config().get("device_config_mapping") if (device_config_mapping): if (self._current_input_device in device_config_mapping.keys()): self._current_input_config = device_config_mapping[ str(self._current_input_device)] else: self._current_input_config = self._menu_mappings.actions()[0].text() else: self._current_input_config = self._menu_mappings.actions()[0].text() # Now we know what device to use and what mapping, trigger the events to # change the menus and start the input for c in self._menu_mappings.actions(): c.setEnabled(True) if (c.text() == self._current_input_config): c.setChecked(True) for c in self._menu_devices.actions(): if (c.text() == self._current_input_device): c.setChecked(True)
def get_saved_device_mapping(self, device_name): """Return the saved mapping for a given device""" config = None device_config_mapping = Config().get("device_config_mapping") if device_name in list(device_config_mapping.keys()): config = device_config_mapping[device_name] logging.debug("For [{}] we recommend [{}]".format(device_name, config)) return config
def _get_saved_device_mapping(self, device_name): """Return the saved mapping for a given device""" config = None device_config_mapping = Config().get("device_config_mapping") if device_name in device_config_mapping.keys(): config = device_config_mapping[device_name] logging.debug("For [{}] we recommend [{}]".format(device_name, config)) return config
def _inputdevice_selected(self, checked): if not checked: return self.joystickReader.stopInput() sender = self.sender() self._active_device = sender.text() device_config_mapping = Config().get("device_config_mapping") if self._active_device in device_config_mapping.keys(): self._current_input_config = device_config_mapping[str(self._active_device)] else: self._current_input_config = self._menu_mappings.actions()[0].text() Config().set("input_device", str(self._active_device)) for c in self._menu_mappings.actions(): if c.text() == self._current_input_config: c.setChecked(True) self.joystickReader.startInput(str(sender.text()), self._current_input_config) self._statusbar_label.setText("Using [%s] with config [%s]" % (self._active_device, self._current_input_config))
def _inputdevice_selected(self, checked): if (not checked): return self.joystickReader.stopInput() sender = self.sender() self._active_device = sender.text() device_config_mapping = Config().get("device_config_mapping") if (self._active_device in device_config_mapping.keys()): self._current_input_config = device_config_mapping[str( self._active_device)] else: self._current_input_config = self._menu_mappings.actions()[0].text( ) Config().set("input_device", str(self._active_device)) for c in self._menu_mappings.actions(): if (c.text() == self._current_input_config): c.setChecked(True) self.joystickReader.startInput(str(sender.text()), self._current_input_config) self._statusbar_label.setText( "Using [%s] with config [%s]" % (self._active_device, self._current_input_config))