#include "config.h"
#include <glib.h>
#include <glib/gstdio.h>
+#include <string.h>
+#include <stdlib.h>
static struct sr_output_format *output_format = NULL;
static int default_output_format = FALSE;
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;
GHashTable *devargs;
GVariant *gvar;
struct sr_dev_inst *sdi;
+ uint64_t min_samples, max_samples;
int max_probes, i;
char **triggerlist;
sr_session_destroy();
return;
}
+ 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. */
+ 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);
+ }
+ }
gvar = g_variant_new_uint64(limit_samples);
if (sr_config_set(sdi, NULL, SR_CONF_LIMIT_SAMPLES, gvar) != SR_OK) {
g_critical("Failed to configure sample limit.");