Extend the Session::load_init_file() method, to have the input format
automatically detected in the absence of an -I spec upon startup.
This fixes part of bug 1015. Input files specified at the command line
when pulseview gets invoked are handled. Files that interactively get
loaded while pulseview is running are not handled yet.
map<string, Glib::VariantBase> input_opts;
if (!format.empty()) {
map<string, Glib::VariantBase> input_opts;
if (!format.empty()) {
+ // Got a user provided input format spec.
const map<string, shared_ptr<InputFormat> > formats =
device_manager_.context()->input_formats();
auto user_opts = pv::util::split_string(format, ":");
const map<string, shared_ptr<InputFormat> > formats =
device_manager_.context()->input_formats();
auto user_opts = pv::util::split_string(format, ":");
input_format = (*iter).second;
input_opts = input_format_options(user_opts,
input_format->options());
input_format = (*iter).second;
input_opts = input_format_options(user_opts,
input_format->options());
+ } else {
+ // (Try to) auto detect the input format. Lookup failure
+ // is not fatal, when no input module claimed responsibility,
+ // then a session file gets loaded.
+ input_format = device_manager_.context()->input_format_match(file_name);
}
load_file(QString::fromStdString(file_name), input_format, input_opts);
}
load_file(QString::fromStdString(file_name), input_format, input_opts);