]> sigrok.org Git - pulseview.git/blobdiff - pv/prop/binding/deviceoptions.h
Make member variable underscores a suffix instead of a prefix
[pulseview.git] / pv / prop / binding / deviceoptions.h
index 0b441599e70df89b9c57f5665282cbadecf3a723..0ca55e0e5b040afd11999ca4d7dbb7d90f449090 100644 (file)
 #ifndef PULSEVIEW_PV_PROP_BINDING_DEVICEOPTIONS_H
 #define PULSEVIEW_PV_PROP_BINDING_DEVICEOPTIONS_H
 
-#include <boost/function.hpp>
 #include <boost/optional.hpp>
 
+#include <QObject>
 #include <QString>
 
-#include <libsigrok/libsigrok.h>
-
 #include "binding.h"
 
+#include <pv/prop/property.h>
+
+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);
+public:
+       DeviceOptions(std::shared_ptr<sigrok::Configurable> configurable);
 
-       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);
+Q_SIGNALS:
+       void config_changed();
 
-       static QString print_gvariant(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<QString (Glib::VariantBase)> printer = print_gvariant);
+       void bind_int(const QString &name, QString suffix,
+               boost::optional< std::pair<int64_t, int64_t> > 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:
-       struct sr_dev_inst *const _sdi;
+       std::shared_ptr<sigrok::Configurable> configurable_;
 };
 
 } // binding