X-Git-Url: https://sigrok.org/gitweb/?p=sigrok-cli.git;a=blobdiff_plain;f=sigrok-cli.c;h=9363b7a055aa5a1139cbae5462775377e9cc261c;hp=f0e2bd68e124eab50329c4478468347431feda00;hb=74f6195bc64ff9d8d215d0d64bb5d1b57520ef54;hpb=2f50086c572089388b26afe521cae18183a6e891 diff --git a/sigrok-cli.c b/sigrok-cli.c index f0e2bd6..9363b7a 100644 --- a/sigrok-cli.c +++ b/sigrok-cli.c @@ -317,8 +317,8 @@ static void show_dev_detail(void) 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 *uint64, p, q; + const int32_t *opts; unsigned int num_devices, tmp_bool, o, i; char *s; const char *charopts, **stropts; @@ -409,27 +409,27 @@ static void show_dev_detail(void) } if ((gvar_list = g_variant_lookup_value(gvar_dict, "samplerates", G_VARIANT_TYPE("at")))) { - int64 = g_variant_get_fixed_array(gvar_list, + uint64 = g_variant_get_fixed_array(gvar_list, &num_elements, sizeof(uint64_t)); printf(" - supported samplerates:\n"); for (i = 0; i < num_elements; i++) - printf(" %s\n", sr_samplerate_string(int64[i])); + printf(" %s\n", sr_samplerate_string(uint64[i])); } if ((gvar_list = g_variant_lookup_value(gvar_dict, "samplerate-steps", G_VARIANT_TYPE("at")))) { - int64 = g_variant_get_fixed_array(gvar_list, + uint64 = g_variant_get_fixed_array(gvar_list, &num_elements, sizeof(uint64_t)); /* low */ - if (!(s = sr_samplerate_string(int64[0]))) + if (!(s = sr_samplerate_string(uint64[0]))) continue; printf(" (%s", s); g_free(s); /* high */ - if (!(s = sr_samplerate_string(int64[1]))) + if (!(s = sr_samplerate_string(uint64[1]))) continue; printf(" - %s", s); g_free(s); /* step */ - if (!(s = sr_samplerate_string(int64[2]))) + if (!(s = sr_samplerate_string(uint64[2]))) continue; printf(" in steps of %s)\n", s); g_free(s); @@ -445,11 +445,11 @@ static void show_dev_detail(void) printf("\n"); continue; } - int64 = g_variant_get_fixed_array(gvar_list, + 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", int64[i]); + printf(" %"PRIu64"\n", uint64[i]); g_variant_unref(gvar_list); } else if (srci->key == SR_CONF_TIMEBASE) { @@ -461,11 +461,14 @@ 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)); - 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) { @@ -505,11 +508,14 @@ 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)); - 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) { @@ -638,7 +644,7 @@ static GArray *get_enabled_logic_probes(const struct sr_dev_inst *sdi) } static void datafeed_in(const struct sr_dev_inst *sdi, - const struct sr_datafeed_packet *packet) + const struct sr_datafeed_packet *packet, void *cb_data) { const struct sr_datafeed_meta *meta; const struct sr_datafeed_logic *logic; @@ -657,6 +663,8 @@ static void datafeed_in(const struct sr_dev_inst *sdi, uint64_t samplerate, output_len, filter_out_len; uint8_t *output_buf, *filter_out; + (void) cb_data; + /* If the first packet to come in isn't a header, don't even try. */ if (packet->type != SR_DF_HEADER && o == NULL) return; @@ -1386,7 +1394,7 @@ static void load_input_file_format(void) return; sr_session_new(); - sr_session_datafeed_callback_add(datafeed_in); + sr_session_datafeed_callback_add(datafeed_in, NULL); if (sr_session_dev_add(in->sdi) != SR_OK) { g_critical("Failed to use device."); sr_session_destroy(); @@ -1406,7 +1414,7 @@ static void load_input_file(void) if (sr_session_load(opt_input_file) == SR_OK) { /* sigrok session file */ - sr_session_datafeed_callback_add(datafeed_in); + sr_session_datafeed_callback_add(datafeed_in, NULL); sr_session_start(); sr_session_run(); sr_session_stop(); @@ -1585,7 +1593,7 @@ static void run_session(void) sdi = devices->data; sr_session_new(); - sr_session_datafeed_callback_add(datafeed_in); + sr_session_datafeed_callback_add(datafeed_in, NULL); if (sr_session_dev_add(sdi) != SR_OK) { g_critical("Failed to use device.");