X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fprop%2Fbinding%2Fdeviceoptions.h;fp=pv%2Fprop%2Fbinding%2Fdeviceoptions.h;h=a7fffa30ed47e937c2e135bf382eee03ae02999c;hp=a1efd06a3fbc0bed6e42aec944f3315d1b7e3c49;hb=e8d009288de28cb194bc7964f96677c2baf900c9;hpb=87b79835014a386fb51b52bc993dbb693bd27197;ds=sidebyside diff --git a/pv/prop/binding/deviceoptions.h b/pv/prop/binding/deviceoptions.h index a1efd06a..a7fffa30 100644 --- a/pv/prop/binding/deviceoptions.h +++ b/pv/prop/binding/deviceoptions.h @@ -23,50 +23,48 @@ #include +#include #include -#include - #include "binding.h" #include -struct sr_dev_inst; -struct sr_channel_group; +namespace sigrok { + class Configurable; +} namespace pv { -namespace device { -class DevInst; -} - namespace prop { namespace binding { -class DeviceOptions : public Binding +class DeviceOptions : public QObject, public Binding { + Q_OBJECT + public: - DeviceOptions(std::shared_ptr dev_inst, - const sr_channel_group *group = NULL); + DeviceOptions(std::shared_ptr configurable); + +Q_SIGNALS: + void config_changed(); private: void bind_bool(const QString &name, Property::Getter getter, Property::Setter setter); - void bind_enum(const QString &name, int key, - GVariant *const gvar_list, + void bind_enum(const QString &name, Glib::VariantContainerBase gvar_list, Property::Getter getter, Property::Setter setter, - std::function printer = print_gvariant); + 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(GVariant *const gvar); - static QString print_vdiv(GVariant *const gvar); - static QString print_voltage_threshold(GVariant *const gvar); + static QString print_timebase(Glib::VariantBase gvar); + static QString print_vdiv(Glib::VariantBase gvar); + static QString print_voltage_threshold(Glib::VariantBase gvar); protected: - std::shared_ptr _dev_inst; - const sr_channel_group *const _group; + std::shared_ptr _configurable; }; } // binding