X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fsession.cpp;h=91e39756456045ccc37dd46ae66c8c9f53b4c8f3;hp=ae29f6a9c4d5b135242dc4426fc6b1837ba6f89f;hb=611c86259f66dd1766b10b1e1b671b0fadd51fe2;hpb=97378470ded88af84edaa0f1063d10d834475665 diff --git a/pv/session.cpp b/pv/session.cpp index ae29f6a9..91e39756 100644 --- a/pv/session.cpp +++ b/pv/session.cpp @@ -525,7 +525,9 @@ Session::input_format_options(vector user_spec, return result; } -void Session::load_init_file(const string &file_name, const string &format) +void Session::load_init_file(const string &file_name, + const string &format, + const string &setup_file_name) { shared_ptr input_format; map input_opts; @@ -549,10 +551,13 @@ void Session::load_init_file(const string &file_name, const string &format) input_format->options()); } - load_file(QString::fromStdString(file_name), input_format, input_opts); + load_file(QString::fromStdString(file_name), + QString::fromStdString(setup_file_name), + input_format, input_opts); } void Session::load_file(QString file_name, + QString setup_file_name, shared_ptr format, const map &options) { @@ -582,10 +587,13 @@ void Session::load_file(QString file_name, return; } + // Default the setup filename with a .pvs extension if none is provided + if (setup_file_name.isEmpty() || setup_file_name.isNull()) { + setup_file_name = file_name; + setup_file_name.truncate(setup_file_name.lastIndexOf('.')); + setup_file_name.append(".pvs"); + } // Auto-load the setup if one exists - QString setup_file_name = file_name; - setup_file_name.truncate(setup_file_name.lastIndexOf('.')); - setup_file_name.append(".pvs"); if (QFileInfo::exists(setup_file_name) && QFileInfo(setup_file_name).isReadable()) { QSettings settings_storage(setup_file_name, QSettings::IniFormat); restore_setup(settings_storage); @@ -820,6 +828,11 @@ void Session::set_capture_state(capture_state state) { bool changed; + if (state == Running) + acq_time_.start(); + if (state == Stopped) + qDebug("Acquisition took %.2f s", acq_time_.elapsed() / 1000.); + { lock_guard lock(sampling_mutex_); changed = capture_state_ != state;