X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fsession.cpp;h=31ca328deca53bf1c9cfd90d426fb228da228af6;hb=HEAD;hp=f992d9f1f3a98bec7a0cad69b954b431bc13692b;hpb=db51130df74d9188d98e1a3b8073d9d482d6fa60;p=pulseview.git diff --git a/pv/session.cpp b/pv/session.cpp index f992d9f1..b4ecc6a8 100644 --- a/pv/session.cpp +++ b/pv/session.cpp @@ -614,6 +614,9 @@ void Session::set_device(shared_ptr device) } catch (const QString &e) { device_.reset(); MainWindow::show_session_error(tr("Failed to open device"), e); + } catch (const sigrok::Error &e) { + device_.reset(); + MainWindow::show_session_error(tr("Failed to open device"), QString(e.what())); } if (device_) { @@ -756,8 +759,11 @@ void Session::load_file(QString file_name, QString setup_file_name, file_name.toStdString()))); } catch (Error& e) { MainWindow::show_session_error(tr("Failed to load %1").arg(file_name), e.what()); - set_default_device(); - main_bar_->update_device_list(); + return; + } + + if (!device_) { + MainWindow::show_session_error(errorMessage, ""); return; } @@ -776,7 +782,7 @@ void Session::load_file(QString file_name, QString setup_file_name, main_bar_->update_device_list(); start_capture([&, errorMessage](QString infoMessage) { - MainWindow::show_session_error(errorMessage, infoMessage); }); + Q_EMIT session_error_raised(errorMessage, infoMessage); }); // Only set save path if we loaded an srzip file if (dynamic_pointer_cast(device_)) @@ -829,6 +835,8 @@ void Session::start_capture(function error_handler) name_changed(); } + acq_start_time_ = Glib::DateTime::create_now_local(); + // Begin the session sampling_thread_ = std::thread(&Session::sample_thread_proc, this, error_handler); } @@ -923,6 +931,11 @@ double Session::get_samplerate() const return samplerate; } +Glib::DateTime Session::get_acquisition_start_time() const +{ + return acq_start_time_; +} + uint32_t Session::get_highest_segment_id() const { return highest_segment_id_;