GSList *devices;
GVariant *gvar_opts, *gvar_dict, *gvar_list, *gvar;
gsize num_opts, num_elements;
- const uint64_t *int64;
- const int32_t *opts, *int32;
+ const uint64_t *int64, p, q;
+ const int32_t *opts;
unsigned int num_devices, tmp_bool, o, i;
char *s;
const char *charopts, **stropts;
continue;
}
printf(" - supported time bases:\n");
- int32 = g_variant_get_fixed_array(gvar_list,
- &num_elements, sizeof(int32_t));
- for (i = 0; i < num_elements / 2; i++)
- printf(" %s\n", sr_period_string(
- int32[i * 2] * int32[i * 2 + 1]));
+ 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) {
continue;
}
printf(" - supported volts/div:\n");
- int32 = g_variant_get_fixed_array(gvar_list,
- &num_elements, sizeof(int32_t));
- for (i = 0; i < num_elements / 2; i++)
- printf(" %s\n", sr_period_string(
- int32[i * 2] * int32[i * 2 + 1]));
+ 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) {
GHashTableIter iter;
gpointer key, value;
int ret;
- float tmp_float;
+ double tmp_double;
uint64_t tmp_u64, p, q;
gboolean tmp_bool;
GVariant *val, *rational[2];
ret = sr_parse_sizestring(value, &tmp_u64);
if (ret != SR_OK)
break;
- val = &tmp_u64;
+ val = g_variant_new_uint64(tmp_u64);
break;
case SR_T_CHAR:
- val = value;
+ val = g_variant_new_string(value);
break;
case SR_T_BOOL:
if (!value)
tmp_bool = TRUE;
else
tmp_bool = sr_parse_boolstring(value);
- val = &tmp_bool;
+ val = g_variant_new_boolean(tmp_bool);
break;
case SR_T_FLOAT:
- tmp_float = strtof(value, NULL);
- val = &tmp_float;
+ tmp_double = strtof(value, NULL);
+ val = g_variant_new_double(tmp_double);
break;
case SR_T_RATIONAL_PERIOD:
if ((ret = sr_parse_period(value, &p, &q)) != SR_OK)
sr_session_destroy();
return;
}
+ gvar = g_variant_new_uint64(limit_frames);
if (sr_config_set(sdi, SR_CONF_LIMIT_FRAMES, gvar) != SR_OK) {
g_critical("Failed to configure frame limit.");
sr_session_destroy();