Session: Catch errors listing the config keys
[pulseview.git] / pv / session.cpp
index 27154d13cd238c8713e4aab4f5415fa773cbd123..2cdc25f83ed0ee3c718896da9d8df98d13f34876 100644 (file)
@@ -133,7 +133,6 @@ void Session::set_device(shared_ptr<devices::Device> device)
                (shared_ptr<sigrok::Device> device, shared_ptr<Packet> packet) {
                        data_feed_in(device, packet);
                });
-       device_manager_.update_display_name(device_);
        update_signals(device_);
 
        decode_traces_.clear();
@@ -401,7 +400,12 @@ shared_ptr<view::Signal> Session::signal_from_channel(
 void Session::read_sample_rate(shared_ptr<sigrok::Device> device)
 {
        assert(device);
-       const auto keys = device->config_keys(ConfigKey::DEVICE_OPTIONS);
+       map< const ConfigKey*, set<sigrok::Capability> > keys;
+
+       try {
+               keys = device->config_keys(ConfigKey::DEVICE_OPTIONS);
+       } catch (const Error) {}
+
        const auto iter = keys.find(ConfigKey::SAMPLERATE);
        cur_samplerate_ = (iter != keys.end() &&
                (*iter).second.find(sigrok::GET) != (*iter).second.end()) ?