Session: Measure acquisition time
[pulseview.git] / pv / session.cpp
index 99bd74823904079e1d507be7178afe7b03aedc3c..245889d65488e5c54f41eff9f9e4664c26b98c41 100644 (file)
@@ -582,6 +582,15 @@ void Session::load_file(QString file_name,
                return;
        }
 
+       // 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);
+       }
+
        main_bar_->update_device_list();
 
        start_capture([&, errorMessage](QString infoMessage) {
@@ -811,6 +820,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<mutex> lock(sampling_mutex_);
                changed = capture_state_ != state;
@@ -1452,4 +1466,17 @@ void Session::on_data_saved()
        data_saved_ = true;
 }
 
+#ifdef ENABLE_DECODE
+void Session::on_new_decoders_selected(vector<const srd_decoder*> decoders)
+{
+       assert(decoders.size() > 0);
+
+       shared_ptr<data::DecodeSignal> signal = add_decode_signal();
+
+       if (signal)
+               for (const srd_decoder* d : decoders)
+                       signal->stack_decoder(d);
+}
+#endif
+
 } // namespace pv