*/
#include "sigrok-cli.h"
-#include "config.h"
#include <glib.h>
#include <string.h>
return strcmp(sdda->name, sddb->name);
}
+#ifdef HAVE_SRD
static gint sort_pds(gconstpointer a, gconstpointer b)
{
const struct srd_decoder *sda = a, *sdb = b;
return strcmp(sda->id, sdb->id);
}
+#endif
void show_version(void)
{
double dlow, dhigh, dcur_low, dcur_high;
const uint64_t *uint64, p, q, low, high;
uint64_t cur_low, cur_high;
- const int32_t *opts;
+ const int32_t *int32, *opts;
unsigned int num_devices, o, i;
char *tmp_str;
- char *s;
- const char *charopts, **stropts;
+ char *s, c;
+ const char **stropts;
if (!(devices = device_scan())) {
g_critical("No devices found.");
if (!(srci = sr_config_info_get(opts[o])))
continue;
- if (srci->key == SR_CONF_TRIGGER_TYPE) {
+ if (srci->key == SR_CONF_TRIGGER_MATCH) {
if (sr_config_list(sdi->driver, sdi, channel_group, srci->key,
- &gvar) != SR_OK) {
+ &gvar_list) != SR_OK) {
printf("\n");
continue;
}
- charopts = g_variant_get_string(gvar, NULL);
+ int32 = g_variant_get_fixed_array(gvar_list,
+ &num_elements, sizeof(int32_t));
printf(" Supported triggers: ");
- while (*charopts) {
- printf("%c ", *charopts);
- charopts++;
+ for (i = 0; i < num_elements; i++) {
+ switch(int32[i]) {
+ case SR_TRIGGER_ZERO:
+ c = '0';
+ break;
+ case SR_TRIGGER_ONE:
+ c = '1';
+ break;
+ case SR_TRIGGER_RISING:
+ c = 'r';
+ break;
+ case SR_TRIGGER_FALLING:
+ c = 'f';
+ break;
+ case SR_TRIGGER_EDGE:
+ c = 'e';
+ break;
+ case SR_TRIGGER_OVER:
+ c = 'o';
+ break;
+ case SR_TRIGGER_UNDER:
+ c = 'u';
+ break;
+ default:
+ c = 0;
+ break;
+ }
+ if (c)
+ printf("%c ", c);
}
printf("\n");
- g_variant_unref(gvar);
+ g_variant_unref(gvar_list);
} else if (srci->key == SR_CONF_LIMIT_SAMPLES) {
/* If implemented in config_list(), this denotes the
}
g_variant_unref(gvar_list);
- } else if (srci->datatype == SR_T_CHAR) {
+ } else if (srci->datatype == SR_T_STRING) {
printf(" %s: ", srci->id);
if (sr_config_get(sdi->driver, sdi, channel_group, srci->key,
&gvar) == SR_OK) {
struct srd_decoder *dec;
struct srd_decoder_option *o;
char **pdtokens, **pdtok, *optsep, **ann, *val, *doc;
- struct srd_probe *p;
+ struct srd_channel *pdch;
struct srd_decoder_annotation_row *r;
pdtokens = g_strsplit(opt_pds, ",", -1);
} else {
printf("None.\n");
}
- printf("Required probes:\n");
- if (dec->probes) {
- for (l = dec->probes; l; l = l->next) {
- p = l->data;
+ printf("Required channels:\n");
+ if (dec->channels) {
+ for (l = dec->channels; l; l = l->next) {
+ pdch = l->data;
printf("- %s (%s): %s\n",
- p->id, p->name, p->desc);
+ pdch->id, pdch->name, pdch->desc);
}
} else {
printf("None.\n");
}
- printf("Optional probes:\n");
- if (dec->opt_probes) {
- for (l = dec->opt_probes; l; l = l->next) {
- p = l->data;
+ printf("Optional channels:\n");
+ if (dec->opt_channels) {
+ for (l = dec->opt_channels; l; l = l->next) {
+ pdch = l->data;
printf("- %s (%s): %s\n",
- p->id, p->name, p->desc);
+ pdch->id, pdch->name, pdch->desc);
}
} else {
printf("None.\n");