X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fsession.cpp;h=751afb30bd746abb7fe95fa20a35dcce9a232149;hp=7bb9de8da443fccb6a19d523572d9472b7ef87a9;hb=3cc9ad7b867853315473df611612c562d562ed8a;hpb=f3d66e52ed6b454ea7a0662d5e6367e230116a2b diff --git a/pv/session.cpp b/pv/session.cpp index 7bb9de8d..751afb30 100644 --- a/pv/session.cpp +++ b/pv/session.cpp @@ -45,7 +45,7 @@ #include -#include +#include using boost::shared_lock; using boost::shared_mutex; @@ -123,9 +123,12 @@ void Session::set_device(shared_ptr device) stop_capture(); // Are we setting a session device? - auto session_device = dynamic_pointer_cast(device); + const auto session_device = + dynamic_pointer_cast(device); + // Did we have a session device selected previously? - auto prev_session_device = dynamic_pointer_cast(device_); + const auto prev_session_device = + dynamic_pointer_cast(device_); if (device_) { session_->remove_datafeed_callbacks(); @@ -159,6 +162,7 @@ void Session::set_device(shared_ptr device) (shared_ptr device, shared_ptr packet) { data_feed_in(device, packet); }); + device_manager_.update_display_name(device); update_signals(device); } else device_ = nullptr; @@ -166,18 +170,11 @@ void Session::set_device(shared_ptr device) device_selected(); } -void Session::set_file(const string &name) +void Session::set_session_file(const string &name) { - session_ = device_manager_.context()->load_session(name); - device_ = session_->devices()[0]; - decode_traces_.clear(); - session_->add_datafeed_callback([=] - (shared_ptr device, shared_ptr packet) { - data_feed_in(device, packet); - }); - device_manager_.update_display_name(device_); - update_signals(device_); - device_selected(); + const shared_ptr session = + device_manager_.context()->load_session(name); + set_device(session->devices()[0]); } void Session::set_default_device()