]> sigrok.org Git - sigrok-cli.git/blobdiff - show.c
Use sr_trigger_stage_add().
[sigrok-cli.git] / show.c
diff --git a/show.c b/show.c
index 25429b3e3d85c60ccb54276e2b4e33203c6edd9a..bece7e641b957ea94bd2bb4ad9d1a538780660ad 100644 (file)
--- a/show.c
+++ b/show.c
@@ -18,7 +18,6 @@
  */
 
 #include "sigrok-cli.h"
-#include "config.h"
 #include <glib.h>
 #include <string.h>
 
@@ -46,12 +45,14 @@ static gint sort_drivers(gconstpointer a, gconstpointer b)
        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)
 {
@@ -207,11 +208,11 @@ void show_dev_detail(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.");
@@ -283,20 +284,43 @@ void show_dev_detail(void)
                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;
+                               }
+                               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
@@ -409,7 +433,7 @@ void show_dev_detail(void)
                        }
                        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) {