X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fmainwindow.cpp;h=a339b19a1b8b3963c59a21a1d075a4493effdb2f;hp=ac5372a6f46d295468699ca95460cbab647720ef;hb=dd3fd4df34d129c83f7f5d80ff1e8b998beca63d;hpb=5237f0c50352b523c6a0c3d7f931081ecdbdecaa diff --git a/pv/mainwindow.cpp b/pv/mainwindow.cpp index ac5372a6..a339b19a 100644 --- a/pv/mainwindow.cpp +++ b/pv/mainwindow.cpp @@ -46,6 +46,7 @@ #include "devicemanager.hpp" #include "devices/hardwaredevice.hpp" +#include "devices/inputfile.hpp" #include "devices/sessionfile.hpp" #include "dialogs/about.hpp" #include "dialogs/connect.hpp" @@ -76,6 +77,7 @@ using boost::algorithm::join; using sigrok::Error; using sigrok::OutputFormat; +using sigrok::InputFormat; namespace pv { @@ -525,17 +527,26 @@ void MainWindow::keyReleaseEvent(QKeyEvent *event) QMainWindow::keyReleaseEvent(event); } -void MainWindow::load_file(QString file_name) +void MainWindow::load_file(QString file_name, + std::shared_ptr format, + const std::map &options) { const QString errorMessage( QString("Failed to load file %1").arg(file_name)); const QString infoMessage; try { - session_.set_device( - shared_ptr(new devices::SessionFile( - device_manager_.context(), - file_name.toStdString()))); + if (format) + session_.set_device(shared_ptr( + new devices::InputFile( + device_manager_.context(), + file_name.toStdString(), + format, options))); + else + session_.set_device(shared_ptr( + new devices::SessionFile( + device_manager_.context(), + file_name.toStdString()))); } catch(Error e) { show_session_error(tr("Failed to load ") + file_name, e.what()); session_.set_default_device();