]> sigrok.org Git - pulseview.git/commitdiff
Added probe group support to DeviceOptions binding
authorJoel Holdsworth <redacted>
Sat, 11 Jan 2014 11:36:19 +0000 (11:36 +0000)
committerJoel Holdsworth <redacted>
Sat, 11 Jan 2014 11:36:19 +0000 (11:36 +0000)
pv/prop/binding/deviceoptions.cpp
pv/prop/binding/deviceoptions.h

index e661b1952f0588e3534424c6bc32def7e42fe209..a5b9dd2365d9e6a4c058979f9a94e3af8f74c50e 100644 (file)
@@ -45,15 +45,17 @@ namespace pv {
 namespace prop {
 namespace binding {
 
-DeviceOptions::DeviceOptions(const sr_dev_inst *sdi) :
-       _sdi(sdi)
+DeviceOptions::DeviceOptions(const sr_dev_inst *sdi,
+       const sr_probe_group *group) :
+       _sdi(sdi),
+       _group(group)
 {
        assert(sdi);
 
        GVariant *gvar_opts, *gvar_list;
        gsize num_opts;
 
-       if ((sr_config_list(sdi->driver, sdi, NULL, SR_CONF_DEVICE_OPTIONS,
+       if ((sr_config_list(sdi->driver, sdi, group, SR_CONF_DEVICE_OPTIONS,
                &gvar_opts) != SR_OK))
                /* Driver supports no device instance options. */
                return;
@@ -69,7 +71,8 @@ DeviceOptions::DeviceOptions(const sr_dev_inst *sdi) :
 
                const int key = info->key;
 
-               if (sr_config_list(_sdi->driver, _sdi, NULL, key, &gvar_list) != SR_OK)
+               if (sr_config_list(_sdi->driver, _sdi, group,
+                       key, &gvar_list) != SR_OK)
                        gvar_list = NULL;
 
                const QString name = QString::fromUtf8(info->name);
@@ -117,10 +120,10 @@ DeviceOptions::DeviceOptions(const sr_dev_inst *sdi) :
 }
 
 GVariant* DeviceOptions::config_getter(
-       const struct sr_dev_inst *sdi, int key)
+       const sr_dev_inst *sdi, const sr_probe_group *group, int key)
 {
        GVariant *data = NULL;
-       if (sr_config_get(sdi->driver, sdi, NULL, key, &data) != SR_OK) {
+       if (sr_config_get(sdi->driver, sdi, group, key, &data) != SR_OK) {
                qDebug() <<
                        "WARNING: Failed to get value of config id" << key;
                return NULL;
@@ -129,17 +132,18 @@ GVariant* DeviceOptions::config_getter(
 }
 
 void DeviceOptions::config_setter(
-       const struct sr_dev_inst *sdi, int key, GVariant* value)
+       const struct sr_dev_inst *sdi, const sr_probe_group *group, int key,
+       GVariant* value)
 {
-       if (sr_config_set(sdi, NULL, key, value) != SR_OK)
+       if (sr_config_set(sdi, group, key, value) != SR_OK)
                qDebug() << "WARNING: Failed to set value of sample rate";
 }
 
 void DeviceOptions::bind_bool(const QString &name, int key)
 {
        _properties.push_back(shared_ptr<Property>(
-               new Bool(name, bind(config_getter, _sdi, key),
-                       bind(config_setter, _sdi, key, _1))));
+               new Bool(name, bind(config_getter, _sdi, _group, key),
+                       bind(config_setter, _sdi, _group, key, _1))));
 }
 
 void DeviceOptions::bind_enum(const QString &name, int key,
@@ -157,8 +161,8 @@ void DeviceOptions::bind_enum(const QString &name, int key,
 
        _properties.push_back(shared_ptr<Property>(
                new Enum(name, values,
-                       bind(config_getter, _sdi, key),
-                       bind(config_setter, _sdi, key, _1))));
+                       bind(config_getter, _sdi, _group, key),
+                       bind(config_setter, _sdi, _group, key, _1))));
 }
 
 void DeviceOptions::bind_int(const QString &name, int key, QString suffix,
@@ -166,8 +170,8 @@ void DeviceOptions::bind_int(const QString &name, int key, QString suffix,
 {
        _properties.push_back(shared_ptr<Property>(
                new Int(name, suffix, range,
-                       bind(config_getter, _sdi, key),
-                       bind(config_setter, _sdi, key, _1))));
+                       bind(config_getter, _sdi, _group, key),
+                       bind(config_setter, _sdi, _group, key, _1))));
 }
 
 QString DeviceOptions::print_gvariant(GVariant *const gvar)
index f27823bdf08d8a0a10be5a466cae13cd446003aa..ab0f01716f0377c563c5288a14050bed8ea7fae2 100644 (file)
@@ -37,14 +37,16 @@ namespace binding {
 class DeviceOptions : public Binding
 {
 public:
-       DeviceOptions(const sr_dev_inst *sdi);
+       DeviceOptions(const sr_dev_inst *sdi,
+               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,
@@ -61,6 +63,7 @@ private:
 
 protected:
        const sr_dev_inst *const _sdi;
+       const sr_probe_group *const _group;
 };
 
 } // binding