def upadte_detected_as(self): driver = Driver() driver.find_device() if driver.has_device(): self.label_detected_as.set_text(driver.computer.NAME) else: self.label_detected_as.set_text(_EMPTY_MODEL)
def update_models_liststore(self): default_computer_name = self._get_default_computer_name() driver = Driver() self.liststore_computer_models.clear() for computer in computer_factory.get_computers(): is_selected = computer.NAME == default_computer_name driver.load_device(computer.VENDOR_ID, computer.PRODUCT_ID) self.liststore_computer_models.append( [computer.NAME, is_selected, True, driver.has_device()])
def __init__(self, driver=Driver()): if not driver.has_device(): print_error("The computer is not supported.") self._driver = None else: self._driver = driver self.__constructor = Constructor(self._driver.computer)
def __init__(self, loop_self): driver = Driver() driver.load_default_device() self._controller = Controller(driver) computer = self._controller.get_computer() if computer is None: exit(1) self._computer = computer self._COMPUTER_BLOCKS_TO_SAVE = ( (True, self._computer.BLOCK_LOAD_ON_BOOT), #(True, self._computer.BLOCK_STANDBY), #(True, self._computer.BLOCK_AC_POWER), #(#True, self._computer.BLOCK_CHARGING), #(True, self._computer.BLOCK_BATT_SLEEPING), #(True, self._computer.BLOCK_BAT_POWER), #(True, self._computer.BLOCK_BATT_CRITICAL), (False, self._computer.BLOCK_LOAD_ON_BOOT)) self.loop_self = loop_self # Initialize the daemon # self._user = '******' self._paths = Paths() self._paths = Paths(self._user) self._ccp = CCParser(self._paths._configuration_file, 'GUI Configuration') self._indicator_pyro = False self.reload_configurations(self._user) self._lights_state = False
def on_togglebutton_find_device_clicked(self, button, data=None): # try to load the driver if self.checkbutton_hex_format_when_finding.get_active(): vendor = int(self.entry_id_vendor.get_text(), 16) product = int(self.entry_id_product.get_text(), 16) else: vendor = int(self.entry_id_vendor.get_text()) product = int(self.entry_id_product.get_text()) self._testing_driver = Driver() self._testing_driver.load_device(id_vendor=vendor, id_product=product, empty_computer=True) # try to load the controller if self._testing_driver.has_device(): self._testing_controller = Controller(self._testing_driver) self._computer = self._testing_driver.computer self._COMPUTER_BLOCKS_TO_SAVE = (#(True, self._computer.BLOCK_LOAD_ON_BOOT), #(True, self._computer.BLOCK_STANDBY), #(True, self._computer.BLOCK_AC_POWER), #(#True, self._computer.BLOCK_CHARGING), #(True, self._computer.BLOCK_BATT_SLEEPING), #(True, self._computer.BLOCK_BAT_POWER), #(True, self._computer.BLOCK_BATT_CRITICAL), (False, self._computer.BLOCK_LOAD_ON_BOOT),) # Add the general computer variables for attr_name, attr_value in sorted(vars(self._computer).items()): if not attr_name.startswith("_") and isinstance(attr_value, int): widget_box = Gtk.Box() widget_label = Gtk.Label(attr_name) widget_entry = Gtk.Entry() widget_entry.set_text(str(attr_value)) widget_entry.connect("changed", self.on_dynamic_entry_general_properties_changed, attr_name) widget_box.pack_start(widget_label, expand=False, fill=True, padding=5) widget_box.pack_start(widget_entry, expand=False, fill=False, padding=5) self.config_box.pack_start(widget_box, expand=False, fill=False, padding=1) self.config_box.show_all() # activate the window self.box_block_testing.set_sensitive(True) self.entry_id_vendor.set_sensitive(False) self.entry_id_product.set_sensitive(False) gtk_append_text_to_buffer(self.textbuffer_block_testing, TEXT_DEVICE_FOUND.format(vendor,product)) self.combobox_default_blocks.set_active(0) else: self.box_block_testing.set_sensitive(False) self.togglebutton_find_device.set_active(False) self.entry_id_vendor.set_sensitive(True) self.entry_id_product.set_sensitive(True) gtk_append_text_to_buffer(self.textbuffer_block_testing,TEXT_DEVICE_NOT_FOUND.format(vendor,product))
class BlockTesting(Gtk.Window): def __init__(self): self._paths = Paths() """ Glade """ builder = Gtk.Builder() builder.add_from_file(self._paths._block_testing_glade_file) builder.connect_signals(self) glade_object_names = ( 'window_block_testing', 'combobox_block_modes', 'colorbutton_1_block', 'colorbutton_2_block', 'config_box', 'textbuffer_device_info', 'combobox_default_blocks', 'textbuffer_block_testing', 'entry_block_testing', 'entry_id_vendor', 'entry_id_product', 'togglebutton_find_device', 'box_block_testing', 'spinbutton_block_speed', 'viewport_common_block', 'button_update_common_blocks', 'button_block_make_test', 'checkbutton_auto_turn_off', 'checkbutton_hex_format_when_finding', ) # load the glade objects for glade_object in glade_object_names: setattr(self, glade_object, builder.get_object(glade_object)) # get the computer info computer_device_info = get_alienware_device_info() # Fill the computer data self.textbuffer_device_info.set_text(computer_device_info) # Fill the idProduct and idVendor entries if possible if 'idVendor' in computer_device_info and 'idProduct' in computer_device_info: for line in computer_device_info.split('\n'): if 'idVendor' in line: self.entry_id_vendor.set_text(line.split()[1]) elif 'idProduct' in line: self.entry_id_product.set_text(line.split()[1]) # Display the window self.window_block_testing.show_all() def on_entry_block_testing_changed(self, entry, data=None): text = entry.get_text() try: value = int(text) if value < 0: self.button_block_make_test.set_sensitive(False) else: self.button_block_make_test.set_sensitive(True) except: self.button_block_make_test.set_sensitive(False) def on_togglebutton_find_device_clicked(self, button, data=None): # try to load the driver if self.checkbutton_hex_format_when_finding.get_active(): vendor = int(self.entry_id_vendor.get_text(), 16) product = int(self.entry_id_product.get_text(), 16) else: vendor = int(self.entry_id_vendor.get_text()) product = int(self.entry_id_product.get_text()) self._testing_driver = Driver() self._testing_driver.load_device(id_vendor=vendor, id_product=product, empty_computer=True) # try to load the controller if self._testing_driver.has_device(): self._testing_controller = Controller(self._testing_driver) self._computer = self._testing_driver.computer self._COMPUTER_BLOCKS_TO_SAVE = (#(True, self._computer.BLOCK_LOAD_ON_BOOT), #(True, self._computer.BLOCK_STANDBY), #(True, self._computer.BLOCK_AC_POWER), #(#True, self._computer.BLOCK_CHARGING), #(True, self._computer.BLOCK_BATT_SLEEPING), #(True, self._computer.BLOCK_BAT_POWER), #(True, self._computer.BLOCK_BATT_CRITICAL), (False, self._computer.BLOCK_LOAD_ON_BOOT),) # Add the general computer variables for attr_name, attr_value in sorted(vars(self._computer).items()): if not attr_name.startswith("_") and isinstance(attr_value, int): widget_box = Gtk.Box() widget_label = Gtk.Label(attr_name) widget_entry = Gtk.Entry() widget_entry.set_text(str(attr_value)) widget_entry.connect("changed", self.on_dynamic_entry_general_properties_changed, attr_name) widget_box.pack_start(widget_label, expand=False, fill=True, padding=5) widget_box.pack_start(widget_entry, expand=False, fill=False, padding=5) self.config_box.pack_start(widget_box, expand=False, fill=False, padding=1) self.config_box.show_all() # activate the window self.box_block_testing.set_sensitive(True) self.entry_id_vendor.set_sensitive(False) self.entry_id_product.set_sensitive(False) gtk_append_text_to_buffer(self.textbuffer_block_testing, TEXT_DEVICE_FOUND.format(vendor,product)) self.combobox_default_blocks.set_active(0) else: self.box_block_testing.set_sensitive(False) self.togglebutton_find_device.set_active(False) self.entry_id_vendor.set_sensitive(True) self.entry_id_product.set_sensitive(True) gtk_append_text_to_buffer(self.textbuffer_block_testing,TEXT_DEVICE_NOT_FOUND.format(vendor,product)) def on_button_block_make_test_clicked(self, button, data=None): if self.checkbutton_auto_turn_off.get_active(): self.on_button_block_testing_lights_off_clicked(button) try: zone_left_color = self.colorbutton_1_block.get_color() zone_left_color = rgb_to_hex([zone_left_color.red/65535.0, zone_left_color.green/65535.0, zone_left_color.blue/65535.0]) zone_right_color = self.colorbutton_2_block.get_color() zone_right_color = rgb_to_hex([zone_right_color.red/65535.0, zone_right_color.green/65535.0, zone_right_color.blue/65535.0]) zone_block = int(self.entry_block_testing.get_text()) speed = self.spinbutton_block_speed.get_value_as_int() index = self.combobox_block_modes.get_active() model = self.combobox_block_modes.get_model() zone_mode = model[index][0] zone_mode = zone_mode.lower() # Log the test # gtk_append_text_to_buffer(self.textbuffer_block_testing, TEXT_BLOCK_TEST.format(zone_block, zone_mode, speed, zone_left_color, zone_right_color)) # Test # self._testing_controller.erase_config() for save, block in self._COMPUTER_BLOCKS_TO_SAVE: self._testing_controller.add_block_line(save=save, block=block) self._testing_controller.add_reset_line(self._computer.RESET_ALL_LIGHTS_ON) self._testing_controller.add_speed_line(speed) self._testing_controller.add_color_line(zone_block, zone_mode, zone_left_color, zone_right_color) self._testing_controller.end_colors_line() self._testing_controller.end_block_line() self._testing_controller.apply_config() except Exception: gtk_append_text_to_buffer(self.textbuffer_block_testing, '\n' + format_exc() + '\n') def on_button_block_testing_lights_off_clicked(self, button, data=None): try: self._testing_controller.erase_config() for save, block in self._COMPUTER_BLOCKS_TO_SAVE: self._testing_controller.add_block_line(save, block) self._testing_controller.add_reset_line(self._computer.RESET_ALL_LIGHTS_OFF) self._testing_controller.apply_config() gtk_append_text_to_buffer(self.textbuffer_block_testing, '\n' + TEXT_BLOCK_LIGHTS_OFF + '\n') except Exception: gtk_append_text_to_buffer(self.textbuffer_block_testing, '\n' + format_exc()) def on_checkbutton_protect_common_blocks_clicked(self, checkbutton, data=None): if checkbutton.get_active(): self.viewport_common_block.set_sensitive(False) else: self.viewport_common_block.set_sensitive(True) def on_combobox_default_blocks_changed(self, combobox, data=None): index = combobox.get_active() model = combobox.get_model() value = model[index][0] if value == -1: self.entry_block_testing.set_sensitive(True) else: self.entry_block_testing.set_sensitive(False) self.entry_block_testing.set_text(str(value)) def on_dynamic_entry_general_properties_changed(self, entry, variable_name): try: entry_value = int(entry.get_text()) except: gtk_append_text_to_buffer(self.textbuffer_block_testing, "\n {} must be an integer.".format(variable_name, entry_value)) return setattr(self._testing_driver.computer, variable_name, entry_value) gtk_append_text_to_buffer(self.textbuffer_block_testing, "\n {} = {}".format(variable_name, entry_value)) def on_window_block_testing_destroy(self, data=None): Gtk.main_quit()
def on_togglebutton_find_device_clicked(self, button, data=None): # try to load the driver if self.checkbutton_hex_format_when_finding.get_active(): vendor = int(self.entry_id_vendor.get_text(), 16) product = int(self.entry_id_product.get_text(), 16) else: vendor = int(self.entry_id_vendor.get_text()) product = int(self.entry_id_product.get_text()) self._testing_driver = Driver() self._testing_driver.load_device(id_vendor=vendor, id_product=product, empty_computer=True) # try to load the controller if self._testing_driver.has_device(): self._testing_controller = Controller(self._testing_driver) self._computer = self._testing_driver.computer self._COMPUTER_BLOCKS_TO_SAVE = ( #(True, self._computer.BLOCK_LOAD_ON_BOOT), #(True, self._computer.BLOCK_STANDBY), #(True, self._computer.BLOCK_AC_POWER), #(#True, self._computer.BLOCK_CHARGING), #(True, self._computer.BLOCK_BATT_SLEEPING), #(True, self._computer.BLOCK_BAT_POWER), #(True, self._computer.BLOCK_BATT_CRITICAL), (False, self._computer.BLOCK_LOAD_ON_BOOT), ) # Add the general computer variables row_index = 0 for attr_name, attr_value in sorted(vars(self._computer).items()): if not attr_name.startswith("_") and isinstance( attr_value, int): label = Gtk.Label(attr_name) label.set_xalign(0) adjustment = Gtk.Adjustment(0, 0, 9999999999999, 1, 1, 0) spinbutton = Gtk.SpinButton() spinbutton.set_adjustment(adjustment) spinbutton.set_value(attr_value) spinbutton.set_digits(0) spinbutton.set_numeric(True) spinbutton.connect( "value-changed", self.on_dynamic_spin_general_properties_changed, attr_name) self.config_grid.attach(label, 0, row_index, 1, 1) self.config_grid.attach(spinbutton, 1, row_index, 1, 1) row_index += 1 self.config_grid.show_all() # activate the window self.box_block_testing.set_sensitive(True) self.box_pyusb.set_sensitive(True) self.entry_id_vendor.set_sensitive(False) self.entry_id_product.set_sensitive(False) gtk_append_text_to_buffer( self.textbuffer_block_testing, TEXT_DEVICE_FOUND.format(vendor, product)) self.combobox_default_blocks.set_active(0) else: self.box_block_testing.set_sensitive(False) self.box_pyusb.set_sensitive(False) self.togglebutton_find_device.set_active(False) self.entry_id_vendor.set_sensitive(True) self.entry_id_product.set_sensitive(True) gtk_append_text_to_buffer( self.textbuffer_block_testing, TEXT_DEVICE_NOT_FOUND.format(vendor, product))