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;
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),