X-Git-Url: https://sigrok.org/gitweb/?p=sigrok-cli.git;a=blobdiff_plain;f=main.c;h=f34007ceba4857480b386775d16babef11157d71;hp=abacea964830707dbe30a5fc34f0006e078b3731;hb=5a10320a1521325e765ca5ab00258275e7fbcc53;hpb=26c63758bd4e5676cb6c987668ca46053c5e82bb diff --git a/main.c b/main.c index abacea9..f34007c 100644 --- a/main.c +++ b/main.c @@ -17,13 +17,10 @@ * along with this program. If not, see . */ +#include "sigrok-cli.h" #include "config.h" +#include #include -#include -#ifdef HAVE_SRD -#include /* First, so we avoid a _POSIX_C_SOURCE warning. */ -#endif -#include "sigrok-cli.h" struct sr_context *sr_ctx = NULL; #ifdef HAVE_SRD @@ -39,7 +36,7 @@ gchar *opt_output_file = NULL; gchar *opt_drv = NULL; gchar *opt_config = NULL; static gchar *opt_probes = NULL; -gchar *opt_probe_group = NULL; +gchar *opt_channel_group = NULL; gchar *opt_triggers = NULL; gchar *opt_pds = NULL; #ifdef HAVE_SRD @@ -76,8 +73,8 @@ static GOptionEntry optargs[] = { "Output format", NULL}, {"probes", 'p', 0, G_OPTION_ARG_STRING, &opt_probes, "Probes to use", NULL}, - {"probe-group", 'g', 0, G_OPTION_ARG_STRING, &opt_probe_group, - "Probe groups", NULL}, + {"channel-group", 'g', 0, G_OPTION_ARG_STRING, &opt_channel_group, + "Channel groups", NULL}, {"triggers", 't', 0, G_OPTION_ARG_STRING, &opt_triggers, "Trigger configuration", NULL}, {"wait-trigger", 'w', 0, G_OPTION_ARG_NONE, &opt_wait_trigger, @@ -132,26 +129,27 @@ static void logger(const gchar *log_domain, GLogLevelFlags log_level, } -int select_probes(struct sr_dev_inst *sdi) +int select_channels(struct sr_dev_inst *sdi) { - struct sr_probe *probe; - GSList *selected_probes, *l; - - if (!opt_probes) - return SR_OK; - - if (!(selected_probes = parse_probestring(sdi, opt_probes))) - return SR_ERR; - - for (l = sdi->probes; l; l = l->next) { - probe = l->data; - if (g_slist_find(selected_probes, probe)) - probe->enabled = TRUE; - else - probe->enabled = FALSE; + struct sr_channel *ch; + GSList *selected_channels, *l; + + if (opt_probes) { + if (!(selected_channels = parse_channelstring(sdi, opt_probes))) + return SR_ERR; + + for (l = sdi->channels; l; l = l->next) { + ch = l->data; + if (g_slist_find(selected_channels, ch)) + ch->enabled = TRUE; + else + ch->enabled = FALSE; + } + g_slist_free(selected_channels); } - g_slist_free(selected_probes); - +#ifdef HAVE_SRD + map_pd_probes(sdi); +#endif return SR_OK; }