const char *opstr;
if (sdi && cg)
- suffix = " for this device and channel group";
+ suffix = " for this device instance and channel group";
else if (sdi)
- suffix = " for this device";
+ suffix = " for this device instance";
else
suffix = "";
return SR_ERR_ARG;
}
break;
+ case SR_CONF_CAPTURE_RATIO:
+ /* Capture ratio must always be between 0 and 100. */
+ if (op != SR_CONF_SET || !data)
+ break;
+ if (g_variant_get_uint64(data) > 100) {
+ sr_err("Capture ratio must be 0..100.");
+ return SR_ERR_ARG;
+ }
+ break;
}
if (sr_config_list(driver, sdi, cg, SR_CONF_DEVICE_OPTIONS, &gvar_opts) != SR_OK) {
g_variant_ref_sink(*data);
}
+ if (ret == SR_ERR_CHANNEL_GROUP)
+ sr_err("%s: No channel group specified.",
+ (sdi) ? sdi->driver->name : "unknown");
+
return ret;
}
g_variant_unref(data);
+ if (ret == SR_ERR_CHANNEL_GROUP)
+ sr_err("%s: No channel group specified.",
+ (sdi) ? sdi->driver->name : "unknown");
+
return ret;
}
* @param[in] cg The channel group on the device instance for which to list
* the values, or NULL. If this device instance doesn't
* have channel groups, this must not be != NULL.
+ * If cg is NULL, this function will return the "common" device
+ * instance options that are channel-group independent. Otherwise
+ * it will return the channel-group specific options.
* @param[in] key The configuration key (SR_CONF_*).
* @param[in,out] data A pointer to a GVariant where the list will be stored.
* The caller is given ownership of the GVariant and must thus