X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fprop%2Fbinding%2Fdeviceoptions.h;h=a7fffa30ed47e937c2e135bf382eee03ae02999c;hb=e8d009288de28cb194bc7964f96677c2baf900c9;hp=28806f0f15e35c9fe2a650d809acc660f548a94b;hpb=4d5d5d6aeb7d936fb6b939f6c6531b3f054dac1f;p=pulseview.git diff --git a/pv/prop/binding/deviceoptions.h b/pv/prop/binding/deviceoptions.h index 28806f0..a7fffa3 100644 --- a/pv/prop/binding/deviceoptions.h +++ b/pv/prop/binding/deviceoptions.h @@ -21,49 +21,50 @@ #ifndef PULSEVIEW_PV_PROP_BINDING_DEVICEOPTIONS_H #define PULSEVIEW_PV_PROP_BINDING_DEVICEOPTIONS_H -#include +#include +#include #include -#include - #include "binding.h" +#include + +namespace sigrok { + class Configurable; +} + namespace pv { + namespace prop { namespace binding { -class DeviceOptions : public Binding +class DeviceOptions : public QObject, public Binding { -public: - DeviceOptions(struct sr_dev_inst *sdi); + Q_OBJECT -private: - - 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_enum(const QString &name, int key, - GVariant *const gvar_list, - boost::function printer = print_gvariant); - - static QString print_gvariant(GVariant *const gvar); +public: + DeviceOptions(std::shared_ptr configurable); - 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); +Q_SIGNALS: + void config_changed(); - static QString print_timebase(GVariant *const gvar); - static QString print_vdiv(GVariant *const gvar); +private: + void bind_bool(const QString &name, + Property::Getter getter, Property::Setter setter); + void bind_enum(const QString &name, Glib::VariantContainerBase gvar_list, + Property::Getter getter, Property::Setter setter, + std::function printer = print_gvariant); + void bind_int(const QString &name, QString suffix, + boost::optional< std::pair > range, + Property::Getter getter, Property::Setter setter); + + static QString print_timebase(Glib::VariantBase gvar); + static QString print_vdiv(Glib::VariantBase gvar); + static QString print_voltage_threshold(Glib::VariantBase gvar); protected: - struct sr_dev_inst *const _sdi; + std::shared_ptr _configurable; }; } // binding