static void show_dev_detail(void)
{
struct sr_dev *dev;
- struct sr_hwcap_option *hwo;
+ const struct sr_hwcap_option *hwo;
const struct sr_samplerates *samplerates;
struct sr_rational *rationals;
uint64_t *integers;
- int cap, *hwcaps, i;
+ const int *hwcaps;
+ int cap, i;
char *s, *title;
const char *charopts, **stropts;
}
if (o->format->event) {
o->format->event(o, SR_DF_END, &output_buf, &output_len);
- if (output_len) {
+ if (output_buf) {
if (outfile)
fwrite(output_buf, 1, output_len, outfile);
g_free(output_buf);
output_len = 0;
if (o->format->data && packet->type == o->format->df_type)
o->format->data(o, filter_out, filter_out_len, &output_buf, &output_len);
- if (output_len) {
+ if (output_buf) {
fwrite(output_buf, 1, output_len, outfile);
g_free(output_buf);
}
outfile = g_fopen(opt_output_file, "wb");
}
}
-// if (opt_pds)
-// srd_session_start(num_enabled_probes, unitsize,
-// meta_logic->samplerate);
break;
case SR_DF_ANALOG:
{
struct srd_decoder_inst *di_from, *di_to;
int ret, i;
- char **pds;
+ char **pds, **ids;
/* Set up the protocol decoder stack. */
pds = g_strsplit(opt_pds, ",", 0);
}
}
- if (!(di_from = srd_inst_find_by_id(pds[0]))) {
+ /* First PD goes at the bottom of the stack. */
+ ids = g_strsplit(pds[0], ":", 0);
+ if (!(di_from = srd_inst_find_by_id(ids[0]))) {
+ g_strfreev(ids);
g_critical("Cannot stack protocol decoder '%s': "
"instance not found.", pds[0]);
return 1;
}
+ g_strfreev(ids);
+
+ /* Every subsequent PD goes on top. */
for (i = 1; pds[i]; i++) {
- if (!(di_to = srd_inst_find_by_id(pds[i]))) {
+ ids = g_strsplit(pds[i], ":", 0);
+ if (!(di_to = srd_inst_find_by_id(ids[0]))) {
+ g_strfreev(ids);
g_critical("Cannot stack protocol decoder '%s': "
"instance not found.", pds[i]);
return 1;
}
+ g_strfreev(ids);
if ((ret = srd_inst_stack(di_from, di_to)) != SRD_OK)
return 1;