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)
g_critical("Failed to initialize output module.");
/* Set up backup analog output module. */
- oa = sr_output_new(sr_output_find("analog"), NULL, sdi, NULL);
+ if (outfile)
+ oa = sr_output_new(sr_output_find("analog"), NULL,
+ sdi, NULL);
rcvd_samples_logic = rcvd_samples_analog = 0;
if (o && !opt_pds) {
if (sr_output_send(o, packet, &out) == SR_OK) {
- if (!out || (out->len == 0
- && !opt_output_format
- && packet->type == SR_DF_ANALOG)) {
+ if (oa && !out) {
/*
* The user didn't specify an output module,
* but needs to see this analog data.
sr_output_free(o);
o = NULL;
- sr_output_free(oa);
+ if (oa)
+ sr_output_free(oa);
oa = NULL;
if (outfile && outfile != stdout)
}
}
+ /* 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 (!(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);