X-Git-Url: https://sigrok.org/gitweb/?p=sigrok-cli.git;a=blobdiff_plain;f=session.c;h=9441f5da1865f86992e783056296f1f116b656dd;hp=4a31c42f13803be8572f36e1a121d4945d612458;hb=6df458b71ace93941780153b79b348d4fd99493d;hpb=be781321930917609d92b4446b894a1b8a23ce13 diff --git a/session.c b/session.c index 4a31c42..9441f5d 100644 --- a/session.c +++ b/session.c @@ -21,6 +21,8 @@ #include "config.h" #include #include +#include +#include static struct sr_output_format *output_format = NULL; static int default_output_format = FALSE; @@ -173,7 +175,10 @@ void datafeed_in(const struct sr_dev_inst *sdi, GSList *l; GString *out; int sample_size, ret; - uint64_t samplerate, output_len, filter_out_len, end_sample; + uint64_t samplerate, output_len, filter_out_len; +#ifdef HAVE_SRD + uint64_t end_sample; +#endif uint8_t *output_buf, *filter_out; (void) cb_data; @@ -551,7 +556,7 @@ void run_session(void) GHashTable *devargs; GVariant *gvar; struct sr_dev_inst *sdi; - uint64_t max_samples; + uint64_t min_samples, max_samples; int max_probes, i; char **triggerlist; @@ -630,12 +635,16 @@ void run_session(void) sr_session_destroy(); return; } - if (sr_config_get(sdi->driver, sdi, NULL, - SR_CONF_MAX_UNCOMPRESSED_SAMPLES, &gvar) == SR_OK) { + if (sr_config_list(sdi->driver, sdi, NULL, + SR_CONF_LIMIT_SAMPLES, &gvar) == SR_OK) { /* The device has no compression, or compression is turned * off, and publishes its sample memory size. */ - max_samples = g_variant_get_uint64(gvar); + g_variant_get(gvar, "(tt)", &min_samples, &max_samples); g_variant_unref(gvar); + if (limit_samples < min_samples) { + g_critical("The device stores at least %"PRIu64 + " samples with the current settings.", min_samples); + } if (limit_samples > max_samples) { g_critical("The device can store only %"PRIu64 " samples with the current settings.", max_samples);