]> sigrok.org Git - pulseview.git/blobdiff - pv/prop/binding/deviceoptions.h
Added Binding::add_properties_to_form
[pulseview.git] / pv / prop / binding / deviceoptions.h
index c2c2917536ab019511f2c4cb71b53cea5f8165d7..e8af8e8a3b4678bd6e2d5c14472f698bba204a84 100644 (file)
@@ -21,6 +21,9 @@
 #ifndef PULSEVIEW_PV_PROP_BINDING_DEVICEOPTIONS_H
 #define PULSEVIEW_PV_PROP_BINDING_DEVICEOPTIONS_H
 
+#include <boost/function.hpp>
+#include <boost/optional.hpp>
+
 #include <QString>
 
 #include <libsigrok/libsigrok.h>
@@ -37,15 +40,32 @@ public:
        DeviceOptions(struct sr_dev_inst *sdi);
 
 private:
-       void expose_enum(const struct sr_config_info *info,
-               const std::vector<std::pair<const void*, QString> > &values,
-               int opt);
 
-       void bind_stropt(const struct sr_config_info *info, int key);
+       static GVariant* config_getter(
+               const struct sr_dev_inst *sdi, int key);
+       static void config_setter(
+               const struct sr_dev_inst *sdi, int key, GVariant* value);
+
+       void bind_bool(const QString &name, int key);
+       void bind_enum(const QString &name, int key,
+               GVariant *const gvar_list,
+               boost::function<QString (GVariant*)> printer = print_gvariant);
+       void bind_int(const QString &name, int key, QString suffix,
+               boost::optional< std::pair<int64_t, int64_t> > range);
+
+       static QString print_gvariant(GVariant *const gvar);
+
+       void bind_samplerate(const QString &name,
+               GVariant *const gvar_list);
+       static QString print_samplerate(GVariant *const gvar);
+       static GVariant* samplerate_double_getter(
+               const struct sr_dev_inst *sdi);
+       static void samplerate_double_setter(
+               struct sr_dev_inst *sdi, GVariant *value);
 
-       void bind_buffer_size(const struct sr_config_info *info);
-       void bind_time_base(const struct sr_config_info *info);
-       void bind_vdiv(const struct sr_config_info *info);
+       static QString print_timebase(GVariant *const gvar);
+       static QString print_vdiv(GVariant *const gvar);
+       static QString print_voltage_threshold(GVariant *const gvar);
 
 protected:
        struct sr_dev_inst *const _sdi;