rigol-ds1xx2: SR_CONF_TIMEBASE and _VDIVS lists are now an array of tuples

This commit is contained in:
Bert Vermeulen 2013-04-07 21:51:26 +02:00
parent 6cefe516aa
commit 861c447bfb
1 changed files with 19 additions and 4 deletions

View File

@ -405,6 +405,9 @@ static int config_set(int id, GVariant *data, const struct sr_dev_inst *sdi)
static int config_list(int key, GVariant **data, const struct sr_dev_inst *sdi)
{
GVariant *tuple, *rational[2];
GVariantBuilder gvb;
unsigned int i;
(void)sdi;
@ -417,12 +420,24 @@ static int config_list(int key, GVariant **data, const struct sr_dev_inst *sdi)
*data = g_variant_new_strv(coupling, ARRAY_SIZE(coupling));
break;
case SR_CONF_VDIV:
*data = g_variant_new_fixed_array(G_VARIANT_TYPE_UINT64,
vdivs, ARRAY_SIZE(vdivs) * 2, sizeof(uint64_t));
g_variant_builder_init(&gvb, G_VARIANT_TYPE_ARRAY);
for (i = 0; i < ARRAY_SIZE(vdivs); i++) {
rational[0] = g_variant_new_uint64(vdivs[i][0]);
rational[1] = g_variant_new_uint64(vdivs[i][1]);
tuple = g_variant_new_tuple(rational, 2);
g_variant_builder_add_value(&gvb, tuple);
}
*data = g_variant_builder_end(&gvb);
break;
case SR_CONF_TIMEBASE:
*data = g_variant_new_fixed_array(G_VARIANT_TYPE_UINT64,
timebases, ARRAY_SIZE(timebases) * 2, sizeof(uint64_t));
g_variant_builder_init(&gvb, G_VARIANT_TYPE_ARRAY);
for (i = 0; i < ARRAY_SIZE(timebases); i++) {
rational[0] = g_variant_new_uint64(timebases[i][0]);
rational[1] = g_variant_new_uint64(timebases[i][1]);
tuple = g_variant_new_tuple(rational, 2);
g_variant_builder_add_value(&gvb, tuple);
}
*data = g_variant_builder_end(&gvb);
break;
case SR_CONF_TRIGGER_SOURCE:
*data = g_variant_new_strv(trigger_sources,