#include <pv/prop/bool.h>
#include <pv/prop/double.h>
#include <pv/prop/enum.h>
+#include <pv/prop/int.h>
using namespace boost;
using namespace std;
bind_samplerate(name, gvar_list);
break;
+ case SR_CONF_CAPTURE_RATIO:
+ bind_int(name, key, "%", pair<int64_t, int64_t>(0, 100));
+ break;
+
case SR_CONF_PATTERN_MODE:
case SR_CONF_BUFFERSIZE:
case SR_CONF_TRIGGER_SOURCE:
case SR_CONF_VDIV:
bind_enum(name, key, gvar_list, print_vdiv);
break;
+
+ case SR_CONF_VOLTAGE_THRESHOLD:
+ bind_enum(name, key, gvar_list, print_voltage_threshold);
+ break;
}
if (gvar_list)
bind(config_setter, _sdi, key, _1))));
}
+void DeviceOptions::bind_int(const QString &name, int key, QString suffix,
+ optional< std::pair<int64_t, int64_t> > range)
+{
+ _properties.push_back(shared_ptr<Property>(
+ new Int(name, suffix, range,
+ bind(config_getter, _sdi, key),
+ bind(config_setter, _sdi, key, _1))));
+}
+
QString DeviceOptions::print_gvariant(GVariant *const gvar)
{
QString s;
return QString(sr_voltage_string(p, q));
}
+QString DeviceOptions::print_voltage_threshold(GVariant *const gvar)
+{
+ gdouble lo, hi;
+ char buf[64];
+ g_variant_get(gvar, "(dd)", &lo, &hi);
+ snprintf(buf, sizeof(buf), "L<%.1fV H>%.1fV", lo, hi);
+ return QString(buf);
+}
+
} // binding
} // prop
} // pv