X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fmainwindow.cpp;h=03562b8f54e57d421aefa86fe764e6d6f376a819;hp=82087ee080164f28cdfc9b3273ba2049d11dfe95;hb=5eb0fa13029207c45748ff572568542782e6d2a8;hpb=9663c82b7fa8ec54ece3045b41bbc4a53db8bb0b diff --git a/pv/mainwindow.cpp b/pv/mainwindow.cpp index 82087ee0..03562b8f 100644 --- a/pv/mainwindow.cpp +++ b/pv/mainwindow.cpp @@ -179,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); @@ -192,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()); @@ -208,7 +226,17 @@ void MainWindow::on_actionOpen_triggered() void MainWindow::on_actionConnect_triggered() { dialogs::Connect dlg(this); - dlg.exec(); + 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()