From: Gerhard Sittig Date: Sat, 23 May 2020 10:48:18 +0000 (+0200) Subject: device: rename channel group lookup routine X-Git-Url: https://sigrok.org/gitaction?a=commitdiff_plain;h=9a6e8ec4bc84d94e27c9a004a7b75caaa0ba7124;p=sigrok-cli.git device: rename channel group lookup routine The select_channel_group() name was misleading, the routine did not actively select a channel group, instead returned the lookup result and left the activity to the caller. Rename the routine to improve readability of call sites. Address minor style nits in the routine body while we are here. --- diff --git a/device.c b/device.c index 19192ec..141e3cf 100644 --- a/device.c +++ b/device.c @@ -63,7 +63,20 @@ GSList *device_scan(void) return devices; } -struct sr_channel_group *select_channel_group(struct sr_dev_inst *sdi) +/** + * Lookup a channel group from its name. + * + * Uses the previously stored option value to lookup a channel group. + * Returns a reference to the channel group when the lookup succeeded, + * or #NULL after lookup failure, or #NULL for the global channel group + * (the device's global parameters). Emits an error message when the + * lookup failed while a channel group's name was specified. + * + * @param[in] sdi Device instance. + * + * @returns The channel group, or #NULL for failed lookup. + */ +struct sr_channel_group *lookup_channel_group(struct sr_dev_inst *sdi) { struct sr_channel_group *cg; GSList *l, *channel_groups; @@ -72,7 +85,6 @@ struct sr_channel_group *select_channel_group(struct sr_dev_inst *sdi) return NULL; channel_groups = sr_dev_inst_channel_groups_get(sdi); - if (!channel_groups) { g_critical("This device does not have any channel groups."); return NULL; @@ -80,9 +92,9 @@ struct sr_channel_group *select_channel_group(struct sr_dev_inst *sdi) for (l = channel_groups; l; l = l->next) { cg = l->data; - if (!g_ascii_strcasecmp(opt_channel_group, cg->name)) { - return cg; - } + if (g_ascii_strcasecmp(opt_channel_group, cg->name) != 0) + continue; + return cg; } g_critical("Invalid channel group '%s'", opt_channel_group); diff --git a/main.c b/main.c index aa4f122..2c1dcfe 100644 --- a/main.c +++ b/main.c @@ -136,7 +136,7 @@ static void get_option(void) return; } - cg = select_channel_group(sdi); + cg = lookup_channel_group(sdi); if (!(ci = sr_key_info_name_get(SR_KEY_CONFIG, opt_get))) g_critical("Unknown option '%s'", opt_get); diff --git a/session.c b/session.c index e8ec5a2..cb8a1b4 100644 --- a/session.c +++ b/session.c @@ -662,7 +662,7 @@ int set_dev_options(struct sr_dev_inst *sdi, GHashTable *args) while (g_hash_table_iter_next(&iter, &key, &value)) { if ((ret = opt_to_gvar(key, value, &src)) != 0) return ret; - cg = select_channel_group(sdi); + cg = lookup_channel_group(sdi); if ((ret = maybe_config_set(sr_dev_inst_driver_get(sdi), sdi, cg, src.key, src.data)) != SR_OK) { g_critical("Failed to set device option '%s': %s.", diff --git a/show.c b/show.c index 8fbd0af..a6573e5 100644 --- a/show.c +++ b/show.c @@ -441,7 +441,7 @@ void show_dev_detail(void) * returned, or which values for them. */ select_channels(sdi); - channel_group = select_channel_group(sdi); + channel_group = lookup_channel_group(sdi); if (!(opts = sr_dev_options(driver, sdi, channel_group))) /* Driver supports no device instance options. */ diff --git a/sigrok-cli.h b/sigrok-cli.h index 79a637a..40015fd 100644 --- a/sigrok-cli.h +++ b/sigrok-cli.h @@ -56,7 +56,7 @@ void show_serial_ports(void); /* device.c */ GSList *device_scan(void); -struct sr_channel_group *select_channel_group(struct sr_dev_inst *sdi); +struct sr_channel_group *lookup_channel_group(struct sr_dev_inst *sdi); /* session.c */ struct df_arg_desc {