Wrapped sr_dev_inst in a class: pv::DevInst
[pulseview.git] / pv / prop / binding / deviceoptions.h
index f27823bdf08d8a0a10be5a466cae13cd446003aa..ca27a5b7fc69590654316bf08645eb4cf638d1e1 100644 (file)
 
 #include <QString>
 
-#include <libsigrok/libsigrok.h>
-
 #include "binding.h"
 
+#include <glib.h>
+
+struct sr_dev_inst;
+struct sr_probe_group;
+
 namespace pv {
+
+class DevInst;
+
 namespace prop {
 namespace binding {
 
 class DeviceOptions : public Binding
 {
 public:
-       DeviceOptions(const sr_dev_inst *sdi);
+       DeviceOptions(boost::shared_ptr<pv::DevInst> dev_inst,
+               const sr_probe_group *group = NULL);
 
 private:
 
        static GVariant* config_getter(
-               const struct sr_dev_inst *sdi, int key);
+               const sr_dev_inst *sdi, const sr_probe_group *group, int key);
        static void config_setter(
-               const struct sr_dev_inst *sdi, int key, GVariant* value);
+               const sr_dev_inst *sdi, const sr_probe_group *group, int key,
+               GVariant* value);
 
        void bind_bool(const QString &name, int key);
        void bind_enum(const QString &name, int key,
@@ -60,7 +68,8 @@ private:
        static QString print_voltage_threshold(GVariant *const gvar);
 
 protected:
-       const sr_dev_inst *const _sdi;
+       boost::shared_ptr<DevInst> _dev_inst;
+       const sr_probe_group *const _group;
 };
 
 } // binding