X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=output%2Fgnuplot.c;h=a871bd3e785a1bdaac454442409dc29f875a3ae8;hb=ec4063b83c9b8a0693b9837787306dd5405e076b;hp=965138984a594c7981a4fa8eb2cae660b6eda5cd;hpb=722db131a45dbc84aaa27cf65467a11552a32548;p=libsigrok.git diff --git a/output/gnuplot.c b/output/gnuplot.c index 96513898..a871bd3e 100644 --- a/output/gnuplot.c +++ b/output/gnuplot.c @@ -63,7 +63,8 @@ static int init(struct sr_output *o) struct context *ctx; struct sr_probe *probe; GSList *l; - uint64_t *samplerate; + GVariant *gvar; + uint64_t samplerate; unsigned int i; int b, num_probes; char *c, *frequency_s; @@ -99,7 +100,7 @@ static int init(struct sr_output *o) o->internal = ctx; ctx->num_enabled_probes = 0; for (l = o->sdi->probes; l; l = l->next) { - probe = l->data; /* TODO: Error checks. */ + probe = l->data; if (!probe->enabled) continue; ctx->probelist[ctx->num_enabled_probes++] = probe->name; @@ -109,18 +110,21 @@ static int init(struct sr_output *o) num_probes = g_slist_length(o->sdi->probes); comment[0] = '\0'; + samplerate = 0; if (sr_dev_has_option(o->sdi, SR_CONF_SAMPLERATE)) { - o->sdi->driver->config_get(SR_CONF_SAMPLERATE, - (const void **)&samplerate, o->sdi); - if (!(frequency_s = sr_samplerate_string(*samplerate))) { + o->sdi->driver->config_get(SR_CONF_SAMPLERATE, &gvar, o->sdi); + samplerate = g_variant_get_uint64(gvar); + if (!(frequency_s = sr_samplerate_string(samplerate))) { sr_err("%s: sr_samplerate_string failed", __func__); g_free(ctx->header); g_free(ctx); + g_variant_unref(gvar); return SR_ERR; } snprintf(comment, 127, gnuplot_header_comment, ctx->num_enabled_probes, num_probes, frequency_s); g_free(frequency_s); + g_variant_unref(gvar); } /* Columns / channels */ @@ -130,7 +134,7 @@ static int init(struct sr_output *o) sprintf(c, "# %d\t\t%s\n", i + 1, ctx->probelist[i]); } - if (!(frequency_s = sr_period_string(*samplerate))) { + if (!(frequency_s = sr_period_string(samplerate))) { sr_err("%s: sr_period_string failed", __func__); g_free(ctx->header); g_free(ctx);