]> sigrok.org Git - libsigrokdecode.git/blobdiff - instance.c
ssi32: rename reset() helper method
[libsigrokdecode.git] / instance.c
index a47ce69c0894e79aae3a3c7d2cfdb9c9108aa842..81ce3fd33fbc8b23d6665b098a1b3963c732a65a 100644 (file)
@@ -255,14 +255,20 @@ SRD_API int srd_inst_channel_set_all(struct srd_decoder_inst *di,
                }
                pdch = sl->data;
                new_channelmap[pdch->order] = new_channelnum;
-               srd_dbg("Setting channel mapping: %s (index %d) = channel %d.",
+               srd_dbg("Setting channel mapping: %s (PD ch idx %d) = input data ch idx %d.",
                        pdch->id, pdch->order, new_channelnum);
        }
 
        srd_dbg("Final channel map:");
        num_required_channels = g_slist_length(di->decoder->channels);
        for (i = 0; i < di->dec_num_channels; i++) {
-               srd_dbg(" - index %d = channel %d (%s)", i, new_channelmap[i],
+               GSList *l = g_slist_nth(di->decoder->channels, i);
+               if (!l)
+                       l = g_slist_nth(di->decoder->opt_channels,
+                               i - num_required_channels);
+               pdch = l->data;
+               srd_dbg(" - PD ch idx %d (%s) = input data ch idx %d (%s)", i,
+                       pdch->id, new_channelmap[i],
                        (i < num_required_channels) ? "required" : "optional");
        }
 
@@ -931,7 +937,6 @@ static gboolean at_least_one_condition_matched(
 
 static gboolean find_match(struct srd_decoder_inst *di)
 {
-       static uint64_t s = 0;
        uint64_t i, j, num_samples_to_process;
        GSList *l, *cond;
        const uint8_t *sample_pos;
@@ -962,7 +967,7 @@ static gboolean find_match(struct srd_decoder_inst *di)
        if (di->abs_cur_samplenum == 0)
                update_old_pins_array_initial_pins(di);
 
-       for (i = 0, s = 0; i < num_samples_to_process; i++, s++, (di->abs_cur_samplenum)++) {
+       for (i = 0; i < num_samples_to_process; i++, (di->abs_cur_samplenum)++) {
 
                sample_pos = di->inbuf + ((di->abs_cur_samplenum - di->abs_start_samplenum) * di->data_unitsize);