GHashTable *fmtargs, *fmtopts;
char *fmtspec;
- if (!opt_transform_module)
- opt_transform_module = "nop";
-
fmtargs = parse_generic_arg(opt_transform_module, TRUE);
fmtspec = g_hash_table_lookup(fmtargs, "sigrok_key");
if (!fmtspec)
void datafeed_in(const struct sr_dev_inst *sdi,
const struct sr_datafeed_packet *packet, void *cb_data)
{
- const struct sr_datafeed_meta *meta;
- const struct sr_datafeed_logic *logic;
- const struct sr_datafeed_analog *analog;
- struct sr_session *session;
- struct sr_config *src;
static const struct sr_output *o = NULL;
static const struct sr_output *oa = NULL;
static uint64_t rcvd_samples_logic = 0;
static uint64_t samplerate = 0;
static int triggered = 0;
static FILE *outfile = NULL;
+
+ const struct sr_datafeed_meta *meta;
+ const struct sr_datafeed_logic *logic;
+ const struct sr_datafeed_analog *analog;
+ struct sr_session *session;
+ struct sr_config *src;
GSList *l;
GString *out;
GVariant *gvar;
driver = sr_dev_inst_driver_get(sdi);
- /* If the first packet to come in isn't a header, don't even try. */
+ /* Skip all packets before the first header. */
if (packet->type != SR_DF_HEADER && !o)
return;
}
}
+ /* This is unlikely to happen but it makes static analyzers stop complaining. */
+ if (!devices) {
+ g_critical("No real devices found.");
+ return;
+ }
+
sdi = devices->data;
g_slist_free(devices);
g_slist_free(real_devices);
sr_session_new(sr_ctx, &session);
- sr_session_datafeed_callback_add(session, datafeed_in, NULL);
+ sr_session_datafeed_callback_add(session, datafeed_in, session);
if (sr_dev_open(sdi) != SR_OK) {
g_critical("Failed to open device.");
if (opt_frames) {
if ((sr_parse_sizestring(opt_frames, &limit_frames) != SR_OK)) {
- g_critical("Invalid sample limit '%s'.", opt_samples);
+ g_critical("Invalid frame limit '%s'.", opt_frames);
sr_session_destroy(session);
return;
}
}
}
- if (!(t = setup_transform_module(sdi)))
- g_critical("Failed to initialize transform module.");
+ if (opt_transform_module) {
+ if (!(t = setup_transform_module(sdi)))
+ g_critical("Failed to initialize transform module.");
+ }
main_loop = g_main_loop_new(NULL, FALSE);