X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fbinding%2Fdevice.cpp;h=20082db2f7a949666151fc01e006d7408f7fb3ab;hb=bb19aac49414cc772a2a1e52730cbb2ca24b425c;hp=401644fd0672fa616c5c21586f619590e8b1cff1;hpb=9a267f8dec48c9a28472c1a3bb146c624819e98b;p=pulseview.git diff --git a/pv/binding/device.cpp b/pv/binding/device.cpp index 401644f..20082db 100644 --- a/pv/binding/device.cpp +++ b/pv/binding/device.cpp @@ -89,8 +89,7 @@ Device::Device(shared_ptr configurable) : break; case SR_CONF_CAPTURE_RATIO: - bind_int(name, "", "%", pair(0, 100), - get, set); + bind_int(name, "", "%", pair(0, 100), get, set); break; case SR_CONF_PATTERN_MODE: @@ -147,20 +146,26 @@ void Device::bind_enum(const QString &name, const QString &desc, Property::Getter getter, Property::Setter setter, function printer) { - Glib::VariantBase gvar; - vector< pair > values; - assert(configurable_); if (!capabilities.count(Capability::LIST)) return; - Glib::VariantIter iter(configurable_->config_list(key)); - while ((iter.next_value(gvar))) - values.push_back(make_pair(gvar, printer(gvar))); + try { + Glib::VariantContainerBase gvar = configurable_->config_list(key); + Glib::VariantIter iter(gvar); + + vector< pair > values; + while ((iter.next_value(gvar))) + values.push_back(make_pair(gvar, printer(gvar))); + + properties_.push_back(shared_ptr(new Enum(name, desc, values, + getter, setter))); - properties_.push_back(shared_ptr(new Enum(name, desc, values, - getter, setter))); + } catch (sigrok::Error& e) { + qDebug() << "Error: Listing device key" << name << "failed!"; + return; + } } void Device::bind_int(const QString &name, const QString &desc, QString suffix,