cli: support SR_HWCAP_VDIV and the new SR_T_RATIONAL_VOLT type
authorBert Vermeulen <bert@biot.com>
Thu, 17 May 2012 00:03:46 +0000 (02:03 +0200)
committerBert Vermeulen <bert@biot.com>
Wed, 30 May 2012 21:56:12 +0000 (23:56 +0200)
sigrok-cli.c

index b5cb5af3977970b478640d16513b69c9b785963c..0fa343d6fd3b480ae8e5c85821314ce3631eabe5 100644 (file)
@@ -332,6 +332,18 @@ static void show_dev_detail(void)
                        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 {
                        /* Everything else */
                        printf("    %s\n", hwo->shortname);
@@ -1116,6 +1128,12 @@ static int set_dev_options(struct sr_dev *dev, GHashTable *args)
                                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;
                        }