]> sigrok.org Git - sigrok-cli.git/blobdiff - session.c
Add support for setting double ranges.
[sigrok-cli.git] / session.c
index 3d0e25182e2db4121c3de1cabaf14617680882fa..65c4c60c51b6a8f5ff8a9f27ccede18189e802c4 100644 (file)
--- a/session.c
+++ b/session.c
@@ -416,7 +416,7 @@ void datafeed_in(const struct sr_dev_inst *sdi,
 int opt_to_gvar(char *key, char *value, struct sr_config *src)
 {
        const struct sr_config_info *srci;
-       double tmp_double;
+       double tmp_double, dlow, dhigh;
        uint64_t tmp_u64, p, q, low, high;
        GVariant *rational[2], *range[2];
        gboolean tmp_bool;
@@ -486,6 +486,16 @@ int opt_to_gvar(char *key, char *value, struct sr_config *src)
                        src->data = g_variant_new_tuple(range, 2);
                }
                break;
+       case SR_T_DOUBLE_RANGE:
+               if (sscanf(value, "%lf-%lf", &dlow, &dhigh) != 2) {
+                       ret = -1;
+                       break;
+               } else {
+                       range[0] = g_variant_new_double(dlow);
+                       range[1] = g_variant_new_double(dhigh);
+                       src->data = g_variant_new_tuple(range, 2);
+               }
+               break;
        default:
                ret = -1;
        }