X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Foutput%2Fgnuplot.c;h=053f042495bdd45adbbb44f14e4f54c26fbf6c31;hb=329733d92c5004f0fe308eff26b9537fded2cdf3;hp=a9feec67ba056f2f55daeed75990fca6eb1619e9;hpb=155b680da482cea2381becb73c51cfb838bff31e;p=libsigrok.git diff --git a/src/output/gnuplot.c b/src/output/gnuplot.c index a9feec67..053f0424 100644 --- a/src/output/gnuplot.c +++ b/src/output/gnuplot.c @@ -43,19 +43,20 @@ static const char *gnuplot_header2 = "\ # -----------------------------------------------------------------------------\n\ # 0\t\tSample counter (for internal gnuplot purposes)\n"; - -static int init(struct sr_output *o) +static int init(struct sr_output *o, GHashTable *options) { struct context *ctx; struct sr_channel *ch; GSList *l; unsigned int i; + (void)options; + if (!o || !o->sdi) return SR_ERR_ARG; ctx = g_malloc0(sizeof(struct context)); - o->internal = ctx; + o->priv = ctx; ctx->num_enabled_channels = 0; for (l = o->sdi->channels; l; l = l->next) { ch = l->data; @@ -84,7 +85,7 @@ static int init(struct sr_output *o) return SR_OK; } -static GString *gen_header(struct sr_output *o) +static GString *gen_header(const struct sr_output *o) { struct context *ctx; struct sr_channel *ch; @@ -94,7 +95,7 @@ static GString *gen_header(struct sr_output *o) unsigned int num_channels, i; char *samplerate_s; - ctx = o->internal; + ctx = o->priv; if (ctx->samplerate == 0) { if (sr_config_get(o->sdi->driver, o->sdi, NULL, SR_CONF_SAMPLERATE, &gvar) == SR_OK) { @@ -130,7 +131,7 @@ static GString *gen_header(struct sr_output *o) return header; } -static int receive(struct sr_output *o, const struct sr_datafeed_packet *packet, +static int receive(const struct sr_output *o, const struct sr_datafeed_packet *packet, GString **out) { const struct sr_datafeed_meta *meta; @@ -142,9 +143,9 @@ static int receive(struct sr_output *o, const struct sr_datafeed_packet *packet, unsigned int curbit, p, idx, i; *out = NULL; - if (!o || !o->internal) + if (!o || !o->priv) return SR_ERR_BUG; - ctx = o->internal; + ctx = o->priv; if (packet->type == SR_DF_META) { meta = packet->payload; @@ -205,9 +206,9 @@ static int cleanup(struct sr_output *o) { struct context *ctx; - if (!o || !o->internal) + if (!o || !o->priv) return SR_ERR_BUG; - ctx = o->internal; + ctx = o->priv; g_free(ctx->channel_index); g_free(ctx->prevsample); g_free(ctx); @@ -215,9 +216,12 @@ static int cleanup(struct sr_output *o) return SR_OK; } -SR_PRIV struct sr_output_format output_gnuplot = { +SR_PRIV struct sr_output_module output_gnuplot = { .id = "gnuplot", - .description = "Gnuplot", + .name = "Gnuplot", + .desc = "Gnuplot data file format", + .exts = (const char*[]){"dat", NULL}, + .options = NULL, .init = init, .receive = receive, .cleanup = cleanup,