X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fsession.cpp;h=751afb30bd746abb7fe95fa20a35dcce9a232149;hp=76bdf683f9dc9b0a2872c4f9f5da8a637837293a;hb=3cc9ad7b867853315473df611612c562d562ed8a;hpb=fe3a1c218407f6b8a0d7ac7c454593809212ea9e diff --git a/pv/session.cpp b/pv/session.cpp index 76bdf683..751afb30 100644 --- a/pv/session.cpp +++ b/pv/session.cpp @@ -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()