X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fprop%2Fbinding%2Fdeviceoptions.h;h=a7fffa30ed47e937c2e135bf382eee03ae02999c;hb=e8d009288de28cb194bc7964f96677c2baf900c9;hp=1e422f67161d48d8349970cc4f04a52499073cae;hpb=d23445348bf04a698e062a3b917360313ecbcaad;p=pulseview.git diff --git a/pv/prop/binding/deviceoptions.h b/pv/prop/binding/deviceoptions.h index 1e422f6..a7fffa3 100644 --- a/pv/prop/binding/deviceoptions.h +++ b/pv/prop/binding/deviceoptions.h @@ -23,45 +23,48 @@ #include +#include #include #include "binding.h" -#include +#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, int key); - void bind_enum(const QString &name, int key, - GVariant *const gvar_list, - std::function printer = print_gvariant); - void bind_int(const QString &name, int key, QString suffix, - boost::optional< std::pair > range); + 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(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