X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fprop%2Fbinding%2Fdeviceoptions.h;h=ab0f01716f0377c563c5288a14050bed8ea7fae2;hp=b622d9379665a014283bb05eea7799907bd97910;hb=941c1ba74ba3ba6dd44bf23aafee28809138032b;hpb=d71bca8b719331690455e3b3aa8aeeba350c9d3a diff --git a/pv/prop/binding/deviceoptions.h b/pv/prop/binding/deviceoptions.h index b622d937..ab0f0171 100644 --- a/pv/prop/binding/deviceoptions.h +++ b/pv/prop/binding/deviceoptions.h @@ -21,6 +21,9 @@ #ifndef PULSEVIEW_PV_PROP_BINDING_DEVICEOPTIONS_H #define PULSEVIEW_PV_PROP_BINDING_DEVICEOPTIONS_H +#include +#include + #include #include @@ -34,25 +37,33 @@ namespace binding { class DeviceOptions : public Binding { public: - DeviceOptions(struct sr_dev_inst *sdi); + DeviceOptions(const sr_dev_inst *sdi, + const sr_probe_group *group = NULL); private: - void expose_enum(const struct sr_config_info *info, - const std::vector > &values, - int opt); - void bind_stropt(const struct sr_config_info *info, int key); + static GVariant* config_getter( + const sr_dev_inst *sdi, const sr_probe_group *group, int key); + static void config_setter( + const sr_dev_inst *sdi, const sr_probe_group *group, int key, + 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); + void bind_bool(const QString &name, int key); + void bind_enum(const QString &name, int key, + GVariant *const gvar_list, + boost::function printer = print_gvariant); + void bind_int(const QString &name, int key, QString suffix, + boost::optional< std::pair > range); -private: - static const void* enum_getter( - const struct sr_dev_inst *sdi, int key); + static QString print_gvariant(GVariant *const gvar); + + 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; + const sr_dev_inst *const _sdi; + const sr_probe_group *const _group; }; } // binding