]> sigrok.org Git - pulseview.git/blobdiff - pv/devices/sessionfile.cpp
Fix #605 by closing current device when another is selected
[pulseview.git] / pv / devices / sessionfile.cpp
index 7bcabee036cef366eb59d6cd3d5e4731ae1e9bfe..e6920ff5e299a6a5b5e437b2768d3d020549f2e0 100644 (file)
 namespace pv {
 namespace devices {
 
-SessionFile::SessionFile(const std::shared_ptr<sigrok::Context> &context,
+SessionFile::SessionFile(const std::shared_ptr<sigrok::Context> context,
        const std::string &file_name) :
        File(file_name),
        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