From 6e2a5b1d677a26a637465cd4d304e2bc52e14f36 Mon Sep 17 00:00:00 2001 From: Gerhard Sittig Date: Sun, 25 Jun 2017 20:11:39 +0200 Subject: [PATCH 1/1] main window: Prefer the user specified device in new sessions Prefer the device that was found with user provided scan options when a -d command line option was specified. Stick with the previous selection of "genuine" devices before demo otherwise (when nothing was found, or when -d was not specified). --- pv/mainwindow.cpp | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/pv/mainwindow.cpp b/pv/mainwindow.cpp index 8b11d082..119ce0a7 100644 --- a/pv/mainwindow.cpp +++ b/pv/mainwindow.cpp @@ -338,20 +338,26 @@ void MainWindow::add_default_session() shared_ptr session = add_session(); - map dev_info; - shared_ptr other_device, demo_device; - - // Use any available device that's not demo + // Check the list of available devices. Prefer the one that was + // found with user supplied scan specs (if applicable). Then try + // one of the auto detected devices that are not the demo device. + // Pick demo in the absence of "genuine" hardware devices. + shared_ptr user_device, other_device, demo_device; for (shared_ptr dev : device_manager_.devices()) { - if (dev->hardware_device()->driver()->name() == "demo") { + if (dev == device_manager_.user_spec_device()) { + user_device = dev; + } else if (dev->hardware_device()->driver()->name() == "demo") { demo_device = dev; } else { other_device = dev; } } - - // ...and if there isn't any, just use demo then - session->select_device(other_device ? other_device : demo_device); + if (user_device) + session->select_device(user_device); + else if (other_device) + session->select_device(other_device); + else + session->select_device(demo_device); } void MainWindow::save_sessions() -- 2.30.2