static int cypress_touchkey_open(struct input_dev *input_dev) { struct device *dev = &input_dev->dev; struct cypress_touchkey_devdata *devdata = dev_get_drvdata(dev); u8 data[3]; int ret; ret = update_firmware(devdata); if (ret) goto done; ret = i2c_master_recv(devdata->client, data, sizeof(data)); if (ret < sizeof(data)) { if (ret >= 0) ret = -EIO; dev_err(dev, "%s: error reading hardware version\n", __func__); goto done; } dev_info(dev, "%s: hardware rev1 = %#02x, rev2 = %#02x\n", __func__, data[1], data[2]); set_device_params(devdata, data); devdata->pdata->touchkey_onoff(TOUCHKEY_OFF); devdata->pdata->touchkey_onoff(TOUCHKEY_ON); ret = i2c_touchkey_write_byte(devdata, devdata->backlight_on); if (ret) { dev_err(dev, "%s: touch keypad backlight on failed\n", __func__); goto done; } done: input_dev->open = NULL; return 0; }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); memset(names, 0x00, 100*32); // load window size QSettings settings; restoreGeometry(settings.value("Windows/mainWindowGeometry").toByteArray()); restoreState(settings.value("Windows/mainWindowState").toByteArray()); // setting default values if there was none if(!settings.contains("Settings/checkForUpdates")) settings.setValue("Settings/checkForUpdates", true); if(!settings.contains("Settings/connectOnStartup")) settings.setValue("Settings/connectOnStartup", true); if(!settings.contains("Settings/oneSetToSetThemAll")) settings.setValue("Settings/oneSetToSetThemAll", false); if(!settings.contains("Settings/keepWindowsOpen")) settings.setValue("Settings/keepWindowsOpen", false); if(!settings.contains("Settings/popupChangedWindows")) settings.setValue("Settings/popupChangedWindows", true); if(!settings.contains("Settings/defaultEffectValues")) settings.setValue("Settings/defaultEffectValues", true); // create child objects amp_ops = new Mustang(); amp = new Amplifier(this); effect1 = new Effect(this, 0); effect2 = new Effect(this, 1); effect3 = new Effect(this, 2); effect4 = new Effect(this, 3); about_window = new About(this); save = new SaveOnAmp(this); load = new LoadFromAmp(this); seffects = new SaveEffects(this); settings_win = new Settings(this); saver = new SaveToFile(this); quickpres = new QuickPresets(this); connected = false; // connect buttons to slots // connect(ui->Amplifier, SIGNAL(clicked()), amp, SLOT(show())); connect(ui->EffectButton1, SIGNAL(clicked()), effect1, SLOT(show())); connect(ui->EffectButton2, SIGNAL(clicked()), effect2, SLOT(show())); connect(ui->EffectButton3, SIGNAL(clicked()), effect3, SLOT(show())); connect(ui->EffectButton4, SIGNAL(clicked()), effect4, SLOT(show())); connect(ui->actionConnect, SIGNAL(triggered()), this, SLOT(start_amp())); connect(ui->actionDisconnect, SIGNAL(triggered()), this, SLOT(stop_amp())); connect(ui->actionExit, SIGNAL(triggered()), this, SLOT(close())); connect(ui->actionAbout, SIGNAL(triggered()), about_window, SLOT(open())); connect(ui->actionSave_to_amplifier, SIGNAL(triggered()), save, SLOT(show())); connect(ui->action_Load_from_amplifier, SIGNAL(triggered()), load, SLOT(show())); connect(ui->actionSave_effects, SIGNAL(triggered()), seffects, SLOT(open())); connect(ui->actionCheck_for_Updates, SIGNAL(triggered()), this, SLOT(check_for_updates())); connect(ui->action_Options, SIGNAL(triggered()), settings_win, SLOT(show())); connect(ui->actionL_oad_from_file, SIGNAL(triggered()), this, SLOT(loadfile())); connect(ui->actionS_ave_to_file, SIGNAL(triggered()), saver, SLOT(show())); connect(ui->action_Library_view, SIGNAL(triggered()), this, SLOT(show_library())); connect(ui->action_Update_firmware, SIGNAL(triggered()), this, SLOT(update_firmware())); connect(ui->action_Default_effects, SIGNAL(triggered()), this, SLOT(show_default_effects())); connect(ui->action_Quick_presets, SIGNAL(triggered()), quickpres, SLOT(show())); // shortcuts to activate effect windows QShortcut *showfx1 = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_1), this, 0, 0, Qt::ApplicationShortcut); QShortcut *showfx2 = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_2), this, 0, 0, Qt::ApplicationShortcut); QShortcut *showfx3 = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_3), this, 0, 0, Qt::ApplicationShortcut); QShortcut *showfx4 = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_4), this, 0, 0, Qt::ApplicationShortcut); QShortcut *showamp = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_5), this, 0, 0, Qt::ApplicationShortcut); connect(showfx1, SIGNAL(activated()), this, SLOT(show_fx1())); connect(showfx2, SIGNAL(activated()), this, SLOT(show_fx2())); connect(showfx3, SIGNAL(activated()), this, SLOT(show_fx3())); connect(showfx4, SIGNAL(activated()), this, SLOT(show_fx4())); connect(showamp, SIGNAL(activated()), this, SLOT(show_amp())); // shortcuts for quick loading presets QShortcut *loadpres0 = new QShortcut(QKeySequence(Qt::Key_0), this, 0, 0, Qt::ApplicationShortcut); QShortcut *loadpres1 = new QShortcut(QKeySequence(Qt::Key_1), this, 0, 0, Qt::ApplicationShortcut); QShortcut *loadpres2 = new QShortcut(QKeySequence(Qt::Key_2), this, 0, 0, Qt::ApplicationShortcut); QShortcut *loadpres3 = new QShortcut(QKeySequence(Qt::Key_3), this, 0, 0, Qt::ApplicationShortcut); QShortcut *loadpres4 = new QShortcut(QKeySequence(Qt::Key_4), this, 0, 0, Qt::ApplicationShortcut); QShortcut *loadpres5 = new QShortcut(QKeySequence(Qt::Key_5), this, 0, 0, Qt::ApplicationShortcut); QShortcut *loadpres6 = new QShortcut(QKeySequence(Qt::Key_6), this, 0, 0, Qt::ApplicationShortcut); QShortcut *loadpres7 = new QShortcut(QKeySequence(Qt::Key_7), this, 0, 0, Qt::ApplicationShortcut); QShortcut *loadpres8 = new QShortcut(QKeySequence(Qt::Key_8), this, 0, 0, Qt::ApplicationShortcut); QShortcut *loadpres9 = new QShortcut(QKeySequence(Qt::Key_9), this, 0, 0, Qt::ApplicationShortcut); connect(loadpres0, SIGNAL(activated()), this, SLOT(load_presets0())); connect(loadpres1, SIGNAL(activated()), this, SLOT(load_presets1())); connect(loadpres2, SIGNAL(activated()), this, SLOT(load_presets2())); connect(loadpres3, SIGNAL(activated()), this, SLOT(load_presets3())); connect(loadpres4, SIGNAL(activated()), this, SLOT(load_presets4())); connect(loadpres5, SIGNAL(activated()), this, SLOT(load_presets5())); connect(loadpres6, SIGNAL(activated()), this, SLOT(load_presets6())); connect(loadpres7, SIGNAL(activated()), this, SLOT(load_presets7())); connect(loadpres8, SIGNAL(activated()), this, SLOT(load_presets8())); connect(loadpres9, SIGNAL(activated()), this, SLOT(load_presets9())); // shortcut to activate buttons QShortcut *shortcut = new QShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_A), this); connect(shortcut, SIGNAL(activated()), this, SLOT(enable_buttons())); // connect the functions if needed if(settings.value("Settings/checkForUpdates").toBool()) connect(this, SIGNAL(started()), this, SLOT(check_for_updates())); if(settings.value("Settings/connectOnStartup").toBool()) connect(this, SIGNAL(started()), this, SLOT(start_amp())); this->show(); this->repaint(); emit started(); }
int main(int argc, char **argv) { GOptionContext *context; RoccatDevice *konextd; GError *local_error = NULL; int retval = EXIT_SUCCESS; KoneplusRmp *rmp = NULL; roccat_secure(); roccat_textdomain(); context = commandline_parse(&argc, &argv); if (parameter_just_print_version) { g_print(VERSION_STRING "\n"); goto exit1; } #if !(GLIB_CHECK_VERSION(2, 36, 0)) g_type_init(); #endif konextd = konextd_device_first(); if (konextd == NULL) { g_critical(_("No %s found."), KONEXTD_DEVICE_NAME); retval = EXIT_FAILURE; goto exit1; } if (parameter_just_activate_driver_state) { if (!koneplus_device_state_write(konextd, KONEPLUS_DEVICE_STATE_STATE_ON, &local_error)) { g_critical(_("Could not activate driver state: %s"), local_error->message); retval = EXIT_FAILURE; } goto exit2; } if (parameter_just_deactivate_driver_state) { if (!koneplus_device_state_write(konextd, KONEPLUS_DEVICE_STATE_STATE_OFF, &local_error)) { g_critical(_("Could not deactivate driver state: %s"), local_error->message); retval = EXIT_FAILURE; } goto exit2; } if (parameter_just_update_firmware) { if (!update_firmware(konextd, parameter_just_update_firmware, &local_error)) { g_critical(_("Could not update firmware: %s"), local_error->message); retval = EXIT_FAILURE; } else g_message(_("Firmware updated successfully. Please reconnect device.")); goto exit2; } if (parameter_just_print_actual_profile) { if (!print_actual_profile(konextd, &local_error)) { g_critical(_("Could not print actual profile: %s"), local_error->message); retval = EXIT_FAILURE; } goto exit2; } if (parameter_just_reset) { if (!reset(konextd, &local_error)) { g_critical(_("Could not reset device: %s"), local_error->message); retval = EXIT_FAILURE; } goto exit2; } if (parameter_read_firmware) { if (!print_firmware(konextd, &local_error)) { g_critical(_("Could not print firmware version: %s"), local_error->message); retval = EXIT_FAILURE; goto exit2; } } if (parameter_sensor_read) { if (!print_sensor_value(konextd, &local_error)) { g_critical(_("Could not read sensor register: %s"), local_error->message); retval = EXIT_FAILURE; goto exit2; } } if (parameter_sensor_write != -1) { koneplus_sensor_write_register(konextd, parameter_sensor_register, parameter_sensor_write, &local_error); if (local_error) { g_critical(_("Could not write sensor register: %s"), local_error->message); retval = EXIT_FAILURE; goto exit2; } } if (parameter_load != -1) { rmp = konextd_rmp_load(konextd, parameter_load - 1, &local_error); if (!rmp) { g_critical(_("Could not load profile %i: %s"), parameter_load, local_error->message); retval = EXIT_FAILURE; goto exit2; } } else if (parameter_in_rmp) { rmp = koneplus_rmp_read_with_path(parameter_in_rmp, konextd_rmp_defaults(), &local_error); if (!rmp) { g_critical(_("Could not read rmp %s: %s"), parameter_in_rmp, local_error->message); retval = EXIT_FAILURE; goto exit2; } } else rmp = konextd_default_rmp(); koneplus_rmp_set_modified(rmp); if (parameter_save != -1) { if (!konextd_rmp_save(konextd, rmp, parameter_save - 1, &local_error)) { g_critical(_("Could not save profile %i: %s"), parameter_save, local_error->message); retval = EXIT_FAILURE; goto exit3; } konextd_dbus_emit_profile_data_changed_outside_instant(parameter_save); } if (parameter_out_rmp) { if (!koneplus_rmp_write_with_path(parameter_out_rmp, rmp, &local_error)) { g_critical(_("Could not write rmp %s: %s"), parameter_out_rmp, local_error->message); retval = EXIT_FAILURE; goto exit3; } } if (parameter_activate_profile != -1) { if (!koneplus_actual_profile_write(konextd, parameter_activate_profile -1, &local_error)) { g_critical(_("Could not activate profile %i: %s"), parameter_activate_profile, local_error->message); retval = EXIT_FAILURE; goto exit3; } konextd_dbus_emit_profile_changed_outside_instant(parameter_activate_profile); } exit3: koneplus_rmp_free(rmp); exit2: g_object_unref(G_OBJECT(konextd)); exit1: commandline_free(context); g_clear_error(&local_error); exit(retval); }
void firmware(int argc, char *argv[]) { int fd = -1, slot = 0; int a_flag, s_flag, f_flag; int activate_action, reboot_required; char ch, *p, *image = NULL; char *controller = NULL, prompt[64]; void *buf = NULL; int32_t size = 0; struct nvme_controller_data cdata; a_flag = s_flag = f_flag = false; while ((ch = getopt(argc, argv, "af:s:")) != -1) { switch (ch) { case 'a': a_flag = true; break; case 's': slot = strtol(optarg, &p, 0); if (p != NULL && *p != '\0') { fprintf(stderr, "\"%s\" not valid slot.\n", optarg); firmware_usage(); } else if (slot == 0) { fprintf(stderr, "0 is not a valid slot number. " "Slot numbers start at 1.\n"); firmware_usage(); } else if (slot > 7) { fprintf(stderr, "Slot number %s specified which is " "greater than max allowed slot number of " "7.\n", optarg); firmware_usage(); } s_flag = true; break; case 'f': image = optarg; f_flag = true; break; } } /* Check that a controller (and not a namespace) was specified. */ if (optind >= argc || strstr(argv[optind], NVME_NS_PREFIX) != NULL) firmware_usage(); if (!f_flag && !a_flag) { fprintf(stderr, "Neither a replace ([-f path_to_firmware]) nor " "activate ([-a]) firmware image action\n" "was specified.\n"); firmware_usage(); } if (!f_flag && a_flag && slot == 0) { fprintf(stderr, "Slot number to activate not specified.\n"); firmware_usage(); } controller = argv[optind]; open_dev(controller, &fd, 1, 1); read_controller_data(fd, &cdata); if (cdata.oacs.firmware == 0) errx(1, "controller does not support firmware activate/download"); if (f_flag && slot == 1 && cdata.frmw.slot1_ro) errx(1, "slot %d is marked as read only", slot); if (slot > cdata.frmw.num_slots) errx(1, "slot %d specified but controller only supports %d slots", slot, cdata.frmw.num_slots); if (a_flag && !f_flag && !slot_has_valid_firmware(fd, slot)) errx(1, "slot %d does not contain valid firmware,\n" "try 'nvmecontrol logpage -p 3 %s' to get a list " "of available images\n", slot, controller); if (f_flag) read_image_file(image, &buf, &size); if (f_flag && a_flag) printf("You are about to download and activate " "firmware image (%s) to controller %s.\n" "This may damage your controller and/or " "overwrite an existing firmware image.\n", image, controller); else if (a_flag) printf("You are about to activate a new firmware " "image on controller %s.\n" "This may damage your controller.\n", controller); else if (f_flag) printf("You are about to download firmware image " "(%s) to controller %s.\n" "This may damage your controller and/or " "overwrite an existing firmware image.\n", image, controller); printf("Are you sure you want to continue? (yes/no) "); while (1) { fgets(prompt, sizeof(prompt), stdin); if (strncasecmp(prompt, "yes", 3) == 0) break; if (strncasecmp(prompt, "no", 2) == 0) exit(1); printf("Please answer \"yes\" or \"no\". "); } if (f_flag) { update_firmware(fd, buf, size); if (a_flag) activate_action = NVME_AA_REPLACE_ACTIVATE; else activate_action = NVME_AA_REPLACE_NO_ACTIVATE; } else { activate_action = NVME_AA_ACTIVATE; } reboot_required = activate_firmware(fd, slot, activate_action); if (a_flag) { if (reboot_required) { printf("New firmware image activated but requires " "conventional reset (i.e. reboot) to " "complete activation.\n"); } else { printf("New firmware image activated and will take " "effect after next controller reset.\n" "Controller reset can be initiated via " "'nvmecontrol reset %s'\n", controller); } } close(fd); exit(0); }