+ g_variant_unref(gvar_list);
+ }
+ g_variant_unref(gvar_dict);
+
+ } else if (srci->key == SR_CONF_BUFFERSIZE) {
+ /* Supported buffer sizes */
+ printf(" %s", srci->id);
+ if (sr_config_list(sdi->driver, SR_CONF_BUFFERSIZE,
+ &gvar_list, sdi) != SR_OK) {
+ printf("\n");
+ continue;
+ }
+ uint64 = g_variant_get_fixed_array(gvar_list,
+ &num_elements, sizeof(uint64_t));
+ printf(" - supported buffer sizes:\n");
+ for (i = 0; i < num_elements; i++)
+ printf(" %"PRIu64"\n", uint64[i]);
+ g_variant_unref(gvar_list);
+
+ } else if (srci->key == SR_CONF_TIMEBASE) {
+ /* Supported time bases */
+ printf(" %s", srci->id);
+ if (sr_config_list(sdi->driver, SR_CONF_TIMEBASE,
+ &gvar_list, sdi) != SR_OK) {
+ printf("\n");
+ continue;
+ }
+ printf(" - supported time bases:\n");
+ num_elements = g_variant_n_children(gvar_list);
+ for (i = 0; i < num_elements; i++) {
+ gvar = g_variant_get_child_value(gvar_list, i);
+ g_variant_get(gvar, "(tt)", &p, &q);
+ s = sr_period_string(p * q);
+ printf(" %s\n", s);
+ g_free(s);
+ }
+ g_variant_unref(gvar_list);
+
+ } else if (srci->key == SR_CONF_TRIGGER_SOURCE) {
+ /* Supported trigger sources */
+ printf(" %s", srci->id);
+ if (sr_config_list(sdi->driver, SR_CONF_TRIGGER_SOURCE,
+ &gvar, sdi) != SR_OK) {
+ printf("\n");
+ continue;
+ }
+ printf(" - supported trigger sources:\n");
+ stropts = g_variant_get_strv(gvar, &num_elements);
+ for (i = 0; i < num_elements; i++)
+ printf(" %s\n", stropts[i]);
+ g_variant_unref(gvar);
+
+ } else if (srci->key == SR_CONF_FILTER) {
+ /* Supported filters */
+ printf(" %s", srci->id);
+ if (sr_config_list(sdi->driver, SR_CONF_FILTER,
+ &gvar, sdi) != SR_OK) {
+ printf("\n");
+ continue;
+ }
+ printf(" - supported filter targets:\n");
+ stropts = g_variant_get_strv(gvar, &num_elements);
+ for (i = 0; i < num_elements; i++)
+ printf(" %s\n", stropts[i]);
+ g_variant_unref(gvar);
+
+ } else if (srci->key == SR_CONF_VDIV) {
+ /* Supported volts/div values */
+ printf(" %s", srci->id);
+ if (sr_config_list(sdi->driver, SR_CONF_VDIV,
+ &gvar_list, sdi) != SR_OK) {
+ printf("\n");
+ continue;
+ }
+ printf(" - supported volts/div:\n");
+ num_elements = g_variant_n_children(gvar_list);
+ for (i = 0; i < num_elements; i++) {
+ gvar = g_variant_get_child_value(gvar_list, i);
+ g_variant_get(gvar, "(tt)", &p, &q);
+ s = sr_voltage_string(p, q);
+ printf(" %s\n", s);
+ g_free(s);
+ }
+ g_variant_unref(gvar_list);
+
+ } else if (srci->key == SR_CONF_COUPLING) {
+ /* Supported coupling settings */
+ printf(" %s", srci->id);
+ if (sr_config_list(sdi->driver, SR_CONF_COUPLING,
+ &gvar, sdi) != SR_OK) {
+ printf("\n");
+ continue;