]> sigrok.org Git - libsigrok.git/blobdiff - src/output/csv.c
log: Move log level check so that it affects all handlers.
[libsigrok.git] / src / output / csv.c
index 4c114409d22dd5b87028ffc5379c67bfa5f1f01c..f892311205869ba0f65b4f9fa041a671b4e8b2a9 100644 (file)
@@ -312,6 +312,7 @@ static void process_analog(struct context *ctx,
        int ret;
        size_t num_rcvd_ch, num_have_ch;
        size_t idx_have, idx_smpl, idx_rcvd;
+       size_t idx_send;
        struct sr_analog_meaning *meaning;
        GSList *l;
        float *fdata = NULL;
@@ -336,6 +337,7 @@ static void process_analog(struct context *ctx,
                sr_warn("Problems converting data to floating point values.");
 
        num_have_ch = ctx->num_analog_channels + ctx->num_logic_channels;
+       idx_send = 0;
        for (idx_have = 0; idx_have < num_have_ch; idx_have++) {
                if (ctx->channels[idx_have].ch->type != SR_CHANNEL_ANALOG)
                        continue;
@@ -351,9 +353,10 @@ static void process_analog(struct context *ctx,
                                        &ctx->channels[idx_have].label);
                        }
                        for (idx_smpl = 0; idx_smpl < analog->num_samples; idx_smpl++)
-                               ctx->analog_samples[idx_smpl * ctx->num_analog_channels + idx_have] = fdata[idx_smpl * num_rcvd_ch + idx_rcvd];
+                               ctx->analog_samples[idx_smpl * ctx->num_analog_channels + idx_send] = fdata[idx_smpl * num_rcvd_ch + idx_rcvd];
                        break;
                }
+               idx_send++;
        }
        g_free(fdata);
 }
@@ -640,6 +643,8 @@ static struct sr_option options[] = {
 
 static const struct sr_option *get_options(void)
 {
+       GSList *l = NULL;
+
        if (!options[0].def) {
                options[0].def = g_variant_ref_sink(g_variant_new_string(""));
                options[1].def = g_variant_ref_sink(g_variant_new_boolean(TRUE));
@@ -649,6 +654,10 @@ static const struct sr_option *get_options(void)
                options[5].def = g_variant_ref_sink(g_variant_new_string(";"));
                options[6].def = g_variant_ref_sink(g_variant_new_boolean(TRUE));
                options[7].def = g_variant_ref_sink(g_variant_new_string("units"));
+               l = g_slist_append(l, g_variant_ref_sink(g_variant_new_string("units")));
+               l = g_slist_append(l, g_variant_ref_sink(g_variant_new_string("channel")));
+               l = g_slist_append(l, g_variant_ref_sink(g_variant_new_string("off")));
+               options[7].values = l;
                options[8].def = g_variant_ref_sink(g_variant_new_boolean(TRUE));
                options[9].def = g_variant_ref_sink(g_variant_new_boolean(FALSE));
                options[10].def = g_variant_ref_sink(g_variant_new_boolean(TRUE));