]> sigrok.org Git - sigrok-cli.git/blobdiff - sigrok-cli.c
cli: when deciding which PD's output to show, use instance id
[sigrok-cli.git] / sigrok-cli.c
index 07800d2ddd37db760971cb52ffbafa8468564738..0b5a01fbcb6464b013f9bcde9574d54aee01b49d 100644 (file)
@@ -446,7 +446,7 @@ static void datafeed_in(struct sr_device *device, struct sr_datafeed_packet *pac
        if (opt_pds) {
                if (srd_session_feed(received_samples, (uint8_t*)filter_out,
                                filter_out_len) != SRD_OK)
-                       abort();
+                       sr_session_halt();
        } else {
                output_len = 0;
                if (o->format->data && packet->type == o->format->df_type)
@@ -494,7 +494,7 @@ static int register_pds(struct sr_device *device, const char *pdstring)
                        fprintf(stderr, "Failed to instantiate PD %s\n", pd_name);
                        goto err_out;
                }
-               g_datalist_set_data(&pd_ann_visible, pd_name, pd_name);
+               g_datalist_set_data(&pd_ann_visible, di->instance_id, pd_name);
        }
 
        /* Any keys left in the options hash are probes, where the key
@@ -525,7 +525,7 @@ void show_pd_annotation(struct srd_proto_data *pdata)
                return;
        }
 
-       if (!g_datalist_get_data(&pd_ann_visible, pdata->pdo->proto_id)) {
+       if (!g_datalist_get_data(&pd_ann_visible, pdata->pdo->di->instance_id)) {
                /* not in the list of PDs whose annotations we're showing */
                return;
        }
@@ -1021,7 +1021,7 @@ int main(int argc, char **argv)
        }
 
        if (opt_pd_stack) {
-               pds = g_strsplit(opt_pd_stack, ":", 0);
+               pds = g_strsplit(opt_pd_stack, ",", 0);
                if (g_strv_length(pds) < 2) {
                        printf("Specify at least two protocol decoders to stack.\n");
                        return 1;