Fix #605 by closing current device when another is selected
[pulseview.git] / pv / devices / sessionfile.cpp
index d45b9fa492832bc147c7ea7aadcc8e06c446d263..e6920ff5e299a6a5b5e437b2768d3d020549f2e0 100644 (file)
@@ -33,10 +33,18 @@ SessionFile::SessionFile(const std::shared_ptr<sigrok::Context> context,
        context_(context) {
 }
 
-void SessionFile::create() {
+void SessionFile::open() {
+       if (session_)
+               close();
+
        session_ = context_->load_session(file_name_);
        device_ = session_->devices()[0];
 }
 
+void SessionFile::close() {
+       if (session_)
+               session_->remove_devices();
+}
+
 } // namespace devices
 } // namespace pv