X-Git-Url: http://git.code-monkey.de/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fsession.cpp;h=91e39756456045ccc37dd46ae66c8c9f53b4c8f3;hp=99bd74823904079e1d507be7178afe7b03aedc3c;hb=611c86259f66dd1766b10b1e1b671b0fadd51fe2;hpb=323715c41a09a1aba08f4b716e9d93da58f0f3a8 diff --git a/pv/session.cpp b/pv/session.cpp index 99bd748..91e3975 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,6 +587,18 @@ 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 + if (QFileInfo::exists(setup_file_name) && QFileInfo(setup_file_name).isReadable()) { + QSettings settings_storage(setup_file_name, QSettings::IniFormat); + restore_setup(settings_storage); + } + main_bar_->update_device_list(); start_capture([&, errorMessage](QString infoMessage) { @@ -811,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; @@ -1452,4 +1474,17 @@ void Session::on_data_saved() data_saved_ = true; } +#ifdef ENABLE_DECODE +void Session::on_new_decoders_selected(vector decoders) +{ + assert(decoders.size() > 0); + + shared_ptr signal = add_decode_signal(); + + if (signal) + for (const srd_decoder* d : decoders) + signal->stack_decoder(d); +} +#endif + } // namespace pv