X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Ftoolbars%2Fsamplingbar.cpp;h=710f3128af727cf4ef51ce90178d6efaa94f3ab6;hb=6454b1e960c85b17ec9590b78bc0387dc348ae9b;hp=7ee4d98150b5ccdb491ff9e2093a3507a9e7ad0d;hpb=53a7cce47482b2220e023bfcb9b4069b6eb88805;p=pulseview.git diff --git a/pv/toolbars/samplingbar.cpp b/pv/toolbars/samplingbar.cpp index 7ee4d98..710f312 100644 --- a/pv/toolbars/samplingbar.cpp +++ b/pv/toolbars/samplingbar.cpp @@ -183,8 +183,17 @@ void SamplingBar::update_sample_rate_selector() const auto iter = keys.find(ConfigKey::SAMPLERATE); if (iter != keys.end() && (*iter).second.find(sigrok::LIST) != (*iter).second.end()) { - gvar_dict = device->config_list(ConfigKey::SAMPLERATE); - } else { + const auto keys = device->config_keys( + ConfigKey::DEVICE_OPTIONS); + try { + gvar_dict = device->config_list(ConfigKey::SAMPLERATE); + } catch(const sigrok::Error &e) { + // Failed to enunmerate samplerate + (void)e; + } + } + + if (!gvar_dict) { sample_rate_.show_none(); updating_sample_rate_ = false; return; @@ -284,9 +293,16 @@ void SamplingBar::update_sample_count_selector() const auto iter = keys.find(ConfigKey::LIMIT_SAMPLES); if (iter != keys.end() && (*iter).second.find(sigrok::LIST) != (*iter).second.end()) { - auto gvar = device->config_list(ConfigKey::LIMIT_SAMPLES); - g_variant_get(gvar.gobj(), "(tt)", - &min_sample_count, &max_sample_count); + try { + auto gvar = + device->config_list(ConfigKey::LIMIT_SAMPLES); + if (gvar) + g_variant_get(gvar.gobj(), "(tt)", + &min_sample_count, &max_sample_count); + } catch(const sigrok::Error &e) { + // Failed to query sample limit + (void)e; + } } min_sample_count = min(max(min_sample_count, MinSampleCount),