X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=output%2Foutput_gnuplot.c;h=a52c3dc1a7dcfb597ffa952ebad82cc36d19e98f;hb=f4314d7e0611917bdc7713dbffe17559490666d6;hp=440e848c8c1d59bcb7e91b7733841a40797e81d6;hpb=3a285098170ee6d5c7eab3fd94606e61a4fbaa19;p=libsigrok.git diff --git a/output/output_gnuplot.c b/output/output_gnuplot.c index 440e848c..a52c3dc1 100644 --- a/output/output_gnuplot.c +++ b/output/output_gnuplot.c @@ -27,12 +27,14 @@ struct context { unsigned int num_enabled_probes; unsigned int unitsize; - char *probelist[MAX_NUM_PROBES+1]; + char *probelist[SR_MAX_NUM_PROBES + 1]; char *header; }; -#define MAX_HEADER_LEN 1024 + (MAX_NUM_PROBES * (MAX_PROBENAME_LEN + 10)) -const char *gnuplot_header = "\ +#define MAX_HEADER_LEN \ + (1024 + (SR_MAX_NUM_PROBES * (SR_MAX_PROBENAME_LEN + 10))) + +static const char *gnuplot_header = "\ # Sample data in space-separated columns format usable by gnuplot\n\ #\n\ # Generated by: %s on %s%s\ @@ -43,13 +45,13 @@ const char *gnuplot_header = "\ ----------------------------------------\n\ # 0\t\tSample counter (for internal gnuplot purposes)\n%s\n"; -const char *gnuplot_header_comment = "\ +static const char *gnuplot_header_comment = "\ # Comment: Acquisition with %d/%d probes at %s\n"; 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,7 +81,7 @@ static int init(struct sr_output *o) num_probes = g_slist_length(o->device->probes); comment[0] = '\0'; - if (o->device->plugin && device_has_hwcap(o->device, SR_HWCAP_SAMPLERATE)) { + 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, SR_DI_CUR_SAMPLERATE)); if (!(frequency_s = sr_samplerate_string(samplerate))) { @@ -141,7 +143,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 +193,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,12 +234,12 @@ 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 && device_has_hwcap(o->device, SR_HWCAP_SAMPLERATE)) { + 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, SR_DI_CUR_SAMPLERATE)); if (!(frequency_s = sr_samplerate_string(samplerate))) { @@ -274,7 +287,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 +309,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,15 +339,6 @@ 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", - SR_DF_LOGIC, - init, - data, - event, -}; - struct sr_output_format output_analog_gnuplot = { "analog_gnuplot", "Gnuplot analog", @@ -343,3 +347,4 @@ struct sr_output_format output_analog_gnuplot = { analog_data, event, }; +#endif