X-Git-Url: https://sigrok.org/gitweb/?p=sigrok-cli.git;a=blobdiff_plain;f=sigrok-cli.c;h=d21ae1c8da159ed293715720c1bae2425be91e4c;hp=8cfdb8e97ee4a7e0c63464c2df3ad6e791cc93af;hb=f73128e45d33debfa0ca99aec564c3768e98090f;hpb=1e1316b3981913263fdb8d74520fa7213230944b diff --git a/sigrok-cli.c b/sigrok-cli.c index 8cfdb8e..d21ae1c 100644 --- a/sigrok-cli.c +++ b/sigrok-cli.c @@ -461,11 +461,11 @@ static void show_dev_detail(void) continue; } printf(" - supported time bases:\n"); - int32 = g_variant_get_fixed_array(gvar_list, - &num_elements, sizeof(int32_t)); + int64 = g_variant_get_fixed_array(gvar_list, + &num_elements, sizeof(uint64_t)); for (i = 0; i < num_elements / 2; i++) printf(" %s\n", sr_period_string( - int32[i * 2] * int32[i * 2 + 1])); + int64[i * 2] * int64[i * 2 + 1])); g_variant_unref(gvar_list); } else if (srci->key == SR_CONF_TRIGGER_SOURCE) { @@ -505,11 +505,11 @@ static void show_dev_detail(void) continue; } printf(" - supported volts/div:\n"); - int32 = g_variant_get_fixed_array(gvar_list, - &num_elements, sizeof(int32_t)); + int64 = g_variant_get_fixed_array(gvar_list, + &num_elements, sizeof(uint64_t)); for (i = 0; i < num_elements / 2; i++) - printf(" %s\n", sr_period_string( - int32[i * 2] * int32[i * 2 + 1])); + printf(" %s\n", sr_voltage_string( + int64[i * 2], int64[i * 2 + 1])); g_variant_unref(gvar_list); } else if (srci->key == SR_CONF_COUPLING) { @@ -1423,11 +1423,10 @@ static int set_dev_options(struct sr_dev_inst *sdi, GHashTable *args) GHashTableIter iter; gpointer key, value; int ret; - float tmp_float; - uint64_t tmp_u64; - struct sr_rational tmp_rat; + double tmp_double; + uint64_t tmp_u64, p, q; gboolean tmp_bool; - void *val; + GVariant *val, *rational[2]; g_hash_table_iter_init(&iter, args); while (g_hash_table_iter_next(&iter, &key, &value)) { @@ -1447,31 +1446,35 @@ static int set_dev_options(struct sr_dev_inst *sdi, GHashTable *args) 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, &tmp_rat)) != SR_OK) + if ((ret = sr_parse_period(value, &p, &q)) != SR_OK) break; - val = &tmp_rat; + rational[0] = g_variant_new_uint64(p); + rational[1] = g_variant_new_uint64(q); + val = g_variant_new_tuple(rational, 2); break; case SR_T_RATIONAL_VOLT: - if ((ret = sr_parse_voltage(value, &tmp_rat)) != SR_OK) + if ((ret = sr_parse_voltage(value, &p, &q)) != SR_OK) break; - val = &tmp_rat; + rational[0] = g_variant_new_uint64(p); + rational[1] = g_variant_new_uint64(q); + val = g_variant_new_tuple(rational, 2); break; default: ret = SR_ERR; @@ -1654,6 +1657,7 @@ static void run_session(void) 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();