X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fmainwindow.cpp;h=03562b8f54e57d421aefa86fe764e6d6f376a819;hb=5eb0fa13029207c45748ff572568542782e6d2a8;hp=1ee3f4e0d62b0142ac7e93d6db544d60545ecc90;hpb=1d478458c2b7b314a48981ceb3264ebc852df40d;p=pulseview.git diff --git a/pv/mainwindow.cpp b/pv/mainwindow.cpp index 1ee3f4e..03562b8 100644 --- a/pv/mainwindow.cpp +++ b/pv/mainwindow.cpp @@ -33,6 +33,7 @@ #include "mainwindow.h" #include "samplingbar.h" #include "dialogs/about.h" +#include "dialogs/connect.h" #include "view/view.h" /* __STDC_FORMAT_MACROS is required for PRIu64 and friends (in C++). */ @@ -100,6 +101,15 @@ void MainWindow::setup_ui() _menu_file->addSeparator(); + _action_connect = new QAction(this); + _action_connect->setText(QApplication::translate( + "MainWindow", "&Connect to Device...", 0, + QApplication::UnicodeUTF8)); + _action_connect->setObjectName(QString::fromUtf8("actionConnect")); + _menu_file->addAction(_action_connect); + + _menu_file->addSeparator(); + _action_quit = new QAction(this); _action_quit->setText(QApplication::translate( "MainWindow", "&Quit", 0, QApplication::UnicodeUTF8)); @@ -169,6 +179,7 @@ void MainWindow::setup_ui() addToolBar(_toolbar); _sampling_bar = new SamplingBar(this); + scan_devices(); connect(_sampling_bar, SIGNAL(run_stop()), this, SLOT(run_stop())); addToolBar(_sampling_bar); @@ -182,6 +193,23 @@ void MainWindow::setup_ui() } +void MainWindow::scan_devices() +{ + _devices.clear(); + + /* Scan all drivers for all devices. */ + struct sr_dev_driver **const drivers = sr_driver_list(); + for (struct sr_dev_driver **driver = drivers; *driver; driver++) { + GSList *const devices = sr_driver_scan(*driver, NULL); + for (GSList *l = devices; l; l = l->next) + _devices.push_back((sr_dev_inst*)l->data); + g_slist_free(devices); + } + + assert(_sampling_bar); + _sampling_bar->set_device_list(_devices); +} + void MainWindow::load_file(QString file_name) { _session.load_file(file_name.toStdString()); @@ -195,6 +223,22 @@ void MainWindow::on_actionOpen_triggered() load_file(file_name); } +void MainWindow::on_actionConnect_triggered() +{ + dialogs::Connect dlg(this); + if(!dlg.exec()) + return; + + struct sr_dev_inst *const sdi = dlg.get_selected_device(); + if (sdi) { + assert(_sampling_bar); + + _devices.push_back(sdi); + _sampling_bar->set_device_list(_devices); + _sampling_bar->set_selected_device(sdi); + } +} + void MainWindow::on_actionQuit_triggered() { close(); @@ -228,8 +272,7 @@ void MainWindow::run_stop() case SigSession::Stopped: _session.start_capture( _sampling_bar->get_selected_device(), - _sampling_bar->get_record_length(), - _sampling_bar->get_sample_rate()); + _sampling_bar->get_record_length()); break; case SigSession::Running: