X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=output%2Foutput_gnuplot.c;h=09a42ad65568977c1a6e481705c26f2feda4eb72;hb=54ac5277c5e462f1778300b9bc3fdd4709ecb2dc;hp=356f61aa2cabcabd2fb4d9234f2abe0f8e916068;hpb=a00ba012288726678e1a270961c8d4f46f3dbd33;p=libsigrok.git diff --git a/output/output_gnuplot.c b/output/output_gnuplot.c index 356f61aa..09a42ad6 100644 --- a/output/output_gnuplot.c +++ b/output/output_gnuplot.c @@ -49,7 +49,7 @@ const char *gnuplot_header_comment = "\ static int init(struct sr_output *o) { struct context *ctx; - struct probe *probe; + struct sr_probe *probe; GSList *l; uint64_t samplerate; unsigned int i; @@ -79,9 +79,9 @@ static int init(struct sr_output *o) num_probes = g_slist_length(o->device->probes); comment[0] = '\0'; - if (o->device->plugin) { + if (o->device->plugin && sr_device_has_hwcap(o->device, SR_HWCAP_SAMPLERATE)) { samplerate = *((uint64_t *) o->device->plugin->get_device_info( - o->device->plugin_index, DI_CUR_SAMPLERATE)); + o->device->plugin_index, SR_DI_CUR_SAMPLERATE)); if (!(frequency_s = sr_samplerate_string(samplerate))) { free(ctx->header); free(ctx); @@ -126,10 +126,10 @@ static int event(struct sr_output *o, int event_type, char **data_out, ctx = o->internal; switch (event_type) { - case DF_TRIGGER: + case SR_DF_TRIGGER: /* TODO: can a trigger mark be in a gnuplot data file? */ break; - case DF_END: + case SR_DF_END: free(o->internal); o->internal = NULL; break; @@ -141,7 +141,7 @@ static int event(struct sr_output *o, int event_type, char **data_out, return SR_OK; } -static int data(struct sr_output *o, char *data_in, uint64_t length_in, +static int data(struct sr_output *o, const char *data_in, uint64_t length_in, char **data_out, uint64_t *length_out) { struct context *ctx; @@ -191,10 +191,21 @@ static int data(struct sr_output *o, char *data_in, uint64_t length_in, return SR_OK; } +struct sr_output_format output_gnuplot = { + "gnuplot", + "Gnuplot", + SR_DF_LOGIC, + init, + data, + event, +}; + +/* Temporarily disabled. */ +#if 0 static int analog_init(struct sr_output *o) { struct context *ctx; - struct probe *probe; + struct sr_probe *probe; GSList *l; uint64_t samplerate; unsigned int i; @@ -221,14 +232,14 @@ static int analog_init(struct sr_output *o) } ctx->probelist[ctx->num_enabled_probes] = 0; // ctx->unitsize = (ctx->num_enabled_probes + 7) / 8; - ctx->unitsize = sizeof(struct analog_sample) + - (ctx->num_enabled_probes * sizeof(struct analog_probe)); + ctx->unitsize = sizeof(struct sr_analog_sample) + + (ctx->num_enabled_probes * sizeof(struct sr_analog_probe)); num_probes = g_slist_length(o->device->probes); comment[0] = '\0'; - if (o->device->plugin) { + if (o->device->plugin && sr_device_has_hwcap(o->device, SR_HWCAP_SAMPLERATE)) { samplerate = *((uint64_t *) o->device->plugin->get_device_info( - o->device->plugin_index, DI_CUR_SAMPLERATE)); + o->device->plugin_index, SR_DI_CUR_SAMPLERATE)); if (!(frequency_s = sr_samplerate_string(samplerate))) { free(ctx->header); free(ctx); @@ -274,7 +285,7 @@ static int analog_data(struct sr_output *o, char *data_in, uint64_t length_in, // uint64_t sample; static uint64_t samplecount = 0; char *outbuf, *c; - struct analog_sample *sample; + struct sr_analog_sample *sample; ctx = o->internal; // max_linelen = 16 + ctx->num_enabled_probes * 2; @@ -296,7 +307,7 @@ static int analog_data(struct sr_output *o, char *data_in, uint64_t length_in, for (i = 0; i <= length_in - ctx->unitsize; i += ctx->unitsize) { // memcpy(&sample, data_in + i, ctx->unitsize); - sample = (struct analog_sample *) (data_in + i); + sample = (struct sr_analog_sample *) (data_in + i); /* The first column is a counter (needed for gnuplot). */ c = outbuf + strlen(outbuf); @@ -326,20 +337,12 @@ static int analog_data(struct sr_output *o, char *data_in, uint64_t length_in, return SR_OK; } -struct sr_output_format output_gnuplot = { - "gnuplot", - "Gnuplot", - DF_LOGIC, - init, - data, - event, -}; - struct sr_output_format output_analog_gnuplot = { "analog_gnuplot", "Gnuplot analog", - DF_ANALOG, + SR_DF_ANALOG, analog_init, analog_data, event, }; +#endif