]> sigrok.org Git - pulseview.git/blobdiff - pv/devices/inputfile.cpp
Fix #605 by closing current device when another is selected
[pulseview.git] / pv / devices / inputfile.cpp
index 411877473b9bf30e235b990243c574f7418c1a61..13af3db9cd85c791935da6c80bf1a14220d492a0 100644 (file)
@@ -34,18 +34,26 @@ InputFile::InputFile(const std::shared_ptr<sigrok::Context> &context,
        const std::string &file_name,
        std::shared_ptr<sigrok::InputFormat> format,
        const std::map<std::string, Glib::VariantBase> &options) :
+       File(file_name),
        context_(context),
        input_(format->create_input(options)),
-       file_name_(file_name),
        interrupt_(false) {
        if (!input_)
                throw QString("Failed to create input");
 }
 
-void InputFile::create() {
+void InputFile::open() {
+       if (session_)
+               close();
+
        session_ = context_->create_session();
 }
 
+void InputFile::close() {
+       if (session_)
+               session_->remove_devices();
+}
+
 void InputFile::start() {
 }