const struct sr_key_info *ci;
GSList *devices;
GVariant *gvar;
- GHashTable *devargs;
int ret;
char *s;
struct sr_dev_driver *driver;
return;
}
- cg = select_channel_group(sdi);
+ cg = lookup_channel_group(sdi, NULL);
if (!(ci = sr_key_info_name_get(SR_KEY_CONFIG, opt_get)))
g_critical("Unknown option '%s'", opt_get);
- if ((devargs = parse_generic_arg(opt_config, FALSE)))
- set_dev_options(sdi, devargs);
- else
- devargs = NULL;
+ set_dev_options_array(sdi, opt_configs);
if ((ret = maybe_config_get(driver, sdi, cg, ci->key, &gvar)) != SR_OK)
g_critical("Failed to get '%s': %s", opt_get, sr_strerror(ret));
g_variant_unref(gvar);
sr_dev_close(sdi);
- if (devargs)
- g_hash_table_destroy(devargs);
}
static void set_options(void)
{
struct sr_dev_inst *sdi;
GSList *devices;
- GHashTable *devargs;
- if (!opt_config) {
+ if (!opt_configs) {
g_critical("No setting specified.");
return;
}
- if (!(devargs = parse_generic_arg(opt_config, FALSE)))
- return;
-
if (!(devices = device_scan())) {
g_critical("No devices found.");
return;
return;
}
- set_dev_options(sdi, devargs);
+ set_dev_options_array(sdi, opt_configs);
sr_dev_close(sdi);
- g_hash_table_destroy(devargs);
-
}
int main(int argc, char **argv)
goto done;
#ifdef HAVE_SRD
+ if (opt_pd_binary && !opt_pds) {
+ g_critical("Option -B will not take effect in the absence of -P.");
+ goto done;
+ }
+
/* Set the loglevel (amount of messages to output) for libsigrokdecode. */
if (srd_log_loglevel_set(opt_loglevel) != SRD_OK)
goto done;
if (opt_pd_binary) {
if (setup_pd_binary(opt_pd_binary) != 0)
goto done;
+ if (setup_binary_stdout() != 0)
+ goto done;
if (srd_pd_output_callback_add(srd_sess, SRD_OUTPUT_BINARY,
show_pd_binary, NULL) != SRD_OK)
goto done;
show_pd_annotations, NULL) != SRD_OK)
goto done;
}
+ show_pd_prepare();
}
#endif
show_help();
#ifdef HAVE_SRD
+ if (opt_pds)
+ show_pd_close();
if (opt_pds)
srd_exit();
#endif