X-Git-Url: http://git.code-monkey.de/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fbinding%2Fdevice.cpp;h=37c9d43d55248218b4e7e247cd6173fa1696b664;hp=20082db2f7a949666151fc01e006d7408f7fb3ab;hb=f4ab4b5c657e5613caba82feaa81a8a400e4f331;hpb=9f95aad19f36715c46bc9f2d7e8b149358034a7a diff --git a/pv/binding/device.cpp b/pv/binding/device.cpp index 20082db..37c9d43 100644 --- a/pv/binding/device.cpp +++ b/pv/binding/device.cpp @@ -32,7 +32,6 @@ using boost::optional; using std::function; -using std::make_pair; using std::pair; using std::set; using std::shared_ptr; @@ -69,7 +68,7 @@ Device::Device(shared_ptr configurable) : string name_str; try { name_str = key->description(); - } catch (Error e) { + } catch (Error& e) { name_str = key->name(); } @@ -98,6 +97,8 @@ Device::Device(shared_ptr configurable) : case SR_CONF_TRIGGER_SLOPE: case SR_CONF_COUPLING: case SR_CONF_CLOCK_EDGE: + case SR_CONF_DATA_SOURCE: + case SR_CONF_EXTERNAL_CLOCK_SOURCE: bind_enum(name, "", key, capabilities, get, set); break; @@ -105,6 +106,7 @@ Device::Device(shared_ptr configurable) : case SR_CONF_EXTERNAL_CLOCK: case SR_CONF_RLE: case SR_CONF_POWER_OFF: + case SR_CONF_AVERAGING: bind_bool(name, "", get, set); break; @@ -127,6 +129,13 @@ Device::Device(shared_ptr configurable) : bind_int(name, "", "", pair(1, 500), get, set); break; + case SR_CONF_AVG_SAMPLES: + if (capabilities.count(Capability::LIST)) + bind_enum(name, "", key, capabilities, get, set, print_averages); + else + bind_int(name, "", "", pair(0, INT32_MAX), get, set); + break; + default: break; } @@ -157,7 +166,7 @@ void Device::bind_enum(const QString &name, const QString &desc, vector< pair > values; while ((iter.next_value(gvar))) - values.push_back(make_pair(gvar, printer(gvar))); + values.emplace_back(gvar, printer(gvar)); properties_.push_back(shared_ptr(new Enum(name, desc, values, getter, setter))); @@ -206,5 +215,12 @@ QString Device::print_probe_factor(Glib::VariantBase gvar) return QString("%1x").arg(factor); } +QString Device::print_averages(Glib::VariantBase gvar) +{ + uint64_t avg; + avg = g_variant_get_uint64(gvar.gobj()); + return QString("%1").arg(avg); +} + } // namespace binding } // namespace pv