static void show_version(void) { GSList *l; struct sr_dev_driver **drivers; struct sr_input_format **inputs; struct sr_output_format **outputs; struct srd_decoder *dec; int i; printf("sigrok-cli %s\n\n", VERSION); printf("Using libsigrok %s (lib version %s).\n", sr_package_version_string_get(), sr_lib_version_string_get()); printf("Using libsigrokdecode %s (lib version %s).\n\n", srd_package_version_string_get(), srd_lib_version_string_get()); printf("Supported hardware drivers:\n"); drivers = sr_driver_list(); for (i = 0; drivers[i]; i++) { printf(" %-20s %s\n", drivers[i]->name, drivers[i]->longname); } printf("\n"); printf("Supported input formats:\n"); inputs = sr_input_list(); for (i = 0; inputs[i]; i++) printf(" %-20s %s\n", inputs[i]->id, inputs[i]->description); printf("\n"); printf("Supported output formats:\n"); outputs = sr_output_list(); for (i = 0; outputs[i]; i++) printf(" %-20s %s\n", outputs[i]->id, outputs[i]->description); printf("\n"); if (srd_init(NULL) == SRD_OK) { printf("Supported protocol decoders:\n"); srd_decoder_load_all(); for (l = srd_decoder_list(); l; l = l->next) { dec = l->data; printf(" %-20s %s\n", dec->id, dec->longname); /* Print protocol description upon "-l 3" or higher. */ if (opt_loglevel >= SR_LOG_INFO) printf(" %-20s %s\n", "", dec->desc); } srd_exit(); } printf("\n"); }
int main(int argc, char *argv[]) { QString locale = QLocale::system().name(); QApplication a(argc, argv); QTranslator translator; translator.load(QString("locale/sigrok-qt_") + locale); a.installTranslator(&translator); /* Set some application metadata. */ QApplication::setApplicationVersion(APP_VERSION); QApplication::setApplicationName("sigrok-qt"); QApplication::setOrganizationDomain("http://www.sigrok.org"); /* Disable this to actually allow running the (pre-alpha!) Qt GUI. */ qDebug() << "The Qt GUI is not yet usable, aborting."; // return 1; if (sr_init() != SR_OK) { qDebug() << "ERROR: libsigrok init failed."; return 1; } qDebug() << "libsigrok initialized successfully."; if (srd_init(NULL) != SRD_OK) { qDebug() << "ERROR: libsigrokdecode init failed."; return 1; } qDebug() << "libsigrokdecode initialized successfully."; w = new MainWindow; w->show(); /* The GUI wants to show a list of all PDs before use, so we * might as well load them now. */ srd_decoder_load_all(); return a.exec(); }
int main(int argc, char *argv[]) { int ret = 0; struct sr_context *sr_ctx = NULL; const char *open_file = NULL; QApplication a(argc, argv); // Set some application metadata QApplication::setApplicationVersion(DS_VERSION_STRING); QApplication::setApplicationName("DSLogic(Beta)"); QApplication::setOrganizationDomain("http://www.DreamSourceLab.com"); // Parse arguments while (1) { static const struct option long_options[] = { {"loglevel", required_argument, 0, 'l'}, {"version", no_argument, 0, 'V'}, {"help", no_argument, 0, 'h'}, {0, 0, 0, 0} }; const int c = getopt_long(argc, argv, "l:Vh?", long_options, NULL); if (c == -1) break; switch (c) { case 'l': { const int loglevel = atoi(optarg); sr_log_loglevel_set(loglevel); #ifdef ENABLE_DECODE srd_log_loglevel_set(loglevel); #endif break; } case 'V': // Print version info fprintf(stdout, "%s %s\n", DS_TITLE, DS_VERSION_STRING); return 0; case 'h': case '?': usage(); return 0; } } if (argc - optind > 1) { fprintf(stderr, "Only one file can be openened.\n"); return 1; } else if (argc - optind == 1) open_file = argv[argc - 1]; // Initialise libsigrok if (sr_init(&sr_ctx) != SR_OK) { qDebug() << "ERROR: libsigrok init failed."; return 1; } do { #ifdef ENABLE_DECODE QDir dir(QCoreApplication::applicationDirPath()); assert(dir.cd("decoders")); std::string str = dir.absolutePath().toStdString() + "/"; strcpy(decoders_path, str.c_str()); // Initialise libsigrokdecode if (srd_init(NULL) != SRD_OK) { qDebug() << "ERROR: libsigrokdecode init failed."; break; } // Load the protocol decoders srd_decoder_load_all(); #endif try { // Create the device manager, initialise the drivers pv::DeviceManager device_manager(sr_ctx); // Initialise the main window pv::MainWindow w(device_manager, open_file); QFile qss(":/stylesheet.qss"); qss.open(QFile::ReadOnly); a.setStyleSheet(qss.readAll()); qss.close(); w.show(); // Run the application ret = a.exec(); } catch(std::exception e) { qDebug() << e.what(); } #ifdef ENABLE_DECODE // Destroy libsigrokdecode srd_exit(); #endif } while (0); // Destroy libsigrok if (sr_ctx) sr_exit(sr_ctx); return ret; }
void show_version(void) { struct sr_dev_driver **drivers, *driver; struct sr_input_format **inputs, *input; struct sr_output_format **outputs, *output; const GSList *l; GSList *sl; int i; #ifdef HAVE_SRD struct srd_decoder *dec; #endif printf("sigrok-cli %s\n\n", VERSION); printf("Using libsigrok %s (lib version %s).\n", sr_package_version_string_get(), sr_lib_version_string_get()); #ifdef HAVE_SRD printf("Using libsigrokdecode %s (lib version %s).\n\n", srd_package_version_string_get(), srd_lib_version_string_get()); #endif printf("Supported hardware drivers:\n"); drivers = sr_driver_list(); for (sl = NULL, i = 0; drivers[i]; i++) sl = g_slist_append(sl, drivers[i]); sl = g_slist_sort(sl, sort_drivers); for (l = sl; l; l = l->next) { driver = l->data; printf(" %-20s %s\n", driver->name, driver->longname); } printf("\n"); g_slist_free(sl); printf("Supported input formats:\n"); inputs = sr_input_list(); for (sl = NULL, i = 0; inputs[i]; i++) sl = g_slist_append(sl, inputs[i]); sl = g_slist_sort(sl, sort_inputs); for (l = sl; l; l = l->next) { input = l->data; printf(" %-20s %s\n", input->id, input->description); } printf("\n"); g_slist_free(sl); printf("Supported output formats:\n"); outputs = sr_output_list(); for (sl = NULL, i = 0; outputs[i]; i++) sl = g_slist_append(sl, outputs[i]); sl = g_slist_sort(sl, sort_outputs); for (l = sl; l; l = l->next) { output = l->data; printf(" %-20s %s\n", output->id, output->description); } printf("\n"); g_slist_free(sl); #ifdef HAVE_SRD if (srd_init(NULL) == SRD_OK) { printf("Supported protocol decoders:\n"); srd_decoder_load_all(); sl = g_slist_copy((GSList *)srd_decoder_list()); sl = g_slist_sort(sl, sort_pds); for (l = sl; l; l = l->next) { dec = l->data; printf(" %-20s %s\n", dec->id, dec->longname); /* Print protocol description upon "-l 3" or higher. */ if (opt_loglevel >= SR_LOG_INFO) printf(" %-20s %s\n", "", dec->desc); } g_slist_free(sl); srd_exit(); } printf("\n"); #endif }