static void show_dev_detail(void)
{
struct sr_dev *dev;
- struct sr_hwcap_option *hwo;
+ const struct sr_hwcap_option *hwo;
const struct sr_samplerates *samplerates;
struct sr_rational *rationals;
uint64_t *integers;
- int cap, *hwcaps, i;
+ const int *hwcaps;
+ int cap, i;
char *s, *title;
const char *charopts, **stropts;
for (i = 0; stropts[i]; i++)
printf(" %s\n", stropts[i]);
+ } else if (hwo->hwcap == SR_HWCAP_VDIV) {
+ /* Supported volts/div values */
+ printf(" %s", hwo->shortname);
+ if (sr_dev_info_get(dev, SR_DI_VDIVS,
+ (const void **)&rationals) != SR_OK) {
+ printf("\n");
+ continue;
+ }
+ printf(" - supported volts/div:\n");
+ for (i = 0; rationals[i].p && rationals[i].q; i++)
+ printf(" %s\n", sr_voltage_string( &rationals[i]));
+
+ } else if (hwo->hwcap == SR_HWCAP_COUPLING) {
+ /* Supported coupling settings */
+ printf(" %s", hwo->shortname);
+ if (sr_dev_info_get(dev, SR_DI_COUPLING,
+ (const void **)&stropts) != SR_OK) {
+ printf("\n");
+ continue;
+ }
+ printf(" - supported coupling options:\n");
+ for (i = 0; stropts[i]; i++)
+ printf(" %s\n", stropts[i]);
+
} else {
/* Everything else */
printf(" %s\n", hwo->shortname);
ret = dev->driver->dev_config_set(dev->driver_index,
sr_hwcap_options[i].hwcap, &tmp_rat);
break;
+ case SR_T_RATIONAL_VOLT:
+ if ((ret = sr_parse_voltage(value, &tmp_rat)) != SR_OK)
+ break;
+ ret = dev->driver->dev_config_set(dev->driver_index,
+ sr_hwcap_options[i].hwcap, &tmp_rat);
+ break;
default:
ret = SR_ERR;
}